﻿// Barley Sheaf Players, misc Javascript functions
// by Ed Mackey, March 2010

$(function() {
    $(".crunchy").bind("click", function() { return crunchyClick($(this)); })
        .prepend('<span class="crunchyCorner">&#9660;</span>&nbsp; ');  // was &darr;
    $(".crunchy:not('.crunchyOpen')").next().hide();
    $(".crunchy:not('.crunchyOpen')").children(':first-child').html('&#9658;');  // was &rarr;
    $(".crunchy").hover(
        function() { $(this).addClass('crunchyHover'); },
        function() { $(this).removeClass('crunchyHover'); }
    );
    if ($(".crunchy").length > 1) {
        $(".crunchy").eq(0).append('<span class="crunchyAll">[+ Expand all]</span>');
        $(".crunchyAll").bind("click", function() { return crunchyAllClick($(this)); });
        $(".crunchyAll").hover(
            function() { $(this).addClass('crunchyAllHover'); },
            function() { $(this).removeClass('crunchyAllHover'); }
        );
    }
});

function crunchyClick(button) {
    if (button.next().queue().length == 0) {
        if ($(".crunchyAllOpen").length > 0) {
            $(".crunchyAll").removeClass("crunchyAllOpen").text("[+ Expand all]");
        }
        
        if (button.next().filter(':visible').length == 1) {
            button.children(':first-child').html('&#9658;');  // was &rarr;
            button.removeClass('crunchyOpen');
        }
        else {
            var oldCrunchy = $(".crunchy.crunchyOpen").not(button);
            oldCrunchy.children(':first-child').html('&#9658;');
            oldCrunchy.next().slideToggle('slow');
            oldCrunchy.removeClass('crunchyOpen');
            button.children(':first-child').html('&#9660;');  // was &darr;
            button.addClass('crunchyOpen');
        }
        button.next().slideToggle('slow');
    }
    return false;
}

function crunchyAllClick(button) {
    if ($(".crunchyAllOpen").length > 0) {
        var crunchy = $(".crunchy.crunchyOpen");
        if ((crunchy.length > 0) && (crunchy.next().queue().length == 0)) {
            button.removeClass("crunchyAllOpen").text("[+ Expand all]");
            crunchy.children(':first-child').html('&#9658;');  // was &rarr;
            crunchy.removeClass('crunchyOpen');
            crunchy.next().slideToggle('slow');
        }
    }
    else {
        var crunchy = $(".crunchy:not('.crunchyOpen')");
        if ((crunchy.length > 0) && (crunchy.next().queue().length == 0)) {
            button.addClass("crunchyAllOpen").text("[- Collapse all]");
            crunchy.children(':first-child').html('&#9660;');  // was &darr;
            crunchy.addClass('crunchyOpen');
            crunchy.next().slideToggle('slow');
        }
    }
    return false;
}

// End of bsp.js
