if (typeof document.attachEvent!='undefined') {
	document.attachEvent('onmousemove',moveTooltip);
} else {
	document.addEventListener('mousemove',function(event){moveTooltip(event)},false);
}

var tooltip_obj;
var tooltip_enabled;
var tooltip_minwidth;
var tooltip_title;
var x_offset = 12;  // distance from cursor - x
var y_offset = 14;  // distance from cursor - y
var minwidth = 70;  // minimum width of tooltip

function createTooltip() {
	tooltip_obj = document.createElement('div');
		tooltip_obj.style.position = 'absolute';
		tooltip_obj.style.left = '-9999px';
		tooltip_obj.style.zIndex = '10';
		tooltip_obj.style.maxWidth = '30em';
		tooltip_obj.style.fontFamily = 'Arial';
		tooltip_obj.style.fontSize = '12px';
		tooltip_obj.style.color = '#660000';
		tooltip_obj.style.backgroundColor = '#FFFFE4';
		tooltip_obj.style.border = '1px solid #660000';
		tooltip_obj.style.padding = '2px 5px';
	document.body.appendChild(tooltip_obj);
}

function moveTooltip(evt) {
	if (tooltip_enabled) {
		var x = evt.clientX+x_offset;
		var y = evt.clientY+y_offset;

		if (x+tooltip_minwidth>document.documentElement.clientWidth) {
			tooltip_obj.style.width = (tooltip_minwidth)+'px';
			x = document.documentElement.clientWidth - tooltip_minwidth - 12;
		} else {
			tooltip_obj.style.width = 'auto';
		}
		if (y+tooltip_obj.offsetHeight>document.documentElement.clientHeight) y = y-tooltip_obj.offsetHeight;

		tooltip_obj.style.left = x+'px';
		tooltip_obj.style.top = y+'px';
	}
}

function showTooltip(el, txt) {
	if (!tooltip_enabled) {
		if (!tooltip_obj) createTooltip();
		el.style.cursor = 'default';
		el.onmouseout = function(){hideTooltip(this)};
		tooltip_obj.innerHTML = (txt)? txt: el.title;
		tooltip_title = el.title;
		el.title = '';
		tooltip_obj.offsetWidth>minwidth? tooltip_minwidth = minwidth: tooltip_minwidth = tooltip_obj.offsetWidth;
		tooltip_enabled = true;	
	}
}

function hideTooltip(el) {
	tooltip_obj.style.left = '-9999px';
	tooltip_enabled = false;
	el.title = tooltip_title;
}

