var W3CDOM = (document.createElement && document.getElementsByTagName);

/**
 * Verbesserte Onload Funktion zum Laden mehrerer Funktionen
 */
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

/**
 * Setzt die onmouseover und onmouseout Event Handler der Navigation
 *
 * Diese Funktion sorgt dafür, dass alle Listenelemente, die eine 
 * weitere Liste enthalten die Event Handler erhalten, um diese 
 * Listen, bzw. Untermenues ein- und auszublenden. Zusätzlich schaltet
 * die Funktion alle Untermenues beim ersten Laden der Site aus.
 */
function registerSubmenues() {
	if (!W3CDOM) return;
	var parentNode = document.getElementById('navigation');
	if (parentNode) {
		var topLevelItems = parentNode.getElementsByTagName('li');
	
		for (var i=0; i<topLevelItems.length; i++) {
			var subMenu = topLevelItems[i].getElementsByTagName('ul');
			if (subMenu[0]) {
				subMenu[0].style.display = 'none';
				topLevelItems[i].onmouseover = toggleSubmenu;
				topLevelItems[i].onmouseout = toggleSubmenu;
			}
		}
	}
}
/**
 * Schaltet die display Eigenschaft eines Submenue an oder aus
 *
 * Diese Funktion wird durch den onmouseover oder onmouseout eines
 * Listenelements in der Navigation aufgerufen, dass über eine 
 * untergeordnete Liste enthält. Diese Liste wird je nach aktuellem
 * Zustand ein- oder ausgeblendet.
 */
function toggleSubmenu() {
	var submenu = this.getElementsByTagName('ul')[0];
	if (submenu.style.display == 'block') {
		submenu.style.display = 'none';
	} else {
		submenu.style.display = 'block';
	}
}

/**
 * Registriert für alle Links das target Attribute _blank
 *
 * Alle Links innerhalb des Elements mit der ID sightseeing enthalten
 * externe Verweise auf andere Seiten. Die Funktion setzt das attribut
 * target, dass in strict verboten, aber im javascript DOM erlaubt ist.
 * Die so markierten Links öffnen sich in einem neuen Fenster 
 */
function registerExternalLinks() {
	if (!W3CDOM) return;
	var parentNode = document.getElementById('sightseeing');
	if (parentNode) {
		var allElements = parentNode.getElementsByTagName('a');
	
		for (var i=0; i<allElements.length; i++) {
			allElements[i].target = "_blank";
			allElements[i].title = "Externer Link";			
		}
	}
}

// alles aufrufen
addLoadEvent(registerSubmenues);
addLoadEvent(registerExternalLinks);

