// 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() {

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

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

	$('#categories a.button').click(function(e) {
		var $filteredData = $data.find('li[data-type=' + $(this).attr('data-value') + ']'); 
		var $sortedData = $filteredData.sorted({
			by: function(v) {
				return $(v).find('strong').text().toLowerCase();
			}
		});
		$applications.quicksand($sortedData, {
			duration: 800,
			easing: 'easeInOutQuad'
		});
     });
});


