	var currentMenu = null;
	var opera = window.opera ? true : false;


	if (!document.getElementById)
		document.getElementById = function() { return null; }
	
	function initialiseMenu(menu, starter, root, instance) {
		var leftstarter = false;


		if (menu == null || starter == null) return;
			currentMenu = menu;

	
		starter.onmouseover = function() {
			if (currentMenu) {
				if (this.parentNode.parentNode!=currentMenu) {
					currentMenu.style.visibility = "hidden";
					

				}
				if (this.parentNode.parentNode==root) {
					tempCurrentMenu = currentMenu
					while (tempCurrentMenu.parentNode.parentNode!=root) {
						tempCurrentMenu.parentNode.parentNode.style.visibility = "hidden";
						tempCurrentMenu = tempCurrentMenu.parentNode.parentNode;
					}
				}
				currentMenu = null;
				this.showMenu();
	        	}
		}
	
		menu.onmouseover = function() {
			if (currentMenu) {
				currentMenu = null;
				this.showMenu();
	        	}
		}	
	
		starter.showMenu = function() {



			if (!opera && !document.all) {
				if (this.parentNode.parentNode==root) {
					menu.style.left = this.offsetLeft-118 + "px";
					menu.style.top = this.offsetTop + this.offsetHeight + "px";
				}
				else {
				 	menu.style.left = this.offsetLeft - this.offsetWidth + "px";
				 	menu.style.top = this.offsetTop + "px";
				}
			}


			else {
				if(!opera) {

					if (this.parentNode.parentNode==root) {
						menu.style.left = -118 + "px";
						menu.style.top = this.offsetHeight + "px";
					}
					else {
					 	menu.style.left = 0-this.offsetWidth + "px";
					 	menu.style.top = this.offsetTop + "px";
					}
				}
				else {
					if(this.parentNode.parentNode==root) {
						menu.style.position = "absolute";
						menu.style.left = root.offsetWidth-menu.offsetWidth+5 + "px";
						menu.style.top = this.offsetHeight + "px";
					}
					else  {
						menu.style.left = -this.offsetWidth + "px";
						menu.style.top = this.offsetTop + "px";
					}
				}



			}

			menu.style.zIndex = 100;
			menu.style.visibility = "visible";
			currentMenu = menu;
		}

		starter.onfocus	 = function() {
			if(!document.all) starter.onclick();
		}
	
		menu.onfocus	 = function() {
			if(!document.all) menu.onclick();
			currentMenu.style.visibility="hidden";
		}

		menu.showMenu = function() {
			menu.style.visibility = "visible";
			currentMenu = menu;


		}

		menu.hideMenu = function()  {
				for (var x=0;x<menu.childNodes.length;x++) {
					if (menu.childNodes[x].nodeName=="LI") {
						if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
							menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
							menuItem.style.visibility = "hidden";
						}
					}
				}
		}

		menu.onmouseout = function(event) {
			this.hideMenu();
		}

		starter.onmouseout = function() {
			for (var x=0;x<menu.childNodes.length;x++) {
				if (menu.childNodes[x].nodeName=="LI") {
					if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
						menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
						menuItem.style.visibility = "hidden";
					}
				}
			}
			menu.style.visibility = "hidden";
		}
}
	function killMenu(menu, root) {
		var menu = document.getElementById(menu);
		var root = document.getElementById(root);
		menu.style.visibility = "hidden";
		for (var x=0;x<menu.childNodes.length;x++) {
			if (menu.childNodes[x].nodeName=="LI") {
				if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
					menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
					menuItem.style.visibility = "hidden";
				}
			}
		}
		while (menu.parentNode.parentNode!=root) {
			menu.parentNode.parentNode.style.visibility = "hidden";
			menu = menu.parentNode.parentNode;
		}
	}

	window.onload = function() {
		var root = document.getElementById("menuList");
		getMenus(root, root, 0);
	}

function getMenus(elementItem, root, instance) {
	var selectedItem;
	var menuStarter;
	var menuItem;
	for (var x=0;x<elementItem.childNodes.length;x++) {
		if (elementItem.childNodes[x].nodeName=="LI") {
			if (elementItem.childNodes[x].getElementsByTagName("UL").length>0) {


				menuStarter = elementItem.childNodes[x].getElementsByTagName("A").item(0);
				menuItem = elementItem.childNodes[x].getElementsByTagName("UL").item(0);
				instance++;
				getMenus(menuItem, root,instance);
				initialiseMenu(menuItem, menuStarter, root, instance);
			}
		}
	}
}
