function hasClass(el, className) {
	return (' ' + el.className + ' ').indexOf(' ' + className + ' ') >= 0;
}

function addClass(el, className) {
	el.className = el.className && !hasClass(el, className) ? el.className + ' ' + className : className;
}

function removeClass(element, className) {
	if (element && element.className) {
		var index = (' ' + element.className + ' ').indexOf(' ' + className + ' ');
		var length = className.length;				
		if (index > 0) { index--; length++; }
		element.className = element.className.substring(0, index) + element.className.substring(index + length + 1);
	}
}

function addHoverClass(tagName, className) {
	var elems = document.getElementsByTagName(tagName);
	
	for (var i = 0; i < elems.length; i++) {
		elems[i].onmouseover = function(event) { addClass(this, className); }
		elems[i].onmouseout = function(event) { removeClass(this, className); }
	}
}

var oldload = window.onload;

window.onload = function( ) {
	if (navigator.appName == "Microsoft Internet Explorer") { 
		addHoverClass("li", "li_hover"); 
		
		// fix annoying IE menu flicker; more details at: http://www.mister-pixel.com/
		try {
			document.execCommand("BackgroundImageCache", false, true);
		} catch(err) {}

	}
	
	if (oldload) { 
		oldload(); 
	}
}