window.element = new Object();

window.element.findPosX = function(obj)
{
    if (typeof obj == "string")
	   obj = document.getElementById(obj);

	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else
	if (obj.x)
		curleft += obj.x;

	return curleft;
}



window.element.findPosY = function(obj)
{
    if (typeof obj == "string")
	   obj = document.getElementById(obj);

	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else
	if (obj.y)
		curtop += obj.y;

	return curtop;
}



window.element.registerMouseLeaveCallback = function(obj, handler)
{
	var wrapper = function(evt) {
		if (!evt)
		{	var evt = window.event; }

		var tg = (window.event) ? evt.srcElement : evt.target;
		if (tg != obj)
		{	return; }

		var reltg = (evt.relatedTarget) ? evt.relatedTarget : evt.toElement;
		while (reltg != tg && reltg.nodeName != 'BODY')
		{	reltg = reltg.parentNode; }
		if (reltg == tg)
		{	return; }

		handler.call(obj, evt);
	};

	if (obj.addEventListener) {
		obj.addEventListener('mouseout', wrapper, false);
    } else {
    	obj.attachEvent('onmouseout', wrapper);
    }
}
