/*Sorting*/
(function ($) {
	"use strict";
	$.fn.sorted = function (customOptions) {
		var options = {
			reversed: false,
			by: function (a) {
				return a.text();
			}
		};
	$.extend(options, customOptions);
	var $data = $(this);
	var 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);


$(document).ready(function(){
						   
/* make input placeholder work */						   
function activatePlaceholders() {
var detect = navigator.userAgent.toLowerCase(); 
if (detect.indexOf("safari") > 0) return false;
var inputs = document.getElementsByTagName("input");
for (var i=0;i<inputs.length;i++) {
  if (inputs[i].getAttribute("type") == "text") {
   if (inputs[i].getAttribute("placeholder") && inputs[i].getAttribute("placeholder").length > 0) {
    inputs[i].value = inputs[i].getAttribute("placeholder");
    inputs[i].onclick = function() {
     if (this.value == this.getAttribute("placeholder")) {
      this.value = "";
     }
     return false;
    }
    inputs[i].onblur = function() {
     if (this.value.length < 1) {
      this.value = this.getAttribute("placeholder");
     }
    }
   }
  }
}
}
activatePlaceholders();

/* Quicksand plugin preferences */
	var $preferences = {
		duration: 800,
		easing: 'easeInOutQuad',
		adjustHeight: 'dynamic'
	}; 
	
	var $list = $('#list');
	var $data = $list.clone();
	
	var sorting_kind = 'all';
	var sorting_type = 'name';
	getsortin();
	
	/* track each menu nav separatly */
	$('#filterbytype li').click(function (e) {
		/* remove class on all then add "selected" class on click */
		$('#filterbytype li').removeClass('selected');					
		$(this).addClass('selected');
		/*prevent default click action - prevents adding # to url and page jumping to top*/
		e.preventDefault();
		/* add cookie tracking id of button clicked*/
		myvar = $(this).attr('id');
		$.cookie('filterby', myvar, { expires: 1 });
		getsortin();
	});
	/* track each menu nav separatly */
	$('#sortby li').click(function (e) {
		/* remove class on all then add "selected" class on click */
		$('#sortby li').removeClass('selected');					
		$(this).addClass('selected');
		/*prevent default click action - prevents adding # to url and page jumping to top*/
		e.preventDefault();
		/* add cookie tracking id of button clicked*/
		myvar = $(this).attr('id');
		$.cookie('sortby', myvar, { expires: 1 });
		getsortin();
	});
	
	function getsortin() {	
		/* if cookie */
		if ($.cookie('filterby')) {
			$('#filterbytype li').removeClass('selected');	
			$('#filterbytype li#'+$.cookie('filterby')).addClass('selected');
			sorting_kind = $.cookie('filterby');
		} else {
			sorting_kind = 'all';
		}
		/* if cookie */
		if ($.cookie('sortby')) {
			$('#sortby li').removeClass('selected');	
			$('#sortby li#'+$.cookie('sortby')).addClass('selected');
			sorting_type = $.cookie('sortby');
			
		} else {
			sorting_type = 'name';
		}
		/* filter by */
		if (sorting_kind === 'all') {
			var $filtered_data = $data.find('li');
		} else {
			var $filtered_data = $data.find('li.' + sorting_kind);
		}
		/* sort by */
		if (sorting_type === 'size') {
			var $sorted_data = $filtered_data.sorted({ 
				by: function (v) {
					return parseFloat($(v).find('span').text());
				}
			});
		} else if (sorting_type === 'revsize') {
			var $sorted_data = $filtered_data.sorted({
				reversed: true,
				by: function (v) {
					return parseFloat($(v).find('span').text());
				}
			});
		} else {
			var $sorted_data = $filtered_data.sorted({
				by: function (v) {
					return $(v).find('strong').text().toLowerCase();
				}
			});
		}
		$list.quicksand($sorted_data, $preferences);
	}
	/* Sluggish? Get rid of css scaling */
	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 again. <a href="#toggle">Reverse</a>.');
			high_performance = false;
		} else {
			$preferences.useScaling = true;
			$performance_container.html($original_html);
			high_performance = true; 
		}
	e.preventDefault();
	});


});
	

