/* Datendeklaration */
var mTimeout = 4000;  		//Anzeigedauer des Menüs
var remember = new Array();
var remember2 = new Array();
var checkIt;
var menuDir = "right";
var DHTML = (document.getElementById || document.all || document.layers);

function lib_bwcheck(){ 
  this.ver=navigator.appVersion
  this.agent=navigator.userAgent
  this.dom=document.getElementById?1:0
  this.opera=this.agent.indexOf("Op")>-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.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5)
  return this
}

/* Object erzeugen */
function getObj(name){
this.style =document.getElementById?document.getElementById(name).style:document.all?document.all[name].style:
document.layers?document.layers[name]:false;
this.obj =document.getElementById?document.getElementById(name):document.all?document.all[name]:
document.layers?document.layers[name]:false;
}

function checkUserInput(){
	checkIt?clearTimeout(checkIt):0;
	checkIt = setTimeout('closeAll(1)',mTimeout);
}

// ID, Ebene, überfahrenes Div, Ausrichtung
function show(name,lvl,obj,align) 
{

	// Browserüberprüfung. Falls erforgreich weiter, sonst abbrechen
	bw=new lib_bwcheck() //Browsercheck object
	if (!DHTML) return;
	
	// Letzte aktion des Users ermitteln und evtl. Menü schließen
	checkUserInput();
	
	// Falls die zu öffnende ID der aktuellen entspricht, nichts tun
	if (remember[lvl] && remember[lvl] == name) return;
	
	// Ebenen schließen
	if (remember[lvl])
	{
		closeAll(lvl); 
	}
	
	// Übergeordnete Ebene zuweisen
	if (obj.parentElement)
	{
		y = obj.parentElement;
	}
	if (obj.parentNode)
	{
		y = obj.parentNode;
	}
	//else return;
	
	if (name)
	{
		//alert("öffne " + name);	
	    var x = new getObj(name);
	    x.obj.className = 'newLayer';   //Stylesheetklasse für neue Ebene zuweisen
	
		if(lvl !=1 || (align == 'v' && lvl == 1))
		{
			
			var nav0 = new getObj("naventry1");
			var leftValue = absLeft(obj);					 
				
			var offsetTop = nav0.obj.offsetHeight*(-1);
			var newWidth=absLeft(obj)+obj.offsetWidth*2;
			//Falls Fensterrand erreicht
			if(newWidth > document.body.clientWidth && menuDir != "left") //rechter Seitenrand
			{
				var moveLeft = (obj.offsetWidth)*(-1);
				menuDir = "left";
			}
			else if((absLeft(obj)-obj.offsetWidth) < 0 && menuDir != "right") //linker Seitenrand
			{
				var moveLeft = obj.offsetWidth;
				menuDir = "right";			 
			}
			else if(menuDir == "left")
			{
				var moveLeft = (obj.offsetWidth)*(-1);
			}
			else
			{
				var moveLeft = obj.offsetWidth;
			}
	
			//Div positionieren		
	        x.obj.style.left = moveLeft + 'px';
	        //alert(moveLeft);
			x.obj.style.marginTop = offsetTop + 'px';
		}
    }
	remember[lvl] = name;
	if (y.className) return;
	y.className = 'over';
	if (remember2[lvl]) remember2[lvl].className = '';
	remember2[lvl] = y;
}

//alle Menüpunkte schließen
function closeAll(lvl){
	for (i=remember.length-1;i>=lvl;i--)
	{		
		if (remember[i])
		{
			var x = new getObj(remember[i]);
			var y;
			
			/*
			if (x.obj.parentElement)
			{
				y = x.obj.parentElement;
			}
			if(y)
			{
				y.className = 'base';
			}*/
			x.obj.className = 'base';
		}
		remember[i] = null;
		menuDir = null;
		if (remember2[i])
		{	remember2[i].className = '';
			remember2[i] = null; 
		}
	} //Ende for Schleife
}

//Position vom Fensterrand links bestimmen
  function absLeft(el) 
  {
     var ret = (el.offsetParent)? 
     el.offsetLeft+absLeft(el.offsetParent) : el.offsetLeft;
//     alert(ret);
     return ret;
  }

//Position vom Fensterrand oben bestimmen
  function absTop(el) {
     return (el.offsetParent)? 
     el.offsetTop+absTop(el.offsetParent) : el.offsetTop;
  }

//Style Eigenschaften auslesen
function getStyle(el,styleProp)
{
	var x = document.getElementById(el);
	if (window.getComputedStyle)
		var y = window.getComputedStyle(x,null).getPropertyValue(styleProp);
	else if (x.currentStyle)
		var y = eval('x.currentStyle.' + styleProp);
	return y;
}



