﻿// panelbar.js
// Client side functions to select the current page
// in the panelbar menu.

function selectCurrentPage(panelbar) {
    collapseAllItems(panelbar);
    var pageName = location.href, pageHash;
    if (pageHash = pageName.lastIndexOf('#') + 1)
        pageName = pageName.substring(0, pageHash - 1);
    if (!pageName.match('pdfdisplay')) {
        if (pageHash = pageName.lastIndexOf('?') + 1)
            pageName = pageName.substring(0, pageHash - 1);
    }

    var currentLink = panelbar.findItemByAbsoluteUrl(pageName);
    if (currentLink)
        selectItem(panelbar, currentLink);
    else
        expand1stItems(panelbar);
}

function expand1stItems(panelobject) {
    var items = panelobject.get_items();
    for (var i = 0; i < items.get_count(); i++)
        if (items.getItem(i).get_items())
            items.getItem(i).expand();
}

function selectItem(panelbar, panelitem) {
    if (panelbar && panelitem) {
        panelitem.select();
        while (panelitem != panelbar) {
            if (panelitem.get_items())
                panelitem.expand();
            panelitem = panelitem.get_parent();
        }
    }
}

function menuLoad(sender) {
    selectCurrentPage(sender);
}

function collapseAllItems(panelbarobject) {
    for (var i = 0; i < panelbarobject.get_allItems().length; i++) {
        if (panelbarobject.get_allItems()[i].get_items())
            panelbarobject.get_allItems()[i].collapse();
    }
}