var classifications;
var searchURL;

function loadSearchURL() {
	searchURL = document.location.hash;
	searchURL = searchURL.substr(1, searchURL.length);

	var searchVars = searchURL.split("&");

	for (var i=0; i<searchVars.length; i++) {
		var variable = searchVars[i].split("=");
		var field = variable[0];
		var value = variable[1];

		if (field == "fac") { document.getElementById("facility").value = value; }
		if (field == "c") { document.getElementById("city").value = value; }
		if (field == "s") { document.getElementById("state").value = value; }
		if (field == "z") { document.getElementById("zip").value = value; }
		if (field == "r") { document.getElementById("radius").value = value; }
		if (field == "c") {
			var serviceVars = value.split(",");

			for (var j=0; j<serviceVars.length; j++) {
				if (serviceVars[j] == "p") { document.getElementById("public").checked = true; }
				if (serviceVars[j] == "v") { document.getElementById("private").checked = true; }
				if (serviceVars[j] == "s") { document.getElementById("semiprivate").checked = true; }
				if (serviceVars[j] == "m") { document.getElementById("military").checked = true; }
				if (serviceVars[j] == "r") { document.getElementById("resort").checked = true; }
			}
		}
	}

	if (isValidSearch()) {
		search();
	}
}

function loadProfile(courseID) {
	document.location = "http://" + document.location.hostname + "/searchtools/play/courses/profile.cfm?lcourseID=" + courseID + document.location.hash;
}

function setSearchURL() {
	searchURL = "";
	searchURL = searchURL + "&fac=" + document.getElementById("facility").value;
	searchURL = searchURL + "&c=" + document.getElementById("city").value;
	searchURL = searchURL + "&s=" + document.getElementById("state").value;
	searchURL = searchURL + "&z=" + document.getElementById("zip").value;
	searchURL = searchURL + "&r=" + document.getElementById("radius").value;
	searchURL = searchURL + "&c=" + classifications;
	document.location.hash = searchURL;
}

function search() {
	if (isValidSearch()) {
		document.getElementById("submit").style.display = 'none';
		document.getElementById("searching").style.display = 'block';
		document.getElementById("searchResults").innerHTML = '';

		setClassifications();
		setSearchURL();

		var params = "";
		params = params + "&facility=" + document.getElementById("facility").value;
		params = params + "&city=" + document.getElementById("city").value;
		params = params + "&state=" + document.getElementById("state").value;
		params = params + "&zip=" + document.getElementById("zip").value;
		params = params + "&radius=" + document.getElementById("radius").value;
		params = params + "&classification=" + classifications;
		new Ajax.Request("http://" + document.location.hostname + "/searchtools/play/courses/search.cfm", { method:'get', parameters:params, onComplete:showResults });
	} else {
		alert("You must provide a facility, city, state, or zip code");
	}
}

function showResults(request) {
	document.getElementById("submit").style.display = 'block';
	document.getElementById("searching").style.display = 'none';
	document.getElementById("searchResults").innerHTML = request.responseText;
}

function isValidSearch() {
	if (document.getElementById("facility").value == "" && document.getElementById("city").value == "" && document.getElementById("state").value == "" & document.getElementById("zip").value == "") {
		return false;
	} else {
		return true;
	}
}

function setClassifications() {
	classifications = "";
	if (document.getElementById("public").checked) { classifications = classifications + "p,"; }
	if (document.getElementById("private").checked) { classifications = classifications + "v,"; }
	if (document.getElementById("semiprivate").checked) { classifications = classifications + "s,"; }
	if (document.getElementById("military").checked) { classifications = classifications + "m,"; }
	if (document.getElementById("resort").checked) { classifications = classifications + "r,"; }
}

Event.observe(window, 'load', loadSearchURL, false);