var submenu_selected = false;
var submenu_current = null;
var menu_timer = null;
var menu_timer_value = 10000;

//
// Change the visibility state of a submenu.
//   @params
//	father - the container element (the submenu) that holds the items
//	status - the visibility status to apply; it can be "visible" or "hidden"
// 
function submenu_f(father, status) {
	var item = 1;
	var item_name = "sub" + father + "_" + item;
	var r = /menu_item_([0-9]+)/i;

	var val = r.exec(father);
	if(val) {
		submenu = document.getElementById("submenu_" + val[1]);

		if (submenu) {
			if(submenu.style.visibility == "visible" && status == "visibile") {
				submenu.style.visibility = "hidden";
			}
			else {
				submenu.style.visibility = status;
				submenu.parentNode.onmouseout = hide_menu;
				submenu.parentNode.onmouseover = show_menu;
			}
		}
	}

	return true;	
}

//
// Event handler for onmouseover
//
//	clear the timer for hiding the menu
//
function show_menu(evt) {
	if(!evt) var evt = window.event;
	var tg = (window.event) ? evt.srcElement : evt.target;

	if(tg.nodeName == "UL" || tg.nodeName == "LI") {
		try {	
			window.clearTimeout(menu_timer); 
			menu_timer = window.setTimeout("hide_all_timer()", menu_timer_value)
		}
		catch(err) { } 
		
/*		try {	window.clearTimeout(menu_timer); }
		catch(err) { } */
	}
}

//
// Event handler for onmouseout
//
// 	set a timer to hide the menu
//
function hide_menu(evt) {
	if(!evt) var evt = window.event;
	var tg = (window.event) ? evt.srcElement : evt.target;

	if(tg.nodeName == "UL" || tg.nodeName == "LI") {
		menu_timer = window.setTimeout("hide_all()", 1000);
	}
}

//
// Hide all submenus
//
function hide_all() {	
	var i = 1;
	menu_i = document.getElementById("menu_item_" + i);
	while(menu_i) {
		father = "menu_item_" + i;
		submenu_f(father, "hidden");

		i ++; menu_i = document.getElementById("menu_item_" + i);
	}
}

//
// Hide all submenus called from a timer
function hide_all_timer() {
	hide_all();
	menu_timer = window.setTimeout("hide_all_timer()", menu_timer_value);
}

//
// Event handler for onclick
//
function mouseclick_menu(evt) {
	if(!evt) var evt = window.event;
	var tg = (window.event) ? evt.srcElement : evt.target;

	if(tg.nodeName == 'A') {
		tg = tg.parentNode;
		while(tg.nodeName != 'TD' && tg) tg = tg.parentNode;
	}

	hide_all();

	if(submenu_current == tg.id) {
		submenu_f(tg.id, "hidden");
		submenu_selected = false;
		submenu_current = null;
	}
	else {
		submenu_f(tg.id, "visible"); 

		submenu_current = tg.id;
		submenu_selected = true;
	}

	return true;
}

//
// Event handler for mouseover
//
function mouseover_menu(evt) {
/*	if(typeof(submenu_selected) == undefined) return; */
/*	if(!submenu_selected) return; */

	if(!evt) var evt = window.event;
	var tg = (window.event) ? evt.srcElement : evt.target;

	if(tg.nodeName == 'A') {
		tg = tg.parentNode;
		while(tg.nodeName != 'TD' && tg) tg = tg.parentNode;
	}

	hide_all();
	submenu_f(tg.id, "visible");
	submenu_current = tg.id;

	return true;
}

// initialize everything and attach the events to the corresponding document elements
function init() {
	/*
	 * Register here any scripts that have to be run when a page loads
	 */
	if(window.beauty_init) beauty_init();
	if(window.init_forms) init_forms();
	if(window.init_jobs) init_jobs();
	if(window.init_stock) init_stock();

	for(var i=1;i<=10; i++) {
		elem = document.getElementById("menu_item_" + i);
		if(elem) {
			elem.onmouseover = mouseover_menu;
			elem.onmouseout = hide_menu;
		}

//		elem.onclick = mouseclick_menu;
//		elem.onmouseover = mouseover_menu;
	}
}

menu_timer = window.setTimeout("hide_all_timer()", menu_timer_value);
