/**
 * Menuing system written by Tino Zijdel, http://therealcrisp.xs4all.nl/upload/menu_hori.html
 */

var menu = null;
function init_menu() {
	menu = document.getElementById('menu');
	var li = menu.getElementsByTagName('li'), i = li.length;
	while (i--) li[i].onmouseover = showMenu;
	menu.onmouseout = timeout;
	menu.onmouseover = cleartimer;
}

var timer = null;
function timeout() {
	timer = setTimeout('hideMenus(menu, null)', 500);
}

function cleartimer() {
	if (timer) {
		clearTimeout(timer);
		timer = null;
	}
}

function showMenu() {
	var ul = this.parentNode;
	
	while (ul) {
		if (ul.tagName.toLowerCase() == 'ul') {
			hideMenus(ul, this);
			break;
		}

		ul = ul.parentNode;
	}

	ul = this.firstChild;
	while (ul) {
		if (ul.nodeType == 1 && ul.tagName.toLowerCase() == 'ul') {
			$(ul).fadeIn('fast');
			break;
		}

		ul = ul.nextSibling;
	}
}

function hideMenus(level, skipli) {
	var stack = [level], i = 0, li, j, el, tag;
	do {
		li = stack[i].childNodes, j = li.length;
		while (j--) {
			el = li[j];
			if (el.nodeType == 1 && el != skipli) {
				tag = el.tagName.toLowerCase();
				if (tag == 'li') {
					stack[i++] = el;
				} else if (tag == 'ul' && el.style.display == 'block') {
					stack[i++] = el;
					$(el).fadeOut('fast');
				}
			}
		}
	}
	while (i--);
}