/*  This comment MUST stay intact for legal use, so don't remove it.
    EnlargeIt! v0.94b - (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_brd=1;              // use border (0/1)
var enl_brdsize=10;         // border thickness
var enl_brdcolor='#ffffff'; // border color
var enl_maxstep=22;         // ani steps (10-30)
var enl_speed=14;           // time between steps
var enl_ani=3;              // 0=no ani, 1=fade, 2=glide, 3=bump-glide
var enl_shadow=1;           // shadow under image (0/1)
var enl_shadowsize=0;       // size of shadow right/bottom (0-20)
var enl_shadowintens=16;    // shadow intensity (10-30)
var enl_gifpath='./enlargeit/'; // path to graphics (gif/png)
var enl_showcap=1;          // show pic title (0/1)
var enl_dark=0;             // darken screen when displaying pic (0/1)
var enl_darkprct=40;        // how dark the screen should be (0-100)
var enl_center=0;           // always center enlarged pic on screen
var enl_buttons=0;          // use buttons in general (0/1)
var enl_closebtn=0;         // use close button (0/1)
var enl_closetext='Close';  // close button tooltip

// stuff to leave alone
// LEAVE THE ABOVE COMMENT LINE IN SOURCE!!!
var enl_prldcnt = 0;
var enl_darkened = 0;
var enl_prldimg = new Array();
var enl_zcnt = 9700;
var enl_ie=document.all;
var enl_nn6=document.getElementById&&!document.all;
var enl_konq=navigator.appName.indexOf("onqueror")+1;
var enl_drgmode = false;
var enl_hasmvd = false;
var enl_drgelem;
var enl_mvcnt = 0;
var enl_brwsx;
var enl_brwsy;
var enl_scrollx;
var enl_scrolly;
var enl_firstcall = 0;
var enl_inprogress = 0;
var enl_iflowcorr = 1;

// init function called at page load or first pic enlarge
function enl_init()
{
  if (!enl_firstcall) 
  {
    enl_firstcall = 1;
    if (!enl_brd) enl_shadow = 0;
    if (enl_konq) enl_ani = 0;
    if (typeof conf_reflection_p == 'number') enl_iflowcorr=1+conf_reflection_p;

    // pre-load caption background png
    if (enl_showcap) {
      enl_cappng = new Image();
      enl_cappng.src = enl_gifpath+'capback.png';
    }
    if (enl_buttons) {
      enl_butact = new Image();
      enl_butact.src = enl_gifpath+'buttons_act.png';
      enl_butinact = new Image();
      enl_butinact.src = enl_gifpath+'buttons_inact.png';
    }

    // create loading.gif div
    enl_ldr = enl_mkdiv('enl_ldr');
    enl_ldr.style.zIndex = 9500;
    enl_ldrgif = new Image();
    with (enl_ldrgif) {
      src = enl_gifpath+'loader.gif';
      style.borderWidth = '1px';
      style.borderStyle = 'solid';
      style.borderColor = 'black';
    }
    enl_ldr.appendChild(enl_ldrgif);

    // create border div
    if (enl_brd) {
      enl_brdm = enl_mkdiv('enl_brd');
      enl_brdm.style.backgroundColor = enl_brdcolor;
    }
    
    // create shadow div
    if (enl_shadow) {
      enl_shdm = enl_mkdiv('enl_shd');
      if (enl_konq) enl_shdm.style.backgroundImage = 'url('+enl_gifpath+'1pix.png)';
      else { enl_shdm.style.backgroundColor = 'black'; enl_setopa(enl_shdm,enl_shadowintens); }
    }
    
    // create semi-transparent dark div
    if (enl_dark)
    {
      enl_drk = enl_mkdiv('enl_drk');
      if (enl_konq) enl_drk.style.backgroundImage = 'url('+enl_gifpath+'1pix.png)';
      else { enl_setopa(enl_drk,enl_darkprct); enl_drk.style.backgroundColor = 'black'; }
      enl_drk.style.zIndex = 9670;
    }
    enl_firstcall = 2;
  }
}

// -------- general helper functions ---------

// set position of an 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 an object
function enl_setopa(enl_obj,enl_opval) {
  with (enl_obj.style) {
    opacity=enl_opval/100;
    MozOpacity=enl_opval/100;
    filter = "alpha(opacity="+enl_opval+")";
  }
}

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

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

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

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

// get viewport of browser window
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;
}

// called on window resize
function enl_resize ()
{
  if (enl_darkened)
  {
    enl_drk = enl_geto('enl_drk');
    enl_setpos(enl_drk,0,0,1,1);
    enl_getbrwsxy();
    if (document.body.scrollHeight < enl_brwsy) enl_darkh=enl_brwsy;
    else enl_darkh = document.body.scrollHeight;
    enl_setpos(enl_drk,0,0,document.body.scrollWidth,enl_darkh);
  }
}

// get top, left, width and height of an object
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;
}

// darken background
function enl_darken()
{
  if (enl_dark)
  {
    enl_drk = enl_geto('enl_drk');
    enl_darkened=1;
    enl_visible(enl_drk);
    enl_resize();
  }
}

// end darkening background
function enl_nodark()
{
  if (enl_dark)
  {
    enl_drk = enl_geto('enl_drk');
    enl_hide(enl_drk);
    enl_setpos(enl_drk,-5000,0,1,1);
    enl_darkened=0;
  }
}

// set onmouse events for drag for an object
function enl_makedraggable(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_img.onmousedown=enl_buttonpress;
  enl_img.onmouseup=enl_enddrag;
  enl_inprogress = 0;
}

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

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

// add event on window resize
function enl_addResize(enl_resfunc) 
{ 
  var enl_oldonresize = window.onresize; 
  if (typeof window.onresize != 'function') 
  { 
    window.onresize = enl_resfunc; 
  } 
  else 
  { 
    window.onresize = function() { enl_resfunc(); if (enl_oldonresize) { setTimeout('"+enl_oldonresize+"' ,25); } }; 
  }
}

// -------- helper functions for buttons ---------

// create buttons for a pic
function enl_createbtn(enl_imgid)
{
  if (enl_buttons) {
    enl_btns = enl_mkdiv(enl_imgid+'btns');
    enl_img = enl_geto(enl_imgid);
    if (enl_closebtn) {
      enl_btncls = document.createElement("a");
      with (enl_btncls) {
        id = enl_imgid+'btncls';
        title = enl_closetext;
        style.width = '19px';
        style.height = '19px';
        style.backgroundImage = 'url('+enl_gifpath+'buttons_inact.png)';
        style.backgroundPosition = '-105px 0px';
        style.display = 'block';
        style.float = 'left';
      }
      try {enl_btncls.style.cursor = 'pointer';} catch(enl_err) {}
      enl_btncls.onclick = function() { enl_shrink(enl_imgid); };
      enl_btncls.onmouseover = function() { enl_geto(enl_imgid+'btncls').style.backgroundImage = 'url('+enl_gifpath+'buttons_act.png)'; };
      enl_btncls.onmouseout = function() { enl_geto(enl_imgid+'btncls').style.backgroundImage = 'url('+enl_gifpath+'buttons_inact.png)'; };
      enl_btns.appendChild(enl_btncls);
    }
    enl_img.btnw = enl_btns.offsetWidth;
  }
}

// show buttons
function enl_showbtn(enl_imgid)
{
  if (enl_buttons)
  {
    enl_btns = enl_geto(enl_imgid+'btns');
    enl_img = enl_geto(enl_imgid);
    enl_tmpl = parseInt(enl_img.style.left)+enl_img.neww-enl_img.btnw;
    enl_setpos(enl_btns,enl_tmpl,parseInt(enl_img.style.top));
    enl_btns.style.zIndex = enl_zcnt+1;
    enl_visible(enl_btns);
  }
}

// hide buttons
function enl_hidebtn(enl_imgid)
{
  if (enl_buttons)
  {
    enl_btns = enl_geto(enl_imgid+'btns');
    enl_hide(enl_btns);
    enl_setpos(enl_btns,1,-5000);
  }
}

// -------- helper functions for caption, border, shadow ---------

// 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_tempw = enl_img.neww + enl_shadowsize + enl_brdsize*2 + 2;
    enl_temph = enl_img.newh + enl_shadowsize + enl_brdsize*2 + 2;
    enl_setpos(enl_shdclone1, enl_img.newl - enl_brdsize - 1, enl_img.newt - enl_brdsize - 1, enl_tempw, enl_temph);
    with (enl_shdclone1.style) {
      zIndex = enl_zcnt-2;
      visibility = 'visible';
    }
    enl_tempw += 2;
    enl_temph += 2;
    enl_setpos(enl_shdclone2, enl_img.newl - enl_brdsize - 2, enl_img.newt - enl_brdsize - 2, enl_tempw, enl_temph);
    with (enl_shdclone2.style) {
      zIndex = enl_zcnt-2;
      visibility = 'visible';
    }
}

// hide shadow
function enl_delshadow(enl_imgid)
{
  enl_hide(enl_geto(enl_imgid+"shd1"));
  enl_hide(enl_geto(enl_imgid+"shd2"));
}

// draw border
function enl_mkborder(enl_imgid)
{
  if (enl_brd) 
  {
    enl_img = enl_geto(enl_imgid);
    enl_brdclone = enl_geto(enl_imgid+"brd");
    enl_tempw = enl_img.neww+enl_brdsize*2;
    enl_temph = enl_img.newh+enl_brdsize*2;
    enl_setpos(enl_brdclone,enl_img.newl - enl_brdsize, enl_img.newt - enl_brdsize);
    with (enl_brdclone.style) {
      width = enl_tempw+'px';
      height = enl_temph+'px';
      visibility = 'visible';
      zIndex = enl_zcnt-1;
    }
    if (enl_shadow) enl_dropshadow(enl_imgid);
  }
}

// remove border
function enl_delborder(enl_imgid)
{
  if (enl_brd)
  {
    enl_hide(enl_geto(enl_imgid+"brd"));
    if (enl_shadow) enl_delshadow(enl_imgid);
  }
}

// show caption
function enl_shwcap(enl_imgid)
{
  if (enl_showcap)
  {
    enl_img = enl_geto(enl_imgid);
    enl_caption = enl_geto(enl_img.orig+'caption');
    enl_fontmax = 11;
    do 
    {
      enl_fontmax = enl_fontmax - 0;
      enl_caption.style.fontSize = enl_fontmax + 'px';
      enl_capwidth = enl_caption.offsetWidth;
      enl_capheight = enl_caption.offsetHeight;
      enl_tmpl = parseInt(enl_img.style.left) + enl_img.width/2 - enl_capwidth/2;
      enl_tmpt = parseInt(enl_img.style.top)+enl_img.height-enl_capheight-0,enl_capwidth,enl_capheight;
    } while (enl_capwidth > (enl_img.width - 20));
    enl_setpos(enl_caption,enl_tmpl,enl_tmpt);
    enl_caption.style.zIndex = enl_zcnt+1;
    if (enl_caption.innerHTML != "") enl_visible(enl_caption);
  }
}

// hide caption
function enl_remvcap(enl_imgid)
{
  if (enl_showcap) {
    enl_img = enl_geto(enl_imgid);
    enl_caption = enl_geto(enl_img.orig+'caption');
    enl_hide(enl_caption);
  }
}

// ------ helper functions for drag and drop -------

// mouse moved while dragging
function enl_mousemv(enl_el)
{
  if (enl_drgmode) {
    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_brd) enl_setpos(enl_geto(enl_drgelem.id+"brd"),enl_tmpl - enl_brdsize,enl_tmpt - enl_brdsize);
    enl_shwcap(enl_drgelem.id);
    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; 
  if (enl_showcap) enl_geto(enl_drgelem.orig+'caption').style.zIndex = enl_zcnt+1;
  if (enl_buttons) enl_geto(enl_drgelem.id+'btns').style.zIndex = enl_zcnt+1;
  enl_drgelem.style.zIndex = enl_zcnt; 
  if (enl_shadow) {
    enl_hide(enl_geto(enl_drgelem.id+"shd1"));
    enl_hide(enl_geto(enl_drgelem.id+"shd2"));
  }
  if (enl_brd) enl_geto(enl_drgelem.id+"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;
}

// button released - end drag if pic was moved, enl_doglideout pic if not moved
function enl_enddrag() 
{
  enl_drgelem.newt = parseInt(enl_drgelem.style.top);
  enl_drgelem.newl = parseInt(enl_drgelem.style.left);
  if (enl_shadow) {
        enl_shdclone1 = enl_geto(enl_drgelem.id+"shd1");
        enl_shdclone2 = enl_geto(enl_drgelem.id+"shd2");
        enl_setpos(enl_shdclone1,enl_drgelem.newl-1,enl_drgelem.newt-1);
        enl_shdclone1.style.zIndex = enl_zcnt-2;
        enl_visible(enl_shdclone1);
        enl_setpos(enl_shdclone2,enl_drgelem.newl-2,enl_drgelem.newt-2);
        enl_shdclone2.style.zIndex = enl_zcnt-2;
        enl_visible(enl_shdclone2);
  }
  enl_drgid = enl_drgelem.getAttribute('id');
  enl_noevents(enl_drgelem);
  enl_drgmode = false;
  if (enl_hasmvd==true || (enl_closebtn && enl_buttons)) {
    enl_mkborder(enl_drgid);
    enl_showbtn(enl_drgid);
    enl_hasmvd=false;
    setTimeout('enl_makedraggable("'+enl_drgid+'")' ,100);
  }
  else
  {
    enl_shrink(enl_drgid);
  }
}

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

// start function, initiate pre-loading
function enlarge(enl_img)
{
  try { enl_img.blur(); } catch(enl_err) {}
  if (!enl_firstcall) enl_init();
  if (enl_firstcall == 1) return false;
  if (enl_inprogress) return false;
  enl_inprogress = 1;
  if (typeof realcopyspeed != 'undefined') copyspeed=0;  // stop slider plug if used there
  enl_prldimg[enl_prldcnt] = new Image();
  enl_fullimg = enl_img.getAttribute('longdesc');
  enl_prldimg[enl_prldcnt].src = enl_fullimg;
  enl_imgid = enl_img.getAttribute('id');
  setTimeout('enl_chckready("'+enl_imgid+'")' ,5);
}

// check if pre-loading is ready and create placeholder
function enl_chckready(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_ldr = enl_geto("enl_ldr");
  if (!enl_prldimg[enl_prldcnt].complete) {
     enl_r = enl_coord(enl_img);
     // if preloading not ready show loader gif
     enl_setpos(enl_ldr,enl_r.left+((enl_r.width/2)-16),enl_r.top+((enl_r.height/2/enl_iflowcorr)-16));
     enl_visible(enl_ldr);
     setTimeout('enl_chckready("'+enl_imgid+'")' ,100);
  } else {
     // if preloading is ready, hide loader gif, clone thumbnail, create caption div, start enl_doenlarge
     enl_zcnt+=3;
     enl_hide(enl_ldr);
     enl_ldr.style.left = '-5000px';
     enl_clone = enl_img.cloneNode(true);
     enl_setpos(enl_clone,-5000,1);
     with (enl_clone) {
       id = enl_img.id+"clone";
       style.visibility = 'hidden';
       style.position = 'absolute';
       style.borderWidth = '0px';
       style.borderStyle = 'none';
       style.outlineWidth = '0px';
       style.outlineStyle = 'none';
     }
     enl_clone.orig = enl_img.id;
     enl_fullwidth = parseInt(enl_prldimg[enl_prldcnt].width);
     enl_fullheight = parseInt(enl_prldimg[enl_prldcnt].height);
     document.body.appendChild(enl_clone);
     if (enl_showcap)
     {
       // enl_caption = document.createElement("div");
       enl_caption = enl_mkdiv(enl_imgid+'caption');
       with (enl_caption) {
         style.fontFamily = 'font-family:Arial,Helvetica,sans-serif';
         style.paddingTop = '6px';
         style.paddingLeft = '3px';
         style.paddingRight = '3px';
         style.paddingBottom = '3px';
         style.color = '#000000';
         style.backgroundImage = 'url('+enl_gifpath+'capback.png)';
         innerHTML = enl_img.alt;
       }
     }
     if (enl_brd) {
     // we'll clone brddiv to brdclone
     enl_brddiv = enl_geto("enl_brd"); 
     enl_brdclone = enl_brddiv.cloneNode(true);
     with (enl_brdclone) {
       id = enl_imgid + "clonebrd";
       style.zIndex = enl_zcnt-1;
     }
     if (enl_shadow) {
       // we'll clone brddiv to shdclone
       enl_shddiv = enl_geto("enl_shd"); 
       enl_shdclone = enl_shddiv.cloneNode(true);
       enl_shdclone.id = enl_clone.id+"shd1";
       // we'll clone brddiv to shdclone2
       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);}
    enl_createbtn(enl_clone.id);
    enl_prldcnt += 1;
    if (typeof realcopyspeed != 'undefined') copyspeed=realcopyspeed; // start slider plug if used there
    setTimeout('enl_doenlarge("'+enl_clone.id+'")' ,25);
  }
}

// initiate enlarging of image
function enl_doenlarge(enl_imgid) 
{
  enl_zcnt+=3;
  enl_getbrwsxy();
  document.onselectstart = function () { return false; };
  enl_img = enl_geto(enl_imgid);
  enl_orig = enl_geto(enl_img.orig);
  enl_noevents(enl_img);
  enl_noevents(enl_orig);
  enl_fullimg = enl_img.getAttribute('longdesc');
  enl_r = enl_coord(enl_orig);
  enl_bigimg = enl_prldimg[enl_prldcnt-1];
  enl_img.style.zIndex = enl_zcnt;
  enl_img.oldt = enl_r.top;
  enl_img.oldl = enl_r.left;
  enl_img.oldh = parseInt(enl_r.height / enl_iflowcorr);
  enl_img.oldw = enl_r.width;
  enl_img.neww = parseInt(enl_bigimg.width);  
  enl_img.newh = parseInt(enl_bigimg.height);  
  if (enl_img.neww > enl_brwsx - 80 || enl_img.newh > enl_brwsy - 70) {
    if (enl_img.neww-enl_brwsx >= enl_img.newh-enl_brwsy) {
      enl_img.newh = Math.round(enl_img.newh * (enl_brwsx-80) / enl_img.neww);
      enl_img.neww = enl_brwsx-80;
    }
    else
    {
      enl_img.neww = Math.round(enl_img.neww * (enl_brwsy-70) / enl_img.newh);
      enl_img.newh = enl_brwsy-70;
    }
  }
  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 < (40 + enl_scrollx)) enl_img.newl = 40+enl_scrollx;
    if (enl_img.newt < (35 + enl_scrolly)) enl_img.newt = 35+enl_scrolly;
    if (enl_img.newl+enl_img.neww > enl_brwsx+enl_scrollx-40) enl_img.newl = enl_brwsx+enl_scrollx-30-enl_img.neww;
    if (enl_img.newt+enl_img.newh > enl_brwsy+enl_scrolly-35) enl_img.newt = enl_brwsy+enl_scrolly-30-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 = 0;
  enl_img.thumbpic = enl_img.src;
  enl_img.style.cursor = 'move';
  if (enl_ani==1) { setTimeout('enl_dofadein("'+enl_imgid+'")' ,20); }
  else if (!enl_ani) { setTimeout('enl_donoani("'+enl_imgid+'")' ,20); }
  else { setTimeout('enl_doglidein("'+enl_imgid+'")' ,20); }
}

// 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 = 0;
    setTimeout('enl_mkborder("'+enl_imgid+'")' ,enl_speed);
    setTimeout('enl_shwcap("'+enl_imgid+'")' ,enl_speed*2);
    setTimeout('enl_darken()', enl_speed*3);
    setTimeout('enl_makedraggable("'+enl_imgid+'")' ,enl_speed*4);
    enl_showbtn(enl_imgid);
  }
  else
  {
    if (enl_img.steps == 1) {
      with (enl_img) {
        src = enl_fullimg;
        style.position = 'absolute';
        style.visibility = 'visible';
      }
      enl_hide(enl_geto(enl_img.orig));
    }
    if (enl_ani==3) enl_factor = ((-1*Math.cos(enl_img.steps/enl_maxstep-0.2))+0.98)*3.5;
    else enl_factor = enl_img.steps/enl_maxstep;
    enl_tmpw = enl_factor * (enl_img.neww-enl_img.oldw) + enl_img.oldw;
    enl_tmph = enl_factor * (enl_img.newh-enl_img.oldh) + enl_img.oldh;
    enl_tmpt = enl_img.oldt+(enl_img.newt-enl_img.oldt)*enl_factor;
    enl_tmpl = enl_img.oldl+(enl_img.newl-enl_img.oldl)*enl_factor;
    enl_setpos(enl_img,enl_tmpl,enl_tmpt,enl_tmpw,enl_tmph);
    setTimeout('enl_doglidein("'+enl_imgid+'")' ,enl_speed);
  }
}

// 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);
  with (enl_img) {
    src = enl_fullimg;
    style.position = 'absolute';
    style.visibility = 'visible';
  }
  enl_img.steps = 0;
  enl_mkborder(enl_imgid);
  enl_shwcap(enl_imgid);
  enl_showbtn(enl_imgid);
  enl_darken();
  setTimeout('enl_makedraggable("'+enl_imgid+'")' ,80);
}

// 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==1)
  {
    enl_setpos(enl_img,enl_img.newl,enl_img.newt,enl_img.neww,enl_img.newh);
    enl_setopa(enl_img,0);
    with (enl_img) {
      src = enl_fullimg;
      style.position = 'absolute';
      style.visibility = 'visible';
    }
  }
  if (enl_img.steps == enl_maxstep)
  {
    enl_setopa(enl_img,100);
    enl_img.steps = 0;
    enl_mkborder(enl_imgid);
    enl_shwcap(enl_imgid);
    enl_showbtn(enl_imgid);
    enl_darken();
    setTimeout('enl_makedraggable("'+enl_imgid+'")' ,80);
  }
  else
  {
    enl_setopa(enl_img,enl_img.steps/enl_maxstep*100);
    setTimeout('enl_dofadein("'+enl_imgid+'")' ,enl_speed);
  }
}

// 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);
  enl_orig.onclick = function() { enlarge(this); };
  document.body.removeChild(enl_img);
}

// hide pic without animation
function noaniremove(enl_imgid) 
{
  enl_hide(enl_geto(enl_imgid));
  enl_zcnt+=2;
  setTimeout('enl_enable("'+enl_imgid+'")' ,100);
}

// initiate shrinking of pic
function enl_shrink(enl_imgid)
{
    enl_img = enl_geto(enl_imgid);
    enl_img.style.cursor = 'default';
    if (enl_shadow) {
      document.body.removeChild(enl_geto(enl_imgid+"shd1"));
      document.body.removeChild(enl_geto(enl_imgid+"shd2"));
    }
    if (enl_brd) document.body.removeChild(enl_geto(enl_imgid+"brd"));
    if (enl_showcap) document.body.removeChild(enl_geto(enl_img.orig+"caption"));
    if (enl_buttons) document.body.removeChild(enl_geto(enl_imgid+"btns"));
    if (enl_dark) enl_nodark();
    if (!enl_ani) noaniremove(enl_imgid); 
    else if (enl_ani==1) enl_dofadeout(enl_imgid);
    else enl_doglideout(enl_imgid); 
} 

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

// glide out pic
function enl_doglideout(enl_imgid)
{
  enl_img = enl_geto(enl_imgid);
  enl_mvcnt = 0;
  enl_img.steps++;
  
  if (enl_img.steps == enl_maxstep)
  {
    enl_img.style.visibility = 'hidden';
    enl_zcnt+=2;
    enl_img.steps = 0;
    enl_visible(enl_geto(enl_img.orig));
    setTimeout('enl_enable("'+enl_imgid+'")' ,100);
  }
  else
  {
    if (enl_ani==3) enl_factor = ((-1*Math.cos((enl_maxstep-enl_img.steps)/enl_maxstep-0.2))+0.98)*3.5;
    else enl_factor = (enl_maxstep-enl_img.steps)/enl_maxstep;
    enl_tmpw = enl_factor * (enl_img.neww-enl_img.oldw) + enl_img.oldw;
    enl_tmph = enl_factor * (enl_img.newh-enl_img.oldh) + enl_img.oldh;
    enl_tmpt = enl_img.oldt+(enl_img.newt-enl_img.oldt)*enl_factor;
    enl_tmpl = enl_img.oldl+(enl_img.newl-enl_img.oldl)*enl_factor;
    enl_setpos(enl_img,enl_tmpl,enl_tmpt,enl_tmpw,enl_tmph);
    setTimeout('enl_doglideout("'+enl_imgid+'")' ,enl_speed);
    }
}

enl_addLoad(enl_init);
if (enl_dark) enl_addResize(enl_resize);