var ToolTipId = 'tooltipcontainer'; // if you change this, modify CSS
var ttOffsetX = 15;  // You need an offset, because otherwise in Firefox cons-
var ttOffsetY = 15;  // tantly mouseover and mouseout evenst will be triggered
var ttElm;
var ttVisible = false;
var ttBackupMouseMove; // Backup for main document's onmousemove event


function createNewToolTip(newid) {
	if(document.createElement){ 
		var el = document.createElement('div'); 
		el.id = newid;     
		with(el.style) { 
			display = 'none';
			position = 'absolute';
		} 
		el.innerHTML = '&nbsp;'; 
		document.body.appendChild(el); 
	} 
}


function followMouseToolTip(ev) {
	if (ttVisible) {
		var pos;
		if (!ev) var ev = window.event;
		if (ev.pageX || ev.pageY) 	{
			pos = {x:ev.pageX, y:ev.pageY};
		}
		else if (ev.clientX || ev.clientY) 	{
			pos = {
				x:ev.clientX + document.body.scrollLeft + document.documentElement.scrollLeft,
				y:ev.clientY + document.body.scrollTop  + document.documentElement.scrollTop
				};
		} else {
			pos = {x:100, y:100};
		}
		ttElm.style.top = (pos.y + ttOffsetY) + 'px';
		ttElm.style.left = (pos.x + ttOffsetX) + 'px';
	}
}


function showToolTip(text, title){
	if (!ttVisible) {
		ttBackupMouseMove = document.onmousemove
		if (!document.getElementById(ToolTipId)) createNewToolTip(ToolTipId);
		ttElm = document.getElementById(ToolTipId);
		var tip = '<div>';
		if (typeof title != 'undefined' && title != '') {
			tip += '<h1>' + title + '</h1>';
		}
		tip += '<span>' + text + '</span></div>';
		ttElm.innerHTML = tip;
		ttElm.style.display = 'block';
		ttElm.style.left = -1000;
		ttVisible = true;
		document.onmousemove = followMouseToolTip;
	}
}


function hideToolTip() {
    document.getElementById(ToolTipId).style.display = 'none';
	ttVisible = false;
    document.onmousemove = ttBackupMouseMove;
	ttBackupMouseMove = null;
}

