/**
 * @author ckew
 */

$(document).ready(function() {
	$("#theCategories li:eq(0)").addClass("selected");
});

who = {
	thumbs : null,
	thumbsArray : null,
	liArray : null,
	opaque : "noOpacity",
	tint : "opacity",
	clicked: "selected",
	
	init : function() {
		who.thumbs = document.getElementById("thumbsHolder");
		who.thumbsArray = who.thumbs.getElementsByTagName("a");
		who.setupCategories(); 
	},
	
	doThumbs : function(category) {
		var i;
		this.category = category;
		for (i = 0; i < who.thumbsArray.length; i++) {
			(DOMhelp.cssjs("check", who.thumbsArray[i], this.category)) ? who.switchOn(who.thumbsArray[i]) : who.switchOff(who.thumbsArray[i]);
		}

	},
	
	switchOn : function(thumb) {
		this.thumb = thumb;
		if (DOMhelp.cssjs("check", this.thumb, who.tint)) {
			DOMhelp.cssjs("swap", this.thumb, who.tint, who.opaque);
		} else if (DOMhelp.cssjs("check", this.thumb, who.opaque)) {
			return;
		} else {
			DOMhelp.cssjs("add", this.thumb, who.opaque);
		}
	},
	
	switchOff : function(thumb) {
		this.thumb = thumb;
		if (DOMhelp.cssjs("check", this.thumb, who.opaque)) {
			DOMhelp.cssjs("swap", this.thumb, who.opaque, who.tint);
		} else if (DOMhelp.cssjs("check", this.thumb, who.tint)) {
			return;
		} else {
			DOMhelp.cssjs("add", this.thumb, who.tint);
		}
	},
	
	setupCategories : function() {
		var categories = document.getElementById("theCategories");
		who.liArray = categories.getElementsByTagName("li");
		who.addIDs();
		categories.onclick = function(evt) {
			var event = evt || window.event;
			var target = event.target || event.srcElement;
			if (target.nodeName.toLowerCase() !== "a") {
				return;
			}
			var href = target.getAttribute("href").indexOf("=");
			var category = target.getAttribute("href").substr(href + 1);
			var liHighlight = target.parentNode.id;
			who.highlightParent(liHighlight);
			who.doThumbs(category);
			DOMhelp.cancelClick(evt);
		}	
	},
	
	addIDs : function() {
		var i;
		for (i = 0; i < who.liArray.length; i++) {
			who.liArray[i].setAttribute("id", "li" + (i + 1));
		}
	},
	
	highlightParent : function(liHighLight) {
		var i;
		this.liHighLight = liHighLight;
		for (i = 0; i < who.liArray.length; i++) {
			if (DOMhelp.cssjs("check", who.liArray[i], who.clicked) && who.liArray[i].id === this.liHighLight) {
				continue;
			} else if (!DOMhelp.cssjs("check", who.liArray[i], who.clicked) && who.liArray[i].id === this.liHighLight) {
				DOMhelp.cssjs("add", who.liArray[i], who.clicked);
			} else {
				DOMhelp.cssjs("remove", who.liArray[i], who.clicked);
			}
		}
	}
		
}

DOMhelp.addEvent(window, "load", who.init, false);

