$(document).ready(function()
{
	$(".tabs ul li a").click(function()
	{
		var index = $(".tabs ul li a").index(this);

		$(".tabs ul li").removeClass("active");
		$(".tabs ul li").eq(index).addClass("active");

		$(".tabs .tab").hide();
		$(".tabs .tab").eq(index).show();

		return false;
	});

	$(".accordion .item .title a").click(function()
	{
		var Height = 0;
		var index = $(".accordion .item .title a").index(this);

		if (!$(".accordion .item").eq(index).hasClass("active"))
		{
			$(".accordion .item .inside").each(function(i)
			{
				if (index != i)
				{
					Height = $(this).height();

					$(this).stop(false, true).animate({height: 0}, 400, function()
					{
						$(".accordion .item").eq(i).removeClass("active");

						$(this).height(Height);
					});
				}
			});

			$(".accordion .item").eq(index).addClass("active");

			Height = $(".inside", $(".accordion .item").eq(index)).height();

			$(".inside", $(".accordion .item").eq(index)).height(0);

			$(".inside", $(".accordion .item").eq(index)).stop(false, true).animate({height: Height}, 400);
		}

		return false;
	});
});

function AnimateLogo()
{
	$(".menu_list li.logo img.mini").fadeOut(1000, function()
	{
		$(".menu_list li.logo img.ext").fadeIn(800);
	});
}

function ShowSubMenu(Name)
{
	var el = $("#submenu_" + Name);

	if (el.is(":visible"))
	{
		//el.hide();
	}

	else
	{
		HideSubMenu();

		el.fadeIn(500);
		$(".arrow", el.next("a")).fadeIn(500);
	}

	return false;
}

function HideSubMenu()
{
	$(".submenu_list").hide();
	$(".arrow").not(".grayed").hide();

	return false;
}

//Quicksand
(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 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($buttons) {
    var $selected = $buttons.parent().filter('[class*="selected-"]');
    return $selected.find('a').attr('data-value');
  };
  
  var determine_kind = function($buttons) {
    var $selected = $buttons.parent().filter('[class*="selected-"]');
    return $selected.find('a').attr('data-value');
  };
  
  var $preferences = {
    duration: 800,
    easing: 'easeInOutQuad',
    adjustHeight: false
  };
  
  var $list = $('#list');
  var $data = $list.clone();
  
  var $controls = $('ul.prd_filter ul');
  
  $controls.each(function(i) {
    
    var $control = $(this);
    var $buttons = $control.find('a');
    
    $buttons.bind('click', function(e) {
      
      var $button = $(this);
      var $button_container = $button.parent();
      var button_properties = read_button($button_container.attr('class').split(' '));      
      var selected = button_properties.selected;
      var button_segment = button_properties.segment;

      if (!selected) {

        $buttons.parent().removeClass('selected-0').removeClass('selected-1').removeClass('selected-2');
        $button_container.addClass('selected-' + button_segment);
        
        var sorting_type = determine_sort($controls.eq(1).find('a'));
        var sorting_kind = determine_kind($controls.eq(0).find('a'));
        
        if (sorting_kind == 'all') {
          var $filtered_data = $data.find('li');
        } else {
          var $filtered_data = $data.find('li.' + sorting_kind);
        }
        
        if (sorting_type == 'size') {
          var $sorted_data = $filtered_data.sorted({
            by: function(v) {
              return parseFloat($(v).find('span').text());
            }
          });
        } else {
          var $sorted_data = $filtered_data.sorted({
            by: function(v) {
              return $(v).find('class').text().toLowerCase();
            }
          });
        }
        
        $list.quicksand($sorted_data, $preferences);
        
      }
      
      e.preventDefault();
    });
    
  }); 

  var high_performance = true;  
  var $performance_container = $('#performance-toggle');
  var $original_html = $performance_container.html();
  
  $performance_container.find('a').live('click', function(e) {
    if (high_performance) {
      $preferences.useScaling = false;
      $performance_container.html('CSS3 scaling turned off. Try the demo again. <a href="#toggle">Reverse</a>.');
      high_performance = false;
    } else {
      $preferences.useScaling = true;
      $performance_container.html($original_html);
      high_performance = true;
    }
    e.preventDefault();
  });
});
