/*  This comment MUST stay intact for legal use, so don't remove it. EnlargeIt! 
v1.1 - (c) 2008 Timo Sack - http://enlargeit.timos-welt.de This program is free 
software: you can redistribute it and/or modify it under the terms of the GNU 
General Public License as published by the Free Software Foundation, either 
version 3 of the License, or (at your option) any later version. See LICENSE.TXT 
for details. */

// modify these
var enl_gifpath='./graphics/';  // path to graphics
var enl_brdsize=2;    // border thickness (5-30)
var enl_brdcolor='';   // border color (white if empty)
var enl_brdbck='';     // border background pic, '' for no pic
var enl_brdround=0;    // use rounded borders
var enl_maxstep=20;    // ani steps (10-30)
var enl_speed=8;      // time between steps
var enl_ani=2;         // 0=no,1=fade,2=glide,3=bumpglide,4=smoothglide,5=expglide
var enl_opaglide=0;    // glide transparency
var enl_shadow=1;      // shadow under border
var enl_shadowsize=0;  // size of shadow right/bottom (0-20)
var enl_shadowcolor='';// shadow color (empty: black)
var enl_shadowintens=12;// shadow intensity (5-30)
var enl_dark=0;        // darken screen (0=off/1=on/2=keep dark when nav)
var enl_darkprct=0;   // how dark the screen should be (0-100)
var enl_darksteps=9;   // how long darkening should take
var enl_center=0;      // center enlarged pic on screen
var enl_drgdrop=1;     // enable drag&drop for pics
var enl_preload=0;     // preload next/prev pic
var enl_titlebar=0;    // show pic title bar
var enl_keynav=0;      // key navigation
var enl_wheelnav=0;    // mouse wheel navigation
var enl_titletxtcol='';// color of title bar text (empty: dark grey)
var enl_ajaxcolor='';  // background color for AJAX (empty: light grey)
var enl_usecounter=0;  // hidden call of counter page
var enl_counterurl=''; // base URL of counter page
var enl_btnact='';               // active buttons
var enl_btninact='';           // inactive buttons
var enl_pluscur='pluscur.cur';           // mouse cursor of thumbnail
var enl_minuscur='minuscur.cur';         // mouse cursor of enlarged image
var enl_noflash='No flash plugin found!';// msg if no flash plugin found
var enl_canceltext='Click to cancel';    // tooltip to cancel loading

// don't modify next line
var enl_buttonurl = new Array(),enl_buttontxt = new Array(),enl_buttonoff = new Array();

// define your buttons here

// stuff to leave alone

// global vars
var enl_prldimg=new Array(),enl_button=new Array(),enl_stopload=0;
var enl_butact,enl_butinact,enl_btnheight,enl_prldcnt=0,enl_darkened=0;
var enl_nn6=document.getElementById&&!document.all;enl_drgmode=false;
var enl_drgelem,enl_mvcnt=0,enl_isie=window.ActiveXObject,enl_hasmvd=false;
var enl_brwsx,enl_brwsy,enl_scrollx,enl_scrolly,enl_infront='';
var enl_firstcall=0,enl_inprogress=0,enl_zcnt=9700,enl_inmax=0,enl_ie6=0;
var enl_request=false,enl_request2=false,enl_keepblack=0,enl_brdbckpic;

// init function at page load or first enlarge
function enl_init()
{
  if (!enl_firstcall)
  {
    enl_firstcall = 1;
    
    // parameter corrections
    if (typeof enl_buttonpress == 'undefined') enl_drgdrop = 0;
    if (typeof enl_ajax == 'undefined') enl_usecounter = 0;
    if (typeof enl_darken == 'undefined') enl_dark = 0;
    if (typeof enl_dropshadow == 'undefined') enl_shadow = 0;
    if (typeof enl_wheel == 'undefined') enl_wheelnav = 0;
    if (typeof enl_keynavi == 'undefined') enl_keynav = 0;
    if (typeof enl_mktitlebar == 'undefined') enl_titlebar = 0;
    else if (enl_buttonurl.length) enl_titlebar = 1;
    if (typeof enl_dofadein == 'undefined' && enl_ani == 1) enl_ani = 2;
    if (typeof enl_doglidein == 'undefined' && enl_ani > 1) enl_ani = 0;
    var enl_i = 0;
    
    // prepare ajax
    if (typeof enl_ajax != 'undefined') enl_ajaxprepare();
    
    // button img
    if (enl_titlebar) {
      enl_preloadit(enl_gifpath+enl_btnact);
      enl_butact = enl_prldimg[enl_prldcnt];
      enl_preloadit(enl_gifpath+enl_btninact);
      enl_butinact = enl_prldimg[enl_prldcnt];
    }

    // background img
    if (enl_brdbck) enl_preloadit(enl_gifpath+enl_brdbck);
    enl_brdbckpic = enl_prldimg[enl_prldcnt];

    // loader div
    enl_ldr = enl_mkdiv('enl_ldr');
    enl_ldr.style.zIndex = 9999;
    enl_ldrgif = new Image();
    enl_ldrgif.src = enl_gifpath+'loader.gif';
    enl_ldrgif.style.borderWidth = '1px';
    enl_ldrgif.style.borderStyle = 'solid';
    enl_ldrgif.style.borderColor = 'black';
    enl_ldrgif.id = 'enl_ldrgif';
    enl_ldr.appendChild(enl_ldrgif);

    // border div
    enl_brdm = enl_mkdiv('enl_brd');
    enl_brdm.name = 'ajax';
    enl_brdm.style.backgroundColor = (enl_brdcolor) ? enl_brdcolor : '#ffffff';
    if (enl_brdbck) enl_brdm.style.backgroundImage = 'url('+enl_gifpath+enl_brdbck+')';
    if (enl_brdround && !enl_brdbck)
    {
      enl_brdm.style.MozBorderRadius = enl_brdsize+'px';
      enl_brdm.style.khtmlBorderRadius = enl_brdsize+'px';
    }

    // shadow div
    if (enl_shadow)
    {
        enl_shdm = enl_mkdiv('enl_shd');
        enl_shdm.style.backgroundColor = (enl_shadowcolor) ? enl_shadowcolor : 'black';
        enl_setopa(enl_shdm,enl_shadowintens);
        if (enl_brdround && !enl_brdbck)
        {
          enl_shdm.style.MozBorderRadius = eval(enl_brdsize+1)+'px';
          enl_shdm.style.khtmlBorderRadius = eval(enl_brdsize+1)+'px';
        }
    }
    if (enl_dark) enl_darkenprepare();
    if (enl_keynav)
    {
      document.onkeyup = enl_keynavi;
      document.onkeydown = null;
    }
    enl_imglist = document.getElementsByTagName('img');
    
    // set mouse plus cursor, assign IDs, fix IE alt tooltip bug for thumbs
    if (typeof document.body.style.maxHeight == 'undefined') enl_ie6 = 1;
    var enl_ui;
    for (var enl_i=0; enl_i<enl_imglist.length; enl_i++)
    {
      if (typeof enl_imglist[enl_i].onclick == 'function') {
        enl_ui = eval(enl_imglist[enl_i].onclick).toString();
        if (enl_ui.search(/enlarge/) != -1)
        {
          enl_imglist[enl_i].title = '';
          if (enl_isie) enl_imglist[enl_i].galleryimg = 'no';
          if (!enl_imglist[enl_i].id) enl_imglist[enl_i].id = 'enl_autoid'+enl_i;
          enl_setcur(enl_imglist[enl_i],enl_pluscur,'pointer','hand');
        }
      }
    }
    enl_firstcall = 2;
    enl_timetowait = (enl_isie) ? 750 : 100;
    if (typeof enl_openpic != 'undefined') setTimeout('enl_openthepic("'+enl_openpic+'")' ,enl_timetowait);
  }
}

// open a pic by pic.id
function enl_openthepic(enl_toopen)
{
  enl_img = enl_geto(enl_toopen);
  enlarge(enl_img);
}

// set position of object
function enl_setpos(enl_obj,enl_posx,enl_posy,enl_w,enl_h)
{
  enl_obj.style.left = enl_posx+'px';
  enl_obj.style.top = enl_posy+'px';
  if (enl_w) {
    enl_obj.style.width = enl_w+'px';
    enl_obj.style.height = enl_h+'px';
  }
}

// set opacity of object
function enl_setopa(enl_obj,enl_opval) {
  enl_obj.style.opacity=enl_opval/100;
  enl_obj.style.MozOpacity=enl_opval/100;
  enl_obj.style.filter = "alpha(opacity="+enl_opval+")";
}

// get object by id
function enl_geto(enl_imgid)
{
  return document.getElementById(enl_imgid);
}

// preload image
function enl_preloadit(enl_picpath)
{
  enl_prldcnt +=1;
  enl_prldimg[enl_prldcnt] = new Image();
  if (enl_picpath.slice(3,5) != '::' ) enl_prldimg[enl_prldcnt].src = enl_picpath;
  else if (!enl_isie) enl_prldimg[enl_prldcnt].src = enl_picpath.split('::')[1];
}

// show object
function enl_visible(enl_obj)
{
  enl_obj.style.visibility = 'visible';
}

// hide object
function enl_hide(enl_obj)
{
  enl_obj.style.visibility = 'hidden';
}

// create div
function enl_mkdiv(enl_divname)
{
  enl_div = document.createElement("div");
  enl_hide (enl_div);
  enl_div.id = enl_divname;
  enl_div.style.position = 'absolute';
  enl_setpos(enl_div,-5000,0,0,0);
  document.body.appendChild(enl_div);
  return enl_div;
}

// get viewport
function enl_getbrwsxy()
{
 if (typeof window.innerWidth != 'undefined')
 {
   enl_brwsx = window.innerWidth - 10;
   enl_brwsy = window.innerHeight;
 }
 else if (typeof document.documentElement  != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
 {
  enl_brwsx = document.documentElement.clientWidth;
  enl_brwsy = document.documentElement.clientHeight;
 }
 else
 {
   enl_brwsx = document.getElementsByTagName('body')[0].clientWidth;
   enl_brwsy = document.getElementsByTagName('body')[0].clientHeight;
 }
 enl_scrolly = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
 enl_scrollx = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
}

// start/stop slider plug if exists
function enl_ctlslid(enl_i)
{
  if (typeof realcopyspeed != 'undefined') copyspeed=(enl_i?realcopyspeed:0);
}

// get top, left, width and height
function enl_coord(enl_el)
{
  var enl_values = { top:0, left:0, width:0, height:0 };
  if(!enl_el) return enl_values;
  else if(typeof enl_el == 'string' ) enl_el = enl_geto(enl_el);
  if( typeof enl_el != 'object' ) return enl_values;
  if(typeof enl_el.offsetTop != 'undefined') {
    enl_values.height = enl_el.offsetHeight;
    enl_values.width = enl_el.offsetWidth; enl_values.left = enl_el.top = 0;
    while (enl_el && enl_el.tagName != 'BODY') {
  enl_values.top  += parseInt( enl_el.offsetTop ); enl_values.left += parseInt( enl_el.offsetLeft ); enl_el = enl_el.offsetParent; } }
  return enl_values;
}

// set mouse cursor
function enl_setcur(enl_obj,enl_curstr1,enl_curstr2,enl_curstr3)
{
  if (window.opera || (!enl_curstr1 && !enl_ie6)) {try {enl_obj.style.cursor = enl_curstr2;} catch(enl_err) {}}
  else if (enl_ie6) {try {enl_obj.style.cursor = enl_curstr3;} catch(enl_err) {}}
  else {try {enl_obj.style.cursor = 'url('+enl_gifpath+enl_curstr1+'),'+enl_curstr2;} catch(enl_err) {}}
}

// onmouse events for drag, preload
function enl_makedraggable(enl_imgid)
{
  enl_infront = enl_imgid;
  enl_img = enl_geto(enl_imgid);
  if (enl_img.issmaller == 1 && enl_isie) enl_img.style.msInterpolationMode = 'bicubic';
  enl_orig = enl_geto(enl_img.orig);
  enl_setcur(enl_orig,'','default','default');
  if (enl_drgdrop)
  { enl_img.onmousedown=enl_buttonpress;
    enl_img.onmouseup=enl_enddrag; }
  else if (enl_img.ispic || !enl_titlebar) enl_img.onclick = function() { enl_shrink(enl_imgid); };
  if (!enl_inmax && enl_usecounter) setTimeout('enl_count("'+enl_orig.id+'")' ,40);
  if (enl_drgdrop) enl_setcur(enl_img,enl_minuscur,'move','move');
  else enl_setcur(enl_img,enl_minuscur,'pointer','hand');
  enl_inprogress=0;
  enl_ctlslid(1);
  if (enl_preload)
  {
    for(var enl_i=0; enl_i<2; enl_i++)
    {
      enl_nextpic = enl_getnext(enl_imgid,enl_i);
      if (enl_nextpic)
      {
        enl_pictoget = enl_nextpic.getAttribute('longdesc');
        setTimeout('enl_preloadit("'+enl_pictoget+'")' ,30);
      }
    }
  }
}

// delete onmouse events
function enl_noevents(enl_obj)
{
  enl_obj.onmousedown = null;
  enl_obj.onclick = null;
  enl_obj.onmouseup = null;
}

// add event to window.onload
function enl_addLoad(enl_func)
{
  var enl_oldonload = window.onload;
  if (typeof window.onload != 'undefined')
  { window.onload = enl_func; }
  else
  { window.onload = function() {
    if (enl_oldonload) { enl_oldonload(); }
    enl_func();
    };
  }
}

// show loader
function enl_ajaxload(enl_obj) {
  enl_ldr = enl_geto('enl_ldr');
  enl_r = enl_coord(enl_obj);
  enl_setpos(enl_ldr,enl_r.left+enl_r.width/2-17,enl_r.top+enl_r.height/2-17);
  enl_visible(enl_ldr);
}

// hide loader
function enl_ajaxldrhide() {
  enl_ldr = enl_geto('enl_ldr');
  enl_hide(enl_ldr);
  enl_setpos(enl_ldr,-5000,0);
}

// get next/previous pic (enl_prvnxt=0 gets next, =1 gets prev)
function enl_getnext(enl_imgid,enl_prvnxt)
{
  enl_oripic = enl_geto(enl_geto(enl_imgid).orig);
  if (enl_oripic.className)
  {
    var enl_allElm = document.body.getElementsByTagName('img');
    var enl_flag = 0;
    if (!enl_prvnxt)
    {
      for(var enl_i = 0; enl_i < enl_allElm.length; enl_i++)
      {
        if ((enl_flag == 1) && (enl_allElm[enl_i].className==enl_oripic.className) && !enl_allElm[enl_i].orig)
        {
          enl_flag = 2;
          enl_nextObj = enl_allElm[enl_i];
        }
        if (enl_oripic == enl_allElm[enl_i]) enl_flag = 1;
      }
    }
    else
    {
      for(var enl_i = enl_allElm.length; enl_i >= 0; enl_i--)
      {
        if ((enl_flag == 1) && (enl_allElm[enl_i].className==enl_oripic.className) && !enl_allElm[enl_i].orig)
        {
          enl_flag = 2;
          enl_nextObj = enl_allElm[enl_i];
        }
        if (enl_oripic == enl_allElm[enl_i]) enl_flag = 1;
      }
    }
    if (enl_flag == 2 && !enl_nextObj.isenlarged && enl_oripic.className != 'imgflowimg' && enl_oripic.className != 'sliderimg') return enl_nextObj;
    else return null;
  }
}

// draw border
function enl_mkborder(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_brdclone = enl_geto(enl_imgid+"brd");
  if (enl_wheelnav) enl_wheelenable(enl_brdclone);
  if (enl_titlebar && enl_brdsize < enl_btnheight+4)
  {
    enl_tmph = enl_img.newh + enl_brdsize + enl_btnheight + 4;
    enl_tmpt = enl_img.newt-enl_brdsize- (enl_btnheight+4) +enl_brdsize;
  }
  else
  {
    enl_tmph = enl_img.newh + enl_brdsize*2;
    enl_tmpt = enl_img.newt-enl_brdsize;
  }
  enl_setpos(enl_brdclone,enl_img.newl - enl_brdsize, enl_tmpt);
  with (enl_brdclone.style) {
    width = eval(enl_img.neww + enl_brdsize*2)+'px';
    height = enl_tmph+'px';
    visibility = 'visible';
    zIndex = enl_zcnt-1;
  }
  if (enl_shadow) enl_dropshadow(enl_imgid);
  if (typeof enl_hideselect != 'undefined') enl_hideselect(enl_brdclone,0);
}

// remove border
function enl_delborder(enl_imgid)
{
  enl_brdm=enl_geto(enl_imgid+"brd");
  if (typeof enl_hideselect != 'undefined') enl_hideselect(enl_brdclone,1);
  enl_hide(enl_brdm);
  enl_setpos(enl_brdm,-5000,0);
  if (enl_shadow) enl_delshadow(enl_imgid);
}

// -------- main functions -------

// initiate pre-load
function enlarge(enl_img)
{
  if (!enl_firstcall) enl_init();
  if (enl_firstcall == 1 || enl_img.isenlarged) return false;
  if (enl_inprogress) 
  {
    setTimeout('enl_openthepic("'+enl_img.id+'")',99);
    return false;
  }
  if (enl_brdbck && !enl_brdbckpic.complete) return false;
  if (enl_titlebar && (!enl_butact.complete || !enl_butinact.complete)) return false;
  var enl_getlongdesc=enl_img.getAttribute('longdesc');
  if (enl_getlongdesc.slice(3,5) == '::' && typeof enl_checkflash == 'undefined') return false;
  enl_inprogress = 1;
  enl_img.isenlarged = 1;
  enl_ctlslid(0);
  enl_preloadit(enl_getlongdesc);
  enl_imgid = enl_img.getAttribute('id');
  enl_inmax = 0;
  setTimeout('enl_chckready("'+enl_imgid+'")' ,10);
}

// check if pre-load is ready and create clone
function enl_chckready(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_ldr = enl_geto("enl_ldr");
  var enl_getlongdesc = enl_img.getAttribute('longdesc');
  var enl_divtype = enl_getlongdesc.slice(0,5);
  if (enl_stopload)
  {
    enl_geto('enl_ldrgif').onclick = null;
    enl_geto('enl_ldrgif').title = "";
    enl_keepblack = 0;
    if (enl_dark) enl_nodark();
    enl_ajaxldrhide();
    enl_inprogress = 0;
    enl_img.isenlarged = 0;
    enl_ctlslid(1);
    enl_stopload = 0;
    return false;
  }
  var enl_ispreload = enl_prldimg[enl_prldcnt].complete;
  if ((enl_ispreload && enl_prldimg[enl_prldcnt].width) || (enl_ispreload && enl_divtype == 'swf::') || (enl_ispreload && enl_divtype == 'fl2::')|| (enl_ispreload && enl_divtype == 'flv::') || enl_divtype == 'dvx::' || enl_divtype == 'ifr::' || (enl_isie && (enl_divtype == 'swf::')) || (enl_isie && (enl_divtype == 'fl2::')) || (enl_isie && (enl_divtype == 'flv::')))
  {
    enl_zcnt+=3;
    enl_ajaxldrhide();
    if (enl_divtype == 'swf::' || enl_divtype == 'fl2::' || enl_divtype == 'flv::') {
      if (enl_checkflash()) enl_clone = enl_swfdiv(enl_img,enl_getlongdesc);
      else 
      { 
        alert (enl_noflash);
        enl_inprogress = 0;
        enl_img.isenlarged = 0;
        enl_ctlslid(1);
        return false; 
      }
    }
    else if (enl_divtype == 'dvx::') enl_clone = enl_dvxdiv(enl_img,enl_getlongdesc);
    else if (enl_divtype == 'ifr::') enl_clone = enl_ifrdiv(enl_img,enl_getlongdesc);
    else
    {
      enl_clone = enl_img.cloneNode(true);
      enl_setpos(enl_clone,-5000,0);
      with (enl_clone) {
        id = enl_img.id+"clone";
        style.visibility = 'hidden';
        style.position = 'absolute';
        style.borderWidth = '0px';
        style.outlineWidth = '0px';
        style.margin = '0px';
        style.padding = '0px';
      }
      document.body.appendChild(enl_clone);
    }
    enl_clone.orig = enl_img.id;

    // clone brddiv to brdclone
    enl_brddiv = enl_geto("enl_brd");
    enl_brdclone = enl_brddiv.cloneNode(true);
    enl_brdclone.id = enl_imgid + "clonebrd";
    enl_brdclone.style.zIndex = enl_zcnt-1;
    if (enl_shadow) {
      enl_shddiv = enl_geto("enl_shd");
      enl_shdclone = enl_shddiv.cloneNode(true);
      enl_shdclone.id = enl_clone.id+"shd1";
      enl_shdclone2 = enl_shddiv.cloneNode(true);
      enl_shdclone2.id = enl_clone.id+"shd2";
      document.body.appendChild(enl_shdclone);
      document.body.appendChild(enl_shdclone2);
    }
    document.body.appendChild(enl_brdclone);
    try { enl_img.blur(); } catch(enl_err) {}
    enl_clone.ispic = (enl_getlongdesc.slice(3,5) != '::') ? 1 : 0;
    setTimeout('enl_doenlarge("'+enl_clone.id+'")' ,50);
  } else {
     enl_ajaxload(enl_img);
     enl_geto('enl_ldrgif').onclick = function () { enl_stopload = 1; };
     enl_geto('enl_ldrgif').title = enl_canceltext;
     enl_visible(enl_ldr);
     try { enl_img.blur(); } catch(enl_err) {}
     setTimeout('enl_chckready("'+enl_imgid+'")' ,50);
  }
}

// initiate enlarging
function enl_doenlarge(enl_imgid)
{
  enl_zcnt+=3;
  enl_getbrwsxy();
  if (typeof enl_butact != 'undefined') enl_btnheight = parseInt(enl_butact.height);
  document.onselectstart = function () { return false; };
  enl_img = enl_geto(enl_imgid);
  if (enl_wheelnav) enl_wheelenable(enl_img);
  enl_orig = enl_geto(enl_img.orig);
  try { enl_orig.blur(); } catch(enl_err) {}
  enl_noevents(enl_img);
  enl_noevents(enl_orig);
  enl_fullimg = enl_orig.getAttribute('longdesc');
  enl_r = enl_coord(enl_orig);
  enl_img.style.zIndex = enl_zcnt;
  enl_img.oldt = enl_r.top;
  enl_img.oldl = enl_r.left;
  if (typeof cpgif_conf_reflection_p == 'number' && enl_geto(enl_img.orig).className == "imgflowimg") enl_img.oldh = parseInt(enl_r.height / (1+cpgif_conf_reflection_p));
  else enl_img.oldh = enl_r.height;
  enl_img.oldw = enl_r.width;
  enl_img.issmaller = 0;
  if (enl_img.oldw+enl_img.oldl > enl_brwsx-20) enl_img.oldl = enl_brwsx-enl_img.oldw-20;
  if (enl_img.ispic) {
    enl_img.neww = parseInt(enl_prldimg[enl_prldcnt].width);
    enl_img.newh = parseInt(enl_prldimg[enl_prldcnt].height);
  }
  else
  {
    enl_img.neww = eval(enl_fullimg.split('::')[2]);
    enl_img.newh = eval(enl_fullimg.split('::')[3]);
  }
  if (enl_img.neww > enl_brwsx-100) {
      enl_img.newh = Math.round(enl_img.newh * (enl_brwsx-100) / enl_img.neww);
      enl_img.neww = enl_brwsx-100;
      enl_img.issmaller = 1;
  }
  if (enl_img.newh > enl_brwsy-80)  {
      enl_img.neww = Math.round(enl_img.neww * (enl_brwsy-80) / enl_img.newh);
      enl_img.newh = enl_brwsy-80;
      enl_img.issmaller = 1;
  }
  enl_img.newl = Math.round(enl_img.oldl - (enl_img.neww-enl_img.oldw)/2);
  enl_img.newt = Math.round(enl_img.oldt - (enl_img.newh-enl_img.oldh)/2);
  if (!enl_center)
  {
    if (enl_img.newl < (50 + enl_scrollx)) enl_img.newl = 50+enl_scrollx;
    if (enl_img.newt < (40 + enl_scrolly)) enl_img.newt = 40+enl_scrolly;
    if (enl_img.newl+enl_img.neww > enl_brwsx+enl_scrollx-50) enl_img.newl = enl_brwsx+enl_scrollx-50-enl_img.neww;
    if (enl_img.newt+enl_img.newh > enl_brwsy+enl_scrolly-40) enl_img.newt = enl_brwsy+enl_scrolly-40-enl_img.newh;
  }
  else
  {
    enl_img.newl = Math.round(enl_brwsx/2+enl_scrollx-enl_img.neww/2);
    enl_img.newt = Math.round(enl_brwsy/2+enl_scrolly-enl_img.newh/2);
  }
  enl_img.steps = 1;
  enl_img.thumbpic = enl_img.src;
  if (enl_titlebar) enl_mktitlebar(enl_imgid);
  if (!enl_ani || !enl_img.ispic ) enl_donoani(enl_imgid);
  else if (enl_ani==1) setTimeout('enl_dofadein("'+enl_imgid+'")' ,50);
  else setTimeout('enl_doglidein("'+enl_imgid+'")' ,50);
}

// show pic without animation
function enl_donoani(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_setpos(enl_img,enl_img.newl,enl_img.newt,enl_img.neww,enl_img.newh);
  enl_img.src = enl_fullimg;
  enl_img.style.position = 'absolute';
  enl_visible(enl_img);
  enl_mkborder(enl_imgid);
  alert(en_img.visible);
  if (enl_titlebar) enl_showbtn(enl_imgid);
  enl_makedraggable(enl_imgid);
  if (enl_dark) enl_darken();
}

// re-enable object for enlarge, room up
function enl_enable(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_orig = enl_geto(enl_img.orig);
  var enl_makenull=enl_geto(enl_orig.id+'swfinner');
  var enl_getlongdesc = enl_orig.getAttribute('longdesc');
     if ((enl_getlongdesc.slice(0,5) != 'swf::') && enl_isie)
     {
       for (var enl_i in enl_makenull) 
       {  
         if (typeof enl_makenull[enl_i] == "function") enl_makenull[enl_i] = null;
       }
     }
  if (enl_titlebar) document.body.removeChild(enl_geto(enl_imgid+"btns"));
  document.body.removeChild(enl_geto(enl_imgid+"brd"));
  if (enl_shadow) {
    document.body.removeChild(enl_geto(enl_imgid+"shd1"));
    document.body.removeChild(enl_geto(enl_imgid+"shd2"));
  }
  enl_orig.isenlarged = 0;
  enl_orig.onclick = function() { enlarge(this); };
  enl_setcur(enl_orig,enl_pluscur,'pointer','hand');
  document.body.removeChild(enl_img);
  enl_ctlslid(1);
  enl_inprogress = 0;
  if (enl_inmax == 1) enlarge(enl_orig);
}

// hide pic without animation
function enl_noaniremove(enl_imgid)
{
  enl_hide(enl_geto(enl_imgid));
  setTimeout('enl_enable("'+enl_imgid+'")' ,10);
}

// initiate shrinking of pic
function enl_shrink(enl_imgid)
{
  if (enl_inprogress) 
  {
    setTimeout('enl_shrink("'+enl_imgid+'")',50);
    return false;
  }
  enl_inprogress = 1;
  enl_infront = '';
  enl_ctlslid(0);
  enl_img = enl_geto(enl_imgid);
  if (enl_img.issmaller == 1 && enl_isie) enl_img.style.msInterpolationMode = 'nearest-neighbor';
  enl_setcur(enl_img,'','pointer','hand');
  enl_noevents(enl_img);
  enl_orig = enl_geto(enl_img.orig);
  enl_fullimg = enl_orig.getAttribute('longdesc');
  enl_visible(enl_img);
  enl_delborder(enl_imgid);
  if (enl_titlebar) enl_hidebtn(enl_imgid);
  if (enl_dark) enl_nodark();
  enl_keepblack = 0;
  enl_r = enl_coord(enl_geto(enl_img.orig));
  enl_img.oldt = enl_r.top;
  enl_img.oldl = enl_r.left;
  if (enl_img.oldw+enl_img.oldl > enl_brwsx-20) enl_img.oldl = enl_brwsx-enl_img.oldw-20;
  if (!enl_ani || !enl_img.ispic) enl_noaniremove(enl_imgid);
  else if (enl_ani==1) setTimeout('enl_dofadeout("'+enl_imgid+'")' ,20);
  else setTimeout('enl_doglideout("'+enl_imgid+'")' ,20);
}

enl_addLoad(enl_init);

// paint shadow
function enl_dropshadow(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_shdclone1 = enl_geto(enl_imgid+"shd1");
  enl_shdclone2 = enl_geto(enl_imgid+"shd2");
  enl_tmpw = enl_img.neww + enl_shadowsize + enl_brdsize*2 + 2;
  if (enl_titlebar && enl_brdsize < enl_btnheight+4) 
  {
    enl_tmph = enl_img.newh + enl_shadowsize + enl_brdsize*2 + 6 + enl_btnheight - enl_brdsize;
    enl_tmpt = enl_img.newt - enl_brdsize - 1 - (enl_btnheight + 4) + enl_brdsize;
  }
  else
  {
    enl_tmph = enl_img.newh + enl_shadowsize + enl_brdsize*2 + 2;
    enl_tmpt = enl_img.newt - enl_brdsize - 1;
  }
  enl_setpos(enl_shdclone1, enl_img.newl - enl_brdsize - 1, enl_tmpt, enl_tmpw, enl_tmph);
  enl_shdclone1.style.zIndex = enl_zcnt-2;
  enl_visible(enl_shdclone1);
  enl_setpos(enl_shdclone2, enl_img.newl - enl_brdsize - 2, enl_tmpt - 1, enl_tmpw+2, enl_tmph+2);
  enl_shdclone2.style.zIndex = enl_zcnt-2;
  enl_visible(enl_shdclone2);
}

// hide shadow
function enl_delshadow(enl_imgid)
{
  enl_shd1 = enl_geto(enl_imgid+"shd1");
  enl_shd2 = enl_geto(enl_imgid+"shd2");
  enl_hide(enl_shd1);
  enl_setpos(enl_shd1,-5000,0);
  enl_hide(enl_shd2);
  enl_setpos(enl_shd2,-5000,0);
}

// factor for glide
function enl_calcfact(enl_facthelp)
{
  var enl_factor;
  if (enl_ani==3) enl_factor = ((-1*Math.cos(enl_facthelp-0.2))+0.98)*3.5;
  else if (enl_ani == 4) enl_factor = (Math.sin(1.5 * Math.PI + enl_facthelp * Math.PI) + 1)/2;
  else if (enl_ani == 5) enl_factor = Math.pow(enl_facthelp, Math.pow(2,2));
  else enl_factor = enl_facthelp;
  return enl_factor;
}

// glide out
function enl_doglideout(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_mvcnt = 0;
  enl_img.steps++;
  if (enl_img.steps >= enl_maxstep)
  {
//    enl_visible(enl_geto(enl_img.orig));
    enl_hide(enl_img);
    enl_img.steps = 1;
    setTimeout('enl_enable("'+enl_imgid+'")',50);
  }
  else
  {
    var enl_factor = enl_calcfact((enl_maxstep-enl_img.steps)/enl_maxstep);
    enl_tmpw = Math.round(enl_factor * (enl_img.neww-enl_img.oldw) + enl_img.oldw);
    enl_tmph = Math.round(enl_factor * (enl_img.newh-enl_img.oldh) + enl_img.oldh);
    enl_tmpt = Math.round(enl_img.oldt+(enl_img.newt-enl_img.oldt)*enl_factor);
    enl_tmpl = Math.round(enl_img.oldl+(enl_img.newl-enl_img.oldl)*enl_factor);
    if (enl_tmpw < 0) enl_tmpw = 0;
    if (enl_tmph < 0) enl_tmph = 0;
    enl_setpos(enl_img,enl_tmpl,enl_tmpt,enl_tmpw,enl_tmph);
    if (enl_opaglide) enl_setopa(enl_img, Math.round((enl_maxstep-enl_img.steps)/enl_maxstep*100));
    setTimeout('enl_doglideout("'+enl_imgid+'")' ,enl_speed);
  }
}

// glide in pic
function enl_doglidein(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_img.steps++;
  if (enl_img.steps >= enl_maxstep)
  {
    enl_setpos(enl_img,enl_img.newl,enl_img.newt,enl_img.neww,enl_img.newh);
    enl_img.steps = 1;
    if (enl_opaglide) 
    {
      enl_setopa(enl_img,100);
      enl_img.style.filter = '';
    }
    setTimeout('enl_mkborder("'+enl_imgid+'")' ,enl_speed);
    if (enl_dark) setTimeout('enl_darken()', enl_speed*4);
    setTimeout('enl_makedraggable("'+enl_imgid+'")' ,enl_speed*3);
    if (enl_titlebar) setTimeout('enl_showbtn("'+enl_imgid+'")' ,enl_speed*2);
  }
  else
  {
    if (enl_img.steps == 2) {
      enl_img.src = enl_fullimg;
      enl_img.style.position = 'absolute';
      if (enl_opaglide) enl_setopa(enl_img,0);
      enl_visible(enl_img);
// Hide Thumbnail if transparency ON
//      if (!enl_opaglide) enl_hide(enl_geto(enl_img.orig));
    }
    var enl_factor = enl_calcfact(enl_img.steps/enl_maxstep);
    enl_tmpw = Math.round(enl_factor * (enl_img.neww-enl_img.oldw) + enl_img.oldw);
    enl_tmph = Math.round(enl_factor * (enl_img.newh-enl_img.oldh) + enl_img.oldh);
    enl_tmpt = Math.round(enl_img.oldt+(enl_img.newt-enl_img.oldt)*enl_factor);
    enl_tmpl = Math.round(enl_img.oldl+(enl_img.newl-enl_img.oldl)*enl_factor);
    if (enl_tmpw < 0) enl_tmpw = 0;
    if (enl_tmph < 0) enl_tmph = 0;
    enl_setpos(enl_img,enl_tmpl,enl_tmpt,enl_tmpw,enl_tmph);
    if (enl_opaglide) enl_setopa(enl_img, Math.round(enl_img.steps/enl_maxstep*100));
    setTimeout('enl_doglidein("'+enl_imgid+'")' ,enl_speed);
  }
}

// fade out
function enl_dofadeout(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_mvcnt = 0;
  enl_img.steps++;
  if (enl_img.steps >= enl_maxstep)
  {
    enl_img.steps = 1;
    enl_hide(enl_img);
    setTimeout('enl_enable("'+enl_imgid+'")',50);
  }
  else 
  {
    enl_setopa(enl_img,(1-enl_img.steps/enl_maxstep)*100);
    setTimeout('enl_dofadeout("'+enl_imgid+'")' ,enl_speed);    
  }
}

// fade in pic
function enl_dofadein(enl_imgid)
{
  enl_brddiv = enl_geto(enl_imgid+"brd");
  enl_img = enl_geto(enl_imgid);
  enl_img.steps++;
  if (enl_img.steps==2)
  {
    enl_setpos(enl_img,enl_img.newl,enl_img.newt,enl_img.neww,enl_img.newh);
    enl_setopa(enl_img,0);
    enl_img.src = enl_fullimg;
    enl_img.style.position = 'absolute';
    enl_visible(enl_img);
  }
  if (enl_img.steps >= enl_maxstep)
  {
    enl_setopa(enl_img,100);
    enl_img.style.filter = '';
    enl_img.steps = 1;
    enl_mkborder(enl_imgid);
    if (enl_titlebar) enl_showbtn(enl_imgid);
    setTimeout('enl_makedraggable("'+enl_imgid+'")' ,30);
    if (enl_dark) setTimeout('enl_darken()', 100);
  }
  else
  {
    enl_setopa(enl_img,enl_img.steps/enl_maxstep*100);
    setTimeout('enl_dofadein("'+enl_imgid+'")' ,enl_speed);
  }
}


// mouse moved while dragging
function enl_mousemv(enl_el)
{
  if (enl_drgmode && enl_drgdrop) {
    enl_tmpl = enl_nn6 ? enl_tx + enl_el.clientX - enl_x : enl_tx + event.clientX - enl_x;
    enl_tmpt = enl_nn6 ? enl_ty + enl_el.clientY - enl_y : enl_ty + event.clientY - enl_y;
    enl_setpos(enl_drgelem,enl_tmpl,enl_tmpt);
    if (enl_titlebar && enl_brdsize<enl_btnheight+4) enl_setpos(enl_geto(enl_drgelem.id+"brd"),enl_tmpl - enl_brdsize,enl_tmpt - (enl_btnheight+4));
    else enl_setpos(enl_geto(enl_drgelem.id+"brd"),enl_tmpl - enl_brdsize,enl_tmpt - enl_brdsize);
    if (enl_titlebar) enl_showbtn(enl_drgelem.id);
    enl_mvcnt++;
    if (enl_mvcnt > 3) enl_hasmvd = true;
    return false;
  }
}

// start dragging
function enl_buttonpress(enl_el)
{
  enl_drgelem = enl_nn6 ? enl_el.target : event.srcElement; var topenl_el = enl_nn6 ? "HTML" : "BODY"; enl_hasmvd = false; while (enl_drgelem.tagName != topenl_el && !enl_drgelem.newh) {
  enl_drgelem = enl_nn6 ? enl_drgelem.parentNode : enl_drgelem.parentElement; } enl_drgmode = true; enl_zcnt+=3;
  var enl_drgid = enl_drgelem.id;
  if (enl_titlebar) enl_geto(enl_drgid+'btns').style.zIndex = enl_zcnt+1;
  enl_drgelem.style.zIndex = enl_zcnt; 
  if (enl_shadow) enl_delshadow(enl_drgid);
  enl_geto(enl_drgid+"brd").style.zIndex = enl_zcnt-1;
  enl_tx = parseInt(enl_drgelem.style.left+0); enl_ty = parseInt(enl_drgelem.style.top+0);
  enl_x = enl_nn6 ? enl_el.clientX : event.clientX; enl_y = enl_nn6 ? enl_el.clientY : event.clientY; enl_mvcnt = 0; enl_drgelem.onmousemove=enl_mousemv; return false;
}

// mouse btn released
function enl_enddrag()
{
  enl_noevents(enl_drgelem);
  enl_drgelem.newt = parseInt(enl_drgelem.style.top);
  enl_drgelem.newl = parseInt(enl_drgelem.style.left);
  var enl_drgid = enl_drgelem.id;
  if (enl_shadow) enl_dropshadow(enl_drgid);
  enl_drgmode = false;
  if (enl_hasmvd==true || !enl_drgelem.ispic) {
    if (typeof enl_hideselect != 'undefined') enl_hideselect(0,1);
    enl_mkborder(enl_drgid);
    if (enl_titlebar) enl_showbtn(enl_drgid);
    enl_hasmvd=false;
    setTimeout('enl_makedraggable("'+enl_drgid+'")' ,100);
  }
  else setTimeout('enl_shrink("'+enl_drgid+'")' ,10);
}

