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;
var dx;
var N=window.navigator.appName.substring(0,8);
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;
//		curObj = null;
	}
	var tempMenu = document.getElementById("subMen" + obj.id);
	//		alert('!');
	if (tempMenu) {
		Menu = tempMenu;
//		absTop = getAbsTop(obj);
//		absLeft = getAbsLeft(obj);
		absLeft = getOffsetX(obj);
		absTop = getOffsetY(obj);
		if(N="Netscape"){
		l += -1;		
		}
		
		absLeft += l;
		absTop += t;
		if (f == "t") {
			dx = Math.floor((obj.offsetWidth - Menu.offsetWidth)/2);
			Menu.style.left = absLeft+dx+"px";
			Menu.style.top = absTop + obj.offsetHeight + 5 + "px";
//			Menu.style.width = obj.offsetWidth-1;
			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 = 0;
		} else if (f == "l") {
			Menu.style.left = absLeft - parseInt(Menu.offsetWidth)+"px";
			Menu.style.top = absTop+"px";
			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 + 141;
			absBottom = absTop + obj.offsetHeight;
			Menu.style.left = absRight+"px";
			Menu.style.top = absTop+Math.round((obj.offsetHeight)/2)+"px";
			menuBottom = absTop + parseInt(Menu.offsetHeight);
			menuRight = absRight + parseInt(Menu.offsetWidth);
			menuTop = absTop;
			menuLeft = absRight;
			curColor = "";
			desColor = "";
			isT = 0;
		}
		setCur(obj);
		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);
		obj.onmouseout = dropCur;
	}
	setCur(obj);
}

function getAbsLeft(obj)
{
	var temp;
	var retLeft = obj.offsetLeft;
	if (obj)
	{
		temp = obj;
		var old;
		while ((temp = temp.parentNode) != false && temp)
			if (!isNaN(temp.offsetLeft))
			{
//				alert(temp.tagName + "|" + temp.offsetLeft);
//				if (old != "td" || temp.tagName.toLowerCase() != "tr")
					if(temp.tagName.toLowerCase() != "div")
						retLeft += temp.offsetLeft;
				old = temp.tagName.toLowerCase();
			}
	}
	return retLeft;
}

function getAbsTop(obj)
{
	var temp;
	var retTop = obj.offsetTop;
	if (obj) {
		temp = obj;
		var old;
		while ((temp = temp.parentNode) != false && temp)
			if (!isNaN(temp.offsetTop))
			{
//				alert(temp.tagName + "|" + temp.offsetTop);
				if (old != "td" || temp.tagName.toLowerCase() != "tr")
					if(temp.tagName.toLowerCase() != "table")
						retTop += temp.offsetTop;
				old = temp.tagName.toLowerCase();
			}
	}
	return retTop;
}

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

function dropCur()
{
	if (curObj && !isT) curObj.bgColor = desColor;
	else if (curObj && isT) {
		document.getElementById("left_" + curObj.id).src = defIm.src;
		document.getElementById("right_" + curObj.id).src = defIm.src;
		curObj.background = "";
	}
	curObj = null;
}

function setCur(obj)
{
	if (curObj) dropCur();
	curObj = obj;
	if (curObj && !isT) curObj.bgColor = curColor;
	else if (curObj && isT) {
		document.getElementById("left_" + curObj.id).src = leftIm.src;
		document.getElementById("right_" + curObj.id).src = rightIm.src;
		curObj.background = curBack.src;
	}
}