var browser = new Browser();

// Global variable for tracking the currently active button.
var activeButton = null;
var ButtonOn = null;

function Browser() {
	var ua, s, i;

	this.isIE    = false;  // Internet Explorer
	this.isNS    = false;  // Netscape
	this.version = null;

	ua = navigator.userAgent;

	s = 'MSIE';
	if ((i = ua.indexOf(s)) >= 0) {
		this.isIE = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	}

	s = 'Netscape6/';
	if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = parseFloat(ua.substr(i + s.length));
		return;
	}

	// Treat any other 'Gecko' browser as NS 6.1.
	s = 'Gecko';
	if ((i = ua.indexOf(s)) >= 0) {
		this.isNS = true;
		this.version = 6.1;
		return;
	}
}

//Funktion für onMouseOver der HauptNavi
function activateMenu(buttonObj, menuName) {
	// Blur focus from the link to remove that annoying outline.
	buttonObj.blur();

	// Associate the named menu to this button if not already done.
	if (!buttonObj.menu) {
		buttonObj.menu = document.getElementById(menuName);
	}

	// Reset the currently active button, if any.
	if (activeButton && activeButton != buttonObj) {
		resetButton(activeButton);
	}

	// Toggle the button's state.
	pressButton(buttonObj, menuName);
	return false;
}

function resetEvent(e) {
	if (browser.isIE) return;

	var tg = e.target;
//	alert(tg.nodeName);
	if (tg.nodeName != 'DIV') return;

	var reltg = e.relatedTarget 
//	alert(reltg.nodeName);
	while (reltg.nodeName != 'BODY'){
		reltg = reltg.parentNode
		if (reltg.id=='activeMenu') return;
	}
	// Mouseout took place when mouse actually left layer
	// Handle event
	resetButton(activeButton);

}

//Funktion zum Aktivieren des Untermenüs
function pressButton(buttonObj, menuName) {

	var x, y;
	activeButtonObj = document.getElementById('activeButton');
	activeMenuObj = document.getElementById('activeMenu');
	activeMenuListObj = document.getElementById('activeMenuList');

	//event für NS initailisieren
	if (browser.isNS) activeMenuObj.addEventListener('mouseout',resetEvent,false);

	activeButtonObj.innerHTML = '<div class="overPlus">'+buttonObj.innerHTML+'</div>';

	if (buttonObj.className == 'on') {
		ButtonOn = buttonObj
	}

	if (!buttonObj.menu) {
		buttonObj.className = 'over';
	} else {
		buttonObj.className = 'overPlus';
		activeMenuListObj.innerHTML = buttonObj.menu.innerHTML
		// Position the associated drop down menu under the button and
		// show it. Note that the position must be adjusted according to
		// browser, styling and positioning.
		x = getPageOffsetLeft(buttonObj);
		y = getPageOffsetTop(buttonObj) + buttonObj.offsetHeight;
		y = y-2;

		if (browser.isIE && browser.version < 6.1) {
			x += 0;
			y += -7;
		}

		if (browser.isNS && browser.version < 6.1)
			y--;

		setPos(activeMenuObj, x, y, 'visible');
		setPos(activeButtonObj, x, y-31, 'visible');

		if (browser.isIE && browser.version < 7){
			var elCount;
			elCount = activeMenuObj.getElementsByTagName('a').length;
			if (!isNaN(elCount)){
				document.getElementById('dumframe').style.height=(elCount*27)+'px';
			}
			setPos('dumframe', x, y, 'visible');
		}

//		if (browser.isIE) activeMenuObj.onmouseout = pageMousedown;
//		if (browser.isNS) activeMenuObj.addEventListener('mouseout', pageMousedown, true);

	}

	// Set button state and let the world know which button is active.
	activeButton = buttonObj;
}

function resetButton(buttonObj) {
	// Restore the button's style class.
	buttonObj.className = '';
	if (buttonObj == ButtonOn)
	{
		buttonObj.className = 'on';
	}

	if (browser.isNS) activeMenuObj.removeEventListener('mouseout',resetEvent,false);
	// Hide the button's menu.
	if (buttonObj.menu) {
		setPos('activeMenu', -500, -500, 'hidden');
		setPos('dumframe', -500, -500, 'hidden');
		setPos('activeButton', -500, -500, 'hidden');
		document.getElementById('activeMenuList').innerHTML = '';
	}

	activeButton = null;
}

