var menuState;
var offSet = 0;
var lastItemOpened = 0;

var sCookieName = "jsnavcookie";
var ns4 = (document.layers)? true:false;
var ie4 = (document.all)? true:false;

function initNavBar() {
    var bottomOfLast = bannerHeight;
    menuState = new Array();

    for(var i=0 ;i<divIDs.length; i++) {
        if(divIDs[i].substring(0,1)!="m") {
			moveDiv(i, bottomOfLast);
			getItemDivStyle(i).visibility = "visible";
			bottomOfLast += getHeight(i);
        } else {
            moveDiv(i, bottomOfLast);
        }
    }
    restoreMenuState();
}

function restoreMenuState() {
    if(openIndex) {
        tog(openIndex);
    }


}


function tog(id) {
    (isContentVisible(id)) ? collapse(id):expand(id);
}

function collapse(id) {
    var divStyle = getContentDivStyle(id);
    divStyle.visibility = "hidden";
    adjustDivPosBelow(id+1, offSet-getHeight(id+1));

}

function expand(id) {
    if(lastItemOpened && isContentVisible(lastItemOpened)) tog(lastItemOpened);
    var divStyle = getContentDivStyle(id);
    divStyle.visibility = "visible";
    adjustDivPosBelow(id+1, offSet+getHeight(id+1));
    lastItemOpened = id;

}

function storeMenuStateInCookie() {
    var sCookie="";
    for(var i=0; i<menuState.length; i++) {
        if(menuState[i]) sCookie += i + ":";
    }
    document.cookie = sCookieName+'='+sCookie;
}

function getHeight(id) {
    var div = getDiv(id);
    var height;
    (ns4) ? (height = div.clip.height):(height = div.clientHeight);
    return(height);
}

function adjustDivPosBelow(id, adjustYBy) {
    for(var i=id+1; i<divIDs.length; i++) {
        moveDiv(i, adjustYBy);
    }
}

function moveDiv(id, adjustYBy) {
    var div = getDiv(id);
    (ns4) ? div.moveBy(0, adjustYBy):div.style.pixelTop += adjustYBy;
}

function isContentVisible(id) {
    var divStyle = getContentDivStyle(id);
    if(divStyle.visibility == "visible" || divStyle.visibility == "show") return(1);
    return(0);
}

function getItemDivStyle(id) {
    var divStyle;
    (ns4) ? divStyle = eval("document." +divIDs[id]):divStyle = eval("document.all."+divIDs[id]+".style");
    return(divStyle);
}

function getContentDivStyle(id) {
    var divStyle;
    (ns4) ? divStyle = eval("document." +divIDs[id+1]):divStyle = eval("document.all."+divIDs[id+1]+".style");
    return(divStyle);
}

function getDiv(id) {
    var div;
    (ns4) ?(div = eval("document." + divIDs[id])):(div = eval("document.all."+divIDs[id]));
    return(div);
}
