var menu = null;
var verticalOffset = 0;
function noop() {}
function getPositionLeft(oElement)
{
	var retVal = 0;
	if(oElement.offsetParent)
		retVal += getPositionLeft(oElement.offsetParent);
	retVal += oElement.offsetLeft;
	return retVal;
}
function getPositionTop(oElement)
{
	var retVal = 0;
	if(oElement.offsetParent)
		retVal = getPositionTop(oElement.offsetParent);
	retVal += oElement.offsetTop;
	return retVal;
}
function setMenu(id_parent, id_menu)
{
	unsetMenu();
	if(document.all) // IE
	{
		menu = document.all[id_menu];
		menu.style.left = getPositionLeft(document.all[id_parent]);
		menu.style.top = getPositionTop(document.all[id_parent]) + document.all[id_parent].offsetHeight + verticalOffset;
	}
	else
	{
		menu = document.layers[id_menu];
		menu.pageX = document.layers[id_parent].pageX;
		menu.pageY = document.layers[id_parent].pageY + document.layers[id_parent].clip.height + verticalOffset;
	}
	return false;
}

function unsetMenu()
{
	forceHide();
	menu = null;
	return false;
}
function forceHide()
{
	if(menu && menu.style)
		menu.style.visibility = "hidden";
	else if(menu)
	{
		menu.visibility = "hidden";
	}
}
function showMenu()
{
	if(menu.style)
		menu.style.visibility = "visible";
	else
	{
		menu.visibility = "visible";
	}
	return false;
}

function hideMenu(e)
{
	if(menu)
	{
		if(document.all)
		{
			var mouseX = event.clientX;
			var mouseY = event.clientY;
			var leftX = menu.offsetLeft;
			var rightX = menu.offsetLeft + menu.offsetWidth;
			var topY = menu.offsetTop;
			var bottomY = menu.offsetTop + menu.offsetHeight;
		}
		else
		{
			mouseX = -1; //e.pageX;
			mouseY = -1; //e.pageY;
			leftX = 0; //menu.pageX;
			rightX = 0; //menu.pageX + menu.clip.width;
			topY = 0; //menu.pageY;
			bottomY = 0; //menu.pageY + menu.clip.height;
		}
		//window.alert("mouseX = "+mouseX+"\nmouseY = "+mouseY+"\nleftX = "+leftX+"\nrightX = "+rightX+"\ntopY = "+topY+"\nbottomY = "+bottomY);
		if((mouseX > rightX) || (mouseX < leftX + 2) || (mouseY > bottomY) || (mouseY < topY - 175))
		{
			if(menu.style)
				menu.style.visibility = "hidden";
			else
				menu.visibility = "hidden";
			unsetMenu();
			return false;
		}
	}
	return false;
}
