var menus = Array();

function showmenu(id) { 
	var item = document.getElementById(id);
	var menu = document.getElementById(id + "_menu");
	
	if (item.parentNode.className == "menu") {
		var is_submenu = false; 
		for (var i = 0; i < menus.length; i++) 
			if (item.parentNode.id == menus[i]) { is_submenu = true; break; }
		if (is_submenu) 
			showmenu(item.parentNode.id.replace('_menu'));
	}
	
	menu.style.display = 'block'; 
}

function hidemenus() {
	for (var i = 0; i < menus.length; i++) {
		document.getElementById(menus[i] + "_menu").style.display = 'none';
	}
}

function prepare_menu(menu) {

	for (var i = 0; i < menu.childNodes.length; i++) {
		var item = menu.childNodes[i];
		if (! item.className) continue;
		if (item.className.substr(item.className.length - 5, 5) != '_item') continue;
		
		var is_submenu = false; 
		var submenu;
		for (var j = 0; j < item.childNodes.length; j++) {
			var subitem = item.childNodes[j];
			if (! subitem.className) continue;
			if (subitem.className.substr(subitem.className.length - 4, 4) == 'menu') {
				is_submenu = true;
				submenu = subitem;
				break;
			}
		}
		
		if (is_submenu) {
			menus.push(item.id);
			prepare_menu(submenu);
		}
	}
}

function prepare(id) {
	var d = document.getElementById(id);
	prepare_menu(d);
	
	for (var i = 0; i < menus.length; i++) {
		var item = document.getElementById(menus[i]);
		var menu = document.getElementById(menus[i] + "_menu");
		
		item.onmouseover = function() { hidemenus(); showmenu(this.id); }
		menu.onmouseover = function() { hidemenus(); showmenu(this.id.replace("_menu", "")); }

		item.onmouseout = function() { hidemenus(); }
		menu.onmouseout = function() { hidemenus(); }
	}
}
