var aMenus   = new Array();
var aTimeOut = new Array();

function MenuInit() {
	aMenus   = YAHOO.util.Dom.getElementsByClassName('mainnav', 'a', document.getElementById('mainnav'));
	aTimeOut = new Array();
	
	for (var i = 0; i < aMenus.length; i++) {
		aTimeOut[i] = null;
		
		var oSubmenu = document.getElementById('sub' + aMenus[i].id);
		
		if (oSubmenu) {
			oSubmenu.style.display = 'none';
			oSubmenu.style.visibility = 'visible';
			oSubmenu.rel = 'hidden';
			
			YAHOO.util.Event.addListener(aMenus[i], 'mouseover', openMenu, i);
			YAHOO.util.Event.addListener(aMenus[i], 'mouseout', closeMenu, i);
			YAHOO.util.Event.addListener(aMenus[i], 'mousemove', stayOpen, i);
			YAHOO.util.Event.addListener(oSubmenu,  'mouseover', stayOpen, i);
			YAHOO.util.Event.addListener(oSubmenu,  'mousemove', stayOpen, i);
			YAHOO.util.Event.addListener(oSubmenu,  'mouseout', closeMenu, i);
		}
	}
};

function openMenu(e, iKey) {
	for (var i=0; i<aMenus.length; i++)
	{
		if (i != iKey)
		{
			var s = document.getElementById('sub' + aMenus[i].id);
			if (s)
			{
				s.rel = 'hiding';
				closeMenu(null, i);
			}
		}
	}
	
	var oSubmenu = document.getElementById('sub' + aMenus[iKey].id);
	
	if (oSubmenu)
	{
		if (oSubmenu.rel == 'hidden')
		{
			oSubmenu.style.display = 'block';
			
			oSubmenu.rel = 'shown';
		}
	}
};

function closeMenu (e, iKey) {
	var oSubmenu = document.getElementById('sub' + aMenus[iKey].id);
	
	if (oSubmenu)
	{
		if (oSubmenu.rel == 'hiding')
		{
			oSubmenu.rel = 'hidden';
			clearTimeout(aTimeOut[iKey]);
			oSubmenu.style.display = 'none';
		}
		else
		{
			oSubmenu.rel = 'hiding';
			aTimeOut[iKey] = window.setTimeout("closeMenu(null, '" + iKey + "')", 500);
		}
	}
};

function stayOpen(e, iKey) {
	var oSubmenu = document.getElementById('sub' + aMenus[iKey].id);
	
	if (oSubmenu)
	{
		if (oSubmenu.rel == 'hiding' || oSubmenu.rel == 'shown')
		{
			oSubmenu.style.display = 'block';
			oSubmenu.rel = 'shown';
			clearTimeout(aTimeOut[iKey]);
		}
	}
};

function repositionSubMenus() {
	var aMainMenu = YAHOO.util.Dom.getElementsByClassName('mainnav','a','mainnav');
	
	for (var i=1; i<aMainMenu.length-1; i++)
	{
		var iLeft = self.innerWidth ? self.innerWidth : (document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientWidth : (document.body ? document.body.clientWidth : 0));
		iLeft = iLeft / 2;
		iLeft = iLeft - 409;
		iLeft = aMainMenu[i].parentNode.offsetLeft - iLeft;
		
		var iWidth = aMainMenu[i].parentNode.offsetWidth;
		
		if (document.getElementById('sub' + aMainMenu[i].id))
		{
			var oSubMenu  = document.getElementById('sub' + aMainMenu[i].id);
			var iSubWidth = 0;
			var aSubItems = oSubMenu.getElementsByTagName('A');
			oSubMenu.style.display = 'block';
			for (var j=0; j<aSubItems.length; j++)
			{
				if (aSubItems[j].parentNode.offsetWidth > iSubWidth) iSubWidth = aSubItems[j].parentNode.offsetWidth;
			}
			oSubMenu.style.display = 'none';
			iSubWidth = iSubWidth + 20;
			
			var iMargin = iLeft + (iWidth / 2) - (iSubWidth / 2);

			document.getElementById('sub' + aMainMenu[i].id).style.left = iMargin + 'px';
		}
	}
}

YAHOO.util.Event.addListener(window, 'load', MenuInit);
YAHOO.util.Event.addListener(window, 'load', repositionSubMenus);