// ### BrowserCheck ###
function BrowserCheck(){
	this.ver = navigator.appVersion;
	this.agent = navigator.userAgent;
	this.dom = document.getElementById?1:0;
	this.opera5 = this.agent.indexOf("Opera 5")>-1;
	this.ie5 = (this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6 = (this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4 = (document.all && !this.dom && !this.opera5)?1:0;
	this.ie = this.ie4||this.ie5||this.ie6;
	this.mac = this.agent.indexOf("Mac")>-1;
	this.ns6 = (this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4 = (document.layers && !this.dom)?1:0;
	this.ok = (this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5);
	return this;
}
var browser = new BrowserCheck();
// ### StyleObject ###
function makeObj(obj){
	// erstellt browserabhängiges StyleObject
	this.css=browser.dom?document.getElementById(obj).style:browser.ie4?document.all[obj].style:browser.ns4?eval('document.'+obj):0;
	// Rückgabe des Objektes
	return this;																														
}
lastLayer = "";
// ### ShowLayer (autoposition) ###
function showLayer(pos,which){
	if(browser.ok){
		// versteckt vorigen evtl. Layer
		hideLayer();
		// StyleObject erzeugen
		layer = new makeObj(which);																										
		px = 0;
		py = 0;
		// falls NS4...
		if (browser.ns4){
			// setze Layer auf Ankerposition x + Menübreite
			layer.css.left = pos.x+161;
			// setze Layer auf Ankerposition y																										
			layer.css.top = pos.y+1;
			// zeige Layer an
			layer.css.visibility = "show";
		// andere Browser...
		}else{
			// errechnet Ankerposition...																																																		
			for (var obj=pos; obj != null; obj = obj.offsetParent){
				// für x																		
				px += parseInt(obj.offsetLeft);
				// für y																						
				py += parseInt(obj.offsetTop);																								
			}
			// setze Layer auf Ankerposition x + Menübreite
			layer.css.left = px+161;
			// setze Layer auf Ankerposition y																													
			layer.css.top = py+1;
			// zeige Layer an																																																					
			layer.css.visibility = "visible";																																																
		}
		// merke diesen letzten Layer
		lastLayer = which;
	}
}
// ### HideLayer ###
function hideLayer(){
	if(browser.ok){
		// falls letzter Layer existiert...
		if (lastLayer != ""){	
			// erstelle StyleObject vom lesten Layer																									
			lastL = new makeObj(lastLayer);
			// falls NS4...																								
			if (browser.ns4){
				// verstecke Layer via "hide"																											
				lastL.css.visibility = "hide";
			// andere Browser...																							
			}else{
				// verstecke Layer via "hidden"																												
				lastL.css.visibility = "hidden";
			}
		}
	}
}

m = -1;
menu = new Array();											// erzeuge Array für Menüs
// ### MakeMenu ###
function makeMenu(){
	m++;													// Zähler für Hauptkategorien
	s = 0;													// Zähler für Unterpunkte pro Hauptkategorien 
	ArgNumber = makeMenu.arguments.length;					// Anzahl der übergebenen Argumente
	menu[m] = new Array();									// erzeuge Array im Array "menu" für name, url und unterpunkte
	menu[m].name = makeMenu.arguments[0];					// 1. Argument - name der Hauptkategorie
	menu[m].url = makeMenu.arguments[1];					// 2. Argument - url der Hauptkategorie
	menu[m].subs = new Array();								// erzeuge Array "subs" im Array "menu" für die Unterpunkte der Hauptkategorie
	for(i=2;i<ArgNumber;i++){								// speichert wechselnd, beginnend mit dem 3. Argument name und url der Unterpunkte
		menu[m].subs[s] = new Array();						// erzeuge für jeden Unterpunkt neues Array für name und url
		menu[m].subs[s].name = makeMenu.arguments[i];		// speichere name des Unterpunktes																					
		i++;
		menu[m].subs[s].url = makeMenu.arguments[i];		// speichere url des Unterpunktes
		s++;
	}
}
// ### RollOver ###
function highOn(img){
	document.images[img].src = ImgFol + img + "_o" + ImgExt;
}
// ### RollOut ###
function highOff(img){
	document.images[img].src = ImgFol + img + ImgExt;
}
// ### RollOver für Layer ###
function highOnL(img){
	if(document.layers){
		//lay = "l" + img.substr(0,4);
		//document.layers[lay].images[img].src = ImgFol + img + "_o" + ImgExt;
	}else{
		highOn(img);
	}
}
// ### RollOut für Layer ###
function highOffL(img){
	if(document.layers){
		//lay = "l" + img.substr(0,4);
		//document.layers[lay].document.images[img].src = ImgFol + img + ImgExt; 
	}else{
		highOff(img);
	}
}
var actF;
// ### ShowMenu ###
function showMenu(op, up){								// generiere Menü aus Array
	document.write("<table cellpadding=0 cellspacing=0 border=0>\n");
	// durchlaude Array "menu"
	for(m=0; m<menu.length; m++){
		document.write("<tr>\n");
		document.write("<td>\n");
		// falls Hauptkategorie aktiv
		if(menu[m].name == op){
			// und kein Unterpunkt aktiv
			if(up == ''){																																		
				actF = menu[m].url;
				// verwende img mit Endung "_d"
				document.write("<a href=\"" + menu[m].url + "\"><img src=" + ImgFol + menu[m].name + "_d" + ImgExt + " border=0></a><br>\n");
			}else{
				// ansonsten img mit Endung "_od"
				document.write("<a href=\"" + menu[m].url + "\"><img src=" + ImgFol + menu[m].name + "_od" + ImgExt + " border=0></a><br>\n");									
			}
			document.write("<table cellpadding=0 cellspacing=0 border=0>\n");
			// durchlaude Array "menu.subs"
			for(s=0; s<menu[m].subs.length; s++){		
				document.write("<tr>\n");
				document.write("<td align=right>\n");
				// falls Unterpunkt aktiv
				if(menu[m].subs[s].name == up){																																
					actF = menu[m].subs[s].url;
					// verwende img mit Endung "_d"
					document.write("<a href=\"" + menu[m].subs[s].url + "\"><img src=" + ImgFol + menu[m].subs[s].name + "_d" + ImgExt + " border=0></a><br>\n");				
				}else{
					// ansonsten img ohne Endung und Funktion für RollOver/Out
					document.write("<a href=\"" + menu[m].subs[s].url + "\" onMouseOver=\"highOn('" + menu[m].subs[s].name + "');\" onMouseOut=\"highOff('" + menu[m].subs[s].name + "');\"><img src=" + ImgFol + menu[m].subs[s].name + ImgExt + " name=" + menu[m].subs[s].name + " border=0></a><br>\n");	
				}
				document.write("</td>\n");
				document.write("</tr>\n");
			}
			document.write("</table>\n");
		// falls Hauptkategorie nicht aktiv
		}else{																																							
			// verwende img ohne Endung und Funtkion für RollOver/Out und Anzeige des entsprechenden Layers
			document.write("<a href=\"" + menu[m].url + "\" onMouseOver=\"clearTimeout(th);showLayer(this,'l" + menu[m].name + "');highOn('" + menu[m].name + "');\" onMouseOut=\"highOff('" + menu[m].name + "');timeHide();\"><img src=" + ImgFol + menu[m].name + ImgExt + " name=" + menu[m].name + " border=0></a><br>\n");	
		}
		document.write("</td>\n</tr>\n");
	}
	document.write("</table>\n");
	//writeLayer();
}
// ### WriteLayer ###
function writeLayer(){																					
	tmp = '<div id="first" style="position:absolute;visibility:hidden;z-index:50"></div>\n';
	// erzeuge für jede Hauptkategorie...
	for(m=0; m<menu.length; m++){		
		// einen Layer ...
		tmp += '<div id="l';																			
		// mit dem Namen der Hauptkategorie
		tmp += menu[m].name;																			
		tmp += '" name="l';
		tmp += menu[m].name;
		tmp += '" style="position:absolute;top:10px;left:10px;visibility:hidden;z-index:50">\n';
		// durchlaufe Array "menu.subs" für die Unterpunkte der Hauptkateorie
		for(s=0; s<menu[m].subs.length; s++){														
			tmp += '<a href="' + menu[m].subs[s].url + '" onMouseOver="highOnL(\'' + menu[m].subs[s].name + '_l' + '\');clearTimeout(th);" onMouseOut="highOffL(\'' + menu[m].subs[s].name + '_l' + '\');timeHide();"><img src=' + ImgFol + menu[m].subs[s].name + '_l' + ImgExt + ' name=' + menu[m].subs[s].name + '_l border=0></a><br>\n';
		}
		tmp += '</div>\n';
	}
	document.write(tmp);
}
var th;
function timeHide(){
	th = setTimeout('hideLayer();', 500);
}
