
$(document).ready(function() {
    initCollectionLinkGroups();
    initCompactCollectionPageLinks();
    setOpacity();
    fixHeight();
});

function fixHeight() {
    if ($('.content').height() < $('#aside').height())
	    $('.content').height($('#aside').height());
}

function initCollectionLinkGroups() {
    if (!$('#main').is('.collectionpage')) {
        return;
    }
    _activateCollapsableGroupMenu('#aside div.collectionlinkgroup', 'collectionlinkgroupmenu', 'h2');
}

function initCompactCollectionPageLinks() {
    if ($('#main').is('.startpage')) {
        return;
    }
    _activateCollapsableGroupMenu('#collectionpages', 'collectionpagesmenu', 'h2');
}

function _activateCollapsableGroupMenu(groupSelector, enabledclassname, headingSelector) {
    var groups = $(groupSelector);

    function hideAllCollGroups(ignore) {
        groups.each(function (i) {
            if (this != ignore)
                $(this).addClass('collapsed');
        });
    }

    $(document.body).click(function () {
        hideAllCollGroups();
    });

    groups.each(function (i) {
        var heading = $(headingSelector, this)[0];
        if (!heading) return;

        var group = $(this);
        group.addClass(enabledclassname).addClass('collapsed');

        var list = $('ul', this);
        list.addClass('collapsablemenu');

        var heading = $(heading);
        $(heading).removeClass('accessible').addClass('menuopener');

        var opener = $('<a href="#">'+ heading.text() + '</a>');
        heading.empty().append(opener);

        opener.click(function (event) {
            if (group.is('.collapsed')) {
                list.slideDown("fast");
                group.removeClass('collapsed');
                if (list.width() < heading.width()) {
                    list.width(heading.width()-2); // heading border compensation
                } else {
                    list.width('auto');
                }
                hideAllCollGroups(group.get(0));
            } else {
                group.addClass('collapsed');
            }
            return false;
        });
    });
}

function setOpacity() {
    $(".opacity").css('opacity', 0.15);
}

