$(document).ready(function() {

	// add image_link class to all links with images
	$("a:has(img)").addClass("image_link");

	$("a.fancybox").fancybox({
		transitionIn   : 'elastic',
		transitionOut  : 'elastic',
		titlePosition  : 'inside',
		overlayOpacity : 0.3,
		overlayColor   : '#000'
	});
	
	setupSortProjects();
});

function setupSortProjects() {
	var projects   = $(".project"),
	    sortAll    = $(".sort a[rel=all]").addClass("active"),
	    otherSorts = $(".sort a:not([rel=all])");
	
	otherSorts.each(function() {
		var sort  = $(this),
		    type  = sort.attr("rel"),
		    match = "[rel*=" + type + "]";
		
		sort.click(function() {
			showProjects(projects.filter(match));
			hideProjects(projects.not(match));
			reorderProjects();
			activeSort(sort);
			return false;
		});
	});
	
	sortAll.click(function() {
		showProjects(projects);
		reorderProjects();
		activeSort(sortAll);
		return false;
	});
	
	function activeSort(sort) {
		$(".sort a.active").removeClass("active");
		sort.addClass("active");
	}
	
	function showProjects(projects) {
		$(projects).show().addClass("matched");
	}
	
	function hideProjects(projects) {
		$(projects).hide().removeClass("matched");
	}
	
	function reorderProjects() {
		var index = 1;
		
		projects
			.removeClass("third")
			.filter(".matched")
			.each(function() {
				if (index % 3 == 0) {
					$(this).addClass("third");
				}
				index++;
			});
	}
}
