function menu_ShowHide(subMenuId)
{
	document.menu_overedMenuItem=subMenuId;
	menu_genericOver();

	// give the css time to do its thing
	window.setTimeout('menu_doShowHide('+subMenuId+');', 250);
}

function menu_doShowHide(subMenuId)
{
	if (document.menu_overedMenuItem == subMenuId)
	{
		// hide any showing submenu
		for (var i=1; i<50; i++) // 50 is chosen to stop infinate loops
		{
			var subMenu=document.getElementById('subMenu_' + i);
			var menuItem=document.getElementById('menuItem_' + i);
			if (subMenu)
			{
				subMenu.className='hidden';
			}

			if (menuItem)
			{
				menuItem.className='topInactive';
			}
			else
			{
				break;
			}
		}

		subMenu=document.getElementById('subMenu_' + subMenuId);
		if (subMenu)
		{
			subMenu.className='showing';
		}

		menuItem=document.getElementById('menuItem_' + subMenuId);
		if (menuItem)
		{
			menuItem.className='topActive';
		}
	}
}

function menu_Mouseout(subMenuId, doReset)
{
	document.menu_overedMenuItem=false;
	menu_genericOut(doReset);
}




function menu_overSubItem(elem)
{
	menu_genericOver();

	subMenuItem=document.getElementById('subMenuShowing');
	if (elem.id!='subMenuShowing' && subMenuItem)
	{
		subMenuItem.className='out';
	}
}

function menu_outSubItem(elem, doReset)
{
	menu_genericOut(doReset);

	subMenuItem=document.getElementById('subMenuShowing');
	if (subMenuItem)
	{
		subMenuItem.className='showing';
	}
}



function menu_tryMenuReset()
{
	if (!document.menu_overedSubMenu)
	{
		// hide any showing submenu
		for (var i=1; i<50; i++) // 50 is chosen to stop infinate loops
		{
			var subMenu=document.getElementById('subMenu_' + i);
			var menuItem=document.getElementById('menuItem_' + i);
			if (subMenu)
			{
				if (subMenu.getAttribute('isSelected')=='1')
				{
					subMenu.className='showing';
				}
				else
				{
					subMenu.className='hidden';
				}
			}

			if (menuItem)
			{
				if (menuItem.getAttribute('isSelected')=='1')
				{
					menuItem.className='topActive';
				}
				else
				{
					menuItem.className='topInactive';
				}
			}
			else
			{
				break;
			}
		}

		// select the selected menu item

		// show the selected submenu


		// select the selected sub menu item
		subMenuItem=document.getElementById('subMenuShowing');
		if (subMenuItem)
		{
			subMenuItem.className='showing';
		}
	}
}

function menu_genericOut(doReset)
{
	document.menu_overedSubMenu=false;

	if (doReset)
	{
		if (document.menu_resetTimeout)
		{
			window.clearTimeout(document.menu_resetTimeout);
		}
		document.menu_resetTimeout = window.setTimeout('menu_tryMenuReset();', 3000);
	}
}

function menu_genericOver()
{
	document.menu_overedSubMenu=true;
}




