function mousePos (e)
{
	var result = {x:null, y:null};
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		result.x = e.pageX;
		result.y = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		result.x = (e.clientX?e.clientX:0) + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		result.y = (e.clientY?e.clientY:0) + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	
	return result;
}

var hoverOffsetX = 10;
var hoverOffsetY = 10;
hoverImage = null;
hoverText = null;
document.onmousemove = function (e) { updatehoverImage(e); updatehoverText(e); }

function updatehoverImage(e) {	
	if (hoverImage != null) {
		var mpos = mousePos(e);
		hoverImage.style.left = (mpos.x + hoverOffsetX) + "px";
		hoverImage.style.top 	= (mpos.y + hoverOffsetY) + "px";
	}
}

function showhoverImage(id, options) {
	hoverOffsetX = options?options.ox:hoverOffsetX;
	hoverOffsetY = options?options.oy:hoverOffsetY;
	hoverImage = document.getElementById(id);
	if (!hoverImage) return;
	hoverImage.style.display = "block"
}

function hidehoverImage(id) {
	hoverImage = document.getElementById(id);
	if (!hoverImage) return;
	hoverImage.style.display = "none";
}

function updatehoverText(e) {	
	if (hoverText != null) {
		var mpos = mousePos(e);
		hoverText.style.left = (mpos.x + hoverOffsetX) + "px";
		hoverText.style.top 	= (mpos.y + hoverOffsetY) + "px";
	}
}

function showhoverText(id) {
	hoverText = document.getElementById(id);
	if (!hoverText) return;
	hoverText.style.display = "block"
}

function hidehoverText(id) {
	hoverText = document.getElementById(id);
	if (!hoverText) return;
	hoverText.style.display = "none";
}
