// creating the liQuidprint global namespace
if (typeof(LQP) === "undefined") {
	var LQP = {};
}
LQP.index = {
	filter: function(e) {
		var clickedElement = YAHOO.util.Event.getTarget(e);
		if (clickedElement.type == "checkbox") {
			LQP.index.initFilter();
		}
	},
	initFilter: function() {
		var resultRows = LQP.index.resultRows;
		var allChecked = document.getElementById("all").checked;
		var checkedBoxes = YAHOO.util.Dom.getElementsBy(LQP.index.isCheckedCheckbox, "input", "neighborhoodForm");
		// clear the results
		if (! allChecked && checkedBoxes.length > 0) {
			for (var i = 0; i < resultRows.length; i++) {
				YAHOO.util.Dom.setStyle(resultRows[i], "display", "none");
			}
			for (var i = 0; i < checkedBoxes.length; i++) {
				var currentArea = checkedBoxes[i].getAttribute("value");
				if (typeof LQP.index.areaMap[currentArea] != "undefined") {
					for (var j = 0; j < LQP.index.areaMap[currentArea].length; j++) {
						YAHOO.util.Dom.setStyle(LQP.index.areaMap[currentArea], "display", "");
					}
				}
			}
		}
		else {
			for (var i = 0; i < resultRows.length; i++) {
				YAHOO.util.Dom.setStyle(resultRows[i], "display", "");
			}
			YAHOO.util.Dom.setStyle(document.getElementById("noResultsRow"), "display", "none");
		}
		var totalDisplayRows = 0;
		for (var i = 0; i < resultRows.length; i++) {
			if (YAHOO.util.Dom.getStyle(resultRows[i],"display") != "none") {
				if (totalDisplayRows % 2 == 0) {
					if (! YAHOO.util.Dom.hasClass(resultRows[i],"alt")) {
						YAHOO.util.Dom.addClass(resultRows[i], "alt");
					}
				}
				else {
					YAHOO.util.Dom.removeClass(resultRows[i], "alt");
				}
				totalDisplayRows++;
			}
		}
		if (totalDisplayRows == 0) {
			YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("noResultsRow"), "display", "");
		}
	},
	resultRows: {},
	areaMap: {},
	isCheckedCheckbox: function(e) {
		return e.type == "checkbox" && e.checked;
	},
	isAreaCheckbox: function(e) {
		return e.type == "checkbox" && e.id != "all";
	},
	postResults: function(e) {
		YAHOO.util.Dom.get("neighborhoodForm").submit();
	},
	clickAll: function(e) {
		var allChecked = YAHOO.util.Dom.get("all").checked;
		
		var areaCheckBoxes = YAHOO.util.Dom.getElementsBy(LQP.index.isAreaCheckbox, "input", "neighborhoodForm");
		for (var i = 0; i < areaCheckBoxes.length; i++) {
			areaCheckBoxes[i].checked = allChecked;
			areaCheckBoxes[i].disabled = allChecked;
		}
		
	},
	init: function() {
		YAHOO.util.Event.addListener("neighborhoodForm", "click", LQP.index.filter);
		LQP.index.resultRows = YAHOO.util.Dom.getElementsBy(function(e){return true;}, "tr", "resultsTable");
		for (var i = 0; i < LQP.index.resultRows.length; i++) {
			var area = LQP.index.resultRows[i].getAttribute("name");
			if (area != "ID" && typeof LQP.index.areaMap[area] == "undefined") {
				LQP.index.areaMap[area] = [LQP.index.resultRows[i]];
			}
			else if (area != "ID") {
				LQP.index.areaMap[area].push(LQP.index.resultRows[i]);
			}
		}
		LQP.index.initFilter();
		
		var allChecked = YAHOO.util.Dom.get("all").checked;
		
		var areaCheckBoxes = YAHOO.util.Dom.getElementsBy(LQP.index.isAreaCheckbox, "input", "neighborhoodForm");
		for (var i = 0; i < areaCheckBoxes.length; i++) {
			areaCheckBoxes[i].disabled = allChecked;
		}
		
		YAHOO.util.Event.addListener("all","click",LQP.index.clickAll);
	}	
};

YAHOO.util.Event.onDOMReady(function() {setTimeout(LQP.index.init,300);});