var isNS = (navigator.appName == "Netscape");
var isMacIE = ((navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac") > -1));
var layerRef = (isNS) ? "document" : "document.all";
var styleRef = (isNS) ? "" : ".style";
var isDynamic = ((document.layers || document.all) && !isMacIE);
var activeMenu = "";

function activateMenu(menuLayerRef, left_pos, top_pos)
{
	if (isDynamic)
	{
		var menuID = "menu" + menuLayerRef;
		if (activeMenu != menuID)
		{
			if (activeMenu != "")
			{
				hideMenu(activeMenu);
			}
			if (isNS)
			{
				document[menuID].top = top_pos;
				document[menuID].left = left_pos;
			}
			else
			{
				document.all[menuID].style.pixelTop = top_pos;
				document.all[menuID].style.pixelLeft = left_pos;
			}
			showMenu(menuID);
		}
		if (!isNS)
		{
			window.event.cancelBubble = true;
		}
	}
}

function showMenu(layerID)
{
	activeMenu = layerID;
	var cmd = layerRef + '["' + layerID + '"]' + styleRef + '.visibility = "visible"';
	eval(cmd);
}

function hideMenu(layerID)
{
	activeMenu = "";
	var cmd = layerRef + '["' + layerID + '"]' + styleRef + '.visibility = "hidden"';
	eval(cmd);
}

function killMenu(e)
{
	if (activeMenu != "")
	{
		if (!isNS)
		{
			hideMenu(activeMenu);
		}
		else
		{
			var element_X1 = document[activeMenu].pageX + 4;
			var element_Y1 = document[activeMenu].pageY + 10;
			var element_X2 = element_X1 + document[activeMenu].clip.right - 8;
			var element_Y2 = element_Y1 + document[activeMenu].clip.bottom + 6;
			var inside = ((e.pageX >= element_X1) && (e.pageX <= element_X2) && (e.pageY >= element_Y1) && (e.pageY <= element_Y2));
			if (!inside)
			{
				hideMenu(activeMenu);
			}
		}
	}
}

function init()
{
	if (isDynamic)
	{
		if (!isNS)
		{
			document.onmouseover = killMenu;
		}
		else
		{
			document.captureEvents(Event.MOUSEMOVE);
			document.onmousemove = killMenu;
		}
	}
}
