var Menu = null;
var curObj = null;
var activeObj = null;
var absTop, absBottom, absLeft, absRight, menuRight, menuTop, menuBottom, menuLeft;
var curColor = "";
var desColor = "";
var isT = 0;
var ie;
if (document.all) ie = true;
else ie = false;

function getOffsetX(_Object)
{
  return (_Object.offsetParent!=null)?_Object.offsetLeft+getOffsetX(_Object.offsetParent):0
}

function getOffsetY(_Object)
{
  return (_Object.offsetParent!=null)?_Object.offsetTop+getOffsetY(_Object.offsetParent):0
}

function showMenu(obj, ev, f, l, t)
{
	if (Menu) {
		Menu.style.visibility = "hidden";
		Menu = null;
	}
	var tempMenu = document.getElementById("subMenu" + obj.id);
	if (tempMenu) {
		Menu = tempMenu;
		absLeft = getOffsetX(obj);
		absTop = getOffsetY(obj);
		absLeft += l;
		absTop += t;
		if (f == "t") {
			Menu.style.left = absLeft + 'px';
			Menu.style.top = absTop + obj.offsetHeight + 'px';
			Menu.style.width = obj.offsetWidth + 'px';
			absBottom = absTop + obj.offsetHeight;
			menuBottom = absBottom + parseInt(Menu.offsetHeight);
			absRight = absLeft + obj.offsetWidth;
			menuRight = absLeft + parseInt(Menu.offsetWidth);
			menuTop = parseInt(Menu.style.top);
			menuLeft = absLeft;
			curColor = "";
			desColor = "";
			isT = 1;
		} else if (f == "l") {
			Menu.style.left = absLeft - parseInt(Menu.offsetWidth);
			Menu.style.top = absTop;
			absBottom = absTop + obj.offsetHeight;
			absRight = absLeft + obj.offsetWidth;
			menuLeft = absLeft - parseInt(Menu.offsetWidth);
			menuTop = parseInt(Menu.style.top);
			menuRight = absLeft;
			menuBottom = Menu.style.top + parseInt(Menu.offsetHeight);
			curColor = "";
			desColor = "";
			isT = 0;
		} else if (f == "r") {
			absRight = absLeft + obj.offsetWidth;
			absBottom = absTop + obj.offsetHeight;
			Menu.style.left = absRight + 'px';
			Menu.style.top = absTop + 'px';
			menuBottom = absTop + parseInt(Menu.offsetHeight);
			menuRight = absRight + parseInt(Menu.offsetWidth);
			menuTop = absTop;
			menuLeft = absRight;
			curColor = "";
			desColor = "";
			isT = 0;
		}
		Menu.style.visibility = "visible";
		if (!ie) window.captureEvents(Event.MOUSEMOVE);
		document.body.onmousemove = tryHideT;
	} else {
		if (f == "t") {
			curColor = "";
			desColor = "";
			isT = 1;
		} else if (f == "l") {
			curColor = "";
			desColor = "";
			isT = 0;
		} else if (f == "r") {
			curColor = "";
			desColor = "";
			isT = 0;
		}
		if (!ie) window.captureEvents(Event.MOUSEMOVE);
	}
}

function tryHideT(obj)
{
	oCanvas = document.getElementsByTagName((document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY")[0];
//	alert(oCanvas.scrollLeft + "\n" + oCanvas.scrollTop);
	if (ie) {
		var ev = event;
		var x = ev.clientX;
		var y = ev.clientY;
	} else {
		var ev = obj;
		var x = ev.pageX;
		var y = ev.pageY;
	}
	if(!ie)
	{
		x += document.body.scrollLeft;
		y += document.body.scrollTop;
	}
	else
	{
		x += oCanvas.scrollLeft;
		y += oCanvas.scrollTop;
	}
	if ((x < Math.min(absLeft, menuLeft) || y < Math.min(absTop, menuTop) || y > Math.max(menuBottom, absBottom) || x > Math.max(menuRight, absRight) || (x > menuRight && y > absBottom) || x <= 0) && Menu) {
		Menu.style.visibility = "hidden";
		Menu = null;
	}
}

