//var visibleMenu = '';
var selectedButton = null;
var showedMenu = new Array(10);
var overMenuId = "";
var iTimerID = -1;

function ShowMenu(source, topMenu, level)
{
    //if (!topMenu) window.alert(source.id);
    var menuId = ((source.id.substring(0,3)=="btn")?"mn" + source.id.substring(3):source.id);
    var menu = document.getElementById(menuId);
    HideMenu2(level);
    if (menu == null) return;
    var obj = source;
    // zobrazene menu jiz nezobrazovat
    
    overMenuId = menuId;
    if (overMenuId == source.id)
        return;
        
    // skryti menu zobrazenych menu
    var tmpObj;
    var tmpArray = new Array();
    
    if (obj != null)
    {
        var left = 0;
        var top = 0;
        var flagHorizontal = false;
        while (obj != null)
        {
            left += obj.offsetLeft;
            top += obj.offsetTop;
            obj = obj.offsetParent;
        }
        //alert('left: ' + (left + source.offsetWidth))
        if (left + source.offsetWidth + menu.offsetWidth > document.body.offsetWidth) {
            left = left - menu.offsetWidth + source.offsetWidth + 1;
        }
        else {
            left = left + ((topMenu)?0:source.offsetWidth+0) + 1
        }
        mnWidth = menu.offsetWidth;
        menu.style.left = (left+2)+"px"; // + ((topMenu)?0:source.offsetWidth+3) + 1;
        menu.style.top = top+"px";
		//menu.style.left = "300px";
        //menu.style.top = "200px";
        if (source.attributes['hv'] != null)
            if (source.attributes['hv'].nodeValue == 'h')
                flagHorizontal = true;
        if (flagHorizontal)
            menu.style.left = (left + source.offsetWidth + 0)+"px";
        else
            menu.style.top = (top + ((topMenu)?source.offsetHeight+4:0))+"px";
        menu.style.visibility = '';
        menu.style.width = mnWidth+"px";
    }

    //window.alert(showedMenu.length);
    showedMenu[level] = menu;

//    source.className = "selected";
    try {
        for (i=0; i<source.parentElement.parentElement.cells.length; i++)
            source.parentElement.parentElement.cells[i].className = "selected";
    }
    catch (e) {}
}
//*********************************************************************************************
//*********************************************************************************************
function HideMenu(source, hide)
{
    var menuId = ((source.id.substring(0,3)=="btn")?"mn" + source.id.substring(3):source.id);
    var menu = document.getElementById(menuId);
    if (menu==null) return;
    var tmpArray = new Array();
    
    AddMessage('SetTimeOut');
    window.clearTimeout(iTimerID);
    iTimerID = window.setTimeout("HideMenu2(0);", 1000);
    //window.alert(iTimerID);
}

function HideMenu2(toLevel)
{
    var tmpObj;
    var am = new Array(10);
    if (iTimerID != -1) 
    {
        window.clearTimeout(iTimerID);
        AddMessage('TimeOut nynulovan.' + iTimerID);
    }
    AddMessage('Hide ' + toLevel);
    for(i=showedMenu.length-1; i>=0; i--)
    {
        tmpObj = showedMenu[i];
        if (tmpObj != null)
        {
            if (i >= toLevel)
            {
                tmpObj.style.visibility = 'hidden';
                tmpObj.className = "";
            }
            else
            {
                am[i] = tmpObj;
            //window.alert(tmpObj.id);
            }
        }
    }
    showedMenu = am;
}

function AddMessage(s)
{
    return;
    var o = document.getElementById('xxx');
    o.value = s + '\n\r' + o.value;
}

function SetRowSelected(row, selected)
{
//    row.className = ((selected)?'selected':'');
    for (i=0; i<row.cells.length; i++)
    {
        row.cells[i].className = ((selected)?'selected':'');
    }
}
