var menu_element;
var submenu_element;
var menu_element_aktiv;
var submenu_element_aktiv;
var submenu_hide_timeout = 2; //sekunden
var hideExecute = false;

function menu_hover(opener, element_nr){
	element = $('submenu'+element_nr);
	
	if (element) {
		hideAll();
		element.show();
		menu_element = Element.extend(opener);
		submenu_element = element;
		menu_element_aktiv = true;
		submenu_element_aktiv = false;
		menu_element.onmouseout = menu_out;
	}
	
	return false;
}

function menu_out() {
	if (menu_element) {
		menu_element.onmouseout = "";
		menu_element_aktiv = false;
		submenu_tryhide();
	}
}

function submenu_hover() {
	if (submenu_element) {
		submenu_element.onmouseout = submenu_out;
		submenu_element_aktiv = true;
	}
}

function submenu_out() {
	if (submenu_element) {
		submenu_element.onmouseout = "";
		submenu_element_aktiv = false;
		submenu_tryhide();
	}
}

function submenu_tryhide() {
	if (!submenu_element_aktiv && !menu_element_aktiv) {
		if (hideExecute) hideExecute.stop();
		hideExecute = new PeriodicalExecuter(submenu_hide, submenu_hide_timeout);
	}
}

function submenu_hide() {
	if (hideExecute) hideExecute.stop();
	if (!submenu_element_aktiv && !menu_element_aktiv) {
		hideAll();
	}
}

function hideAll() {
	$('menu').descendants().each(function(top) {
	 if((top.hasClassName("submenu")) & ("UL" == top.tagName)){
	    if(Element.visible(top)) {
	    	top.hide();
	    }
	 }
	});
}



/*
var act_elements = new Array();
var act_active = new Array();

function tg(element_nr){
	element = $('s'+element_nr);
	if (element) {
		hideAll();
		element.show();
		opener.onmouseout = ele_0_out;
	}
	return false;
}

function act(actor) {
	if (actor == act_elements[0]) {
		actor.onmouseout = function() { ele_0_out() };
		act_active[0] = 1;
	} else if (actor == act_elements[1]) {
		actor.onmouseout = function() { ele_1_out() };
		act_active[1] = 1;
	}
	//$('output').value = $('output').value + "rein "+act_active[0]+""+act_active[1]+"\n";
}


function ele_0_out() {
	act_out(0);
}

function ele_1_out() {
	act_out(1);
}

function act_out(actor) {
	if (actor == 0) {
		$(act_elements[0]).onmouseout = "";
		act_active[0] = 0;
		//$('output').value = $('output').value + "ele 0 auf 0\n";
	} else if (actor == 1) {
		$(act_elements[1]).onmouseout = "";
		act_active[1] = 0;
		//$('output').value = $('output').value + "ele 1 auf 0\n";
	}
	if (act_active[0] == 0 && act_active[1] == 0) {
		window.setTimeout("act_hide()",500);
	}
	//$('output').value = $('output').value + "raus "+act_active[0]+""+act_active[1]+"\n";
}

function act_hide() {
	//$('output').value = $('output').value + "hide "+act_active[0]+""+act_active[1]+"\n";
	if (act_active[0] == 0 && act_active[1] == 0) {
		hideAll2();
		act_elements[0] = null;
		act_elements[1] = null;
	}
}

function hideAll() {
	$('menu').descendants().each(function(top) {
	 if((top.hasClassName("submenu")) & ("UL" == top.tagName)){
	    if(Element.visible(top)) {
	    	top.hide();
	    }
	 }
	});
}

function hideAll2() {
	$('menu').descendants().each(function(top) {
	 if(("submenue" == top.className) & ("UL" == top.tagName)){
	    if(Element.visible(top)) {
	    	top.hide();
	    }
	 }
	});
}*/

