﻿var CurrentCategory = "City";

function Change(Feature) {
	if (document.getElementById("SelectedCity").innerHTML != "Any") {
		if (CurrentCategory != "City")
			document.getElementById(CurrentCategory + "LI").className = "";
		CurrentCategory = Feature;
		document.getElementById(Feature + "LI").className = "active";
		makeRequest('XML.aspx?Feature=' + Feature);
	} else {
		alert("You must choose at least one " + convertSearchType(document.getElementById("ctl00_PrimaryContent_valSearchType").value) + " first.");
	}
}

function convertSearchType(st) {
	switch(st) {
		case "SchoolDistrict":
			return "School District";
			break;
		case "HighSchool":
			return "High School";
			break;
		case "MiddleSchool":
			return "Middle School";
			break;
		case "ElementarySchool":
			return "Elementary School";
			break;
		case "ZipCode":
			return "Zip Code";
			break;
		default:
			return st;
	}
}

function ChangeBack(Feature) {
	if (CurrentCategory != "City")
		document.getElementById(CurrentCategory + "LI").className = "";
	CurrentCategory = "City";
	makeRequest('XML.aspx?Feature=' + Feature + "&Partial=" + document.getElementById("ctl00_PrimaryContent_valPartial").value + "&Partial2=" + document.getElementById("ctl00_PrimaryContent_valPartial2").value);
}

function Update() {
	var i=document.getElementById("ctl00_PrimaryContent_Values");
	document.getElementById("Selected" + CurrentCategory).innerHTML = "Any";
	document.getElementById("ctl00_PrimaryContent_val" + CurrentCategory).value = "~";
	for (x=0; x < i.options.length; x++) {
		if (i.options[x].selected == true) {
		
			var CategoryNoSpaces = new String(i.options[x].value);
			CategoryNoSpaces = CategoryNoSpaces.replace(/ /g, '_');
			if (document.getElementById("Selected" + CurrentCategory).innerHTML == "Any") {
				document.getElementById("Selected" + CurrentCategory).innerHTML = i.options[x].text;
				document.getElementById("ctl00_PrimaryContent_val" + CurrentCategory).value = i.options[x].value;
			} else {
				document.getElementById("Selected" + CurrentCategory).innerHTML += ", " + i.options[x].text;
				document.getElementById("ctl00_PrimaryContent_val" + CurrentCategory).value += "~" + i.options[x].value;
			}
		}	
	}
	CountHomes();
}

function UpdatePrice(doCountHomes) {
	var i=document.getElementById("ctl00_PrimaryContent_MinPrice");
	for (x=0; x < i.options.length; x++) {
		if (i.options[x].selected == true) {
			document.getElementById("UpdateSearch").src="UpdateSearch.aspx?Change=MinPrice&Value=" + i.options[x].value;
			document.getElementById("SelectedPrice").innerHTML = i.options[x].text;
		}	
	}
	var i=document.getElementById("ctl00_PrimaryContent_MaxPrice");
	for (x=0; x < i.options.length; x++) {
		if (i.options[x].selected == true) {
			document.getElementById("UpdateSearch").src="UpdateSearch.aspx?Change=MaxPrice&Value=" + i.options[x].value;
			document.getElementById("SelectedPrice").innerHTML += " to " + i.options[x].text;
		}	
	}
	if (document.getElementById("SelectedPrice").innerHTML == "- No Min - to - No Max -") 
		document.getElementById("SelectedPrice").innerHTML = "Any";
	if (doCountHomes == 1) 
		CountHomes();
}


function UpdateAcres(doCountHomes) {
	var i=document.getElementById("ctl00_PrimaryContent_MinAcres");
	for (x=0; x < i.options.length; x++) {
		if (i.options[x].selected == true) {
			document.getElementById("UpdateSearch").src="UpdateSearch.aspx?Change=MinAcres&Value=" + i.options[x].value;
			document.getElementById("SelectedAcres").innerHTML = i.options[x].text;
		}	
	}
	var i=document.getElementById("ctl00_PrimaryContent_MaxAcres");
	for (x=0; x < i.options.length; x++) {
		if (i.options[x].selected == true) {
			document.getElementById("UpdateSearch").src="UpdateSearch.aspx?Change=MaxAcres&Value=" + i.options[x].value;
			document.getElementById("SelectedAcres").innerHTML += " to " + i.options[x].text;
		}	
	}
	if (document.getElementById("SelectedAcres").innerHTML == "- No Min - to - No Max -") 
		document.getElementById("SelectedAcres").innerHTML = "Any";
	if (doCountHomes == 1) 
		CountHomes();
}


var http_request = false;

function CountHomes() {
	http_request = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	
	var url = new String("NumHomes.aspx")
	url += "?SearchType=" + document.getElementById("ctl00_PrimaryContent_valSearchType").value;
	url += "&Street=" + document.getElementById("ctl00_PrimaryContent_valStreet").value;
	url += "&Values=" + new String(document.getElementById("ctl00_PrimaryContent_valCity").value).replace(/#/g, '%23');
	url += "&Lake=" + document.getElementById("ctl00_PrimaryContent_valLake").value;
	url += "&Sewer=" + document.getElementById("ctl00_PrimaryContent_valSewer").value;
	url += "&Water=" + document.getElementById("ctl00_PrimaryContent_valWater").value;
	url += "&CurrentUse=" + document.getElementById("ctl00_PrimaryContent_valCurrentUse").value;
	url += "&MinPrice=" + document.getElementById("ctl00_PrimaryContent_MinPrice").value;
	url += "&MaxPrice=" + document.getElementById("ctl00_PrimaryContent_MaxPrice").value;
	url += "&MinAcres=" + document.getElementById("ctl00_PrimaryContent_MinAcres").value;
	url += "&MaxAcres=" + document.getElementById("ctl00_PrimaryContent_MaxAcres").value;
	//window.open(url);
	http_request.onreadystatechange = showNumberOfHomes;
	http_request.open('GET', url, true);
	http_request.send(null);
}


function showNumberOfHomes() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmlobject = (new DOMParser()).parseFromString(http_request.responseText, "text/xml");
			var root = xmlobject.getElementsByTagName("NumHomes")[0];
			var items = root.getElementsByTagName("Count");
			var item = items[0];
			var description = item.getElementsByTagName("Value")[0].firstChild.nodeValue;
			document.getElementById("NumHomes").innerHTML = description;
			if (new Number(description) > 0 && new Number(description) < 10000) {
				document.getElementById("ButtonsBlank").style.display="none";
				document.getElementById("Buttons").style.display="";
			} else {
				document.getElementById("Buttons").style.display="none";
				document.getElementById("ButtonsBlank").style.display="";
			}
		}
	}
}


function makeRequest(url) {
	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = alertContents;
	http_request.open('GET', url, true);
	http_request.send(null);
}

function alertContents() {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var i=document.getElementById("ctl00_PrimaryContent_Values");
			for (x=i.length; x > -1; x--) {
				i.remove(x);
			}

			var xmlobject = (new DOMParser()).parseFromString(http_request.responseText, "text/xml");
			var root = xmlobject.getElementsByTagName("Category")[0];
			var items = root.getElementsByTagName("Item");
			
			var AlreadySelected = new String(document.getElementById("Selected" + CurrentCategory).innerHTML);
			for (var i = 0 ; i < items.length ; i++) {
				var item = items[i];
				var name = new String(item.getElementsByTagName("Value")[0].firstChild.nodeValue).replace(/_/g, '');
				var description = item.getElementsByTagName("Name")[0].firstChild.nodeValue;

				var myOpt = new Option;
				myOpt.value = name;
				myOpt.text  = description;
				document.getElementById("ctl00_PrimaryContent_Values").options[i] = myOpt;
				if (AlreadySelected.indexOf(description) > -1)
					document.getElementById("ctl00_PrimaryContent_Values").options[i].selected = true;
			}
		}
	}
}


function Populate() {
	var val = new String(document.getElementById("ctl00_PrimaryContent_valCity").value);
	if (val != "") 
		document.getElementById("SelectedCity").innerHTML = val.replace(/~/g, ', ');
	else
		document.getElementById("SelectedCity").innerHTML = "Any";
	
	val = document.getElementById("ctl00_PrimaryContent_valLake").value;
	if (val != "") 
		document.getElementById("SelectedLake").innerHTML = val.replace(/~/g, ', ');
	else
		document.getElementById("SelectedLake").innerHTML = "Any";
	
	val = document.getElementById("ctl00_PrimaryContent_valSewer").value;
	if (val != "") 
		document.getElementById("SelectedSewer").innerHTML = val.replace(/~/g, ', ');
	else
		document.getElementById("SelectedSewer").innerHTML = "Any";
	
	val = document.getElementById("ctl00_PrimaryContent_valWater").value;
	if (val != "") 
		document.getElementById("SelectedWater").innerHTML = val.replace(/~/g, ', ');
	else
		document.getElementById("SelectedWater").innerHTML = "Any";
	
	val = document.getElementById("ctl00_PrimaryContent_valCurrentUse").value;
	if (val != "") 
		document.getElementById("SelectedCurrentUse").innerHTML = val.replace(/~/g, ', ');
	else
		document.getElementById("SelectedCurrentUse").innerHTML = "Any";
}

function CheckNumeric( obj ) {
	var val = new String(obj.value);
	var valid = true;
	for (var x = 0; x < val.length; x++) {
		if (!(val.substring(x, x + 1).match('[0-9]'))) {
			valid = false;
		}
	}
	if (valid) {
		CountMLSNumberHomes();
	} else {
		alert('Please enter only numbers.');
		document.getElementById("Buttons").style.display="none";
		document.getElementById("ButtonsBlank").style.display="";
	}
}

function CountMLSNumberHomes() {
	http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
				http_request.overrideMimeType('text/xml');
			}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	
	var url = new String("NumMLSNumberHomes.aspx")
	url += "?MLSNumber1=" + document.getElementById("ctl00_PrimaryContent_MLSNumber1").value;
	url += "&MLSNumber2=" + document.getElementById("ctl00_PrimaryContent_MLSNumber2").value;
	url += "&MLSNumber3=" + document.getElementById("ctl00_PrimaryContent_MLSNumber3").value;
	url += "&MLSNumber4=" + document.getElementById("ctl00_PrimaryContent_MLSNumber4").value;
	url += "&MLSNumber5=" + document.getElementById("ctl00_PrimaryContent_MLSNumber5").value;
	url += "&MLSNumber6=" + document.getElementById("ctl00_PrimaryContent_MLSNumber6").value;
	url += "&MLSNumber7=" + document.getElementById("ctl00_PrimaryContent_MLSNumber7").value;
	url += "&MLSNumber8=" + document.getElementById("ctl00_PrimaryContent_MLSNumber8").value;
	url += "&MLSNumber9=" + document.getElementById("ctl00_PrimaryContent_MLSNumber9").value;
	http_request.onreadystatechange = showNumberOfHomes;
	http_request.open('GET', url, true);
	http_request.send(null);
}
