jQuery(document).ready(function(){
(function($) {

  var read_button = function(class_names) {
    var r = {
      selected: false,
      type: 0
    };
    for (var i=0; i < class_names.length; i++) {
      if (class_names[i].indexOf('selected-') == 0) {
        r.selected = true;
      }
      if (class_names[i].indexOf('segment-') == 0) {
        r.segment = class_names[i].split('-')[1];
      }
    };
    return r;
  };
  
  var determine_sort = function(theButtons) {
    var isSelected = theButtons.parent().filter('[class*="selected-"]');
    return isSelected.find('a').attr('data-value');
  };
  
  var determine_kind = function(theButtons) {
    var isSelected = theButtons.parent().filter('[class*="selected-"]');
    return isSelected.find('a').attr('data-value');
  };
  
  var thePreferences = {
    duration: 800,
    easing: 'easeInOutQuad',
    adjustHeight: false,
	useScaling: false
  };
  
  var theList = $('.dynamic-list');
  var theData = theList.clone();
  
  var theControls = $('ul.splitter');
  
  theControls.each(function(i) {
    
    var theControl = $(this);
    var theButtons = theControl.find('a');
    
    theButtons.bind('click', function(event) {
      
      var theButton = $(this);
      var theButton_container = theButton.parent();
      var button_properties = read_button(theButton_container.attr('class').split(' '));      
      var selected = button_properties.selected;
      var button_segment = button_properties.segment;

      if (!selected) {

        theButtons.parent().removeClass('active').removeClass('selected-0').removeClass('selected-1').removeClass('selected-2').removeClass('selected-3').removeClass('selected-4').removeClass('selected-5').removeClass('selected-6').removeClass('selected-7').removeClass('selected-8').removeClass('selected-9').removeClass('selected-10');
        theButton_container.addClass('selected-' + button_segment).addClass('active');
        
        var sorting_kind = determine_kind(theControls.eq(0).find('a'));
        
        if (sorting_kind == 'all') {
          var filteredData = theData.find('li');
        } else {
          var filteredData = theData.find('li.' + sorting_kind);
        }
        
        
        
        theList.quicksand(filteredData, thePreferences);
      }
      
      event.preventDefault();
    });
    
  }); 


 
}(jQuery));
});
