addIE6Hover = function (menu, hasPersistence) {
	var lis = menu.childNodes;
	if (hasPersistence) addShowOn();
	for (var i=0; i<lis.length; i++) {
		lis[i].onmouseover = function() {
			this.className += " iehover";
			if (hasPersistence) clearShowOn();
		}
		lis[i].onmouseout = function() {
			this.className = this.className.replace(new RegExp(" iehover\\b"), "");
			if (hasPersistence) addShowOn();
		}
	}
}

addMenuHover = function (menu) {
	var lis = menu.childNodes;
	addShowOn();
	for (var i=0; i<lis.length; i++) {
		lis[i].onmouseover = function() {
			clearShowOn();
		}
		lis[i].onmouseout = function() {
			addShowOn();
		}
	}
}

addShowOn = function () {
	document.getElementById(showOn).className += " on";
}

clearShowOn = function () {
	document.getElementById(showOn).className = document.getElementById(showOn).className.replace("on", "");
}

addTabPersistence = function (tabsID) {
	if (document.getElementById(tabsID)) {
		var tabs = document.getElementById(tabsID).getElementsByTagName("A");
		for (var i=0; i<tabs.length; i++) {
			tabs[i].onclick = function() {
				lastTab.className = "";
				this.className = "on";
				lastTab = this;
			}
		}
		lastTab = tabs[0];
		lastTab.className = "on";
	}
}

ie6Hover = function () {
	// duplicate each line for any additional groups of menus that need to have the "iehover" class dynamically added to them
	addIE6Hover(document.getElementById("topnav"));
	addIE6Hover(document.getElementById("nav"), true);
	addTabPersistence("tabs");
}

allHover = function () {
	addMenuHover(document.getElementById("nav"));
	addTabPersistence("tabs");
}

if (window.attachEvent) {
	window.attachEvent("onload", ie6Hover);
} else {
	document.addEventListener("DOMContentLoaded", allHover, false);	
}