			var nMBTimeout = 0;
			var sMenu = "";

			function OpenMenu(theMenuName)
			{
				var nLoop;

				KeepMenu();

				// close existing menu if not the same
				if(sMenu != theMenuName)
				{
					CloseMenu_worker();
				}

				sMenu = theMenuName;

				// put menu to front
				document.getElementById("menu" + sMenu).style.zIndex = "100";
				for(nLoop = 1; ; nLoop ++)
				{
					if(document.getElementById(sMenu + nLoop))
					{
						document.getElementById(sMenu + nLoop).style.visibility = "visible";
					}
					else
					{
						break;
					}
				}
			}

			function KeepMenu()
			{
				clearTimeout(nMBTimeout);

				nMBTimeout = 0;
			}

			function CloseMenu()
			{
				if(!nMBTimeout)
				{
					nMBTimeout = setTimeout("CloseMenu_worker()", 200);
				}
			}

			function CloseMenu_worker()
			{
				var nLoop;
				var lclMenu = sMenu;

				for(nLoop = 1; ; nLoop ++)
				{
					if(document.getElementById(lclMenu + nLoop))
					{
						document.getElementById(lclMenu + nLoop).style.visibility = "hidden";
					}
					else
					{
						break;
					}
				}

				// drop menu back in z-order
				if(document.getElementById("menu" + lclMenu))
				{
					document.getElementById("menu" + sMenu).style.zIndex = -1;
				}
			}


