		var oMainMenu = new Object();
		var m_items = new Array();
		var menuOverDelay = 150;
		var menuOutDelay = 100;
		var menuCollapsDelay = 120;
		var menuXPos = 200;
		var menuYPos = 200;
		var menuWidth = 180;
		var submenuXOffset = 1;
		var maxPageWidth = 870;
		
		var intMainLeftMargin = 34;
		var intMainTopMargin = 6;
		var intSubLeftMargin = 6
		var intSubTopMargin = 6;
		
		function NewMenuItem(menuID, title, outStyle, overStyle, selStyle, posType, menuFunction, menuLink) {
			var oMenuItem = null;
			
			if(posType == "static") {
				oMenuItem = document.getElementById(menuID);
				//oMenuItem.innerHTML = "<div style=\"float: left; width:"+ intMainLeftMargin +"px;\">&nbsp;</div><div style=\"padding-top: "+ intMainTopMargin +"px;\">"+ oMenuItem.innerHTML +"</div>";
			}
			else {
				oMenuItem = document.createElement("DIV");
				oMenuItem.id = menuID;
				oMenuItem.innerHTML = title;
				oMenuItem.style.position = posType;
				oMenuItem.style.visibility = "hidden";
				oMenuItem.className = outStyle;
				oMenuItem.innerHTML = "<div style=\"float: left; width:"+ intSubLeftMargin +"px;\">&nbsp;</div><div style=\"padding-top: "+ intSubTopMargin +"px;\">"+ oMenuItem.innerHTML +"<div style=\"height: 1px; overflow: hidden; margin-top: 8px; background-image: url('images/dots_hor.gif');\"></div></div></div>";
			}
			
			oMenuItem.classOut = outStyle;
			oMenuItem.classOver = overStyle;
			oMenuItem.classSelect = selStyle;
			
			oMenuItem.link = menuLink;
			
			oMenuItem.stayExpanded = false;
			
			oMenuItem.timerOver = null;
			oMenuItem.timerOut = null;
			oMenuItem.collaps = MenuItemOut;
			
			oMenuItem.menuFunction = menuFunction;
			
			oMenuItem.onmouseover = MenuItemOver;
			oMenuItem.onmouseout = MenuItemOut;
			oMenuItem.onmousedown = MenuItemSelect;
			//oMenuItem.onmouseup = MenuItemOver;
			//oMenuItem.onclick = menuFunction;
			
			if(posType != "static") {
				document.body.appendChild(oMenuItem);
			}
			
			if(outStyle == selStyle) {
				oMainMenu.selectedMenu = oMenuItem;
			}

			if(oMenuItem.offsetWidth != menuWidth && posType != "static") {
				oMenuItem.style.width = menuWidth - (oMenuItem.offsetWidth - menuWidth);
			}
			
			return oMenuItem;
		}
		
		function SetParentExpandValues(curItem, stayExpanded) {
			var parentItem = m_items[curItem.id.substring(0, curItem.id.length - 2)];
			if(parentItem) {
				parentItem.stayExpanded = stayExpanded;
				if(parentItem.stayExpanded) {
					//clearTimeout(parentItem.timerOut);
					//parentItem.timerOut = null;
					parentItem.className = parentItem.classOver;
				}
				else {
					//parentItem.timerOut = setTimeout("Highlight('" + parentItem.id + "', false)", menuOutDelay);
					parentItem.className = parentItem.classOut;
				}
				SetParentExpandValues(parentItem, stayExpanded);
			}
		}
		
		function MenuItemOver() {
			SetParentExpandValues(this, true);
			if(this.className != this.classSelect) {
				this.className = this.classOver;
			}
			
			var childItem = m_items[this.id + ".1"];
			if(childItem) {
				this.stayExpanded = true;
			}
			
			clearTimeout(this.timerOut);
			this.timerOut = null;
			clearTimeout(this.timerOver);
			
			this.timerOver = setTimeout("ShowMenu('" + this.id + "')", menuOverDelay);
		}

		function MenuItemOut() {
			SetParentExpandValues(this, false);
			
			if(this.className != this.classSelect) {
				this.className = this.classOut;
			}

			var childItem = m_items[this.id + ".1"];
			if(childItem) {
				this.stayExpanded = false;
			}
			
			this.timerOut = setTimeout("HideMenu('" + this.id + "')", menuOutDelay);
		}
		
		function MenuItemSelect() {
			if(oMainMenu.selectedMenu) {
				oMainMenu.selectedMenu.className = oMainMenu.selectedMenu.classOut;
			}
			this.className = this.classSelect;
			this.collaps();
			oMainMenu.selectedMenu = this;
			
			if(this.menuFunction) this.menuFunction();
		}
		
		function ShowMenu(menuID) {
			if(menuID != "" && m_items[menuID].timerOut) return;
		
			var levelID = menuID;
			levelID != "" ? levelID += "." : levelID = "Menu_";
			
			var menuIdx = 1;
			var subMenuItem = m_items[levelID + menuIdx];
			var menuX = 0;
			var menuY = 0;
			
			if(subMenuItem) {
				if(menuID != "") {
					if(navigator.appName.indexOf("Explorer") != -1) {
						menuX = GetXPos(m_items[menuID]); //+ subMenuItem.offsetWidth + submenuXOffset;
					}
					else {
						menuX = GetXPos(m_items[menuID]) + (document.getElementById("MainTable").offsetLeft + 10); 
					}
					menuX += m_items[menuID].subMenuXOff;
					menuY = GetYPos(m_items[menuID]) + 94;
					
					//alert(menuX + " : " + document.getElementById("MainTable").offsetLeft);
					if((menuX - document.getElementById("MainTable").offsetLeft) > maxPageWidth) menuX -= 103;
				}
				else {
					if(subMenuItem.style.position != "static") {
						menuX = menuXPos;
						menuY = menuYPos;
					}
				}
				
				while(subMenuItem) {
					if(subMenuItem.style.position != "static") {
						subMenuItem.style.left = menuX;
						subMenuItem.style.top = menuY;
					}
					subMenuItem.style.visibility = "visible";
					subMenuItem.style.zIndex = 1;
					menuY += subMenuItem.offsetHeight;
					menuIdx++;
					subMenuItem = m_items[levelID + menuIdx];
				}
			}
		}
		
		function HideMenu(menuID) {
			var parentItem = m_items[menuID];
			var levelID = menuID;
			var menuIdx = 1;
			var subMenuItem = m_items[levelID + "." + menuIdx];
			
			if(parentItem && parentItem.stayExpanded) return;
			
			if(subMenuItem) {
				while(subMenuItem) {
					subMenuItem.style.visibility = "hidden";
					menuIdx++;
					subMenuItem = m_items[levelID + "." + menuIdx];
				}
			}
			var parentItem = m_items[parentItem.id.substring(0, parentItem.id.length - 2)];
			if(parentItem && !parentItem.stayExpanded) setTimeout("HideMenu('" + parentItem.id + "')", menuCollapsDelay);
		}
		
		function Highlight(menuID, stayFocus) {
			if(stayFocus) {
				m_items[menuID].className = m_items[menuID].classOver;
			}
			else {
				m_items[menuID].className = m_items[menuID].classOut;
			}
		}
