var ns4;
var ns6;

if(document.all)
{
	//IE browser
	ns4 = ns6 = false;
}
else
{
	ns4 = (document.layers) != null;
	ns6 = !ns4;
}

var currentMenu = null;

function mover(e)
{
	// Event abfragen
	if (!e) var e = window.event;
	
	// Das Element, welches den Event ausgelöst hat (hier der Menuknopf)
	var button = (e.target) ? e.target : e.srcElement;

	var oId = getMenuId(button);
	var menu = document.getElementById(oId);

	if (!menu) 
		return false;
	else
		rebuildMenu(menu,button);
	
	// Setze das alte Menu unsichtbar
	if (currentMenu!=menu && currentMenu != null)
		currentMenu.style.display = "none";
		
	// Setze das neue Menu auf sichtbar
	menu.style.display = "block";
	currentMenu=menu;
	
}

function mout(e)
{
	// Event abfragen
	if (!e) var e = window.event;
	
	// Das Element, welches den Event ausgelöst hat (hier der Menuknopf)
	var button = (e.target) ? e.target : e.srcElement;
	
	// Hole das aktuelle Menu
	var oID = getMenuId(button);
	var menu = document.getElementById(oID);
	
	if (!menu) 
		return false;
	
	var pageYOffset = (document.body.scrollTop) ? document.body.scrollTop : window.pageYOffset;
	
	// Korrektur für IE - wenn InternetExplore nicht vertikal gescrolt wurde, dann hat 'scrollTop' den Wert 'undefined'
	// deswegen muß der Wert auf 0 gesetzt werden
	if(typeof(pageYOffset)=="undefined") pageYOffset=0;

	// Ausschalten des Menus, wenn der Event oberhalb des Menus und nicht in 
	// dessen Anzeigebreite liegt
	if(e.clientY+pageYOffset < (getPosition(button).y+button.offsetHeight) || 
			e.clientX > (getPosition(button).x+menu.offsetWidth))
	{
		menu.style.display = "none";
	}

}

function getMenuId(button)
{
	// MenuId erstellen
	var rubrik = parseInt(button.id.substring(11, button.id.length));
	return "menu"+(rubrik);
}

function menuout(e)
{
	// Event abfragen
	if (!e) var e = window.event;

	// Das Element, welches den Event ausgelöst hat
	var tg = (e.target) ? e.target : e.srcElement
	
	var oMenu = tg;
	
	// Pixelkorrektur für IE 
	var IE;
	(ns4 || ns6) ? IE = 0 : IE = 2;
	
	var pageYOffset = (document.body.scrollTop) ? document.body.scrollTop : window.pageYOffset;

	// Korrektur für IE - wenn InternetExplore nicht vertikal gescrolt wurde, dann hat 'scrollTop' den Wert 'undefined'
	// deswegen muß der Wert auf 0 gesetzt werden
	if(typeof(pageYOffset)=="undefined") pageYOffset=0;
	
	if (e.clientX-IE < getPosition(oMenu).x || e.clientX-IE >= (getPosition(oMenu).x + oMenu.offsetWidth)
		|| e.clientY+pageYOffset-IE < getPosition(oMenu).y || e.clientY+pageYOffset-IE >= (getPosition(oMenu).y + oMenu.offsetHeight))
	{
		if (tg.nodeName == "DIV") oMenu.style.display = "none";
	}
}

function load(button)
{
	var rubrik = parseInt(button.id.substring(11, button.id.length));
	
	self.location.href = r[rubrik][0][1];
}

function getPosition(button)
{
	var button_left = 0;
	var button_top = 0;
	
	buttonRef = button;
	
	if (buttonRef)
	{
		// Schleife über alle Elternelemente
		while (buttonRef.offsetParent != null) 
		{
			button_left += buttonRef.offsetLeft;
			buttonRef = buttonRef.offsetParent;
		}

		// Verweis auf den MenuButton
		buttonRef = button;
				
		while (buttonRef.offsetParent != null)
		{
			button_top += buttonRef.offsetTop;
			buttonRef = buttonRef.offsetParent;
		}
	
		var position = new Point(button_left,button_top);
		
		return position;
	}
	else
		return null;

}

function rebuildMenu(menu,button)
{
	// Position des aktuellen Klappmenus ermitteln und setzen
	var position = getPosition(button);
	menu.style.position = "absolute";
	menu.style.left = position.x;
	menu.style.top = position.y+30;
	
}

 //function createMenu(button)
 function createMenu()
 {
	for(j=0;j<r.length;j++)
	{
	    if (r[j][1].length > 0)
	    {
		    // Erzeugen des Bereichs zum Anzeigen der Themen
		    var oDiv = document.createElement("div");
		    oDiv.id = "menu"+(j);
    		
		    // Stil zuweisen	
		    oDiv.className = "menu";
    		
		    // OnMouseOut-Event erstellen
		    if (ns4 || ns6)
			    oDiv.addEventListener('mouseout',menuout,false);
		    else
			    oDiv.onmouseout = menuout;
    			
		    // Hinzufuegen des Menus zur Dokumentenhirarchie
		    document.body.appendChild(oDiv);
    		
		    for (i=0;i<r[j][1].length;i++)
		    {
			    var oEntry = createEntry(r[j][1][i]);
			    oDiv.appendChild(oEntry);
		    }
		}
	}
 }
 
 function createEntry(entry)
 {
	var oAnchor = document.createElement("a");
	oAnchor.href = entry[1];

	var newText=document.createTextNode(entry[0]);
	oAnchor.appendChild(newText);
	
	return oAnchor; 
 }

function Point(x,y)
{
	this.x = x;
	this.y = y;
}

