//  requires "DOM.js"

function ExpandingNavigationLists() {
    onLoad(function() {
        elements({tag: 'ul', classes: ['navigation', 'expanding']})
            .each(ExpandingNavigationLists.collapse);
    });    

}

ExpandingNavigationLists.collapsedTitle = "Show the links in this category.",
ExpandingNavigationLists.expandedTitle = "Hide the links in this category.",

ExpandingNavigationLists.collapse = function(nl) {
    addClass(nl, 'collapsed');
    removeClass(nl, 'expanded');
    elements({parent: nl, tag: 'li'}).each(function(e) {
        if (hasClass(e, 'label')) {
            e.onclick = function() {
                ExpandingNavigationLists.expand(nl);
            }
            if (!e.title || e.title == ExpandingNavigationLists.expandedTitle) {
                e.title = ExpandingNavigationLists.collapsedTitle;
            }
        }
        else {
            if (e.style) {
                e.style.display = 'none';
            }
        }        
    });
};
    
ExpandingNavigationLists.expand = function(nl) {
    addClass(nl, 'expanded');
    removeClass(nl, 'collapsed');
    elements({parent: nl, tag: 'li'}).each(function(e) {
        if (hasClass(e, 'label')) {
            e.onclick = function() {
                ExpandingNavigationLists.collapse(nl);
            }
            if (!e.title || e.title == ExpandingNavigationLists.collapsedTitle) {
                e.title = ExpandingNavigationLists.expandedTitle;
            }
        }
        e.style.display = 'list-item';
    });
};

ExpandingNavigationLists();
