// load("http://www.ccs.neu.edu/home/dherman/javascript/general/general.js")

// init : Integer -> Undefined
function init(selectedIndex) {

    // getChildrenByTagName : DOMElement * String -> Array<DOMElement>
    function getChildrenByTagName(elt, tagName) {
        var result = [];
        var children = elt.childNodes;
        for (var i = 0; i < children.length; i++) {
            if (children[i].tagName && (children[i].tagName.toUpperCase() == tagName.toUpperCase())) {
                result.push(children[i]);
            }
        }
        return result;
    }

    // enableNavlink : DOMElement * Boolean -> Undefined
    function enableNavlink(navlink, enable) {
        navlink.className = enable ? navlink.className.addWord("selected").removeWord("unselected")
                                   : navlink.className.removeWord("selected").addWord("unselected");
    }

    // installCallback : DOMElement * Integer -> Undefined
    function installCallback(navlink, i) {
        navlink.onmouseover = function() { selectNavlink(i) };
    }

    // selectNavlink : Integer -> Undefined
    function selectNavlink(i) {
        if (i != selectedIndex) {
            enableNavlink(navlinks[i], true);
            enableNavlink(navlinks[selectedIndex], false);
            selectedIndex = i;
        }
    }

    // navlinks : Array<DOMElement>
    var navlinks = getChildrenByTagName(document.getElementById("navlinks"), "li");


    // 1. Enable the current navlink.
    // commented on 11/4/2007.
//    enableNavlink(navlinks[selectedIndex], true);

    // 2. Disable all other navlinks and install callbacks.
    for (var i = 0; i < navlinks.length; i++) {
        if (i != selectedIndex) {
            enableNavlink(navlinks[i], false);
        }
        installCallback(navlinks[i], i);
    }
}
