
isGeko = (navigator.product) && (navigator.userAgent.search("Safari") == -1);		

if (!isGeko) {
	initMenu = function() {
		var listItems = document.getElementById("navul").getElementsByTagName("li"); //LI
		for (var i=0; i<listItems.length; i++) {
			if (listItems[i].childNodes.length > 2) {
				listItems[i].onmouseover=function() {
					this.className += " over";
					document.getElementById("navwrapper").className += " over";
				}
				listItems[i].onmouseout=function() {
					this.className = this.className.replace(new RegExp(" over\\b"), "");
					document.getElementById("navwrapper").className = document.getElementById("navwrapper").className.replace(new RegExp(" over\\b"), "");
				}
			}
		}
	}
}
else {
	initMenu = function() {
		/* 
		This longer slower function is only required on Geko browsers 
		which don't provide a mouseout event in some cases.
		
		Note the extra clean up code in the mouse over function, and the
		broader regular expressions.
		*/
		var listItems = document.getElementById("navul").getElementsByTagName("LI");
		menuItems = new Array();
		for (var i=0; i<listItems.length; i++) {
			if (listItems[i].childNodes.length > 1) {
				menuItems[menuItems.length] = listItems[i]; // stores menu objects for clean up later.
				listItems[i].onmouseover=function() {
					for (var j=0; j<menuItems.length; j++) {
						// clean up all menu objects in case they have been missed by mouse a out.
						menuItems[j].className = menuItems[j].className.replace(new RegExp("( )?over\\b", "g"), ""); 
					}
					this.className += " over";
					document.getElementById("navwrapper").className += " over";
				}
				listItems[i].onmouseout=function() {
					this.className = this.className.replace(new RegExp("( )?over\\b", "g"), "");
					document.getElementById("navwrapper").className = document.getElementById("navwrapper").className.replace(new RegExp("( )?over\\b", "g"), "");
				}
			}
		}
	}
}

window.onload = initMenu;

