var iStZm_Zoomed=0;

var sStZm_ImgWaitURL = "/scripts/stzm_preload.png";

var sStZm_ImgURL="";
var sStZm_LastLoadedImgURL="none";

var vStZm_ZmDiv, vStZm_ZmDivText, vStZm_ZmDivNewA, vStZm_ZmDivNewAText, vStZm_ZmDivImgWait, vStZm_ZmDivImg, vStZm_ImgURLNode;

iStZm_ZoomedDivMaxHorMargin=100;
iStZm_ZoomedDivMaxVerMargin=50;

// To unzoom when scrolled
var iStZm_OriginalScrollTop;
var iStZm_ScrollInterval;

var vStZm_PreloadWait = new Image;
vStZm_PreloadWait.src = sStZm_ImgWaitURL;

var vStZm_PreloadImg = new Image();
vStZm_PreloadImg.onload = function()
  {
   vStZm_ZmDivImg.src = vStZm_PreloadImg.src;
  }

var iStZm_Stylized=0;

window.onload = fnStZm_Initialize;

function fnStZm_Initialize()
{
if( !document.getElementById )
  { return; }

vStZm_BkgrDiv = document.createElement("div");
vStZm_BkgrDiv.className="ZoomedBkgr";
//vBkgrDiv.style.left = 2; 
//vBkgrDiv.style.top = 2;
vStZm_BkgrDiv.style.width = document.body.clientWidth;
vStZm_BkgrDiv.style.height = document.body.clientHeight;
vStZm_BkgrDiv.style.display='none';
vStZm_BkgrDiv.onclick = fnStZm_Unzoom;
document.body.appendChild( vStZm_BkgrDiv );

vStZm_ZmDiv = document.createElement("div");
vStZm_ZmDiv.className = 'Zoomed';
vStZm_ZmDiv.onclick = fnStZm_Unzoom;
vStZm_ZmDiv.style.top = document.body.scrollTop+50;
vStZm_ZmDiv.style.left = 100;
vStZm_ZmDiv.style.display='none';
vStZm_ZmDiv.setAttribute( "align", "center" );
document.body.appendChild( vStZm_ZmDiv );

vStZm_ZmDivWaitImg = document.createElement("img"); //document.createElement("img");
vStZm_ZmDivWaitImg.style.display='none';
vStZm_ZmDiv.appendChild( vStZm_ZmDivWaitImg );

vStZm_ZmDivImg = document.createElement("img"); //document.createElement("img");
vStZm_ZmDivImg.style.display='none';
vStZm_ZmDiv.appendChild( vStZm_ZmDivImg );

vStZm_ZmDivText = document.createTextNode( "Untitled" );
vStZm_ZmDiv.appendChild( vStZm_ZmDivText );

vStZm_ZmDivNewA = document.createElement( "a" );
vStZm_ZmDivNewA.setAttribute( "target", "_blank" );
vStZm_ZmDivNewAText = document.createTextNode( "[ + ]" );
vStZm_ZmDivNewA.appendChild( vStZm_ZmDivNewAText );
vStZm_ZmDiv.appendChild( vStZm_ZmDivNewA );

vStZm_ZmDivWaitImg.onload = fnStZm_WaitOnLoad;

vStZm_ZmDivImg.onload = fnStZm_ImgOnLoad;

var aObjs = new Array();
aObjs = document.getElementsByTagName("a");
var vObj;
for( i = 0 ; i < aObjs.length ; i++ )
  {
   vObj = aObjs[i];
   if( vObj.className != 'StylizeZoom' )
     { continue; }
   vObj.onclick = fnStZm_Zoom;
  }

iStZm_Stylized=1;
}

function fnStZm_WaitOnLoad()
{
if( iStZm_Zoomed == 0 )
  { return; }
if( sStZm_ImgURL == sStZm_LastLoadedImgURL )
  { return; }
vStZm_ZmDiv.style.display='block';
vStZm_ZmDivImg.style.display='none';
vStZm_ZmDivWaitImg.style.display='block';
fnStZm_PositionZoomedDiv( 1 );
}



function fnStZm_ImgOnLoad()
{
if( iStZm_Zoomed == 0 )
  { return; }
sStZm_LastLoadedImgURL = sStZm_ImgURL;
vStZm_ZmDiv.style.display='block';
vStZm_ZmDivWaitImg.style.display='none';
vStZm_ZmDivImg.style.display='block';
fnStZm_PositionZoomedDiv( 0 );
}


function fnStZm_Zoom()
{
var vNode;

if( iStZm_Zoomed == 1 || iStZm_Stylized == 0 )
  { return; }
iStZm_Zoomed=1;

vStZm_ImgURLNode = this.getAttributeNode("href"); // Getting the URL of the image to zoom
sStZm_ImgURL = vStZm_ImgURLNode.value;
vStZm_ImgURLNode.value = 'javascript:void(0);'; // Changing the target to prevent opening it's URL
var sTitle = new String("");
sTitle = this.title;
if( !(sTitle.length > 0) )
  {
   if( vNode = this.firstChild.getAttributeNode("alt") )
     {  sTitle = vNode.value; }
  }
//sTitle = this.firstChild.getAttributeNode("alt").value;
if( sTitle.length > 0 )
  { sTitle += "  "; }

vStZm_ZmDivText.nodeValue = sTitle;
vStZm_ZmDivNewA.setAttribute( "href", sStZm_ImgURL );

vStZm_BkgrDiv.style.left=0;
vStZm_BkgrDiv.style.top=document.body.scrollTop;
vStZm_BkgrDiv.style.display='block';

vStZm_PreloadImg.src = sStZm_ImgURL;
if( sStZm_ImgURL == sStZm_LastLoadedImgURL )
  { fnStZm_ImgOnLoad(); }
else
  {
   vStZm_ZmDivWaitImg.src = sStZm_ImgWaitURL; // setAttribute( "src", sStZm_ImgWaitURL );
  } 

// To unzoom when scrolled...
iStZm_OriginalScrollTop = document.body.scrollTop;
iStZm_ScrollInterval = setInterval( fnStZm_ScrollInterval, 100 );
}


function fnStZm_Unzoom()
{
// alert( " imagewidth=" + vZmDivImg.width + " imageheight=" + vZmDivImg.height );
vStZm_ZmDiv.style.display='none';
vStZm_BkgrDiv.style.display='none';

vStZm_ImgURLNode.value = sStZm_ImgURL;

iStZm_Zoomed=0;
}


function fnStZm_PositionZoomedDiv( iWait )
{
var iIWidth;
var iIHeight;

var iCWidth = document.body.clientWidth;
var iCHeight = document.body.clientHeight;
if( iWait == 1 )
  { 
   iIWidth = vStZm_PreloadWait.width;
   iIHeight = vStZm_PreloadWait.height;
  }
else
  { 
   iIWidth = vStZm_PreloadImg.width;
   iIHeight = vStZm_PreloadImg.height;
  }

//alert( "cwidth=" + iCWidth + " cheight=" + iCHeight + " imagewidth=" + iIWidth + " imageheight=" + iIHeight );

var fCRatio;
var fIRatio;
if( iCWidth - iStZm_ZoomedDivMaxHorMargin*2 < iIWidth || iCHeight - iStZm_ZoomedDivMaxVerMargin*2 < iIHeight )
  {
   fCRatio = iCWidth/iCHeight;
   fIRatio = iIWidth/iIHeight;
   if( fIRatio > fCRatio ) // The image is less fittable in width
     { iIWidth = iCWidth - iStZm_ZoomedDivMaxHorMargin*2;
       iIHeight = iIWidth / fIRatio; }
   else
     { iIHeight = iCHeight - iStZm_ZoomedDivMaxVerMargin*2;
       iIWidth = iIHeight * fIRatio; }
  }
if( !(iWait == 1) )
  { vStZm_ZmDivImg.width = iIWidth;
    vStZm_ZmDivImg.height = iIHeight; }

vStZm_ZmDiv.style.left = (iCWidth - iIWidth)/2;
vStZm_ZmDiv.style.top = document.body.scrollTop + (iCHeight - iIHeight)/2;
//vZmDiv.style.width = iIWidth+10;
//vZmDiv.style.height = iIHeight+10;
}


function fnStZm_ScrollInterval()
{
if( iStZm_OriginalScrollTop != document.body.scrollTop )
  { clearInterval(iStZm_ScrollInterval);
    fnStZm_Unzoom(); }
}
