function addsfhover(eid) {
	thisEle = document.getElementById(eid);
	if (thisEle.className.indexOf("showNav") == -1) thisEle.className+=" showNav";
}

function removesfhover(eid) {
	thisEle = document.getElementById(eid);
	if (thisEle) {
		thisEle.className=thisEle.className.replace(new RegExp("showNav\\b"), "");
		thisEle.className=thisEle.className.replace(new RegExp(" showNav\\b"), "");
	}
}
function removeHovers () {
	if (cancelTimeout == 0) {
		var nfEls = document.getElementById("nav").getElementsByTagName("li");
		for (var i=0; i<nfEls.length; i++) {
			if (nfEls[i].id.length) removesfhover(nfEls[i].id);
		}
	}
}
function removeSubHovers (mid) {
	var nfEls = document.getElementById(mid).getElementsByTagName("li");
	for (var i=0; i<nfEls.length; i++) {
		if (nfEls[i].className.indexOf("sub") == -1) {
			if (nfEls[i].id.length) removesfhover(nfEls[i].id);
		}
	}
}

var cancelTimeout = 0;
var speed = 750;
var currentMenu = "";
sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("li");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			if (this.id == "") {
				r = Math.floor(Math.random()*50000);
				this.id = "item"+r;
			}
			if (this.id.indexOf("menu") > -1) {
				removeHovers();
				currentMenu = this.id;
			} else if (currentMenu != "") {
				removeSubHovers(currentMenu);
			}
			cancelTimeout = 1;
			removeHovers();
			addsfhover(this.id);
		}
		sfEls[i].onmouseout=function() {
			try {xo = clearTimeout(xx);} catch(err) {}
			xx = setTimeout('removeHovers()', speed);
			cancelTimeout = 0;
		}
	}
}

if (window.attachEvent) window.attachEvent("onload", sfHover);
if (window.addEventListener) window.addEventListener("load", sfHover, false);