var services;
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 == "fn") { document.getElementById("firstname").value = value; }
		if (field == "ln") { document.getElementById("lastname").value = value; }
		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 == "svc") {
			var serviceVars = value.split(",");

			for (var j=0; j<serviceVars.length; j++) {
				if (serviceVars[j] == "b") { document.getElementById("beginner").checked = true; }
				if (serviceVars[j] == "m") { document.getElementById("men").checked = true; }
				if (serviceVars[j] == "g") { document.getElementById("group").checked = true; }
				if (serviceVars[j] == "p") { document.getElementById("playing").checked = true; }
				if (serviceVars[j] == "j") { document.getElementById("junior").checked = true; }
				if (serviceVars[j] == "w") { document.getElementById("women").checked = true; }
				if (serviceVars[j] == "v") { document.getElementById("video").checked = true; }
				if (serviceVars[j] == "sa") { document.getElementById("swinganalysis").checked = true; }
				if (serviceVars[j] == "s") { document.getElementById("senior").checked = true; }
				if (serviceVars[j] == "cf") { document.getElementById("clubfitting").checked = true; }
				if (serviceVars[j] == "d") { document.getElementById("disabled").checked = true; }
			}
		}
	}

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

function loadProfile(PGAID) {
	document.location = "http://" + document.location.hostname + "/searchtools/instruction/instructors/profile.cfm?PGAID=" + PGAID + document.location.hash;
}

function setSearchURL() {
	searchURL = "";
	searchURL = searchURL + "fn=" + document.getElementById("firstname").value;
	searchURL = searchURL + "&ln=" + document.getElementById("lastname").value;
	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 + "&svc=" + services;
	document.location.hash = searchURL;
}

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

		setServices();
		setSearchURL();

		var params = "";
		params = params + "&firstname=" + document.getElementById("firstname").value;
		params = params + "&lastname=" + document.getElementById("lastname").value;
		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 + "&services=" + services;
		new Ajax.Request("http://" + document.location.hostname + "/searchtools/instruction/instructors/search.cfm", { method:'get', parameters:params, onComplete:showResults });
	} else {
		alert("You must provide a first name, last name, 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("firstname").value == "" && document.getElementById("lastname").value == "" && document.getElementById("facility").value == "" && document.getElementById("city").value =="" && document.getElementById("state").value == "" & document.getElementById("zip").value == "") {
		return false;
	} else {
		return true;
	}
}

function setServices() {
	services = "";
	if (document.getElementById("beginner").checked) { services = services + "b,"; }
	if (document.getElementById("men").checked) { services = services + "m,"; }
	if (document.getElementById("group").checked) { services = services + "g,"; }
	if (document.getElementById("playing").checked) { services = services + "p,"; }
	if (document.getElementById("junior").checked) { services = services + "j,"; }
	if (document.getElementById("women").checked) { services = services + "w,"; }
	if (document.getElementById("video").checked) { services = services + "v,"; }
	if (document.getElementById("swinganalysis").checked) { services = services + "sa,"; }
	if (document.getElementById("senior").checked) { services = services + "s,"; }
	if (document.getElementById("clubfitting").checked) { services = services + "cf,"; }
	if (document.getElementById("disabled").checked) { services = services + "d,"; }
}

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