// JavaScript Document
// beim Laden initialiesieren
window.onload = init;
timerHauptmenu = null;

// initialisieren:
function init() {
	// Mouseoverfunktionen dem Hauptmenü hinzufügen
	lis = document.getElementById("nav").getElementsByTagName("LI");
	for(j=0;j<lis.length;j++) {
		//Keine Hauptmenüpunkte
		if(lis[j].className.indexOf("ebene1") != "0") {
			if(lis[j].className.indexOf("selected") > -1) {
				if(lis[j].className.indexOf("ebene2") > -1) {
					liParent = lis[j].parentNode.parentNode.parentNode;
					liParent.className = liParent.className.replace("open", "openselected"); //.replace("open", "openselected");
				} else {
					if(lis[j].className.indexOf("ebene3") > -1) {
						liParent = lis[j].parentNode.parentNode.parentNode;
						link = liParent.getElementsByTagName("A")[0];
						link.className = link.className.replace("open", "openselected");
						liParent = lis[j].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
						liParent.className = liParent.className.replace("open", "openselected"); //.replace("open", "openselected");
					} 
				}
				link = liParent.getElementsByTagName("A")[0];
				link.className = link.className.replace("open", "openselected");
			}
			if(lis[j].className.match("ebene2")) {
				addEvent(lis[j], "mouseover", highliteHauptmenu);
			}
		} 
		if(lis[j].className.match("ebene1")) {
// 			addEvent(lis[j], "mouseover", setMenuTimer);
			addEvent(lis[j], "mouseout", setMenuTimer);
		}
		if(lis[j].className.match("ebene3")) {
// 			addEvent(lis[j], "mouseover", clearTimer);
// 			addEvent(lis[j], "mouseout", setMenuTimer);
		}
		if(lis[j].className.match("ebene2")) {
// 			addEvent(lis[j], "mouseout", setMenuTimer);
		}
// 		if(lis[j].innerText.match("Presseinfos")) {
// 			presseMenu = lis[j].getElementsByTagName("DIV")[0];
// 			if(presseMenu) {
// 				presseMenu.className = "ebene3";
// 				addEvent(lis[j], "mouseover", highliteHauptmenu);
// 			}
// 		}
		
		


// 		if(lis[j].className.indexOf("ebene1") == "0") {
// 			
// 		addEvent(lis[j], "mouseout", setMenuTimer);
// 		addEvent(lis[j], "click", goToChildHref);
	}
}

// Event-Hilfsfunktionen Funktionen
function addEvent(obj, evType, fn){
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    return false;
	}
}

function getGetTarget(evt) {
	if(evt.srcElement) return evt.srcElement;
	else return evt.target;
}
function clearTimer() {
	clearTimeout(timerHauptmenu);
}
// Timer-Funktionen
function setMenuTimer() {
	clearTimeout(timerHauptmenu);
	timerHauptmenu = setTimeout("downliteHauptmenu()", 1000);
}

/* Mouseover-Funktionen */

// Ändert die Klasse des feuernden Elements
// Klappmenü anzeigen
function highliteHauptmenu(evt) {
// 	downliteHauptmenu();
	clearTimeout(timerHauptmenu);
	obj = getGetTarget(evt);
// 	if (obj.nodeName == "A" && obj.className.match("ebene2")) {
	if (obj.nodeName == "A" && obj.className.match("ebene2")) {
		mySubmenu = obj.parentNode.getElementsByTagName("DIV")[0];
		divs = document.getElementById("nav").getElementsByTagName("DIV");
		for(j=0;j<divs.length;j++) {
			if(divs[j].className.match("ebene3")) {
				if (divs[j] != mySubmenu) {
					divs[j].style.display = "none";
				}
			}
		}
		if(mySubmenu) {
			if(mySubmenu.getElementsByTagName("LI").length > 0) {
				mySubmenu.style.display = "block";
				mySubmenu.style.left = obj.parentNode.offsetLeft;
				mySubmenu.style.top = obj.parentNode.offsetTop+20;
				mySubmenu.style.width = obj.parentNode.offsetWidth+10;
			}
		}
	}
}

function highliteFolgemenu(evt) {
	
	clearTimeout(timerHauptmenu);
	obj = getGetTarget(evt);
	if (obj.nodeName == "A") {
		obj.className = "ebene2_aktiv";
		ul = obj.parentNode.getElementsByTagName("UL");
		if (ul[0] != null && ul[0].nodeName=="UL") {
			ul[0].className = ul[0].className.replace("normal", "over");
 			downliteFolgemenuLevel3But(ul[0]);
		} else {
			downliteFolgemenuLevel3(obj);
		}
	}
}

// Diese funktion setzt alle Hauptmenupunkte zurück
function downliteHauptmenu() {
// 	submenu = document.getElementById("submenu").style.display="none";
	divs = document.getElementById("nav").getElementsByTagName("DIV");
	for(j=0;j<divs.length;j++) {
		if(divs[j].className.match("ebene3")) {
			divs[j].style.display = "none";
		}
	}
}
// alle anderen Klappmenüs ausblenden
function downliteHauptmenuBut(current) {
	lis = document.getElementById("menu").getElementsByTagName("A");
	for(i in lis) {
		if(lis[i].className=="aktiv") lis[i].className="";
	}
	uls = document.getElementById("menu").getElementsByTagName("ul");
	for(j=0;j<uls.length;j++) {
		if(uls[j].nodeName == "UL" && uls[j] != current) uls[j].className = uls[j].className.replace("over", "normal");
	}
}
// Alle Menüs der 3. Ebene ausblenden
function downliteFolgemenuLevel3(level2) {
	ul = level2.parentNode.parentNode;
	lis = ul.getElementsByTagName("A");
	for(i in lis) {
		if(lis[i].className=="ebene2_aktiv") lis[i].className="ebene2";
	}
	uls = ul.getElementsByTagName("UL");
	for(j in uls) {
 		if(uls[j].nodeName == "UL") uls[j].className = uls[j].className.replace("over", "normal");
	}
}

// Andere Menüs der 3. Ebene ausblenden
function downliteFolgemenuLevel3But(current) {
	ul = current.parentNode.parentNode;
	lis = ul.getElementsByTagName("A");
	for(i in lis) {
		if(lis[i].className=="ebene2_aktiv" && lis[i] != current.parentNode.getElementsByTagName("A")[0]) lis[i].className="ebene2";
	}
	uls = ul.getElementsByTagName("UL");
	for(j in uls) {
 		if(uls[j].nodeName == "UL" && uls[j] != current) uls[j].className = uls[j].className.replace("over", "normal");
	}
}

// Damit man nicht genau die Links treffen muss:
function goToChildHref(evt) {
		//Get the firing Element
	li = getGetTarget(evt);
	if(li && li.parentNode.href) location.href = li.parentNode.href;
}

function hasClass(obj) {
     var result = false;
     if (obj.getAttributeNode("class") != null) {
         result = obj.getAttributeNode("class").value;
     }
     return result;
}
