(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);

$(function() {

  var $preferences = {
    duration: 600,
   // adjustHeight: false,
    easing: 'easeInOutQuad'
  };
  
  var $cars = $('#cars');
  var $data = $cars.clone(); 
  
  
  $('#content .links.js a').bind('click', function() {
    if ($(this).parent().hasClass('sort') == true) {
      $('#content .links.sort a').removeClass('checked');
    }
    else {
      $('#content .links.type a').removeClass('checked');
    }
    $(this).addClass('checked');
    
    if ($('#content .links.type a.checked').attr('href').substr(7) == 'all') {
      var $filteredData = $data.find('div');
    }
    else {
      var $filteredData = $data.find('div[data-type=' + $('#content .links.type a.checked').attr('href').substr(7) + ']');
    }
    
    if ($('#content .links.sort a.checked').attr('href') == '#sort=price') {
      var $sortedData = $filteredData.sorted({
        by: function(v) {
          return parseFloat($(v).find('span[data-type=price]').text());
        }
      });
    }
    if ($('#content .links.sort a.checked').attr('href') == '#sort=name') {
      var $sortedData = $filteredData.sorted({
        by: function(v) {
          return $(v).find('span[data-type=name]').text().toLowerCase();
        }
      });
    }
    if ($('#content .links.sort a.checked').attr('href') == '#sort=year') {
      var $sortedData = $filteredData.sorted({
        by: function(v) {
          return parseFloat($(v).find('span[data-type=year]').text());
        }
      });
    }
    if ($('#content .links.sort a.checked').attr('href') == '#sort=probeg') {
      var $sortedData = $filteredData.sorted({
        by: function(v) {
          return parseFloat($(v).find('span[data-type=probeg]').text());
        }
      });
    }
    
    $cars.quicksand($sortedData, $preferences);
    
    return false;
  });
  
  $('#content div.preview small a').bind('click', function() {
    $('#content div.preview big img').attr('src', $(this).attr('href')); 
    $('#content div.preview small a img').removeClass('active');
    $(this).find('img').addClass('active');
    return false;
  });

  $('#content .links a[href="' + location.href.substr(location.href.indexOf('#'))+'"]').click();
  
});

