/**
 * Get elements by class name
 *
 * @param string className
 * @param object parent
 *
 * @return array
 *
 * @TODO: Not an effective algorithm
 */
function getElementsByClass(tagName, className, parent)
{
	// Result
	var result = [];
	
	// Parent defaults to this document
	if (!parent) {
		parent = document;
	}
	
	// Get all elements of the parent
	var elements = parent.getElementsByTagName(tagName);
	
//	console.debug("Document contains " + elements.length + " elements");
	
	// Loop through each element
	for (var i = 0; i < elements.length; i++) {
		var classes = elements[i].className.split(" ");
//		console.debug("Element #" + i + " with classes: " + elements[i].className);
		// Loop through each class
		for (var j = 0; j < classes.length; j++) {
//			console.debug("\t->" + classes[j]);
			if (classes[j] == className) {
				result.push(elements[i]);
				break;
			}
		}
	}
	
	return result;
};

/**
 * Sets up hover emulation for browsers that don't fully support :hover, i.e. Internet Explorer
 */
setupMenuHover = function() {
	var elements = getElementsByClass("ul", "menu", document);
	for (var i=0; i < elements.length; i++) {
		for (var j=0; j < elements[i].childNodes.length; j++) {
			elements[i].childNodes[j].onmouseover=function() {
				this.className+=" hover";
			}
			elements[i].childNodes[j].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" hover\\b"), "");
			}
		}
	}
}

if (window.attachEvent) window.attachEvent("onload", setupMenuHover);