// Determine browser.

var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 &&
                parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var isMinIE4 = (document.all) ? 1 : 0;
var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5.") >= 0) ? 1 : 0;

// These variables will hold the current mouse pointer position.

var mouseX = 0;
var mouseY = 0;

// Set up event capturing.

if (isMinNS4)
  document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = getMousePosition;

function getMousePosition(e) {

  // Save mouse pointer position.

  if (isMinNS4) {
    mouseX = e.pageX;
    mouseY = e.pageY;
  }
  if (isMinIE4) {
    mouseX = event.clientX + document.body.scrollLeft;
    mouseY = event.clientY + document.body.scrollTop;
  }
 //window.status = mouseX + "," + mouseY;
  return true;

}

//-----------------------------------------------------------------------------
// Layer utilities.
//-----------------------------------------------------------------------------

function getLayer(name) {

  if (isMinNS4)
    return findLayer(name, document);
  if (isMinIE4)
    return eval('document.all.' + name);
  return null;
}

function findLayer(name, doc) {

  var i, layer;

  for (i = 0; i < doc.layers.length; i++) {
    layer = doc.layers[i];
    if (layer.name == name)
      return layer;
    if (layer.document.layers.length > 0)
      if ((layer = findLayer(name, layer.document)) != null)
        return layer;
  }
  return null;
}

//-----------------------------------------------------------------------------
// Image utilities.
//-----------------------------------------------------------------------------

function getImage(name) {

  if (isMinNS4) {
    return findImage(name, document);
  }
  if (isMinIE4)
    return eval('document.all.' + name);
  return null;
}

function findImage(name, doc) {

  var i, img;

  for (i = 0; i < doc.images.length; i++)
    if (doc.images[i].name == name)
      return doc.images[i];
  for (i = 0; i < doc.layers.length; i++)
    if ((img = findImage(name, doc.layers[i].document)) != null) {
      img.container = doc.layers[i];
      return img;
    }
  return null;
}

function getImagePageLeft(img) {

  var x, obj;

  if (isMinNS4) {
    if (img.container != null)
      return img.container.pageX + img.x;
    else
      return img.x;
  }
  if (isMinIE4) {
    x = 0;
    obj = img;
    while (obj.offsetParent != null) {
      x += obj.offsetLeft;
      obj = obj.offsetParent;
    }
    x += obj.offsetLeft;
    return x;
  }
  return -1;
}

function getImagePageTop(img) {

  var y, obj;

  if (isMinNS4) {
    if (img.container != null)
      return img.container.pageY + img.y;
    else
      return img.y;
  }
  if (isMinIE4) {
    y = 0;
    obj = img;
    while (obj.offsetParent != null) {
      y += obj.offsetTop;
      obj = obj.offsetParent;
    }
    y += obj.offsetTop;
    return y;
  }
  return -1;
}

//-----------------------------------------------------------------------------
// Link utilities.
//-----------------------------------------------------------------------------

function getLink(name) {

  if (isMinNS4) {
    return findLink(name, document);
  }
  if (isMinIE4)
    return eval('document.all.' + name);
  return null;
}

function findLink(name, doc) {

  var i, lin;

  for (i = 0; i < doc.link.length; i++)
    if (doc.links[i].name == name)
      return doc.links[i];
  for (i = 0; i < doc.layers.length; i++)
    if ((lin = findLink(name, doc.layers[i].document)) != null) {
      lin.container = doc.layers[i];
      return lin;
    }
  return null;
 }
 //------------------------------------
//Look if there is a link with a certain name ('link"+img) 
//return # if no link exhist or link.href
function makeLink(img)
{
var lin="link"+img;
var linkText
linkFound=getLink(lin);
linkText=linkFound?linkFound.href:"#"
return linkText;
}
//---------------------------------------

function init(){

	oMag=new lib_obj('mag') //Making oCont object
	oClick=new lib_obj('mainClick')
	
}

onload=init;

//------------------------------------------------

//put a transparent layer on the image to magnify

function setClickMag (imgToMag,lensDiam,magFactor,largeImg)
{
if (oMag && oClick)
	{
	setClick(imgToMag,lensDiam,magFactor,largeImg);
	setMag(imgToMag,lensDiam,magFactor,largeImg);
	//window.alert(" an object")
	}
else
	{
	//window.alert(" Not an object")
	
	oMag=new lib_obj('mag'); //Making oCont object
	oClick=new lib_obj('mainClick');
	setClick(imgToMag,lensDiam,magFactor,largeImg);
	setMag(imgToMag,lensDiam,magFactor,largeImg);
	}


}

function setClick(imgToMag,lensDiam,magFactor,largeImg)
{
	img = getImage(imgToMag);
	imgPosX = getImagePageLeft(img) + parseInt(img.border, 10);
	imgPosY = getImagePageTop(img) + parseInt(img.border, 10);
	var imgW=img.width;
	var imgH=img.height;
	if (oClick)
		{
		oClick.moveIt(imgPosX,imgPosY);
		oClick.clipTo(0,imgW,imgH,0);
		oClick.showIt()
		var contHTML;
		contHTML="<A href='" + makeLink(imgToMag) + "' onfocus=if(this.blur)this.blur() >"	+ "<IMG border=0 height=" + imgH + " onmousemove=\"MagLens(oMag,'" 
		+imgToMag+"',"+lensDiam +", "+ magFactor +")\" onmouseout=\"oMag.hideIt()\" onmouseover    =\"oMag.showIt()\" src=\"transparent.gif\" style=\"HEIGHT: " + imgH +"px ; WIDTH: " + imgW +"px\" ></A>";
		oClick.writeIt(contHTML);
		}
	//window.alert(imgW+';'+imgH+ ';'+ imgToMag+ ';'+lensDiam+ ';'+magFactor+ ';'+largeImg);
}
//--------------------------------------------------
//set up the mag layer containing the magnified image to clip

function setMag(imgToMag,lensDiam,magFactor,largeImg)
{
img = getImage(imgToMag);
	var imgW=img.width;
	var imgH=img.height;
	var lensRadius=lensDiam/2;
	if (oMag)
	{
	oMag.moveIt(0,0);
	oMag.clipTo(0,imgW*magFactor+lensDiam,imgH*magFactor+lensDiam,0);
	oMag.bg="#000000"
	oMag.hideIt()
	
	var imgL = largeImg ||img.src;
	var contHTML;
	contHTML="<A href=# onfocus=if(this.blur)this.blur() >"	+ "<IMG align=left border=0 height="+ imgH*magFactor +"  hspace= " + lensRadius    +" vspace=" + lensRadius +" lowsrc= " +img.src+ "  src='" + imgL + "' width="+ imgW*magFactor+ "></A>";
	oMag.writeIt(contHTML);
	}
	//window.alert(imgW+';'+imgH+ ';'+ imgToMag+ ';'+lensDiam+ ';'+magFactor+ ';'+largeImg+ ';'+imgL);
//	//window.status=contHTML;
	
}
function MagLens(layerToMag,imgToMag,lDiam,magFac)
{
var magFactor
var imgPosX
var imgPosY
var magFactor
var lensDiam
magFactor=magFac||2
lensDiam=lDiam||100
var lensRadius=lensDiam/2
img = getImage(imgToMag)
imgPosX = getImagePageLeft(img) + parseInt(img.border, 10);
imgPosY = getImagePageTop(img) + parseInt(img.border, 10);
var imgW=img.width
var imgH=img.height
layerToMag.clipTo((mouseY-imgPosY)*magFactor,(mouseX-imgPosX)*magFactor+lensDiam,(mouseY-imgPosY)*magFactor+lensDiam,(mouseX-imgPosX)*magFactor);
layerToMag.moveIt(mouseX-lensRadius-(mouseX-imgPosX)*magFactor,mouseY-lensRadius-(mouseY-imgPosY)*magFactor);
//window.status = mouseX + "," + mouseY + "," + magFactor;

}
