$(function () {

    var HIDDENTHRESHOLD = 4;

    // Collapse/expand days in the calendar.
    $('.day-episodes').each(function () {
        var me = $(this);
        var box = me.closest('.box-content');
        var container = me.parent();
        var containerHeight = container.height();
        if (containerHeight - me.height() < -HIDDENTHRESHOLD) {
            var expander = $('.expander', box);
            expander.addClass('collapsed');
            expander.click(function () {
                var clk = $(this);
                if (!clk.hasClass('expanded')) {
                    clk.addClass('expanded');
                    container.animate({ height: me.height() + "px" }, 200);
                } else {
                    clk.removeClass('expanded');
                    container.animate({ height: containerHeight + "px" }, 200);
                }
            });
        }
    });

    // AJAX adding/removing of shows.
    $('.add-favorite, .remove-favorite').live('click', function () {
        var me = $(this);
        var href = me.attr('href');
        $.ajax({
            url: href,
            dataType: 'json',
            success: function (res) {
                if (res.success) {
                    if (res.added) {
                        me.removeClass('add-favorite');
                        me.addClass('remove-favorite');
                    } else {
                        me.removeClass('remove-favorite');
                        me.addClass('add-favorite');
                    }
                    me.attr('href', res.newurl);
                }
            },
            error: function (res) {
                alert('Encountered a severe error.');
            }
        });
        return false;
    });

});
