var menu_element;
var submenu_element;
var menu_element_aktiv;
var submenu_element_aktiv;
var submenu_hide_timeout = 0.1; //sekunden
var hideExecute = false;

function hideAllSubMenus()
{
	if($('menu'))
	{
		$('menu').descendants().each(function(top) {
		 if("submenue" == top.className){
		    if(Element.visible(top)) {
		    	top.hide();
		    }
		 }
		});
	}
	else if($('menuhome'))
	{
		$('menuhome').descendants().each(function(top) {
		 if("submenue" == top.className){
		    if(Element.visible(top)) {
		    	top.hide();
		    }
		 }
		});
	}
	aktiv_id = -1;
	aktiv_sub_id = -1;
	possible_sub_id = -1;
}

var aktiv_id = -1;
var aktiv_sub_id = -1;
var possible_sub_id = -1;

function showSubMenu(id) {
	hideAllSubMenus();
	//alert('showSubmenu! submenu'+id);
	$('submenu'+id).show();
	aktiv_id = id;
	possible_sub_id = id;
	$('menu'+id).onmouseout = hideSubMenu;
	$('submenu'+id).onmouseover = hoverSubMenu;
	$('submenu'+id).onmouseout = nohoverSubMenu;
}

function hideSubMenu() {
	aktiv_id = -1;
	if (hideExecute) hideExecute.stop();
	if (aktiv_id == -1 && aktiv_sub_id == -1) hideExecute = new PeriodicalExecuter(hideSubMenuNow, submenu_hide_timeout);
}

function hoverSubMenu() {
	aktiv_sub_id  = possible_sub_id;
}

function nohoverSubMenu() {
	aktiv_sub_id = -1;
	if (hideExecute) hideExecute.stop();
	if (aktiv_id == -1 && aktiv_sub_id == -1) hideExecute = new PeriodicalExecuter(hideSubMenuNow, submenu_hide_timeout);
}

function hideSubMenuNow() {
	if (hideExecute) hideExecute.stop();
	if (aktiv_id == -1 && aktiv_sub_id == -1) hideAllSubMenus();
}

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 (typeof menu_element == "object") {
		menu_element.onmouseout = "";
		menu_element_aktiv = false;
		submenu_tryhide();
	}
	$('breadcrumbs').innerHTML('out');
}

function submenu_hover() {
	if (typeof submenu_element == "object") {
		submenu_element.onmouseout = submenu_out;
		submenu_element_aktiv = true;
	}
}

function submenu_out() {
	if (typeof submenu_element == "object") {
		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() {
	if($('menu'))
	{
		$('menu').descendants().each(function(top) {
		 if((top.hasClassName("submenu")) & ("UL" == top.tagName)){
		    if(Element.visible(top)) {
		    	top.hide();
		    }
		 }
		});
	}
	else if($('menuhome'))
	{
		$('menuhome').descendants().each(function(top) {
		 if((top.hasClassName("submenu")) & ("UL" == top.tagName)){
		    if(Element.visible(top)) {
		    	top.hide();
		    }
		 }
		});
	}
}

script_loaded = true;



