/**
 * Class for navigation. I have used a class instead of functions,
 * to avoid double defination of functions. So all navi functions,
 * have to be called with Menu.xxx()
 *
 * ClickNavi has no state or instance methods. All methods are class methods (static).
 */
function Menu() {
}

Menu.setSelected = function(menuNum) {
    var childs = Menu.getLIChilds();
    for (var i=0; i<childs.length;i++) {
        var item = childs[i];
        var li = Menu.getSubLIElement(item);
        if (i == menuNum)
            li.className = "selected";
        else
            li.className = "";
    }
}



Menu.initMenuListener = function () {
    var childs = Menu.getLIChilds();
    for (var i=0; i<childs.length;i++) {
        var item = childs[i];
        item.onmouseover=function() {
            Menu.showSubMenu(this);
        }
    }
}

Menu.hideAllSubMenus = function () {
    var childs = Menu.getLIChilds();
    for (var i=0; i<childs.length;i++) {
        var item = childs[i];
        Menu.hideSubMenu(item);
    }
}

Menu.showSubMenu = function (ul) {
    Menu.hideAllSubMenus();

    var ul_sub = Menu.getSubULElement(ul);
    if (!ul_sub)
        return;
    
    Menu.hideIFrames();
    
    if (ul_sub.style) {
        var left =ul.offsetLeft;/*+ul.offsetWidth/2;*/
        ul_sub.style.display = "block";
        /*left = left - ul_sub.offsetWidth/2;*/

        ul_sub.style.left = left+"px";
    }

    ul.onmouseout=function() {
        Menu.hideSubMenu(this);
    }
    ul_sub.onmouseover=function() {
        Menu.showSubMenu(this);
    }
    ul_sub.onmouseout=function() {
        Menu.hideSubMenu(this);
    }
}

Menu.hideSubMenu = function (ul) {
    Menu.showIFrames();
    var ul_sub = Menu.getSubULElement(ul);

    if (ul_sub && ul_sub.style)
        ul_sub.style.display = "none";
}

Menu.getLIChilds = function () {
    var liList = new Array();
    var menu = document.getElementById('menu');
    var ul = Menu.getSubULElement(menu);
    var childs = ul.childNodes;
    for (var i=0; i<childs.length;i++) {
        var item = childs.item(i);
        if (item.nodeName == "LI"){
            liList.push(item);
        }
    }
    return liList;
}

Menu.getSubLIElement = function (ul) {
    var sub_lis = ul.getElementsByTagName("li");
    return sub_lis[0];

}

Menu.getSubULElement = function (ul) {
    var sub_uls = ul.getElementsByTagName("ul");
    return sub_uls[0];
}

Menu.hideIFrames = function () {
    var iframes = document.getElementsByTagName("iframe");
    for (var i=0; i<iframes.length;i++) {
        iframes[i].style.visibility = "hidden";
    }
}

Menu.showIFrames = function () {
    var iframes = document.getElementsByTagName("iframe");
    for (var i=0; i<iframes.length;i++) {
        iframes[i].style.visibility = "visible";
    }
}

