/******************************************************************************/
/* Site web nepascroquer.com
/*
/* Graphismes: Guillaume Ruan (ruan_guillaume@yahoo.com)
/* Code:       Loïc Le Page   (loic.le.page@gmail.com)
/*
/* File: /script/zoom.js
/* Version: 1.0
/*
/******************************************************************************/

////////////////////////////////////////////////////////////////////////////////
// Zoom default parameters
////////////////////////////////////////////////////////////////////////////////

var g_zoomFactor = 2;
var g_zoomOffsetX = 10;
var g_zoomOffsetY = 10;

////////////////////////////////////////////////////////////////////////////////
// Mouse events callback
////////////////////////////////////////////////////////////////////////////////

function moveZoomDiv(event)
{
	try
	{
		event = event || window.event;
		var scrollX = window.scrollX || document.body.scrollLeft || 0;
		var scrollY = window.scrollY || document.body.scrollTop || 0;

		var width = g_zoomFactor * this.width;
		var height = g_zoomFactor * this.height;

		var left = event.clientX + scrollX;
		if (g_zoomOffsetX > 0)
			left += g_zoomOffsetX;
		else
			left += g_zoomOffsetX - width;

		var top = event.clientY + scrollY;
		if (g_zoomOffsetY > 0)
			top += g_zoomOffsetY;
		else
			top += g_zoomOffsetY - height;

		var zd = document.getElementById("zoomDiv");
		zd.style.left = left + "px";
		zd.style.top = top + "px";

		if (zd.style.display !== "block")
		{
			zd.firstChild.src = this.src;
			zd.firstChild.style.width = width + "px";
			zd.firstChild.style.height = height + "px";
			zd.style.display = "block";
		}
	}
	catch (e) {}
}

////////////////////////////////////////////////////////////////////////////////
// Zoom system init
////////////////////////////////////////////////////////////////////////////////

function initZoomDiv(factor, xOffset, yOffset)
{
	try
	{
		g_zoomFactor = factor || g_zoomFactor;
		g_zoomOffsetX = xOffset || g_zoomOffsetX;
		g_zoomOffsetY = yOffset || g_zoomOffsetY;

		var zd = document.getElementById("zoomDiv");
		if (!zd)
		{
			zd = document.createElement("DIV");
			zd.id = "zoomDiv";
			zd.appendChild(document.createElement("IMG"));
			document.body.appendChild(zd);
		}
		zd.style.position = "absolute";
		zd.style.display = "none";

		var imgArray = document.body.getElementsByTagName("IMG");
		for (var i = 0; i < imgArray.length; ++i)
		{
			if (imgArray[i].name === "zoom")
			{
				imgArray[i].onmouseover = moveZoomDiv;
				imgArray[i].onmousemove = moveZoomDiv;
				imgArray[i].onmouseout = function()
				{
					zd.style.display = "none";
				};
			}
		}
	}
	catch (e) {}
}

