var EPProjects = {
	projects : null,
	posts : null,
	filterbuttons : null,
	projectclasses : "wdpgotgd",
	
	init : function() {
		this.posts = $("div.post");
		this.projects = $("div.lineContent");
		this.filterbuttons = $("a.filter");
		if (this.projects.length === 0) { return; }
		this.posts.each(function() {
			$(this).hide();
		});
		this.setupButtons();
		this.setupProjects();
		if (document.location.hash !== "") {
			this.showLinkedProject(document.location.hash);
		}
	},
	
	setupButtons : function() {
		this.filterbuttons.click(function() {
			var tprojects, state;
			var filter = $(this).attr("id");
			if ($(this).hasClass("off")) { state = "off"; }
			$(this).toggleClass("off");
			if (filter == "pg" || filter == "wd") {
				tprojects = $.find("div." + filter + ",div.wdpg");
			} else {
				tprojects = $.find("div." + filter + "");
			}
			$(tprojects).each(function() {
				if ((state == "off" && !$(this).hasClass("active")) || (!state && $(this).hasClass("active"))) {
					$(this).find("div.post").slideToggle(250);
					$(this).toggleClass("active");
				}
			});
			return false;
		});
	},
	setupProjects : function() {
		this.projects.each(function() {
			$(this).find("h1").click(function() {
				EPProjects.toggleProject(this);
				trackvar = $(this).find("a").attr("href");
				trackvar = trackvar.replace("#","");
				pageTracker._trackPageview('/projects/'+ trackvar);
				return false;
			});
		});
	},
	toggleProject : function(tp) {
		var classes = $(tp).parent().attr("class").split(" ");
				for (var i = 0; i<classes.length; i++) {
					if (EPProjects.projectclasses.search(classes[i]) != -1) {
						var cproject = $("a#" + classes[i] + "");
						if (!$(tp).parent().hasClass("active") && $(cproject).hasClass("off")) {
							$(cproject).toggleClass("off");
						} else if ($(tp).parent().hasClass("active") && !$(cproject).hasClass("off")) {
							if (EPProjects.projects.filter("." + classes[i] + "").filter(".active").length == 1) { $(cproject).toggleClass("off"); }
						}
					}
				}
				if (!$(tp).parent().hasClass("active")) {
					var targetOffset = $(tp).parent().offset().top;
						if ($("html").outerHeight() - targetOffset < 300) {
							$("html").animate({scrollTop: targetOffset}, 1000);
						}
						document.location.hash = $(tp).find("a").attr("href");
				} else {
					$("html").animate({scrollTop: 0}, 0);
					document.location.hash = " ";
				}
				$(tp).parent().find("div.post").slideToggle(250);
				$(tp).parent().toggleClass("active");
	},
	showLinkedProject : function(project) {
		this.projects.each(function() {
			if ($(this).find("a").attr("href") === project) {
				EPProjects.toggleProject($(this).find("h1"));
			}
		});
		
	}
};
$(document).ready(function() {
	EPProjects.init();
	$(".dragMe").draggable();
});