// IE-Patch fuer Hover bei List-Elementen:


/*
basiert auf einer Idee von 
http://www.meyerweb.com/eric/css/edge/menus/demo.html
Erweiterung fŸr den IE hinzugefŸgt.

@author: luzius@rufwerbung.ch


*/

function enableMenus() {
	if (!document.all) return;
	if (navigator.userAgent.indexOf("Opera")>0) return;
	
	
	// Die Klassennamen der CSS Klassen, in der Reihenfolge ihrer Levels:
	//(Hauptklasse, Subklasse, SubSubKlasse, SubSubSubKlasse etc.):
	// Werden weitere Unterklassen nicht mehr angegeben, wird die zuletzt angegebene Klasse
	//verwendet.
	
	var cssClasses = new Array("mainItem", "firstLevel", "secondLevel");
	var cssHoverClasses = new Array("mainItem_hover", "firstLevel_hover","secondLevel_hover");
	
	
	//@TODO:
	// CSS- Klassennamen, welche von over/out ausgenommen sind, und als Separatoren
	// dienen:
	//var skipClasses = new Array("separator");
	
	
	function getClassFromLevel(level, isHover) {
		if (isHover) css = cssHoverClasses
		else css=cssClasses;
		if (level<css.length)
			return css[level];
		else return css[css.length-1];	
	}
	
	

       function addSubLevelItemToNode(node) {
		if (node.title!="sub") return; // for speed
			node.style.backgroundImage="url(../images/pfeil.gif)";
			node.style.backgroundRepeat="no-repeat";
			node.style.backgroundPosition="right center";
	}
	
	
	function addLevel (node,l) {
		
		var i;
		if (node.id=="nav" || node.nodeName=="BODY") return l;
		(node.nodeName=="UL") ? i=1 : i=0;
		l=addLevel (node.parentNode, l+i);
		if (typeof node.listLevel=="undefined")
			node.listLevel=l;
		return l;
	}


	// Testet einen li-Tag, ob er in der Navigation enthalten ist:
	function testNav (node) {
		var i;
		if (node.id=="nav") return true;
		if ( node.nodeName=="BODY") return false;
		l=testNav (node.parentNode);
		return l;
	}
	
   
	var lis = document.getElementsByTagName("LI");
	for (var x=0;x<lis.length;x++) {
		var node = lis[x];
                if (!testNav(node)) continue;
		addLevel (node,0);
                addSubLevelItemToNode(node);
		node.onmouseover=function(e) {
		     
		     // Cancel Event-Bubbling:    
	    	//	if (!e) var e = window.event;
	    	//	e.cancelBubble = true;
	    	//	if (e.stopPropagation) e.stopPropagation();
		
		
			// Alle Kinder der naechsten Ebene erhalten:
			for (var x=0;x<this.childNodes.length;x++){
				var n = this.childNodes[x];
				if (n.nodeName=="UL") {
					n.style.display="block";
					n.style.paddingTop="0px";
				}
				
				if (this.nodeName!="LI") return;
				if (this.className!="separator")
					//if ((this.className!=getClassFromLevel(this.listLevel,false) && this.className!=getClassFromLevel(node.listLevel,true)))
						this.className=getClassFromLevel(this.listLevel,true);
						//alert (this.className);
						// Falls Listlevel = 0:
						if (this.listLevel==0 && this.title=="sub") this.style.backgroundImage="url(../images/pfeil_an.gif)";
			}  //for
		}  // end mouseover function
		var def = node.style.bgColor;
		node.defaultStyle=def;
		node.onmouseout = function(e) {
		
         
			// Alle Kinder der naechsten Ebene erhalten:
			for (var x=0;x<this.childNodes.length;x++){
				var n = this.childNodes[x];
				//alert (n.nodeName);
				if (n.nodeName=="UL")
					n.style.display="none";
			}
			// Klassenname resetten.
			if (this.title=="sub") this.style.backgroundImage="url(../images/pfeil.gif)";
			if (this.className!="separator")
				//if ((this.className!=getClassFromLevel(this.listLevel,false)) && (this.className!=getClassFromLevel(this.listLevel,true))) {
						this.className=getClassFromLevel(this.listLevel,false);
			    // } alert (this.className);
						


		} // end mouseout function

		// TODO: Focus an a Tag hängen:
		
			
	} // end for li


} // function

// Dies muss im Body - Tag enabled werden!
//window.onload = function () {enableMenus();}
