

var activeButton = null;
var activeMenu = null;
var timer;



EventManager.addEvent( window, 'load', function(){

	var li = document.getElementsByTagName('LI');

	for( var i=0; i<li.length; i++ ){
		var el = li[i];

		if( hasClassName(el, 'buttonItem') ){
			var buttonitem =el;
			EventManager.addEvent( buttonitem.firstChild, 'mouseover', function(event){
				clearTimer();
				var el = (browser.isIE)? window.event.srcElement : event.currentTarget;
				while ( el.parentNode.tagName != 'LI') // && getOffsetParent(el).tagName != 'LI')
				{
					el = el.parentNode;//getOffsetParent(el);
				}
				var div = el.parentNode.getElementsByTagName('DIV');
				for( var i=0; i<div.length; i++ ){
					if(hasClassName(div[i],'layer')){
						buttonClick(event, div[i].id);
						return;
					}
				}
				hideMenu();
			}, false );
			EventManager.addEvent( buttonitem.firstChild, 'mouseout', function(event){
				timer = setTimeout("hideMenu()", 500);
			}, false );
		}

		if( hasClassName(el, 'menuitem') ){
			EventManager.addEvent( el.firstChild, 'mouseover', function(event){
				clearTimer();
				hasSubMenu(event);
			}, false );
			EventManager.addEvent( el.firstChild, 'mouseout', function(event){
				timer = setTimeout("hideMenu()", 500);
			}, false );
		}
		else if( hasClassName(el, 'submenuitem') ){
			EventManager.addEvent( el.firstChild, 'mouseover', clearTimer, false );
			EventManager.addEvent( el.firstChild, 'mouseout', function(event){
				timer = setTimeout("hideMenu()", 500);
			}, false );
		}
	}

}, false );


function hideMenu(){
	if (activeButton){
		resetButton(activeButton);
		activeButton = null;
	}
}
function clearTimer(){
	clearTimeout(timer);
}


function hasSubMenu(event){
	var el = (browser.isIE)? window.event.srcElement : event.currentTarget;
	if (!hasClassName(el.parentNode,'open')){
		setStyle( activeMenu, {visibility: 'hidden'} );
	}
	else{
		hassubmenuMouseover(el, el.parentNode.getElementsByTagName('UL')[0].id);
	}
}


function hassubmenuMouseover(el, submenuId) {
	var button = el;//(browser.isIE)? window.event.srcElement : event.currentTarget;
	if(!$(submenuId)) return;

	if (activeMenu != $(submenuId)){
		setStyle( activeMenu, {visibility: 'hidden'} );
	}

	setStyle( $(submenuId), { top: (button.offsetTop-1)+'px',  left: button.offsetWidth+'px', visibility: 'visible'} );
	activeMenu = $(submenuId);
}



function buttonClick(event, menuId) {
	clearTimer();
	var button = (browser.isIE)? window.event.srcElement : 
								event.currentTarget;

	button.blur();
	if (button.menu == null) {
		button.menu = document.getElementById(menuId);
		if (button.menu.isInitialized == null)
			menuInit(button.menu);
	}

	if (activeButton != null && activeButton != button){
		resetButton(activeButton);
	}

	if (button != activeButton) {
		depressButton(button);
		activeButton = button;
	}
/*	else
		activeButton = null;*/

	return false;
}



function depressButton(button) {
	var x, y;
	var offset = getPageOffset(button);

	x = offset[0];
	y = offset[1] + button.offsetHeight;

//	button.menu.style.left = x + "px";
//	button.menu.style.top	= y + "px";
	button.menu.style.visibility = "visible";
}



function resetButton(button) {
//	removeClassName(button, "menubutton_active");
	if (button.menu != null) {
		closeSubMenu(button.menu);
		button.menu.style.visibility = "hidden";
		setStyle( activeMenu, {visibility: 'hidden'} );
	}
}



function closeSubMenu(menu) {
	if (menu == null || menu.activeItem == null)
		return;

	if (menu.activeItem.subMenu != null) {
		closeSubMenu(menu.activeItem.subMenu);
		menu.activeItem.subMenu.style.visibility = "hidden";
		menu.activeItem.subMenu = null;
	}
//	removeClassName(menu.activeItem, "menuitem_highlight");
	menu.activeItem = null;
}



function menuInit(menu) {
	menu.isInitialized = true;
}




