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
}

var activeObj = null, menuItem = null;
function showMenu(obj, ev, f, l, t)
{
	if (Menu) {
		Menu.style.visibility = "hidden";
		menuItem = null;
		Menu = null;
	}
	var tempMenu = document.getElementById("subMen" + obj.id);
	if (tempMenu) {
		Menu = tempMenu;
		menuItem = obj;
		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';
			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);
	}
	
	if (activeObj && activeObj != menuItem) 
	{
		activeObj.className = "item-off";
		activeObj = null;
	}
	obj.className = "item-on";
	activeObj = obj;
}

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 + oCanvas.scrollLeft;
		var y = ev.clientY + oCanvas.scrollTop;
	} else {
		var ev = obj;
		var x = ev.pageX;
		var y = ev.pageY;
	}
	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";
		menuItem = null;
		if (activeObj) 
		{
			activeObj.className = "item-off";
			activeObj = null;
		}
		Menu = null;
	}
}

