var timeout = 500;
var info = null;
var infoHider = null;
var isNav = (navigator.appName.indexOf("Netscape")!=-1);

function handlerMM(e){
	x = (isNav) ? e.pageX : event.clientX;
	y = (isNav) ? e.pageY : event.clientY;
	
	if( !isNav ) {
		if( document.body.scrollLeft > 0 ) x += document.body.scrollLeft;
		if( document.documentElement.scrollLeft > 0 ) x += document.documentElement.scrollLeft;

		if( document.body.scrollTop > 0 ) y += document.body.scrollTop;
		if( document.documentElement.scrollTop > 0 ) y += document.documentElement.scrollTop;
	}
}
if (isNav) {
	//document.captureEvents(Event.MOUSEMOVE); //deprecated
	window.addEventListener("click", handlerMM, false);
}
document.onmousemove = handlerMM;

function showInfo(linkObject,xOffset,yOffset){
	//xOffset=0,yOffset=170
	if(xOffset==null) var xOffset=0
	if(yOffset==null) var yOffset=170
	//var yOffset=170
	var infoId = linkObject.id.replace(/link_/,"info_")

	if( info ) {
		clearHideInterval();
		if( info.id != infoId ) hideLayer();
		else return;
	}

	info = getObject(infoId);
	if( !info ) { return; }
	
	if( (y-yOffset) < 0 ) y = yOffset;

	info.style.left= (x+xOffset) + "px";
	info.style.top= (y-yOffset) + "px";
	info.style.display = '';
}

function hideInfo() {
	if( info && !infoHider) infoHider = window.setInterval(hideLayer, timeout);
}

function hideLayer() {
	if( info ) {
		info.style.display = 'none';
		info = null;
		clearHideInterval();
	}
}

function clearHideInterval() {
	if( infoHider ) {
		window.clearInterval(infoHider);
		infoHider = null;
	}
}

function getObject(objectName) {
	myObject = null;
	if (document.all || document.getElementById)
		myObject = document.getElementById? document.getElementById(objectName) : eval("document.all."+objectName);
	else if (document.layers)
		myObject = eval("document."+objectName);

	return myObject;
}
