var currentSubMenu = null;
var lastEvent = null;
var timeout;

function ShowMenu(obj)
{
	if (currentSubMenu)
	{
		HideMenuImmediately();
	}
	
	try
	{
		currentSubMenu = obj.parentNode.parentNode.getElementsByTagName("ul")[0];
		currentSubMenu.style.display = "block";
	}
	catch(e){}
}

function ContainsElement(a, b)
{
	while (b.parentNode)
	{
		if ((b = b.parentNode) == a)
			return true;
	}
	return false;
}

function HideMenu(e)
{
	if (window.event)
		event.cancelBubble=true;
	else if (e.stopPropagation) e.stopPropagation();
	
	if (document.all)
	{
		if (!currentSubMenu.contains(e.toElement))
		{
			timeout = setTimeout("HideMenuImmediately()", 1000);
		}
	}
	else
	{
		if (e.currentTarget != e.relatedTarget 
			&& !ContainsElement(e.currentTarget, e.relatedTarget))
		{
			timeout = setTimeout("HideMenuImmediately()", 1000);
		}
	}
}
			
function SurpressHide()
{
	clearTimeout(timeout);
}

function HideMenuImmediately()
{
	if (currentSubMenu)
	{
		currentSubMenu.style.display = "none";
		currentSubMenu = null;
		clearTimeout(timeout);
	}
}

