// JavaScript Document

function magnify(e) {
	var x1;
	var x2;
	var y1;
	var y2;
	
	var left;
	var top;

	// Mouse pos
	var mousepos=mousePos(e);
	var x = mousepos[0];
	var y = mousepos[1];
	
	//Scroll pos
	var dx = window.document.body.scrollLeft;
	var dy = window.document.body.scrollTop;

	// Magnifydiv
	var magnifyDiv = document.getElementById('magnifyDiv');
	var magnifyDivX = findPos(magnifyDiv)[0];
	var magnifyDivY = findPos(magnifyDiv)[1];

	// Magnify image
	var magnify = document.getElementById('magnify');

	// Calculate clip
	x1 = -magnifyWidthAndHeight + (x + dx - magnifyDivX) * zoomFactor; //left
	y1 = -magnifyWidthAndHeight + (y + dy - magnifyDivY) * zoomFactor; //top
	x2 = +magnifyWidthAndHeight + (x + dx - magnifyDivX) * zoomFactor; //right
	y2 = +magnifyWidthAndHeight + (y + dy - magnifyDivY) * zoomFactor; //bottom

	// Calculate image pos
	left = (x + dx - magnifyDivX) * (1 - zoomFactor);
	top  = (y + dy - magnifyDivY) * (1 - zoomFactor);

	// Clip and move magnify
	magnify.style.clip = "rect(" + y1 + "px," + x2 + "px," + y2 + "px," + x1 + "px)";
	magnify.style.left = left  + 'px';
	magnify.style.top = top  + 'px';
	magnify.style.visibility = "visible";
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft + window.document.body.scrollLeft, curtop + window.document.body.scrollTop];
	return [curleft, curtop];
}

function mousePos(e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft	- document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop - document.documentElement.scrollTop;
	}
	return [posx, posy];
} // posx and posy contain the mouse coordinates



