


//-- -------------------------------------------
//-- AJAX FUNCTIONS FOR EVENT SEARCH
//-- -------------------------------------------
var selectedType = -1;
var selectedSubject = -1;
var selectedRegion = -1;
var currentFormHTML;
var firstLoad = true





function initSearchForm() {

	if(typeof http != "object") return;
	if (document.getElementById("eventLocationSelect")) {
		//loadSearchForm();
	}
}






updateSearchForm = function(formObj) {

	removeErrorMessage();

	var selectedFilter = formObj.id;
	var selectedOption = formObj.options[formObj.selectedIndex].value;
	var page_id = document.getElementById("page_id").value;
	var theForm = document.getElementById("events_search");

	if(selectedFilter == "es_type") selectedType = selectedOption;
	if(selectedFilter == "es_sub") selectedSubject = selectedOption;
	if(selectedFilter == "es_reg") selectedRegion = selectedOption;

	currentFormHTML = theForm.innerHTML;

	document.getElementById("esLoading").className = "show";

	try {
		var AJAXurl = "plugins/events_searchForm.asp?page_id=" + page_id + "&es_type=" + selectedType + "&es_sub=" + selectedSubject + "&es_reg=" + selectedRegion;
		//document.write(AJAXurl);
		http.open("GET", AJAXurl, true);
		http.onreadystatechange = rewriteSearchform;
		http.send(null);
	}
	catch (e) {
		setTimeout("updateSearchForm();", 10);
	}

}






loadSearchForm = function() {

	var page_id = document.getElementById("page_id").value;
	var theForm = document.getElementById("events_search");

	selectedType = -1;
	selectedSubject = -1;
	selectedRegion = -1;

	theForm.innerHTML = "<p class=\"loading\">Loading data</p>";

	try {
		var AJAXurl = "plugins/events_searchForm.asp?page_id=" + page_id;
		//document.write(AJAXurl);
		http.open("GET", AJAXurl, true);
		http.onreadystatechange = rewriteSearchform;
		http.send(null);
	}
	catch (e) {
		setTimeout("resetSearchForm();", 10);
	}
}






rewriteSearchform = function() {
	if (http.readyState == 4) {
		if(http.status == 200 || http.status == 304) {
			try {
				if (http.responseText == "none") {
					document.getElementById("events_search").innerHTML = currentFormHTML;
					initSearchForm();

				}
				else {
					document.getElementById("events_search").innerHTML = http.responseText;
				}
			}
			catch (e) {
				setTimeout("rewriteSearchform();", 10);
			}
		}
	}
}






function removeErrorMessage() {
	if(document.getElementById("rEventsError")) {
		var errorP = document.getElementById("rEventsError");
		errorP.className = "hide"
		errorP.innerHTML="";
	}
}









initEventListing = function() {

	var openDetails = false;
	var openTimes = false;
	var openVenue = false;

	var openRow = false;

	if (!document.getElementById) return;

	var tableObjects = document.getElementsByTagName('table');
	for (var t = 0; t < tableObjects.length; t++) {
		if (hasClass(tableObjects[t], "eventOccurances")) {
			var theTable = tableObjects[t];

			var tableObjectRows = theTable.getElementsByTagName('tr');
			for (var i = 0; i < tableObjectRows.length; i++) {
				if(i>0) {
					theRow = tableObjectRows[i];
					if (hasClass(theRow,"odd") || hasClass(theRow,"even")) {
						var rowObjectCells = theRow.getElementsByTagName('td');
						var venueCell = rowObjectCells[2];
						var detailsDiv = rowObjectCells[2].getElementsByTagName('div')[0];
						var timesDiv = rowObjectCells[0].getElementsByTagName('div')[1];

						addClass(venueCell, "expand");
						addClass(detailsDiv, "disguise");
						addClass(timesDiv, "disguise");

						venueCell.title = "Expand this row for further information";

						theRow.onmouseover = function() {
							if (!hasClass(this, "open")) {
								addClass(this, "over")
							}
						}

						theRow.onmouseout = function() {
							if (!hasClass(this, "open")) {
								removeClass(this, "over");
							}
						}

						theRow.onclick = function() {

							removeClass(this, "over");

							var detailsObj = document.getElementById(this.id + "_details");
							var timesObj = document.getElementById(this.id + "_times");
							var venueObj = document.getElementById(this.id + "_venue");

							// If the row is closed
							if (hasClass(detailsObj, "disguise")) {

								// If we have an open row, close it here
								if(openRow != false) {
									var openDetails = document.getElementById(openRow.id + "_details");
									var openTimes = document.getElementById(openRow.id + "_times");
									var openVenue = document.getElementById(openRow.id + "_venue");

									addClass(openDetails, "disguise");
									addClass(openTimes, "disguise");
									removeClass(openVenue,"contract");
									addClass(openVenue, "expand");
									openVenue.title = "Expand this row for further information";
									removeClass(openRow, "open");
								}

								if(detailsObj.innerHTML != "") {

									removeClass(detailsObj, "disguise");
									removeClass(timesObj, "disguise");
									removeClass(venueObj,"expand");
									addClass(venueObj, "contract");
									venueObj.title = ""
									addClass(this, "open");

									// Set up the open row
									openRow = this;
								}


							// If the row is open
							} else {
								addClass(detailsObj, "disguise");
								addClass(timesObj, "disguise");
								removeClass(venueObj,"contract");
								addClass(venueObj, "expand");
								venueObj.title = "Expand this row for further information";
								removeClass(this, "open");
								openRow = false;
							}
						}
					}
				}
			}
		}
	}
};






addLoadEvent(initSearchForm);
addLoadEvent(initEventListing);




