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"){
        var linkEl;
        if (typeof lastMenuEl!="undefined"){
            lastMenuEl.removeClassName("style_"+lastMenuEl.getAttribute("hoverStyle"));
            lastMenuEl.addClassName("style_"+lastMenuEl.getAttribute("normalStyle"));
            linkEl=$(lastMenuEl).down();
            if (linkEl!=null) linkEl.style.color=lastMenuEl.getStyle('color');
        }

        el.removeClassName("style_"+el.getAttribute("normalStyle"));
        el.addClassName("style_"+el.getAttribute("hoverStyle"));
        linkEl=el.down();
        if (linkEl!=null)linkEl.style.color=el.getStyle('color');
        lastMenuEl=el;
    }
    else{
        if (lastActiveMenuId>0){
            if (lastActiveMenuId!=activeMenuId){
                lastSubMenuElId="";
            }
        }
        lastActiveMenuId=activeMenuId;

        pausecomp(50);
        if (el.getAttribute('submenu')!=null){
			var menuEl=$("submenu_"+$(el).getAttribute("parent"));
			if ($(el).getAttribute("normalStyle")!=null)
				styleId = $(el).getAttribute("normalStyle");
			else styleId = menuEl.getAttribute("normalStyle");

			if ($(el).getAttribute("hoverStyle")!=null)
				hoverStyleId = $(el).getAttribute("hoverStyle");
			else hoverStyleId = menuEl.getAttribute("hoverStyle");

            el.removeClassName("style_"+styleId);
            el.addClassName("style_"+hoverStyleId);

            var linkEl=el.down();
            if (linkEl!=null) linkEl.style.color=el.getStyle("color");

            expandMenu(menuType,menuEl,el.getAttribute('submenu'),el);
            lastTdEl=el;
        }
        /*
        else
            if (activeMenuId==0) return;
            var descendantOfActiveMenu=false;
            var parentMenuId=el.getAttribute("parent");
            var parentEl=$("menu_"+activeEl.getAttribute("parent"));

            while(true){
                if (parentMenuId==activeMenuId){
                    descendantOfActiveMenu=true;
                    break;
                }

                if (parentEl.getAttribute('parent')==0) break;
                parentMenuId=parentEl.getAttribute('parent');
                parentEl=$("menu_"+parentMenuId);
                if (!parentEl) break;
            }

            if (!descendantOfActiveMenu){
                alert(1);
                //collapseMenu();
            }
        }
        */
    }

}

function menuOut(el){
    if (el.getAttribute('root')!=null) return;

	var menuEl=$("submenu_"+$(el).getAttribute("parent"));
	if ($(el).getAttribute("normalStyle")!=null)
		styleId = $(el).getAttribute("normalStyle");
	else styleId = menuEl.getAttribute("normalStyle");

	if ($(el).getAttribute("hoverStyle")!=null)
		hoverStyleId = $(el).getAttribute("hoverStyle");
	else hoverStyleId = menuEl.getAttribute("hoverStyle");

	el.removeClassName("style_"+hoverStyleId);
	el.addClassName("style_"+styleId);

    var linkEl=el.down();
    if (linkEl!=null) linkEl.style.color=el.getStyle("color");
}

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 "leftMenu":
				$(subMenuElId).style.left=left-parseInt($(tdEl).getWidth(),10)+"px";
				$(subMenuElId).style.top=top+"px";
				$(subMenuElId).style.display='block';
				$(subMenuElId).style.zIndex=1000;
                break;

			case "rightMenu":
				$(subMenuElId).style.left=(left+parseInt($(tdEl).getWidth(),10))+"px";
				$(subMenuElId).style.top=top+"px";
				$(subMenuElId).style.display='block';
				$(subMenuElId).style.zIndex=99999999;
				break;

			case "hDownMenu":
				$(subMenuElId).style.left=(left-parseInt($(subMenuElId).getWidth()/2,10))+parseInt(($(tdEl).getWidth()/2),10)+"px";
				//alert(parseInt($(subMenuElId).getWidth()/2,10));
				//$(subMenuElId).style.left=left+"px";
				$(subMenuElId).style.top=top+$(tdEl).getHeight()+"px";
				$(subMenuElId).style.display='block';
				$(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;
}

