/*
  Zooming on mouseover for Perlen-Store.com
  Copyright: Ludovic Coincenot, 2007
*/


if (document.getElementById || document.all)
  document.write('<div id="zoomimageid"></div>')

function getzoomobj() {
  if (document.getElementById)
    return document.getElementById("zoomimageid");
  else if (document.all)
    return document.all.zoomimageid;
}

function truebody() {
  return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function hidezoom() {
  getzoomobj().style.visibility="hidden";
  document.onmousemove="";
}

function followmouse(e) {
  var xcoord=20;
  var ycoord=20;
  var absX = 0;
  var absY = 0;
  var padding = 10;
  var zoom = getzoomobj();
  if (zoom == null) return;
  imageW=new Number(zoom.getAttribute("imgWidth"));
  imageH=new Number(zoom.getAttribute("imgHeight"));
  var totW = imageW + 3 * padding;
  var totH = imageH + 5 * padding;


  if (typeof e != "undefined") 
  {
    absX = e.pageX;
    absY = e.pageY;
  }
  else if (typeof window.event !="undefined") 
  {
    absX = truebody().scrollLeft + event.clientX;
    absY = truebody().scrollTop + event.clientY; 
    if (zoom.scrollHeight > imageH) 
    {
      totH = zoom.scrollHeight;
    } 
    if (zoom.scrollWidth > imageW) 
    {
      totW = zoom.scrollWidth;
    } 
  
  }

  var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15;
  var clientheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(truebody().scrollHeight, window.innerHeight);

  xcoord+=absX;
  ycoord+=absY;

  if (docwidth - absX < totW)
  {
    xcoord = absX - totW - 20;
  }

  if (clientheight + truebody().scrollTop - ycoord < totH) 
  {
    ycoord = truebody().scrollTop + clientheight - totH;
  }

  imagename = zoom.getAttribute("imagename");
  title     = zoom.getAttribute("imgtitle");

  if (ycoord < 0) { ycoord = ycoord*-1; }
  zoom.style.left=xcoord+"px";
  zoom.style.top=ycoord+"px";

  if (zoom.style.visibility != "visible") 
  {
      newHTML = '<div><h1>' + title +  '</h1>';
      newHTML = newHTML + '<img src="' + imagename + '" width=' + imageW + ' height=' + imageH +'></div>';
      zoom.innerHTML = newHTML;
      zoom.style.visibility="visible";
  }
}

function showzoom(imagename,title,imagewidth,imageheight)
{
  zoom = getzoomobj();
  padding = 10;
  document.onmousemove=followmouse;

  zoom.style.width=(imagewidth+(2*padding))+"px";
  zoom.style.height=(imageheight+(3*padding))+"px";
  
  zoom.setAttribute("imagename", imagename);
  zoom.setAttribute("imgtitle", title); 
  zoom.setAttribute("imgWidth", imagewidth);
  zoom.setAttribute("imgHeight", imageheight);
}



