/*

===================================================
XHTML/CSS/DHTML Semantically correct drop down menu 
===================================================
Author: Sam Hampton-Smith
Site: http://www.hampton-smith.com

Description:	This script takes a nested set of <ul>s
		and turns it into a fully functional
		DHTML menu. All that is required is 
		the correct use of class names, and
		the application of some CSS.
		
Use:		Please leave this information at the
		top of this file, and it would be nice
		if you credited me/dropped me an email
		to let me know you have used the menu.
		sam AT hampton-smith.com


---------------------------------------------------
Credits: 	Inspiration/Code borrowed from Dave Lindquist (http://www.gazingus.org)
		Menu hide functionality was aided by some code I found on http://www.jessett.com/

*/
	var currentMenu = null;
	var mytimer = null;
	var timerOn = false;
	var opera = window.opera ? true : false;
	var highlight = 0;
	

	if (!document.getElementById)
		document.getElementById = function() { return null; }
	
	function initialiseMenu(menu, starter, root) {
//		var menuId = menu.attributes(0).value;
		var leftstarter = false;
	
		if (menu == null || starter == null) return;
			currentMenu = menu;
	
		starter.onmouseover = function() {
			//alert(currentMenu.id);		

			if (currentMenu) {
				//alert(this.parentNode.parentNode.id + ' ' + currentMenu.id);
				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();	
				
				//alert(highlight);
				
				for(l=1;l<8;l++){
					if(highlight == l)
						for(j=1;j<8;j++){
							if(highlight != j){
								eval(changeImages('menu_lt5_0'+j, 'images/menu_lt5_0'+j+'.gif'));
								}
						}
			
				}	
				
				if(currentMenu.id == "menu1")
					changeImages('menu_lt5_01', 'images/menu_lt5_01-over.gif');
				else if	(currentMenu.id == "menu2")
					changeImages('menu_lt5_02', 'images/menu_lt5_02-over.gif');
				else if	(currentMenu.id == "menu3")
					changeImages('menu_lt5_03', 'images/menu_lt5_03-over.gif');			
				else if	(currentMenu.id == "menu4")
					changeImages('menu_lt5_04', 'images/menu_lt5_04-over.gif');	
				else if	(currentMenu.id == "menu5")
					changeImages('menu_lt5_05', 'images/menu_lt5_05-over.gif');
				else if	(currentMenu.id == "menu6")
					changeImages('menu_lt5_06', 'images/menu_lt5_06-over.gif');
				else if	(currentMenu.id == "menu7")
					changeImages('menu_lt5_07', 'images/menu_lt5_07-over.gif');	
							
	        	}
		}
	
		menu.onmouseover = function() {
			if (currentMenu) {
				currentMenu = null;
				this.showMenu();
	        	}
		}	
	
		starter.showMenu = function() {
			//if (!opera) {
			if (true) {
				if (this.parentNode.parentNode==root) {
					if (is_ie5 && is_win2k)
						menu.style.left = this.offsetLeft + "px";
					else 
						menu.style.left = this.offsetLeft + 181 + "px";
					//menu.style.top = "0px";
					if(is_safari)
						menu.style.top = this.offsetTop - 14 + "px";
					else if(is_nav6up || is_fx || is_fb || is_moz)
						menu.style.top = this.offsetTop -11 + "px";	
					else 
						menu.style.top = this.offsetTop + "px";
					
				}
				else {
				 	menu.style.left = this.offsetLeft + this.offsetWidth + "px";
				 	menu.style.top = this.offsetTop + "px";
				}
			}
			else {
				if (this.parentNode.parentNode==root) {
					menu.style.left = this.offsetLeft + "px";
					menu.style.top = this.offsetHeight + "px";
				}
				else {
				 	menu.style.left = this.offsetWidth + "px";
//					alert(this.offsetTop);
				 	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) {
				//alert(this.id);
				mytimer = setInterval("killMenu('" + this.id + "', '" + root.id + "');", 500);
				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();
			
		}

		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";
			
			
			//menu.hideMenu();
		}
}
	function killMenu(menu, root) {
		var menu = document.getElementById(menu);
		var root = document.getElementById(root);
		menu.style.visibility = "hidden";
		
		for(l=1;l<8;l++){
			eval(changeImages('menu_lt5_0'+l, 'images/menu_lt5_0'+l+'.gif'));
		}

		if(menu.id == "menu1")
			changeImages('menu_lt5_01', 'images/menu_lt5_01.gif');
		else if	(menu.id == "menu2")
			changeImages('menu_lt5_02', 'images/menu_lt5_02.gif');
		else if	(menu.id == "menu3")
			changeImages('menu_lt5_03', 'images/menu_lt5_03.gif');			
		else if	(menu.id == "menu4")
			changeImages('menu_lt5_04', 'images/menu_lt5_04.gif');	
		else if	(menu.id == "menu5")
			changeImages('menu_lt5_05', 'images/menu_lt5_05.gif');
		else if	(menu.id == "menu6")
			changeImages('menu_lt5_06', 'images/menu_lt5_06.gif');
		else if	(menu.id == "menu7")
			changeImages('menu_lt5_07', 'images/menu_lt5_07.gif');	
			
			
	//	if(highlight == 0)
	//		eval(changeImages('menu_lt5_0'+l, 'images/menu_lt5_0'+l+'.gif'));
			

		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;
		}
	} 

	window.onload = function() {
		//alert("loaded");
		var root = document.getElementById("menuList");
		getMenus(root, root);
		preloadImages();
		//alert("About to execute getmenus");
		
	}

function getMenus(elementItem, root) {
	var selectedItem;
	var menuStarter;
	var menuItem;
	//alert("in getmenus");
	//alert(elementItem.childNodes.length);
	for (var x=0;x<elementItem.childNodes.length;x++) {
		//alert(elementItem.childNodes[x].nodeName);
		if (elementItem.childNodes[x].nodeName=="LI") {
			//alert("Yes!");
			if (elementItem.childNodes[x].getElementsByTagName("UL").length>0) {
				//alert("Set up");
				menuStarter = elementItem.childNodes[x].getElementsByTagName("A").item(0);
				menuItem = elementItem.childNodes[x].getElementsByTagName("UL").item(0);
				getMenus(menuItem, root);
				initialiseMenu(menuItem, menuStarter, root);
			}
		}
	}
	//return true;
}