/*	Updates:
	2.11.05
	1	obj.children is MS-specific, replaced by obj.childNodes (W3C)
		ie5, mozilla, firefox necessary
	2	style.background replaced by style.backgroundColor (more specific)
	3	obj.style only after check, if style property is there (prevents error and script abort
	4	document.all replaced by W3C-conformant GetElementById
	5	no element access via obj.id, see 4
*/


  
 /* FUNCTION:	mover(obj)
	obj:		DHTML (TR)-Objekt, Angabe der ID des Objekts ohne Anführungszeichen.
	Wird verwendet, um in den Dropdown-Menüs den <tr> tag hinter der Maus 
	und die übergeordneten Menü-Items grau zu färben
  */
function mover(obj) {
	if (typeof(obj) == "string") obj = document.getElementById(obj);

	for (var i = 0; i < obj.childNodes.length; i++) {
		mover(obj.childNodes[i]);	
	}
	if (obj.style) obj.style.backgroundColor='#F0CB2C';
}


 /* FUNCTION:	mover(obj)
	obj:		DHTML (TR)-Objekt, Angabe der ID des Objekts ohne Anführungszeichen.
	Wird verwendet, um in den Dropdown-Menüs den <tr> tag hinter der Maus 
	und die übergeordneten Menü-Items weiß zu färben
  */
function mout(obj) {
	if (typeof(obj) == "string") obj = document.getElementById(obj);

	for (var i=0;i < obj.childNodes.length; i++) {
		mout(obj.childNodes[i]);
	}
	if (obj.style) obj.style.backgroundColor='#F6EDC8';
}


 /* FUNCTION:	posNavRel
	pred:		DIV-Objekt, Angabe der ID des Objekts ohne Anführungszeichen. Bezeichnet das
				vorige Menü.
	obj:		DIV-Objekt, Angabe der ID des Objekts ohne Anführungszeichen. Bezeichnet das
				aktuelle Menü
	lf:			Laufende Nummer, enthält die aktuelle Zeile in den blauen Navigationsbalken
	result:		die neue laufende Nummer 
	Spezielle Funktion zum Positionieren der Navigationsmenüs. Wird beim Start und bei 
	OnSize Events für alle Menüs aufgerufen */
function posNavRel(sPred, sObj, lf) {
	var obj = document.getElementById(sObj);

	x = getAbsXr(sPred)+20;
	if (x+obj.offsetWidth > getAbsXr("nav1")-10) {
		x = getAbsX(nav1)+5;
		lf += 1;

		var newRow = nav.insertRow(-1);
		var newCol = newRow.insertCell(-1);
		newCol.height=2;
		
		newRow = nav.insertRow(-1);
		newCol = newRow.insertCell(-1);
		newCol.className = "navigation";
		newRow.className = "navigation";
		
		newRow.id = "nav"+lf;
	}
	
	y = getAbsY("nav"+lf)+2;
	obj.style.left = x;
	obj.style.top = y;
	return lf;
}

 /* FUNCTION:	posListRel
	parent:		TR-Objekt, Angabe der ID des Objekts ohne Anführungszeichen. Bezeichnet das
				Menü, dem das DropdownMenü zugeordnet werden soll.
	obj:		DIV-Objekt, Angabe der ID des Objekts ohne Anführungszeichen. Bezeichnet das
				aktuelle DropdownMenü 
	Diese Funktion muß für alle Dropdown-Menüs der 1. Ebene aus der OnSize-Funktion aufgerufen
	werden. 
	*/
function posListRel(sParent, sObj) {
	var obj = document.getElementById(sObj);
	
	x = getAbsX(sParent);
	y = getAbsYr(sParent);
	/*
	if (x+150>document.getElementById("body").clientWidth) {
		x = document.getElementById("body").clientWidth-150;
	}
	*/
		
	obj.style.left = x-5;
	obj.style.top = y+1;
}

 /* FUNCTION:	posSubListRel
	parent:		DHTML-Objekt, Angabe der ID des Objekts ohne Anführungszeichen. Bezeichnet das
				DropDownMenüItem, dem das DropdownMenü zugeordnet werden soll.
	obj:		DHTML-Objekt, Angabe der ID des Objekts ohne Anführungszeichen. Bezeichnet das
				aktuelle DropdownMenü 
	Diese Funktion muß für alle Dropdown-Menüs der unteren Ebene aus der onMouseOver-Funktion des
	aktuellen DropDown-MenüItems aufgerufen werden. 
	*/
function posSubListRel(sParent, sObj) {
	var obj = document.getElementById(sObj);

	x = getAbsXr(sParent);
	y = getAbsY(sParent);

	// obj.offsetWidth ist zu diesem Zeitpunkt noch nicht bekannt
	/*
	if (x + 150 > document.getElementById("body").clientWidth-45) {
		x = getAbsX(parent) - 150;
	}
	*/
	
	obj.style.left = x;
	obj.style.top  = y-1;
}

 /* FUNCTION:	initList
	list:		id-String eines DIV-Objekts, das ein DropdownMenü bezeichnet.
	Initialisiert ein DropDownMenü-DIV Objekt. Wird am Ende von navigation.htm
	aufgerufen. 
 */
function initList(sList) {
	var obj = document.getElementById(sList);
	obj.TT 			= 0;
	obj.status 		= 0;
 	obj.request 	= 0;
    obj.timer 		= null;
    obj.wait	 	= 0;
}

 /* FUNCTION:	doFadeTimer
	Feld:		DIV-Objekt, Angabe der ID des Objekts ohne Anführungszeichen. Bezeichnet das
				Menü.
	Diese Funktion wird durch setTimer() aufgerufen, welche von showNav() aktiviert wird.
	Dabei werden Custom Felder im DIV-Tag verwendet. Die müssen vor der Verwendung durch 
	initList(...) initialisiert werden.
 */
function doFadeTimer(sFeld) {
	var Feld = document.getElementById(sFeld);

	if (Feld.request == 1) {
		Feld.TT += TTStep;
		Feld.status = 1;
		if (Feld.TT>=TTMax) {
			Feld.request = 0;
			Feld.TT = TTMax;
			clearInterval(Feld.timer);
			Feld.timer = null;
			Feld.status = 2;
			Feld.wait = TTOutDelay;
		}
		Feld.style.filter ='alpha(opacity='+Feld.TT+')';
	} else if (Feld.request == 2) {
		if (Feld.status == 3) {
			// Warten auf FadeOut
			Feld.wait -=1;
			if (Feld.wait < 0) {
				Feld.wait = 0;
				Feld.status = 4;
			}
		} else {
			// FadeOut
			Feld.TT -= TTStep;
			if (Feld.TT<=0) {
				Feld.request = 0;
				Feld.TT = 0;
				clearInterval(Feld.timer);
				Feld.timer = null;
				Feld.status = 0;
				Feld.style.display = "none";
			}
			Feld.style.filter ='alpha(opacity='+Feld.TT+')';
		}
	} else {
		// Kein Request mehr -> Timer löschen!
		if (Feld.timer != null) {
			clearInterval(Feld.timer);
			Feld.timer = null;
		}
	}
}

 /* Starte den FadeIn-Effekt eines Dropdown-Menüs
 */
function showNav(sFeld) {
	var obj = document.getElementById(sFeld);
	if (obj.status == 2) {
	} else {
		// Das Zeigen des Felds veranlassen
		obj.request = 1;
		

		obj.style.display="";
		
		if (obj.timer == null) {
			obj.timer = setInterval("doFadeTimer(\"" + sFeld + "\")", TTTime);
		}

		obj.status = 1;
	}
}

/* Starte den FadeOut-Effekt eines Dropdown-Menüs
 */
function hideNav(sFeld) {
	var obj = document.getElementById(sFeld);
	if (obj.status == 0) {
		// Schon versteckt
	} else {
		// Das Verstecken des Felds veranlassen

		obj.request = 2;
		
		if (obj.timer == null) {
			// Timer aktivieren, wenn nötig
			obj.timer = setInterval("doFadeTimer(\"" + sFeld + "\")", TTTime);
		}
	
		obj.status = 1;
	}
}

/* Halte ein Dropdown-Menü im Vordergrund, während ein Untermenü aktiv ist.
 */
function halteNav(Feld) {
	showNav(Feld);
}