/*

* Copyright (C) 2009 Joel Sutherland.

* Liscenced under the MIT liscense

*/



(function($) {

	$.fn.filterable = function(settings) {

		settings = $.extend({

			useHash: true,

			/*animationSpeed: 1000,

			show: { width: 'show', opacity: 'show' },

			hide: { width: 'hide', opacity: 'hide' },*/

			useTags: true,

			tagSelector: '#team-filter a',

			selectedTagClass: 'current',

			allTag: 'all'

		}, settings);

		

		return $(this).each(function(){

		

			/* FILTER: select a tag and filter */

			$(this).bind("filter", function( e, tagToShow ){

				if(settings.useTags){

					$(settings.tagSelector).removeClass(settings.selectedTagClass);

					$(settings.tagSelector + '[href=' + tagToShow + ']').addClass(settings.selectedTagClass);

				}

				$(this).trigger("filterteam", [ tagToShow.substr(1) ]);

			});

		

			/* FILTERPORTFOLIO: pass in a class to show, all others will be hidden */

			$(this).bind("filterteam", function( e, classToShow ){

				if(classToShow == settings.allTag){

					$(this).trigger("show");

				}else{

					$(this).trigger("show", [ '.' + classToShow ] );

					$(this).trigger("hide", [ ':not(.' + classToShow + ')' ] );

				}

				if(settings.useHash){

					location.hash = '#' + classToShow;

				}

			});

			

			/* SHOW: show a single class*/

			$(this).bind("show", function( e, selectorToShow ){

				/*$(this).children(selectorToShow).animate(settings.show, settings.animationSpeed);*/

				$(this).children(selectorToShow).fadeIn("fast");

			});

			

			/* SHOW: hide a single class*/

			$(this).bind("hide", function( e, selectorToHide ){

				/*$(this).children(selectorToHide).animate(settings.hide, settings.animationSpeed);	*/

				$(this).children(selectorToHide).fadeOut("fast");	

			});

			

			/* ============ Check URL Hash ====================*/

			if(settings.useHash){

				if(location.hash != '')

					$(this).trigger("filter", [ location.hash ]);

				else

					$(this).trigger("filter", [ '#' + settings.allTag ]);

			}

			

			/* ============ Setup Tags ====================*/

			if(settings.useTags){

				$(settings.tagSelector).click(function(){

					$('#team-list').trigger("filter", [ $(this).attr('href') ]);

					

					$(settings.tagSelector).removeClass('current');

					$(this).addClass('current');

				});

			}

		});

	}

})(jQuery);





$(document).ready(function(){

	

	$('#team-list').filterable();



});