/** 2-Level Rollover-Menu
 *
 * @author Andreas Zitzelsberger
 * @version $Rev: 98 $
 * @date $Date: 2006-07-06 15:13:11 +0200 (Do, 06 Jul 2006) $
 */

// Globale Konstante
naviId = "navi";
navi1Id = naviId + "1";
navi2Id = naviId + "2";
buttonTagname = "a";
navi2Prefix = navi2Id + "_";
hiddenClass = "hidden";
activeClass = "active";
navi1Top = 130;
navi1Bottom = 150;

navi1Buttons = document.getElementById(navi1Id).getElementsByTagName(buttonTagname);
navi1Links = navi1Buttons;


/** Ändert was in der Level 2 - Navi angezeigt wird.
 * Sollte per onmouseover-Attribut aufgerufen werden
 *
 * @param e Das Event Objekt.
 * @param activeIndex Der Index des im 1. Navi-Level ausgewählten Elements.
 */
function changeLevel2Navi(e, activeIndex) {
    hideNode = document.getElementById(navi2Prefix + highlightedLevel1Index);
    showNode = document.getElementById(navi2Prefix + activeIndex);

    if (hideNode != showNode) {

        if (hideNode) {
            // .className wegen der Unfähigkeit M$
            hideNode.className = hiddenClass
        }
        if (showNode) {
            showNode.className = ""
        }
        highlightedLevel1Index = activeIndex;
    }
}


function changeFun(activeIndex) {
    return function(e) { changeLevel2Navi(e, activeIndex); };
}

// Bestimme den im 1. Level aktiven Index
activeLevel1Index = 0;
for (i=0; i<navi1Buttons.length; i++) {
    // .className wegen der Unfähigkeit M$
    if (navi1Links[i].className == activeClass) {
        activeLevel1Index = i+1;
        break;
    }
}
highlightedLevel1Index = activeLevel1Index;

// onmouseover für alle Button-Elemente
for (i=0; i<navi1Buttons.length; i++) {
    addEvent(navi1Buttons[i], "mouseover", changeFun(i+1));
}


// Beim Verlassen default wiederherstellen
nodes = document.getElementsByTagName("body")[0].childNodes;
for(i=0; i<nodes.length; i++) {
    node = nodes[i];
    if (node.nodeType == 1 && node.getAttribute("id") != naviId) {
        addEvent(node, "mouseover", changeFun(activeLevel1Index));
    }
}
