activeMenuId=0;
lastSubMenuElId="";
lastActiveMenuId=0;

function pausecomp(millis)
{
	var date = new Date();
	var curDate = null;

	do { curDate = new Date(); }
		while(curDate-date < millis);
}

function openCloseMenu(menuId){
    if (typeof lastOpenMenu!="undefined"){
        if (!(lastOpenMenu.descendantOf($("menu_"+menuId))) && !($("menu_"+menuId).descendantOf(lastOpenMenu))){
            $(lastOpenMenu.id).style.display="none";
            var parentMenu=$(lastOpenMenu.id).up();

            while ($(parentMenu).getAttribute("root")==null){
                if (!(parentMenu.descendantOf($("menu_"+menuId))) && !($("menu_"+menuId).descendantOf(parentMenu))){
                    $(parentMenu).style.display="none";
                }

                while(true){
                   parentMenu=$(parentMenu).up();
                   if (parentMenu.tagName.toUpperCase()=='DIV') break;
                }
                
                if ($(parentMenu).getAttribute("root")!=null) break;
            }
        }
    }

    if ($('menu_'+menuId).style.display==''){
        $('menu_'+menuId).style.display="none";
    }
    else{
        $('menu_'+menuId).style.display="";
        lastOpenMenu=$('menu_'+menuId);
    }
}

function collapseMenu(){
	if (lastSubMenuElId!=""){
		var subMenuElId=lastSubMenuElId;
		if ($(subMenuElId)) {if ($(subMenuElId).getAttribute('root')!=null) return;}
		while (true){
			var menuId=subMenuElId.replace("submenu_","menu_");
			if ($(subMenuElId)) $(subMenuElId).style.display='none';
			if (!$(menuId)) break;
			var parentElId="submenu_"+parseInt($(menuId).getAttribute("parent"),10);
			
			if ($(parentElId).getAttribute("root")!=null) break;
			
			if ($(parentElId)){
				$(parentElId).style.display="none";
				subMenuElId=parentElId;
			}
			else break;
		}
	}
}

function menuOver(el, menuType){
	if (menuType=="horiDownMenuClick"){
        if (typeof lastMenuEl!="undefined"){
            lastMenuEl.removeClassName("style_"+lastMenuEl.getAttribute("hoverStyle"));
            lastMenuEl.addClassName("style_"+lastMenuEl.getAttribute("normalStyle"));
        }

        el.removeClassName("style_"+el.getAttribute("normalStyle"));
        el.addClassName("style_"+el.getAttribute("hoverStyle"));
        lastMenuEl=el;
    }
    else{
        if (lastActiveMenuId>0){
            if (lastActiveMenuId!=activeMenuId){
                lastSubMenuElId="";
            }
        }
        lastActiveMenuId=activeMenuId;

        pausecomp(50);
        //var el=Event.element(e);
        if (el.getAttribute('submenu')!=null){
            var menuEl=$("submenu_"+$(el).getAttribute("parent"));

            el.removeClassName("style_"+menuEl.getAttribute("normalStyle"));
            el.addClassName("style_"+menuEl.getAttribute("hoverStyle"));
            expandMenu(menuType,menuEl,el.getAttribute('submenu'),el);
            lastTdEl=el;
        }
        else{
            if (activeMenuId==0) return;
            if (!el.descendantOf("menu_"+activeMenuId)){
                collapseMenu();
            }
        }
    }
	
}

function menuOut(el){
	if (el.getAttribute('root')!=null) return;
	var menuEl=$("submenu_"+$(el).getAttribute("parent"));
	el.removeClassName("style_"+menuEl.getAttribute("hoverStyle"));
	el.addClassName("style_"+menuEl.getAttribute("normalStyle"));
}

function expandMenu(menuType,parentMenuEl,subMenuId,tdEl){
	var subMenuElId="submenu_"+subMenuId;
	
	var arrPos=$(tdEl).cumulativeOffset();
	var left=arrPos[0];
	var top=arrPos[1];

	if ($(subMenuElId)){
		switch (menuType){
			case "rightMenu":
				$(subMenuElId).style.left=(left+parseInt($(tdEl).getWidth(),10))+"px";
				$(subMenuElId).style.top=top+"px";
				$(subMenuElId).style.display='';
				$(subMenuElId).style.zIndex=1000;
				break;
			
			case "hDownMenu":
				$(subMenuElId).style.left=left+"px";
				$(subMenuElId).style.top=top+$(tdEl).getHeight()+"px";
				$(subMenuElId).style.display='';
				$(subMenuElId).style.zIndex=1000;
				break;
		}
	}
	
	if (lastSubMenuElId!=subMenuElId && lastSubMenuElId!="" && parentMenuEl.id!=lastSubMenuElId){
		while (true){
			if (lastSubMenuElId!=subMenuElId  && $(lastSubMenuElId) && $(lastSubMenuElId).getAttribute('root')==null){
				$(lastSubMenuElId).style.display='none';
			}
			var menuId=lastSubMenuElId.replace("submenu_","menu_");
			var parentElId=parseInt($(menuId).getAttribute("parent"),10);
			if (isNaN(parentElId)) break;
			
			if (parentMenuEl.id.split("_")[1]==parentElId){
				break;
			}
			else{
				lastSubMenuElId="submenu_"+parentElId;
			}
		}
	}
	lastSubMenuElId=subMenuElId;
}

