var DHTML = (document.getElementById || document.all || document.layers);
var VisibleSubmenu = "";
var ParentOfVisibleSubmenu = "";
var timerHideSubmenu;
var ActualMenuItem = document;

function getObj(name)
{
    //fce najde html-element pozadovaneho jmena a vytvori
    //objekt se dvema properties: obj a style
    //(bo style ma netscape jinde nez IE)

    if (document.getElementById) {
        this.obj = document.getElementById(name);
        this.style = document.getElementById(name).style;

    } else if (document.all) {
        this.obj = document.all[name];
        this.style = document.all[name].style;

    } else if (document.layers) {
        this.obj = document.layers[name];
        this.style = document.layers[name];

    }
}

function ChangeClass(obj, Name)
{
    if (!DHTML) return;

    //pro aktualni polozku menu nemenim styl
    if ( obj == ActualMenuItem ) return;
    
    obj.className = Name;
}

function SetActualMenuItem(myId)
{
    //zmena itemu s nazvem myId na aktualni.
    //pokud je myId prazdne, tak se zmena nekona
    if (!DHTML || (myId == "")) return;

    //nazev menuitemu je <Item><myId>
    var o = new getObj("Item" + myId);
    if ( o.obj.className == "MenuLevel1" ) o.obj.className = "ActualItem1";
    else if ( o.obj.className == "MenuLevel2" ) o.obj.className = "ActualItem2";
    else o.obj.className = "ActualItem";
    ActualMenuItem = o.obj;
}

function GetLeft(obj)
{
    var curleft = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    } else if (obj.x) curleft += obj.x;
    return curleft;
}

function GetTop(obj)
{
    var curtop = 0;
    if (obj.offsetParent) {
        while (obj.offsetParent) {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    } else if (obj.y) curtop += obj.y;
    return curtop;
}


function setVisibility(id, newVisibility)
{
    if (!DHTML) return;

    var obj = new getObj(id);
    obj.style.visibility = newVisibility;
}

function ShowSubmenu(item, id, NewClassOfItem)
{
    if (!DHTML) return;

    //pro item (objekt=html-element) zobraz submenu s id
    //submenu umistim vedle item

    clearTimeout(timerHideSubmenu);
    if ( VisibleSubmenu == id ) return;

    HideSubmenu();
    if ( id != "" ) {
        //zmenim class item, at je videt, ze je zobrazeno submenu tohoto itemu
        ChangeClass(item, NewClassOfItem);

        //pozice
        var obj = new getObj(id);
        obj.style.left = (GetLeft(item) + item.offsetWidth + 2) + 'px';
        obj.style.top = (GetTop(item) - 4) + 'px';

        setVisibility(id, 'visible');

        //zapamatuju si zobrazene submenu a jeho item
        ParentOfVisibleSubmenu = item;
        VisibleSubmenu = id;
    }
}

function HideSubmenu()
{
    if (!DHTML) return;

    if ( VisibleSubmenu != "" )
    {
        setVisibility(VisibleSubmenu, 'hidden');
        VisibleSubmenu = "";
        ChangeClass(ParentOfVisibleSubmenu, "");
        ParentOfVisibleSubmenu = "";
    }
}

function TryHideSubmenu()
{
    if (!DHTML) return;

    if ( VisibleSubmenu != "" )
    {
        timerHideSubmenu = setTimeout("HideSubmenu();", 150);
    }
}

function DontHideSubmenu()
{
    if (!DHTML) return;

    clearTimeout(timerHideSubmenu);
}
