var maxW,maxH,fromX,fromY,toX,toY,adjX,adjY,zBox,zStep=0,zLink,zNew;

function zoomBox(evt,zlink,maxw,maxh,tox,toy) {

	if (arguments.length > 2) zNew=1;

	scrollH = (window.pageYOffset!=null) ? window.pageYOffset : document.body.scrollTop;

	maxW = maxw ? maxw : window.innerWidth  ? innerWidth  : document.body.clientWidth;
	maxH = maxh ? maxh : window.innerHeight ? innerHeight : document.body.clientHeight;

	toX = tox ? tox : 0;
	toY = (toy ? toy : 0 ) + scrollH;

	fromX = evt.pageX ? evt.pageX  : evt.clientX;
	fromY = (evt.pageY ? evt.pageY : evt.clientY) + (document.all ? scrollH : 0);

	adjX = toX + evt.screenX - fromX;
	adjY = toY + evt.screenY - fromY;

	if (document.createElement && document.body.appendChild && !zBox) {

		zBox=document.createElement("div");
		zBox.style.position="absolute";
		document.body.appendChild(zBox);

	} else if (document.all && !zBox) {

		document.all[document.all.length-1].outerHTML+='<div id="zBoxDiv" style="position:absolute"></div>';
		zBox=document.all.zBoxDiv;

	} else if (document.layers && !zBox) {

		zBox=new Layer(maxW);
		zBox.style=zBox;

	}

	zLink=zlink;
	doZoom();

}

function doZoom() {

	zStep+=1;
	zPct=(10-zStep)/10

	if (document.layers) {
			zBox.moveTo(toX+zPct*(fromX-toX),toY+zPct*(fromY-toY));
			zBox.document.open();
			zBox.document.write("<table width='"+maxW*(1-zPct)+"' height="+maxH*(1-zPct)+" border=2 cellspacing=0><tr><td></td></tr></table>");
			zBox.document.close();
	} else {
			zBox.style.border="2px solid #999999";
			zBox.style.left=toX+zPct*(fromX-toX);
			zBox.style.top=toY+zPct*(fromY-toY);
			zBox.style.width=maxW*(1-zPct);
			zBox.style.height=maxH*(1-zPct);
	}

	zBox.style.visibility="visible";

	if (zStep < 10) setTimeout("doZoom("+fromX+","+fromY+","+toX+","+toY+")",30);
	else {
		zBox.style.visibility='hidden';
		zStep=0;    
		if (zLink && !zNew) {
		  location.href=zLink.href;
		  w.focus();
		  
		}
		else if (zLink && zNew) {
			var w=window.open(zLink.href,'POP','width='+maxW+',height='+maxH+',left='+adjX+',top='+adjY+',toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=0');
			w.focus()
			zNew=null;
		}
	}

}