// Menue-Ebenen werden unsichtbar gemacht
if (document.captureEvents) document.captureEvents(Event.CLICK);
document.onclick = hideAll;

var currentSub; // ist ein object: welcher Layer ist gerade sichtbar
var checkSubNow = false; // nur wenn ein Untermenu sichtbar ist,wird es geschlossen. false=keins sichtbar
var maxY; //maximaler Y-Wert eines Layers(Unterkante des Layers).Abstand von oben plus Layerhoehe
var maxXleft;
var maxXright;

var closeMenuYTop = 0; // ab welchen Y-Wert von oben soll der Layer unsichtbar werden


///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
// Funktionen der Topmenue Images
var menuImg = new Array();
var menuImgHi = new Array();

function preloadMenuImg(anzahlMenuepunkte, type)
{
	if (type == "sondernav") {
		for(i=1;i<=anzahlMenuepunkte;i++) {
			menuImg[i] = new Image();
			menuImg[i].src = '/img/nav_0'+i+'_b.gif';
		}
		for(j=1;j<=anzahlMenuepunkte;j++) {
			menuImgHi[j] = new Image();
			menuImgHi[j].src = '/img/nav_0'+j+'_hi.gif';
		}
	}
	else if (type == "homepage") {
		for(i=1;i<=anzahlMenuepunkte;i++) {
			menuImg[i] = new Image();
			menuImg[i].src = '/img/nav_0'+i+'_hi.gif';
		}
		for(j=1;j<=anzahlMenuepunkte;j++) {
			menuImgHi[j] = new Image();
			menuImgHi[j].src = '/img/nav_0'+j+'.gif';
		}
	}
	else {
		for(i=1;i<=anzahlMenuepunkte;i++) {
			menuImg[i] = new Image();
			menuImg[i].src = '/img/nav_0'+i+'.gif';
		}
		for(j=1;j<=anzahlMenuepunkte;j++) {
			menuImgHi[j] = new Image();
			menuImgHi[j].src = '/img/nav_0'+j+'_hi.gif';
		}
	}
	
}



function menuImgChange(whichMenu,state)
{
// letzte Zahl(in whichMenu) wird abgetrennt, um das zugehoerige Image zu highlighten, z.B. menu1 wird uebergeben
// und 1 steht dann in whichImg
var whichImg = String(whichMenu);
	whichImg = whichImg.substr((whichImg.length-1),whichImg.length)

	if(state=='on')
	{
		/*for(i=1;i<=6;i++)
		{
			document.images['nav'+i].src = menuImg[i].src;
		}*/
		if(checkSubNow==true)
		{
			var whichImgNow = String(currentSub.id);
			whichImgNow = whichImgNow.substr((whichImgNow.length-1),whichImgNow.length);
			document.images['nav'+whichImgNow].src = menuImg[whichImgNow].src;
		}
		document.images['nav'+whichImg].src = menuImgHi[whichImg].src;
	}
	
	if(state=='off')
	{
		document.images['nav'+whichImg].src = menuImg[whichImg].src;
	}
}

///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////



function hideAll()
	{
	
	if(document.documentElement)
		{
		if(checkSubNow==true)
			{
			currentSub.style.visibility = "hidden";
			}
		}
	else if(document.all)
		{
		if(checkSubNow==true)
			{
			currentSub.style.visibility = "hidden";
			}
		}
	else if(document.layers)
		{
		if(checkSubNow==true)
			{
			currentSub.visibility = "hide";
			}
		}
	}

if (document.captureEvents) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = followMouse;

var curX = 0;
var curY = 0;
function followMouse(e)
		{
			curX = (e) ? e.pageX : event.clientX + document.body.scrollLeft - document.body.leftMargin;
			curY = (e) ? e.pageY : event.clientY + document.body.scrollTop - document.body.topMargin;
			if(checkSubNow==true)
				{
				checkSubmenu(currentSub);
				}
		}

function getObject(which)
	{
	if (document.layers) return document.layers[which];
	else if (document.documentElement) return document.getElementById(which);
	else if (document.all) return document.all[which];
	else return null;
	}

function checkSubmenu(whichSub)
	{
	if(document.documentElement)
		{
		objH=whichSub.style.height; //gibt z.B. 70px(bei IE,NS6) zurueck.Zur Berechnung muss px abgetrennt werden
		objHlength=objH.length;
		objH=objH.substring(0,objHlength-2);
		
		objTop=whichSub.style.top;
		objToplength=objTop.length;
		objTop=objTop.substring(0,objToplength-2); // Ende der "Abtrennprozedur"
		
		maxY=parseInt(objH)+parseInt(objTop); //Berechnung des maximalen Y-Werts(s.o.). Integer wird erzwungen
		if(curY>maxY || curY<closeMenuYTop)
			{
			hideMenu(whichSub.id);
			}
			
		//linke und rechte Ecke des Layers (Berechnung)
		objL=whichSub.style.left; //gibt z.B. 70px(bei IE,NS6) zurueck.Zur Berechnung muss px abgetrennt werden
		objLlength=objL.length;
		objL=objL.substring(0,objLlength-2);

		objR=whichSub.style.width;
		objR=parseInt(objL)+parseInt(objR);
		
		maxXleft=objL;
		maxXright=objR;
		if(curX<=maxXleft || curX>=maxXright)
			{
			hideMenu(whichSub.id);
			}
		}
	else if(document.all)
		{
		objH=whichSub.style.height;
		objHlength=objH.length;
		objH=objH.substring(0,objHlength-2);
		
		objTop=whichSub.style.top;
		objToplength=objTop.length;
		objTop=objTop.substring(0,objToplength-2);
		
		maxY=parseInt(objH)+parseInt(objTop);
		if(curY>maxY || curY<closeMenuYTop)
			{
			hideMenu(whichSub.name);
			}
			
		//linke und rechte Ecke des Layers (Berechnung)
		objL=whichSub.style.left; //gibt z.B. 70px(bei IE,NS6) zurueck.Zur Berechnung muss px abgetrennt werden
		objLlength=objL.length;
		objL=objL.substring(0,objLlength-2);

		objR=whichSub.style.width;
		objR=parseInt(objL)+parseInt(objR);
		
		maxXleft=objL;
		maxXright=objR;
		if(curX<=maxXleft || curX>=maxXright)
			{
			hideMenu(whichSub.id);
			}
		}
	else if(document.layers)
		{
		objH=whichSub.clip.height; // gibt z.B. 70 (Netscape 4) zurueck
		
		objTop=whichSub.top;
		
		maxY=parseInt(objH)+parseInt(objTop);
		if(curY>maxY || curY<closeMenuYTop)
			{
			hideMenu(whichSub.name);
			}
		
		//linke und rechte Ecke des Layers (Berechnung)
		objL=whichSub.left; //gibt z.B. 70px(bei IE,NS6) zurueck.Zur Berechnung muss px abgetrennt werden

		objR=whichSub.clip.width;
		objR=parseInt(objL)+parseInt(objR);

		maxXleft=objL;
		maxXright=objR;
		if(curX<=maxXleft || curX>=maxXright)
			{
			hideMenu(whichSub.id);
			}
		}
	}	

function showMenu(which)
	{
	if(checkSubNow==true) //wenn noch ein Menu(Layer) sichtbar ist,wird es unsichtbar gemacht bevor ein anderes geoeffnet wird
		{
			//////////////////////////////////////////////////////////////////////////////////////////////
			//menuImgChange(which,'off');
			///////////////////////////////////////////////////////////////////////////////////////////////
			if(document.documentElement)
				{
				currentSub.style.visibility = "hidden";
				}
			else if(document.all)
				{
				currentSub.style.visibility = "hidden";
				}
			else if(document.layers)
				{
				currentSub.visibility = "hide";
				}
		}
		
	//////////////////////////////////////////////////////////////////////////////////////////////
	//menuImgChange(which,'on');
	///////////////////////////////////////////////////////////////////////////////////////////////
	
	if(document.documentElement)
		{
		obj = getObject(which);
		currentSub = obj;
		checkSubNow=true; //Variable checkSubNow wird true gesetzt,weil jetzt ein Menu(Layer) sichtbar gemacht wird
		//obj.style.top = layerY;
		obj.style.visibility = "visible";
		}
	else if(document.all)
		{
		obj = getObject(which);
		currentSub = obj;
		checkSubNow=true;
		//obj.style.top = layerY;
		obj.style.visibility = "visible";
		}
	else if(document.layers)
		{
		obj = getObject(which);
		currentSub = obj;
		checkSubNow=true;
		//obj.top = layerY;
		obj.visibility = "show";
		}
}

function hideMenu(which)
	{
//////////////////////////////////////////////////////////////////////////////////////////////
	//menuImgChange(which,'off');
///////////////////////////////////////////////////////////////////////////////////////////////
	
	checkSubNow=false;
	if(document.documentElement)
		{
		obj = getObject(which);
		obj.style.visibility = "hidden";
		}
	else if(document.all)
		{
		obj = getObject(which);
		obj.style.visibility = "hidden"; 
		}
	else if(document.layers)
		{
		obj = getObject(which);
		obj.visibility = "hide";
		}
	}
