var navID = 'topnav';
var menuTimer;
var currMenu;
function parseMenu(elemRq)
{
	elemRq.id.match(/^(\w+)\[(\w+)\]\[(\w+)\]$/);
	var elemRs		= new Object();
	elemRs.type		= RegExp.$1;
	elemRs.barID	= RegExp.$2;
	elemRs.ID		= RegExp.$3;
	elemRs.child	= document.getElementById('menu['+elemRs.barID+']['+elemRs.ID+']');
	elemRs.parent   = document.getElementById('trigger['+elemRs.barID+']['+elemRs.ID+']');
	return elemRs;
}
function expandMenu(elem)
{
	if (currMenu) currMenu.style.visibility = 'hidden';

	elemRs=parseMenu(elem);
	currMenu = elemRs.child;
	maintainMenu();

	var parentCorner = findCorner(elemRs.parent);
	currMenu.style.left = parseInt(parentCorner[0]) + 'px';
	currMenu.style.top	= parseInt(parentCorner[1]) + parseInt(elemRs.parent.offsetHeight) + 'px';
	currMenu.style.visibility = 'visible';
	return true;
}
function collapseMenu()
{
	menuTimer = window.setTimeout(collapseNow,500);
	return true;
}
function maintainMenu()
{
	if (menuTimer)
	{
		window.clearTimeout(menuTimer);
		menuTimer = null;
	}
	return true;
}
function collapseNow()
{
	currMenu.style.visibility = 'hidden';
	return true;
}
function findCorner(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		do {
			if (obj.id == navID) { break };
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	//alert(message);
	return [curleft,curtop];
}
