/*----- INITIAL SETUP -----*/
window.onload = function() {
	var root = document.getElementById("menuTop");
	if (root != null){
		var rootOffset = root.offsetLeft;
		getMenus(root, root);
	}

	var root2 = document.getElementById("menuLeft");
	if (root2 != null){
		var rootOffset2 = root2.offsetLeft;
		getMenus2(root2, root2);
	}
}

/*----- TOP MENU -----*/

var currentMenu = null;
var lastMenuStarter = null;
var mytimer = null;
var timerOn = false;
var opera = window.opera ? true : false;

if (!document.getElementById)
	document.getElementById = function() { return null; }

function initialiseDummy(dummy, root) {
	dummy.onmouseover = function() {
		containingMenu = this.parentNode.parentNode;
		for (var x=0;x<containingMenu.childNodes.length;x++) {
			if (containingMenu.childNodes[x].nodeName.toUpperCase()=="LI") {
				if (containingMenu.childNodes[x].getElementsByTagName("ul").length>0) {
					containingMenu.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
				}
			}
		}
	}
	dummy.onfocus = function() {
		dummy.onmouseover();
	}
}

function initialiseMenu(menu, starter, root) {
	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";
				hideAllMenus(currentMenu, root);
			}
			if (this.parentNode.parentNode==root) {
				while (currentMenu.parentNode.parentNode!=root) {
					currentMenu.parentNode.parentNode.style.visibility = "hidden";
					currentMenu = currentMenu.parentNode.parentNode;
				}
			}
			currentMenu = null;
			this.showMenu();
			}
	}

	menu.onmouseover = function() {
		if (currentMenu) {
			currentMenu = null;
			this.showMenu();
			}
	}	

	starter.showMenu = function() {
		if (!opera) {
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft + "px";
				menu.style.top = this.offsetTop + this.offsetHeight + "px";
				if (menu.offsetWidth < this.offsetWidth) menu.style.width = this.offsetWidth;
				//alert("left " + menu.style.left);
				//alert("top " + menu.style.top);
			}
			else {
				menu.style.left = this.offsetLeft + this.offsetWidth + "px";
				menu.style.top = this.offsetTop + "px";
			}
		}
		else {
			var rootOffset = root.offsetLeft;
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft - rootOffset + "px";
				menu.style.width = this.offsetWidth;
				menu.style.top = this.offsetHeight + "px";
			}
			else {
				menu.style.left = this.offsetWidth - rootOffset + "px";
				menu.style.top = this.offsetTop + "px"; //menu.style.top - menu.style.offsetHeight + "px";
			}

		}
		menu.style.visibility = "visible";
		currentMenu = menu;
	}

	starter.onfocus	 = function() {
		starter.onmouseover();
	}

	menu.onfocus	 = function() {
//			currentMenu.style.visibility="hidden";
	}

	menu.showMenu = function() {
		menu.style.visibility = "visible";
		currentMenu = menu;
		stopTime();
	}

	menu.hideMenu = function()  {
		if (!timerOn) {
			mytimer = setInterval("killMenu('" + menu.id + "', '" + root.id + "');", 1000);
			timerOn = true;
			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();
	}
	//menu.onblur = function() {
	//	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) {
	if (menu != ""){
		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;
		}
	}
	stopTime();
}

function stopTime() {
	if (mytimer) {
		 clearInterval(mytimer);
		 mytimer = null;
		 timerOn = false;
	}
} 

function getMenus(elementItem, root) {
	var selectedItem;
	var menuStarter;
	var menuItem;
	for (var x=0;x<elementItem.childNodes.length;x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase()=="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);
				getMenus(menuItem, root);
				initialiseMenu(menuItem, menuStarter, root);
			}
			else {
				initialiseDummy(elementItem.childNodes[x].getElementsByTagName("A").item(0), root);
			}
		}
	}
}
function hideAllMenus(elementItem, root) {
	for (var x=0;x<elementItem.childNodes.length;x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase()=="LI") {
			if (elementItem.childNodes[x].getElementsByTagName("ul").length>0) {
				elementItem.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
				hideAllMenus(elementItem.childNodes[x].getElementsByTagName("UL").item(0), root);
			}
		}
	}
}


/*----- LEFT MENU -----*/

var currentMenu2 = null;
var lastMenuStarter2 = null;
var mytimer2 = null;
var timerOn2 = false;
var opera2 = window.opera ? true : false;

if (!document.getElementById)
	document.getElementById = function() { return null; }

function initialiseDummy2(dummy, root) {
	dummy.onmouseover = function() {
		containingMenu = this.parentNode.parentNode;
		for (var x=0;x<containingMenu.childNodes.length;x++) {
			if (containingMenu.childNodes[x].nodeName.toUpperCase()=="LI") {
				if (containingMenu.childNodes[x].getElementsByTagName("ul").length>0) {
					containingMenu.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
				}
			}
		}
	}
	dummy.onfocus = function() {
		dummy.onmouseover();
	}
}

function initialiseMenu2(menu, starter, root) {
	var leftstarter = false;

	if (menu == null || starter == null) return;
		currentMenu2 = menu;
	

	starter.onmouseover = function() {
		if (currentMenu2) {
			if (this.parentNode.parentNode!=currentMenu2) {
				currentMenu2.style.visibility = "hidden";
				hideAllMenus2(currentMenu2, root);

			}
			if (this.parentNode.parentNode==root) {
				while (currentMenu2.parentNode.parentNode!=root) {
					currentMenu2.parentNode.parentNode.style.visibility = "hidden";
					currentMenu2 = currentMenu2.parentNode.parentNode;
				}
			}
			currentMenu2 = null;
			this.showMenu2();
			}
	}

	menu.onmouseover = function() {
		if (currentMenu2) {
			currentMenu2 = null;
			this.showMenu2();
		}
	}	

	starter.showMenu2 = function() {
		if (!opera2) {
			/*if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft + "px";
				//menu.style.left = this.offsetLeft + this.offsetWidth + "px";
				menu.style.top = this.offsetTop + this.offsetHeight + "px";
				if (menu.offsetWidth < this.offsetWidth) menu.style.width = this.offsetWidth;
			}
			else {
			*/	
				menu.style.left = this.offsetLeft + this.offsetWidth + "px";
				menu.style.top = this.offsetTop + "px";
			//}
		}
		else {
			var rootOffset2 = root.offsetLeft;
			if (this.parentNode.parentNode==root) {
				menu.style.left = this.offsetLeft - rootOffset2 + "px";
				menu.style.width = this.offsetWidth;
				menu.style.top = this.offsetHeight + "px";
			}
			else {
				menu.style.left = this.offsetWidth - rootOffset2 + "px";
				menu.style.top = this.offsetTop + "px"; //menu.style.top - menu.style.offsetHeight + "px";
			}
		}
		menu.style.visibility = "visible";
		currentMenu2 = menu;
	}

	starter.onfocus	 = function() {
		starter.onmouseover();
	}

	menu.onfocus = function() {
//			currentMenu.style.visibility="hidden";
	}

	menu.showMenu2 = function() {
		menu.style.visibility = "visible";
		currentMenu2 = menu;
		stopTime2();
	}

	menu.hideMenu2 = function()  {
		if (!timerOn2) {
			mytimer2 = setInterval("killMenu2('" + this.id + "', '" + root.id + "');", 1000);
			timerOn2 = true;
			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.hideMenu2();
	}
	//menu.onblur = function() {
	//	this.hideMenu2();
	//}
	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 killMenu2(menu, root) {
	if (menu != ""){
		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;
		}
	}
	stopTime();
}

function stopTime2() {
	if (mytimer2) {
		 clearInterval(mytimer2);
		 mytimer = null;
		 timerOn = false;
	}
} 

function getMenus2(elementItem, root) {
	var selectedItem;
	var menuStarter;
	var menuItem;
	for (var x=0;x<elementItem.childNodes.length;x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase()=="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);
				getMenus2(menuItem, root);
				initialiseMenu2(menuItem, menuStarter, root);
			}
			else {
				initialiseDummy2(elementItem.childNodes[x].getElementsByTagName("A").item(0), root);
			}
		}
	}
}
function hideAllMenus2(elementItem, root) {
	for (var x=0;x<elementItem.childNodes.length;x++) {
		if (elementItem.childNodes[x].nodeName.toUpperCase()=="LI") {
			if (elementItem.childNodes[x].getElementsByTagName("ul").length>0) {
				elementItem.childNodes[x].getElementsByTagName("UL").item(0).style.visibility = 'hidden';
				hideAllMenus2(elementItem.childNodes[x].getElementsByTagName("UL").item(0), root);
			}
		}
	}
}
