<!--

var isNav4Up = (navigator.appName.indexOf("Netscape") >= 0 &&  parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
var appV=navigator.appVersion;
if (appV.indexOf("Windows NT")!=-1) appV=appV.substring(0,appV.indexOf("Windows NT"));
var isNav6Up = (appV.indexOf("5.") >= 0 && navigator.appName == "Netscape") ? 1 : 0;
var isIE4Up = (document.all) ? 1 : 0;
var isIE5Up = (isIE4Up && navigator.appVersion.indexOf("5.") >= 0) ? 1 : 0;
var isOP5Up = (navigator.userAgent.indexOf("Opera") >= 0) ? 1 : 0;

var menuOrder = new Array();
var menus = new Array();
var left = new Array();
var selected;
var mnavHandler; // Falls m_project nicht included wurde, muß dann nach der mnav included werden
var overrideHeightOffset=-1;
var menuShown=false;

var navDebug=0;

if (isOP5Up) {
	isIE4Up = 0;
	isIE5Up = 0;
	isNav4Up = 0;
	isNav6Up = 0;
}

if (isIE4Up) {
	isNav4Up = 0;
	isNav6Up = 0;
	isOP5Up = 0;
}

if (isIE5Up) {
	isIE4Up = 0;
	isNav4Up = 0;
	isNav6Up = 0;
	isOP5Up = 0;
}

if (isNav6Up) {
	isIE4Up = 0;
	isIE5Up = 0;
	isNav4Up = 0;
	isOP5Up = 0;
}

if (isNav4Up) {
	isIE4Up = 0;
	isIE5Up = 0;
	isNav6Up = 0;
	isOP5Up = 0;
}

function MM_findObj(n, d) {
	var p,i,x;
	if (!d) d=document;
	if((p = n.indexOf("?")) > 0 && parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document;
		n = n.substring(0,p);
	}
	if(!(x = d[n]) && d.all) x=d.all[n];
	for (i = 0; !x && i < d.forms.length; i++) x=d.forms[i][n];
	for(i = 0; !x && d.layers && i < d.layers.length; i++) x=MM_findObj(n,d.layers[i].document);
	if (isNav6Up) x=document.getElementById(n);
	return x;
}

function MM_showHideLayers() {
	var i,p,v,obj,args = MM_showHideLayers.arguments;
	for (i = 0; i < (args.length-2); i += 3) {
		if ((obj=MM_findObj(args[i]))!=null) {
			v=args[i+2];
			if (obj.style) {
				obj = obj.style;
				v = (v == 'show') ? 'visible' : (v = 'hide') ? 'hidden' : v;
			}
			obj.visibility = v;
		}
	}
}

function getOperaLayer(lay) {
	this.obj = document.getElementById(lay);
	this.style = document.getElementById(lay).style;
}

function getLayerHeight(lay) {
	if (isNav4Up) {
		if (document.layers[lay]) return document.layers[lay].clip.height;
	}
	if (isOP5Up) {
		if (document.getElementById(lay)) {
			var operalayer = new getOperaLayer(lay);
			return operalayer.style.pixelHeight;
		}
	}
	if (isIE4Up ||isIE5Up) {
		if(document.all[lay] && !document.all[lay].offsetHeight)
		{
			if(document.all[lay].children[0])
			{
				var tmp = document.all[lay].children[0].innerHTML.toUpperCase().split('<BR>');
				if(forceLayerHeight[tmp.length])
				{
					return forceLayerHeight[tmp.length];
				}
			}
		}
		if (document.all[lay]) return document.all[lay].offsetHeight;
	}
	if (isNav6Up) {
		if (forceLayerHeight[1]) return forceLayerHeight[1];
		if (document.getElementById(lay)) {
			var nav6layer = new getOperaLayer(lay);
			if (0 && document.defaultView && document.defaultView) {
				// doesnt seem to work in NS 7.0, Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMViewCSS.getComputedStyle]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: http://www-dev/projekte/O2/work/_js/mnav.js :: getLayerHeight :: line 100"  data: no]
				cs=document.defaultView.getComputedStyle(nav6layer,"");
				hstring=cs.getPropertyValue("height");
			} else if (nav6layer.offsetHeight) {
				hstring=nav6layer.offsetHeight;
			} else {
				hstring=nav6layer.style.height
			}
			h = hstring.substring(0,hstring.length-2);
			return h;
		}
	}
}

function setLayerLeft(lay,pixel) {
	if (isNav4Up) {
		if (document.layers[lay]) document.layers[lay].left = pixel;
	}
	if (isOP5Up) {
		if (document.getElementById(lay)) {
			var operalayer = new getOperaLayer(lay);
			operalayer.style.pixelLeft = pixel;
		}
	}
	if (isIE4Up ||isIE5Up) {
		if (document.all[lay]) document.all[lay].style.left = pixel;
	}
	if (isNav6Up) {
		if (document.getElementById(lay)) {
			var nav6layer = new getOperaLayer(lay);
			nav6layer.style.left = pixel;
		}
	}
}

function setLayerTop(lay,pixel) {
	if (isNav4Up) {
		if (document.layers[lay]) document.layers[lay].top = pixel;
	}
	if (isOP5Up) {
		if (document.getElementById(lay)) {
			var operalayer = new getOperaLayer(lay);
			operalayer.style.pixelTop = pixel;
		}
	}
	if (isIE4Up ||isIE5Up) {
		if (document.all[lay]) document.all[lay].style.top = pixel;
	}
	if (isNav6Up) {
		if (document.getElementById(lay)) {
			var nav6layer = new getOperaLayer(lay);
			nav6layer.style.top = pixel;
		}
	}
}

function initCollapsed(lay) {
	var s = window.location.search;
	var coll = s.substring(11, s.length);
	while (coll.indexOf(';') != -1) {
		split = coll.indexOf(';');
		if (coll.substring(0,split) == lay) return true;
		coll = coll.substring(split+1,coll.length);
	}
	return false;
}

function Menu(lay,fath,img) {
	var subMenus
	var layer;
	var collapsed;
	var order;
	var height;
	var rollover;
	var hilitedChild;
	var father;
	var hilited;

	this.father = fath;
	this.subMenus = new Array();
	this.layer = lay;
	this.order = menuOrder.length;
	this.collapsed = initCollapsed(lay);
	if (img) {
		var imgLcase=img.toLowerCase();
		if (imgLcase.indexOf('.jpg')!=-1 || imgLcase.indexOf('.gif')!=-1) {
			this.rollover = new Image;
			this.rollover.src = img;
		} else this.rollover = img;
	}
	this.hilited = false;
	this.hilitedChild = false;
	if (fath) this.height = getLayerHeight(lay);
	else this.height = 0;
	if (navDebug) alert(lay+':'+this.height);
	if (fath) addSubMenu(lay,fath);
	else {
		this.collapsed = true;
		this.hilited = true;
	}
	menus[lay] = this;
	menuOrder[menuOrder.length] = lay;
}

function addSubMenu(menu1,menu2) {
	menus[menu2].subMenus[menus[menu2].subMenus.length] = menu1;
}

function showMenu(menu,level) {
	level++;
	setLayerLeft(menu,left[level]);
	setLayerTop(menu,totalHeight);
	if (menus[menu].hilited && !menus[menus[menu].father].hilited) {
		menus[menu].hilited = false;
		flipMenu(menu);
	}
	if (menus[menu].height)	totalHeight += parseInt(menus[menu].height);
	MM_showHideLayers(menu,'', 'show');
	if (mnavHandler) mnavHandler(menu,level);
	for (var i = 0; i < menus[menu].subMenus.length; i++ ) {
		sm = menus[menu].subMenus[i];
		if (menus[menu].collapsed) {
			// für Navis wie bei O2 Collapsezustand regeln
			showMenu(sm,level);
		} else {
			// für Navis wie bei O2 Collapsezustand regeln
			hideMenu(sm);
		}
	}
}

function hideMenu(menu) {
	MM_showHideLayers(menu,'', 'hide');
	menus[menu].collapsed = false;
	menus[menu].hilitedChild = false;
	if (menus[menu].hilited) {
		menus[menu].hilited = false;
		menus[menus[menu].father].hilitedChild = false;
		flipMenu(menu);
	}
	for (var i = 0; i < menus[menu].subMenus.length; i++ ) hideMenu(menus[menu].subMenus[i]);
}

function show() {
	if (overrideHeightOffset!=-1) totalHeight = overrideHeightOffset;
	else totalHeight = heightOffset;
	startMenu='main';
	if (location.href.indexOf('mnavStartMenu=')!=-1) {
		stpos=location.href.indexOf('mnavStartMenu=')+14;
		rest=location.href.substring(stpos,location.href.length);
		if (rest.indexOf('&')!=-1) {
			endpos=rest.indexOf('&');
		} else {
			endpos=rest.length;
		}
		startMenu=rest.substring(0,endpos);
	}
    if (menus[startMenu]) for (var i=0; i<menus[startMenu].subMenus.length; i++) showMenu(menus[startMenu].subMenus[i],0);
	menuShown=true;
}

function flipMenu(imgName) {
	if (menus[imgName].rollover && menus[imgName].rollover.src && document.images) {
		//alert(imgName+':'+menus[imgName].rollover+' && '+menus[imgName].rollover.src+' && '+document.images);
		current=imgName;
		flipImage(imgName+'img',imgName+'no');
	} else {
		if (isIE5Up && !isOP5Up) {
			//alert(imgName+"_link");
			//alert('swap '+document.all[imgName+"_link"].className+' to '+menus[imgName].rollover);
			if (document.all[imgName+"_link"]) {
		        var swap = document.all[imgName+"_link"].className;
				document.all[imgName+"_link"].className = menus[imgName].rollover;
				menus[imgName].rollover = swap;
			} else {
				//alert('Kann Klasse von '+imgName+'_link nicht ändern.');
			}
		} else if (document.getElementById) {
			// test
	        var obj=document.getElementById(imgName+"_link");
			if (obj) {
				swap=obj.className;
				document.getElementById(imgName+"_link").className = menus[imgName].rollover;
		        menus[imgName].rollover = swap;
			}
		}
	}
}

function menuClick(ID,url) {
	selected=ID;
	flipMenu(ID);
	if (menus[menus[ID].father].hilitedChild) {
		flipMenu(menus[menus[ID].father].hilitedChild);
		menus[menus[menus[ID].father].hilitedChild].hilited = false;
		if (menus[menus[ID].father].hilitedChild!=ID) menus[menus[menus[ID].father].hilitedChild].collapsed = false;
	}
	if (ID == menus[menus[ID].father].hilitedChild) {
		menus[ID].hilited = false;
		menus[menus[ID].father].hilitedChild = false;
		flipMenu(ID);
	}
	else menus[ID].hilited = true;
	menus[menus[ID].father].hilitedChild = ID;
	if (menus[ID].collapsed) {
		menus[menus[ID].father].hilitedChild = false;
		menus[ID].collapsed = false;
	}
	else menus[ID].collapsed = true;
	show();
}

function collapseAll() {
	for (var i = 0;i < menus['main'].subMenus.length;i++) hideMenu(menus['main'].subMenus[i]);
}

function jumpto(layer) {
	collapseAll();
	if (menus['main']) {
		var lastLayer = layer;
		while (menus[layer].father) {
			if (layer != 'main') {flipMenu(layer);}
			else {menus['main'].hilitedChild = lastLayer; main.hilitedChild = lastLayer;}
			menus[menus[layer].father].hilitedChild = layer;
			menus[layer].collapsed = true;
			menus[layer].hilited = true;
			lastLayer = layer;
			layer = menus[layer].father;
		}
		show();
	}
}

function showMenuHeight(menu) {
	if (isNav4Up) if (document.layers[menu]) height = document.layers[menu].clip.height;					
    else if (isOP5Up) {
		if (document.getElementById) {
			var operalayer = getOperaLayer(menu);
			height = operalayer.style.pixelHeight;
		}
	}
    else if ((isIE4Up || isIE5Up) && !isOP5Up) if (document.all[menu]) height = document.all[menu].offsetHeight;
	if (isNav4Up || isNav6Up) if (document.layers[menu]) menus[menu].height = height;
    else if (isOP5Up) if (document.getElemetById) menus(menu).height = height;
    else if ((isIE4Up || isIE5Up) && !isOP5Up) if (document.all[menu]) menus[menu].height = height;
	for (var i = 0; i < menus[menu].subMenus.length; i++ ) {
       	sm=menus[menu].subMenus[i];
		showMenuHeight(sm);
	}
}

var current=0; // aktives image, wird bei onclick gesetzt
var sel=0; // ausgewähltes image, wird bei onmouseover gesetzt

function flipImage(imgName,imgNo) {
	var ID = imgName.substr(0, imgName.length-3);
	if (isNav4Up) {
		var menu = imgName.substring(0,imgName.length-3);
		var firstmenu = menus[menus[menu].father].subMenus[0];
		if (!document.layers[menu]) div = firstmenu; else div = menu;
		document.layers[div].document.images[imgName].src = eval(imgNo+'.src');
	} else document.images[imgName].src = eval(imgNo+'.src');
}

/*
function getImage(img,layer) {
	if (isNav4Up) {
		var firstmenu = menus[menus[layer].father].subMenus[0];
		if (!document.layers[layer]) div = firstmenu; else div = layer;
		return document.layers[layer].document.images[img];
	} else {
		return document.images[img];
	}
}
*/

function alloutMnav(typ){ // blendet sel aus und current ein
	if (sel) {
		flipmnav = sel+"img";
		flipimage = sel+"no";
		flipImage(flipmnav,flipimage);
	}
	if (current && typ=="cl") {
		himnav = current+"img";
		hiimage = current+typ;
		flipImage(himnav,hiimage);
	}
	if (menus[menus[sel].father].hilitedChild && menus[sel].collapsed && typ=="cl") {
		flipImage(sel+'img',sel+'cl');	
	}
}

function alloutallMnav() {  // blendet sel und current aus
	if (sel) {
		flipmnav = sel+"img";
		flipimage = sel+"no";
		flipImage(flipmnav,flipimage);
	}
	
	if (current) {
		himnav = current+"img";
		hiimage = current+"no";
		flipImage(himnav,hiimage);
	}
}

function mnavCollapsedHandler(menu,level,collapsed) {
	// Dummyfunktion kann überschrieben werden um bestimmte Verhalten zu realisieren
}

//-->
