function getElementsByTag(elem, tagName) {
	var children = [];
	
	for (var i = 0; i < elem.childNodes.length; i++) {
		if (elem.childNodes[i].tagName == tagName) {
			children.push(elem.childNodes[i]);
		}
		
		children = children.concat(getElementsByTag(elem.childNodes[i], tagName));
	}
	
	return children;
}


function hasClass(element, className) {
	return (' ' + element.className + ' ').indexOf(' ' + className + ' ') >= 0;
}

function addClass(element, className) {
	if (!element.className) {
		element.className = className;
	} else {
		if (!hasClass(element, className)) element.className += ' ' + className;
	}
}

function removeClass(element, className) {
	if (element && element.className && hasClass(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 initMenu() {
	var timeout = 500;
	var closetimer = 0;
	var ddmenuitem = 0;
	var mheader = 0;
	
	function open_menu(){
		addClass(this, "hover");
		
		canceltimer();
		close_menu();
		
		ddmenuitem = getElementsByTag(this, "UL")[0];
		ddmenuitem.style.visibility = "visible"; 
		
		mheader = getElementsByTag(this, "A")[0]; 
		addClass(mheader, 'hover');
	}
	
	function close_menu() {
		removeClass(this, "hover");
		
		if (ddmenuitem) {
			ddmenuitem.style.visibility = 'hidden';
			removeClass(mheader, 'hover');
		}
	}
	
	function timer() {
		closetimer = window.setTimeout(close_menu, timeout);
	}
	
	function canceltimer() {
		if (closetimer) {
			window.clearTimeout(closetimer);
			closetimer = null;
		}
	}
	
	var liArray = getElementsByTag(document.getElementById("menu-container"), "LI");
	
	for (var i = 0; i < liArray.length; i++) {
		if (hasClass(liArray[i], "sub")) {
			liArray[i].onmouseover = open_menu;
			liArray[i].onmouseout = timer;
		} else {
			
			if (hasClass(liArray[i], "topics-sub")) {
				liArray[i].onmouseover = function() { addClass(this, "hover"); }
				liArray[i].onmouseout = function() { removeClass(this, "hover");};
			}
		}
	}
	
	document.onclick = close_menu;
}