var lastActiveMenu = null;
var menuToHide = null;
var secs = null;
var timerID = null;
var timerRunning = false;
var delay = 1000;
var stopevent = false;


/* --- Parts from x */
var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xNN4,xUA=navigator.userAgent.toLowerCase();
if(window.opera){
  var i=xUA.indexOf('opera');
  if(i!=-1){
    var v=parseInt(xUA.charAt(i+6));
    xOp7Up=v>=7;
    xOp6Dn=v<7;
  }
}
else if(navigator.vendor!='KDE' && document.all && xUA.indexOf('msie')!=-1){
  xIE4Up=parseFloat(navigator.appVersion)>=4;
  xIE4=xUA.indexOf('msie 4')!=-1;
  xIE5=xUA.indexOf('msie 5')!=-1;
}
else if(document.layers){xNN4=true;}
xMac=xUA.indexOf('mac')!=-1;

function xGetElementById(e)
{
  if(typeof(e)!='string') return e;
  if(document.getElementById) e=document.getElementById(e);
  else if(document.all) e=document.all[e];
  else e=null;
  return e;
}



function xAddEventListener(e,eT,eL,cap)
{
  if(e.addEventListener)
	  {
	 
	  e.addEventListener(eT,eL,cap);
	  
	  }
  else if (e.attachEvent) {
    var retVal = e.attachEvent('on'+eT, eL);
    return retVal;
  } else {
    return false;
  }
}

/* --- Parts from x */


//-- Events --//

function myonmouseover1(event) {	
						   // display the inner menu /
						   //Stope alten Counter damit das Menu sichtbar bleibt
						   StopTheClock();
						   var menu;
						   if(xIE4Up) {
										menu = event.srcElement.parentNode;
										}
										 else
											 {
											 menu = event.currentTarget;
											 }
							
							if(menu.className=="level-1"){
							  menu.lastChild.style.display="block";
							}

							//Falls ein Hauptmenuwechsel passiert ist blende altes Menu aus
							try{
									if(menu.className == menuToHide.className){
									if(menu!=menuToHide)
									{
										if(menuToHide.className!="")
										menuToHide.lastChild.style.display="none";
										//blende eventuell offene Untermenus aus
										lastActiveMenu.lastChild.style.display="none";
										lastActiveMenu = null;
									}
									
									}
									else{
									 // es ist das Gleiche Menu
									}
								
								}
								catch(e)
									{
									//Fange Fehler ab, falls kein altes Menu offen ist
									}
						//Setze jetzt aktuelles Menu
						if(menu.className=="level-1"){
							menuToHide = menu;
						}

						}

function myonclick2(event)
										{
										
										stopevent = true;
										//Prüfe ob ein alter Menupunkt ausgeblendet werden muss
										try{
											lastActiveMenu.lastChild.style.display="none";
											lastActiveMenu = null;
											}
											catch(e)
											{
												//falls keiner vorhanden ist, mache nichts
											}
										//Blende neuen Menupunkt ein und setze ihn auf alt
										var menu;
						   if(xIE4Up) {
										menu = event.srcElement.parentNode;
										}
										 else
											 {
											 menu = event.currentTarget;
											 }
										menu.lastChild.style.display="block";
										lastActiveMenu = menu;
										//Bende Event mit Weitergabe des Events
										return true;
							}

function myonclick3(event) 
								{	
							    stopevent = true;
								//Prüfe ob ein alter Menupunkt abgeblendet werden muss
								 try{
												lastActiveMenu.lastChild.style.display="none";
												lastActiveMenu = null;
												}
												catch(e)
												{
													//falls keiner vorhanden ist, mache nichts
												}

								//Bende Event mit Weitergabe des Events
								return true;
								}
function myonclick1(event) 
								{	
							    								
								var menu;
								if(xIE4Up) 
								{
										menu = event.srcElement.parentNode;
								}
										 else
											 {
											 menu = event.currentTarget;
											 }

								if(menu.className=="level-1")
								{
									//Bende Event ohne Weitergabe rest browser
									if(!stopevent){
									 if (event.preventDefault) { 
										  event.preventDefault(); 
										  event.stopPropagation(); 
										} else {
										  event.returnValue = false;
										  event.cancelBubble = true;
										}
										}
									//Bende Event ohne Weitergabe IE only
									return false;

								}
														
								//Bende Event mit Weitergabe des Events
								return true;
								}

function myonclick4(event) 
								{	
								//Schreibe hier eine Action falls benötigt
								stopevent = true;
								return true;
								}

function myonmouseout1(event) 
							{
							var menu;
							if(xIE4Up) 
								{
										menu = event.srcElement.parentNode;
										}
										 else
											 {
											 menu = event.currentTarget;
											 }
							if(menu.className=="level-1")
								{
								InitializeTimer();
								menuToHide = menu;
								}
										
							}

function myonmouseout2(event) 
							{
							var menu;
							if(xIE4Up) 
								{
										menu = event.srcElement.parentNode;
										}
										 else
											 {
											 menu = event.currentTarget;
											 }
							if(menu.className=="level-1")
								{
								InitializeTimer()
								menuToHide = menu;
								}
							if(menu.className=="")
								{
								InitializeTimer()
								}
							}



function myonmouseover2(event) {
  StopTheClock();
}	



//-- End Events --//

activateMenu = function(nav) {

	try{
			var navroot = document.getElementById(nav);
			
			/* Get all the list items within the menu */
			var lis=navroot.getElementsByTagName("LI");  
			
			for (i=0; i<lis.length; i++)
			{  
			
			// Test ob es ein Submenupunkt ist, wenn ja benutzt onclick
			   if(lis[i].parentNode.parentNode.className=="level-1")
			   {
					//Prüfe ob der Submenupunkt weitere Unterpunkte hat
					if(lis[i].lastChild.tagName=="UL")
						{
							
							xAddEventListener(lis[i], "click", myonclick2, true);
							xAddEventListener(lis[i], "mouseout", myonmouseout2, true);
							xAddEventListener(lis[i], "mouseover", myonmouseover2, true);
						}
						else
							{
						    xAddEventListener(lis[i], "click", myonclick3, true);
							xAddEventListener(lis[i], "mouseout", myonmouseout2, true);
							xAddEventListener(lis[i], "mouseover", myonmouseover2, true);
							}
						}

			   else
				   {
				   //Falls es ein Hauptmenupunkt ist benutze Onmousover Event und ein onclick disable 
			   
				   if(lis[i].lastChild.tagName=="UL" && lis[i].className=="level-1")
					{   
						xAddEventListener(lis[i], "click", myonclick1, false);
						xAddEventListener(lis[i], "mouseover", myonmouseover1, true);
						//hide the inner menu after 2 seconds
						xAddEventListener(lis[i], "mouseout", myonmouseout1, true);
					}
					// Falls nicht, nur für Demo, dann ist es jeweils der letzte Menupunkt ohne Unterpunkte
					else
						{
						
						xAddEventListener(lis[i], "click", myonclick4, true);
												
						}
				}
			}
	}
catch(e)
	{
	// Fange Fehler vom IE ab, welche beim Intitalisieren entsteht
	}

}

function InitializeTimer()
{
    // Set the length of the timer, in seconds
    secs = 5
    StopTheClock()
    StartTheTimer()
}

function StopTheClock()
{
    if(timerRunning)
        clearTimeout(timerID)
    timerRunning = false
}

function StartTheTimer()
{
    if (secs==0)
    {
        StopTheClock()
		//Zeit abgelaufen, also das Menu jetzt ausblenden
        menuToHide.lastChild.style.display="none";
		
    }
    else
    {
        secs = secs - 1
        timerRunning = true
        timerID = self.setTimeout("StartTheTimer()", delay)
    }
}


window.onload= function(){
    /* pass the function the id of the top level UL */
    /* remove one, when only using one menu */
    activateMenu('nav'); 
   // activateMenu('vertnav'); 
}



