$(document).ready(function() {
    $('a.lightbox').lightBox({
        fixedNavigation:true
    });

    $('#block > div.block_hide:gt(0)').hide();
    $('#block > div.block_click').hover(function() {
        $(this).find('div.block_hide:hidden').slideDown('fast');
        $(this).siblings().find('div.block_hide:visible').slideUp('fast');
    });
    
    $("a.portfolio-link").hover(function () {
        $(this).find('span').slideDown('fast');
        return true;
    }, function () {
        $(this).find('span').slideUp('fast');
    });

    $(document).ready(function() {
        $("#chained").scrollable({
            circular: true,
            mousewheel: true
        }).navigator().autoscroll({
            interval: 3000
        });
    });
});

// Custom sorting plugin
(function($) {
    $.fn.sorted = function(customOptions) {
        var options = {
            reversed: false,
            by: function(a) {
                return a.text();
            }
        };
        $.extend(options, customOptions);
        $data = $(this);
        arr = $data.get();
        arr.sort(function(a, b) {
            var valA = options.by($(a));
            var valB = options.by($(b));
            if (options.reversed) {
                return (valA < valB) ? 1 : (valA > valB) ? -1 : 0;
            } else {
                return (valA < valB) ? -1 : (valA > valB) ? 1 : 0;
            }
        });
        return $(arr);
    };
})(jQuery);

// DOMContentLoaded
$(function() {

    // bind radiobuttons in the form
    var $filterType = $('#filter a');
    var $filterSort = $('#filter input[name="sort"]');

    // get the first collection
    var $applications = $('#applications');

    // clone applications to get a second collection
    var $data = $applications.clone();

    // attempt to call Quicksand on every form change
    $filterType.add($filterSort).click(function(e) {        
        if ($(this).attr('id') == 'all') {
            var $filteredData = $data.find('li');
        } else {
            var $filteredData = $data.find('li[data-type=' + $(this).attr('id') + ']');
        }

        $filterType.removeClass('selected');
        $(this).addClass('selected');

        // finally, call quicksand
        $applications.quicksand($filteredData, {
            duration: 800,
            easing: 'easeInOutQuad'
        }, function() { // callback function
            $("a.portfolio-link").hover(function () {
                $(this).find('span').slideDown('fast');
                return true;
            }, function () {
                $(this).find('span').slideUp('fast');
            });
        });

    });

});