// 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 input[name="type"]');
  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).change(function(e) {
    if ($($filterType+':checked').val() == 'all') {
      var $filteredData = $data.find('li');
    } else {
      var $filteredData = $data.find('li[data-type=' + $($filterType+":checked").val() + ']');
    }

//    // if sorted by size
//    if ($('#filter input[name="sort"]:checked').val() == "size") {
//      var $sortedData = $filteredData.sorted({
//        by: function(v) {
//          return parseFloat($(v).find('span[data-type=size]').text());
//        }
//      });
//    } else {
      // if sorted by name
      var $sortedData = $filteredData.sorted({
        by: function(v) {
          return $(v).find('li[data-id]').text().toLowerCase();
        }
      });
//    }   

    // finally, call quicksand
    $applications.quicksand($sortedData, {
      duration: 800,
      easing: 'easeInOutQuad'
    }, function() {

			$("a.fancybox").fancybox({
				'titleShow'			: true,
				'titlePosition'		: 'outside',
				'transitionIn'		: 'fade',
				'transitionOut'		: 'fade',
				'speedIn'			: 250,
				'speedOut'			: 250,				
				'showNavArrows'		: false,
				'centerOnScroll'	: true 
			});
			
			$("a.fancybox_iframe").fancybox({
				'width'				: '91%',
				'height'			: '91%',
				'autoScale'			: false,
				'transitionIn'		: 'fade',
				'transitionOut'		: 'fade',
				'speedIn'			: 250,
				'speedOut'			: 250,
				'transitionIn'		: 'none',
				'transitionOut'		: 'none',
				'type'				: 'iframe',
				'titleShow'			: true,
				'titlePosition'		: 'over',
				'showNavArrows'		: false,
				'centerOnScroll'	: true 
			});
			
			$("a.fancybox_sound").fancybox({
				'width'				: 620,
				'height'			: 240,
				'autoScale'			: false,
				'transitionIn'		: 'fade',
				'transitionOut'		: 'fade',
				'speedIn'			: 250,
				'speedOut'			: 250,
				'type'				: 'iframe',
				'titleShow'			: false,
				'showNavArrows'		: false,
				'centerOnScroll'	: true 
			});
			
			$("dl").each(function() {
            	$(this).hover(function() {
                	$(this).stop().animate({ opacity: 0.75 }, 300);
           		},
           		function() {
               		$(this).stop().animate({ opacity: 1.0 }, 300);
           		});
       		});
			
    }
    
    );    

  });

});
