var activMenu = null;
var inMenu = false;
var timeoutMenu = null;
var intervalMenu = null;
var countInterval=0;
var intervalShowMenu = null;
var first = true;

function changeActivSubMenuBgImg(objBaseName)
{
    ///changeBgImg(document.getElementById(objBaseName + '_sccMenu'), '/libs/images/' + theme + '/dmludr_ccs.png')
    changeBgImg(document.getElementById(objBaseName + '_sccMenu_left'), '/libs/images/' + theme + '/menu_text_left.png')
    changeBgImg(document.getElementById(objBaseName + '_sccMenu_right'), '/libs/images/' + theme + '/menu_text_right.png')
    changeBgImg(document.getElementById(objBaseName + '_sccMenu_center'), '/libs/images/' + theme + '/menu_text_center.png')
}

function changeInactivSubMenuBgImg(objBaseName)
{
    ///changeBgImg(document.getElementById(objBaseName + '_sccMenu'), '/libs/images/' + theme + '/dmludr_cc.png')
    changeBgImg(document.getElementById(objBaseName + '_sccMenu_left'), '/libs/images/' + theme + '/dmludr_cc.png')
    changeBgImg(document.getElementById(objBaseName + '_sccMenu_right'), '/libs/images/' + theme + '/dmludr_cc.png')
    changeBgImg(document.getElementById(objBaseName + '_sccMenu_center'), '/libs/images/' + theme + '/dmludr_cc.png')
}

function changeActivMenuBgImg(objBaseName)
{
    changeBgImg(document.getElementById(objBaseName + '_lMenu'), '/libs/images/' + theme + '/gButtonLeft.png')
    changeBgImg(document.getElementById(objBaseName + '_rMenu'), '/libs/images/' + theme + '/gButtonRight.png')
    changeBgImg(document.getElementById(objBaseName + '_cMenu'), '/libs/images/' + theme + '/gButtonBody.png')
}

function changePasivMenuBgImg(objBaseName)
{
    changeBgImg(document.getElementById(objBaseName + '_lMenu'), '/libs/images/' + theme + '/bButtonLeft.png')
    changeBgImg(document.getElementById(objBaseName + '_rMenu'), '/libs/images/' + theme + '/bButtonRight.png')
    changeBgImg(document.getElementById(objBaseName + '_cMenu'), '/libs/images/' + theme + '/bButtonBody.png')
}

function addMenuClass(objBaseName, className){
    var el = Ext.get(objBaseName + '_lMenu'); if(el) el.addClass('menuLElement' + className);
    el = Ext.get(objBaseName + '_rMenu'); if(el) el.addClass('menuRElement' + className);
    el = Ext.get(objBaseName + '_cMenu'); if(el) el.addClass('menuCElement' + className);
    el = Ext.get(objBaseName + '_acMenu'); if(el) el.addClass('menuCElement' + className);
    el = Ext.get(objBaseName + '_tcMenu'); if(el) el.addClass('menuCElement' + className);
}

function removeMenuClass(objBaseName, className){
    var el = Ext.get(objBaseName + '_lMenu'); if(el) el.removeClass('menuLElement' + className);
    el = Ext.get(objBaseName + '_rMenu'); if(el) el.removeClass('menuRElement' + className);
    el = Ext.get(objBaseName + '_cMenu'); if(el) el.removeClass('menuCElement' + className);
    el = Ext.get(objBaseName + '_acMenu'); if(el) el.removeClass('menuCElement' + className);
    el = Ext.get(objBaseName + '_tcMenu'); if(el) el.removeClass('menuCElement' + className);
}

function activateSubmenu(sender, baseName){
    //clearTimeout
    if(timeoutMenu!=null){
        clearTimeout(timeoutMenu)
        timeoutMenu = null;
    }
    //if activ menu i will hide it
    var subMenuBase = document.getElementById(baseName + "_base");
    if(activMenu!=null && subMenuBase!=activMenu){
        hideMenu(Ext.get(activMenu));
        countInterval=0;
        menuHideTransparent(Ext.get(activMenu))
    }
      
    if(subMenuBase!=activMenu){
        var x=0;
        var y=0;
        for (var p = sender; p; p = p.offsetParent)
            if (p.style.position != 'absolute')
            {
                x += p.offsetLeft;
                y += p.offsetTop;
            }
        
        y += sender.clientHeight;
        subMenuBase.style.left = x+'px';
        subMenuBase.style.top  = y+'px';
        
        subMenuBase.style.visibility = "visible";
        subMenuBase.style.display    = "block";
        
        activMenu = subMenuBase;
        if(timeoutMenu!=null)
            clearTimeout(timeoutMenu);
        if(intervalShowMenu!=null)
            clearInterval(intervalShowMenu);
        intervalShowMenu = setInterval(autoHideMenu.createDelegate(this, [Ext.get(subMenuBase.id)]), 2000);
        
        if(intervalMenu!=null)
            clearInterval(intervalMenu)
        
        intervalMenu = setInterval(menuShowTransparent.createDelegate(this, [Ext.get(subMenuBase.id)]), 20);
        countInterval=0;
    }
} 

function hideMenu(subMenuBase)
{
    //hide activ menu
    if(subMenuBase!=null && inMenu==false)
    {
        if(intervalMenu!=null)
            clearInterval(intervalMenu)
        if(countInterval==0)
            countInterval = 10;
        intervalMenu = setInterval(menuHideTransparent.createDelegate(this, [Ext.get(subMenuBase)]), 20);
    }
}

function autoHideMenu(subMenuBase)
{
    if(inMenu==false && subMenuBase!=null)
        hideMenu(subMenuBase);
    timeoutMenu = null;
}

function moveMenuIn()
{
    inMenu = true;
}

function moveMenuOut()
{
    inMenu = false;
    if(timeoutMenu!=null)
        clearTimeout(timeoutMenu);
    if(activMenu!=null)
        timeoutMenu = setTimeout(hideMenu.createDelegate(this, [Ext.get(activMenu)]), 20);
}

function menuShowTransparent(obj)
{
    if(obj!=null)
    {
        if(countInterval<=10)
        {
            obj.dom.className = "menuHBase transparent" + countInterval;
            countInterval++;
        }
        else
        {
            if(intervalMenu!=null)
            {
                clearInterval(intervalMenu);
                intervalMenu = null;
                countInterval=10;
            }
        }
    }
    else
    {
        clearInterval(intervalMenu);
        intervalMenu = null;
        countInterval=10;
    }
}

function menuHideTransparent(obj)
{
    if(obj!=null)
    {
        if(countInterval>=0 && countInterval<=10)
        {
            obj.dom.className = "menuHBase transparent" + countInterval;
            countInterval--;
        }
        else
        {
            if(intervalMenu!=null)
            {
                clearInterval(intervalMenu);
                intervalMenu = null;
                countInterval=0;
                
                obj.dom.style.display = "none";
                obj.dom.style.visibility = "hidden";
                obj=null;
                activMenu=null;
                
                if(intervalShowMenu!=null)
                    clearInterval(intervalShowMenu);
            }
        }
    }
    else
    {
        clearInterval(intervalMenu);
        intervalMenu = null;
        countInterval=0;
        
        obj.dom.style.display = "none";
        obj.dom.style.visibility = "hidden";
        obj=null;
        activMenu=null;
        
        if(intervalShowMenu!=null)
            clearInterval(intervalShowMenu);
    }
}
