$(document).ready(function() {
// company team
  var scroll = new _scrolla("#scrolla-team", 425, 1, "#scroll-left", "#scroll-right");
  $("#scroll-left").click(function() {
    scroll.scrollLeft();
  });
  $("#scroll-right").click(function() {
    scroll.scrollRight();
  });
// videos
  var vidScroll = new _scrolla("#videos-wrap > #videos", 625, 0, "#vid-scroll-left", "#vid-scroll-right");
  $("#vid-scroll-left").click(function() {
    vidScroll.scrollLeft();
  });
  $("#vid-scroll-right").click(function() {
    vidScroll.scrollRight();
  });
  var vidScroll2 = new _scrolla("#videos-wide-wrap > #videos", 840, 0, "#vid-scroll-left", "#vid-scroll-right");
  $("#vid-scroll-left").click(function() {
    vidScroll2.scrollLeft();
  });
  $("#vid-scroll-right").click(function() {
    vidScroll2.scrollRight();
  });
// screenshots
  var scrScroll = new _scrolla("#screens", 283, 2, "#scroll-left", "#scroll-right");
  $("#scroll-left").click(function() {
    scrScroll.scrollLeft();
  });
  $("#scroll-right").click(function() {
    scrScroll.scrollRight();
  });
  var scrScroll2 = new _scrolla("#ipad-screens", 440, 1, "#scroll-left", "#scroll-right");
  $("#scroll-left").click(function() {
    scrScroll2.scrollLeft();
  });
  $("#scroll-right").click(function() {
    scrScroll2.scrollRight();
  });
var scrScroll3 = new _scrolla("#mac-screens", 863, 0, "#scroll-left", "#scroll-right");
  $("#scroll-left").click(function() {
    scrScroll3.scrollLeft();
  });
  $("#scroll-right").click(function() {
    scrScroll3.scrollRight();
  });
//fisheye
  $('#scrolla-wrap').Fisheye({
    maxWidth: 10,
    items: 'a',
    itemsText: 'span',
    container: '#scrolla',
    itemWidth: 130,
    proximity: 100,
    alignment : 'left',
    valign: 'top',
    halign: 'center'
  });
  $("#scrolla a.load").click(function() {
    if($("#app-info-load").is(":animated"))
      return false;
    
    var addr = $(this).attr("href");
    addr = addr.replace("products", "apps");

    $("#app-info-load").fadeOut("fast", function(){
      $("#app-info-load").load(addr, function() {
        $("#app-info-load").fadeIn("fast");
      });
    });
    return false;
  });
  
  // QUICKSAND
  
  // bind radiobuttons in the form
  var $filterType = $('ul.filter li');
  var $filterSort = $('ul.sort li');

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

  // clone applications to get a second collection
  var $data = $applications.clone();
  
  $filterType.click(function(){
    $filterType.removeClass('selected');
    $(this).addClass('selected');
    quicksandFilterAndSort();    
  });
  
  $filterSort.click(function(){
    $filterSort.removeClass('selected');
    $(this).addClass('selected');
    quicksandFilterAndSort();
  });
  
  function quicksandFilterAndSort() {
    if ($('ul.filter li.selected a').attr('data-value') == 'all') {
      var $filteredData = $data.find('li');
    } else {
      var $filteredData = $data.find('li[data-type=' + $('ul.filter li.selected a').attr('data-value') + ']');
    }

    // if sorted by size
    if ($('ul.sort li.selected a').attr('data-value') == "date") {
      var $sortedData = $filteredData.sorted({
        by: function(v) {
          return new Date($(v).find('span.date').text()).getTime();
        },
        reversed: true
      });
    } else {
      // if sorted by name
      var $sortedData = $filteredData.sorted({
        by: function(v) {
          return $(v).find('strong').text().toLowerCase();
        }
      });
    }   

    // finally, call quicksand
    $applications.quicksand($sortedData, {
      duration: 800,
      easing: 'easeInOutQuad'
    });    

  }
  
  $('a.popup').live('hover',function(){
    $(this).fancybox({
      padding: 4,
      scrolling: 'auto'      
    })
    $('#fancybox-inner').css('overflow', 'hidden');
  });   
  
});

/* quicksand */

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