// ----------------------------------------------------
// Version: 0.1
// Last change: 17.03.2008
// Edited by: Sebastian Mohila
// Description: Library for fNavi
//
// (C) 2000 - 2008 formativ.net oHG / Sebastian Mohila
// All Rights Reserved
// ----------------------------------------------------


// Array für Liste der aktiven Elemente initialisieren
fNaviActiveElement=new Array;


// Funktion: Initialisiert Navigation
// Rückgabe: Null
function fNaviInit() {
	// Allen LI-Elementen Events zuweisen
	var fNaviElements=document.getElementsByTagName("li");
	for(i=0;i<fNaviElements.length;i++) {
		fNaviElements[i].onmouseover=function() {fNaviShowElement(this.getElementsByTagName('ul'));};
		fNaviElements[i].onmouseout=function() {fNaviHideElement(this.getElementsByTagName('ul'));};			
	}
	
	// Allen UL-Elementen außer dem Haupt-UL-Element Style zuweisen
	var fNaviElements=document.getElementsByTagName("ul");
	for(i=0;i<fNaviElements.length;i++) {
		if(fNaviElements[i].id!="fnavi") {
			fNaviElements[i].style.cssText="display: none";

			// Eindeutige ID generieren und zuweisen
			var fNaviTempID=Math.random()*1000000;
			fNaviElements[i].id=fNaviTempID;
		}
	}
}


// Funktion: Blendet Element im Navigationsbaum ein
// Rückgabe: Null
function fNaviShowElement(fNaviID) {
	if(fNaviID[0]) {
		// Prüfen, ob eine Ausblende-Aktion für das aktuelle Element läuft. Falls ja, diese Abbrechen.
		if(fNaviActiveElement[fNaviID[0].id]) clearTimeout(fNaviActiveElement[fNaviID[0].id]);
		
		// Element einblenden
		fNaviID[0].style.display='';
	}
}


// Funktion: Blendet Element im Navigationsbaum aus
// Rückgabe: Null
function fNaviHideElement(fNaviID) {
	if(fNaviID[0]) {
		// Ausblende-Aktion initiieren
		fNaviActiveElement[fNaviID[0].id]=setTimeout(function() {fNaviDoHideElement(fNaviID);},100);
	}
}


// Funktion: Führt effektive Ausblendung eines Elements aus
// Rückgabe: Null
function fNaviDoHideElement(fNaviID) {
	fNaviID[0].style.display='none';
}
