var tooltip=null;
var timeout=null;
var mouseX=null;
var mouseY=null;
var tooltipTimeouts=new Array();

function tooltip_show(id) {
	tooltip_clear_timeouts();
	tooltip=document.getElementById(id);
	timeout=setTimeout('tooltip.style.display = "block";tooltip_set_position(0)',150);
}

function tooltip_hide() {
	clearTimeout(timeout);
	tooltip.style.display = "none";
	tooltip=null;
}

function tooltip_set_position(latency) {
	if(tooltip) {
		var x=mouseX-tooltip.offsetWidth/2;
		var y=mouseY+20;
		var viewportWidth=window.innerWidth?window.innerWidth:document.body.clientWidth;
		var viewportHeight=window.innerHeight?window.innerHeight:document.body.clientHeight;
		var xOffset=window.pageXOffset?window.pageXOffset:document.body.scrollLeft;
		var yOffset=window.pageYOffset?window.pageYOffset:document.body.scrollTop;
		//document.getElementById('debug').innerHTML+="yOffset="+yOffset+"<br>";
	//	document.getElementById('debug').innerHTML+="window.pageYOffset="+window.pageYOffset+"<br>";
	//	document.getElementById('debug').innerHTML+="document.body.scrollTop="+document.body.scrollTop+"<br>";
//		document.getElementById('debug').innerHTML+="y="+y+"<br>"+"tooltip.offsetHeight="+tooltip.offsetHeight+"<br>";
//		document.getElementById('debug').innerHTML+="viewportHeight="+viewportHeight+"<br>"+"yOffset="+yOffset+"<br>";
		if(y + tooltip.offsetHeight + 20>viewportHeight + yOffset) {
			y=yOffset + viewportHeight - tooltip.offsetHeight - 20;
			if(mouseX - tooltip.offsetWidth>20)  {
				x=mouseX-tooltip.offsetWidth - 20;
			} else {
				x=mouseX + 20;
			}
		} else if(x + tooltip.offsetWidth + 20>viewportWidth + xOffset) {
			x=xOffset + viewportWidth - tooltip.offsetWidth - 20;
		}
		if(x<3) x=3;
		if(y<3) y=3;
		if(latency>0&&tooltip.style.display=='block') {
			tooltipTimeouts.push(setTimeout('if(tooltip) tooltip.style.left="'+x+'px"',latency));
			tooltipTimeouts.push(setTimeout('if(tooltip) tooltip.style.top="'+y+'px"',latency));
		} else {
			tooltip.style.left=x+'px';
			tooltip.style.top=y+'px';
		}
	}
}

function mouse_offsets(e) {
	currentEvent=window.event?window.event:e;
	var x=currentEvent.clientX;
	var y=currentEvent.clientY;
	if(window.pageXOffset||window.pageYOffset) {
		x+=window.pageXOffset;
		y+=window.pageYOffset;
	} else if(document.documentElement.scrollLeft||document.documentElement.scrollTop){
		x+=document.documentElement.scrollLeft;
		y+=document.documentElement.scrollTop;
	} else if(document.body.scrollLeft||document.body.scrollTop){
		x+=document.body.scrollLeft;
		y+=document.body.scrollTop;
	}
	mouseX=x;
	mouseY=y;
	tooltip_set_position(150);
}

function tooltip_clear_timeouts() {
	for(i=0;i<tooltipTimeouts.length;i++) {
		clearTimeout(tooltipTimeouts[i])
	}
	tooltipTimeouts=new Array();
}

document.onmousemove=mouse_offsets;
//-----------------------------------------------------------------------------------------------

//document.onmousemove = updateWMTT;

function updateWMTT(e) {
	alert('updateWMTT()::deprecated');
	x = (document.all) ? window.event.x + document.body.scrollLeft : e.pageX;
	y = (document.all) ? window.event.y + document.body.scrollTop : e.pageY;
	if (wmtt != null) {
		//wmtt.style.left = (x + 20) + "px";
		//wmtt.style.top = (y + 20) + "px";
	}
}

function showWMTT(id) {
	alert('showWMTT()::deprecated');
	wmtt = document.getElementById(id);
	timeout=setTimeout('wmtt.style.display = "block"',250);
}

function hideWMTT() {
	alert('hideWMTT()::deprecated');
	clearTimeout(timeout);
	wmtt.style.display = "none";
}

