// 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 = 0;
var maxXright = 400;

var closeMenuYTop = 100; // ab welchen Y-Wert von oben soll der Layer unsichtbar werden




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;
			//alert(curX + " " + curY);
			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)
		{
		objTop=whichSub.style.top;
		objToplength=objTop.length;
		objTop=objTop.substring(0,objToplength-2); // Ende der "Abtrennprozedur"
		
		maxY=200+parseInt(objTop); //Berechnung des maximalen Y-Werts(s.o.). Integer wird erzwungen
		//alert(curX + " " + curY + " " + maxY);
		if(curY>maxY || curY<objTop || 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);
		
		maxRight = parseInt(objL) + 160;
		//alert(curX + " " + curY + " " + maxRight);
		if(curX<=1 || curX>=maxRight)
			{
			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);
			}
		}
		//alert("L: " + objL + "R: " + objR + "\nX: " + curX);
	}	

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)
	{
	//alert(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";
		}
	}