window.hide_timer = null;
window.hide_timeout = 500;
window.menuactive = new Array();
window.menudefault = new Array();
window.menuclicked = false;

window.prefix_menu = "menu-";
window.prefix_item = "item-";

window.class_navmaindiv = "nav-main";

window.class_itemactive = "aktiv";
window.class_itemnormal = "normal";

window.class_menuactive = "nav-visible";
window.class_menusubactive = "nav-active";
window.class_menunormal = "nav-invisible";


function dropdown(divid, level) {
	if(!browser.dom) return true;
	if(window.menuclicked) return true;
	
	if(typeof window.menuactive != 'object') window.menuactive = new Array();
	if(typeof window.menudefault != 'object') window.menudefault = new Array();
		
	var divmenu = new divobj(getitemid(divid,level));
	var divdropdown = new divobj(getmenuid(divid,parseInt(level)+1));
		
	if(window.hide_timer) {
		window.clearTimeout(window.hide_timer);
		window.hide_timer = null;
	}

	for(var i=0; i<window.menuactive.length; i++)  {
		if(i>=level) {
			var divx = new divobj(getmenuid(window.menuactive[i],i+1));
			divx.hide();
			var divx = new divobj(getitemid(window.menuactive[i],i));
			divx.setclass(window.class_itemnormal);
			window.menuactive[i] = null;
		}
	}

	for(var i=0; i<window.menudefault.length; i++)  {
		if(i>=level) {
			var divx = new divobj(getmenuid(window.menudefault[i],i+1));
			divx.hide();
			var divx = new divobj(getitemid(window.menudefault[i],i));
			divx.setclass(window.class_itemnormal);
		}
	}
	
	// Neu: Positionierung
	if (divmenu.getobject()) {
		var posx = divobj_help_posx(divmenu.getobject());
		var posy = divobj_help_posy(divmenu.getobject());
		divdropdown.moveto(posx,posy);
	}
	
	divmenu.setclass(window.class_itemactive);
	divdropdown.show();

	window.menuactive[level] = divid;
		
	return false;
}

function drophide(timeout) {
	if(window.menuclicked) return true;
	if (typeof timeout == "undefined") {
		timeout = window.hide_timeout;
	}
	if(window.hide_timer) {
		window.clearTimeout(window.hide_timer);
		window.hide_timer = null;
	}
	
	window.hide_timer = window.setTimeout("drophidenow()",timeout);
}

function drophidenow() {

	if(window.menuclicked) return true;
	
	if(typeof window.menuactive === 'object') {
		for(var i=0; i<window.menuactive.length; i++)  {			
			var divx = new divobj(getmenuid(window.menuactive[i],i+1));			
			divx.hide();			
			var divx = new divobj(getitemid(window.menuactive[i],i));
			divx.setclass(window.class_itemnormal);			
			window.menuactive[i] = null;
		}		
	}
	if(typeof window.menudefault === 'object') {
		for(var i=0; i<window.menudefault.length; i++)  {
			var divx = new divobj(getmenuid(window.menudefault[i],i+1));
			divx.show();			
			var divx = new divobj(getitemid(window.menudefault[i],i));
			divx.setclass(window.class_itemactive);
		}
	}
			
	if(window.hide_timer) {
		window.clearTimeout(window.hide_timer);
		window.hide_timer = null;
	}
}

function getmenuid(id, level) { return window.prefix_menu + level + "-" + id }
function getitemid(id, level) { return window.prefix_item + level + "-" + id }


// Passt Hoehe des Inhalts an Dropdown Navigation an
function resizeContent() {
	var pos_footer = document.getElementById('fusszeile').offsetTop;
	var pos_top = document.getElementById('nav-main').offsetTop;
	var pos_bottom = 0;
	var content_height = "";
	var listitems = document.getElementById(window.class_navmaindiv).getElementsByTagName("li");
		
	// Prueft den Abstand aller Navigationspunkte nach oben und behaelt den groessten Wert
	for(var j=0; j<listitems.length; j++) {
		if(listitems[j].id.split("-")[1] == 2) {
			var pos_item = divobj_help_posy(listitems[j]);
			if (pos_item > pos_bottom) { pos_bottom = (pos_item + 20); }
		}		
	}
		
	// Beruecksichtigung Fusszeile und Nav oben
	if (pos_footer < pos_bottom) { pos_bottom += 19; }	
	else if (pos_footer >= pos_bottom) { pos_bottom = pos_footer; }
	
	// Setzt die neue Hoehe des Inhalts
	content_height = (pos_bottom - pos_top) + "px";
	if (document.getElementById('inhalt')) document.getElementById('inhalt').style.height = content_height;
	
}


// Initialisierung des Menüs (Aufruf durch Event-Handler onload)
function init() {

	if (!browser.dom) return;
		
	if(document.getElementById(window.class_navmaindiv)) {

		document.onclick = function(event) { drophide(10); };
		
		var menuobjects = document.getElementById(window.class_navmaindiv).getElementsByTagName("div");
		var listobjects = document.getElementById(window.class_navmaindiv).getElementsByTagName("li")
		
		for(var i=0; i<listobjects.length; i++) {
			if(listobjects[i].className.split(" ").indexOf(window.class_itemactive)>=0) {
				var level = listobjects[i].id.split("-")[1];
				var value = listobjects[i].id.split("-")[2];								
				window.menudefault[level] = value;
			}
		}
		
		for(var i=0; i<menuobjects.length; i++) {		
			if(menuobjects[i].className.split(" ").indexOf(window.class_menusubactive)>=0) {
				var level = menuobjects[i].id.split("-")[1];
				var value = menuobjects[i].id.split("-")[2];
				if(level == 1) {
					var divitem = new divobj(getitemid(value,level-1));
					var divmenu = new divobj(getmenuid(value,level));
					if (divitem.getobject()) {
						var posx = divobj_help_posx(divitem.getobject());
						var posy = divobj_help_posy(divitem.getobject());
						divmenu.moveto(posx,posy);
						divmenu.show(); //neu
					}
				}
			}
		}
		
		for(var j=0; j<listobjects.length; j++) {
			// Setzt die Event-Handler
			listobjects[j].onmouseover = function(event) { dropdown(this.id.split("-")[2], this.id.split("-")[1]); return true; };
			listobjects[j].onmouseout = function(event) { drophide(); };
			listobjects[j].firstChild.onclick = function(event) { window.menuclicked = true; };
		}			

	}
	
	resizeContent();
}

// Event-Handler onload zur Initialisierung des Menüs
window.onload = init;
window.onresize = init;

