function init_drop_down() {
	drop_down('nav', 'hover', 250);
}

//	dropDownId	string	ID of the UL containing the drop down
//	hoverClass	string	Class to be applied to the LIs on mouse over
//	mouseOffDelay	int	Delay from when the mouse is lifted from the drop down until hoverClass is removed (in milliseconds)
function drop_down(dropDownId, hoverClass, mouseOffDelay) {
	if(dropDown = document.getElementById(dropDownId)) {
		var listItems = dropDown.getElementsByTagName('li');
		for(var i = 0; i < listItems.length; i++) {
			listItems[i].onmouseover = function() {
				this.className += ' ' + hoverClass;
			}
			listItems[i].onmouseout = function() {
				var that = this;
				setTimeout(function() {
					that.className = that.className.replace(hoverClass, "")
				}, mouseOffDelay);
				this.className = that.className;
			}
			
			var anchor = listItems[i].getElementsByTagName('a');
			anchor = anchor[0];
			anchor.onfocus = function() {
				if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == 'LI') {
					this.parentNode.parentNode.parentNode.parentNode.parentNode.className += ' ' + hoverClass;
				}
				if(this.parentNode.parentNode.parentNode.nodeName == 'LI') {
					this.parentNode.parentNode.parentNode.className += ' ' + hoverClass;
				}
				if(this.parentNode.nodeName == 'LI') {
					this.parentNode.className += ' ' + hoverClass;
				}
			}
			anchor.onblur = function() {
				if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == 'LI') {
					this.parentNode.parentNode.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(hoverClass, "");
				}
				if(this.parentNode.parentNode.parentNode.nodeName == 'LI') {
					this.parentNode.parentNode.parentNode.className = this.parentNode.parentNode.parentNode.className.replace(hoverClass, "");
				}
				if(this.parentNode.nodeName == 'LI') {
					this.parentNode.className = this.parentNode.className.replace(hoverClass, "");
				}
			}
		}
	}
}

// Add Load Event Function
// borrowed from Simon Willison: http://simonwillison.net/2004/May/26/addLoadEvent/
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

addLoadEvent(init_drop_down);