/**
* Map functions
* Written by Rivers Agency with the help of Google Maps API documentation
*/

var loadInitiated = false;

var map;
var markers = [];
var infoWindow;
var locationSelect;
var locationList;
var leftHeaderText = "Search by <strong>city/state/zip</strong>";
var leftHeaderResultsText = "Search Results";
var rightHeaderText = "Click on state or province to view nearest stores";
var rightHeaderResultsText = "Store Locations Near: ";
var theSearchedAddress = "";
var isValidZip = false;

function load() {
	clearInputs();    
	map = new google.maps.Map(document.getElementById("map"), {
		center: new google.maps.LatLng(40, -100),
		zoom: 4,
		mapTypeId: 'roadmap',
		mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}
	});
	infoWindow = new google.maps.InfoWindow();
	locationList = document.getElementById("locationList");
	
	var zipOnLoad = gup( 'userZip' );
	if(zipOnLoad != ''){
		if(loadInitiated == false){
			if(zipOnLoad.indexOf("+") != -1){
				zipOnLoad = zipOnLoad.replace("+", " ");
			}
			zipOnLoad = zipOnLoad.toUpperCase();
			//alert (zipOnLoad);
			searchLocations('', zipOnLoad);
			loadInitiated = true;
		}
	}

	var prefDealers = gup( 'prefDealers' );
	var styleNo = gup( 's' );
	var colorNo = gup( 'c' );
	var designer = gup( 'designer');
	var status = gup( 'id' );
	var startZip = gup( 'startZip' );
	var eligibleZip = gup( 'eligibleZip' );

	if(prefDealers != '' && styleNo != '' && colorNo != '' && startZip != '' && eligibleZip != ''){
		if(loadInitiated == false){
			displayPreferredDealers(prefDealers, startZip, eligibleZip, styleNo, colorNo, designer, status);
			loadInitiated = true;
		}
	}
} //end on load








function displayPreferredDealers(prefDealers, startZip, eligibleZip, styleNo, colorNo, designer, status){
	var address = startZip;
	var saddr = startZip;
	var geocoder = new google.maps.Geocoder();
	var center;
	geocoder.geocode({address: address}, function(results, status) {
		if (status == google.maps.GeocoderStatus.OK) {
			center = results[0].geometry.location;
			showLoadingDiv();
			clearLocations();     
			var searchUrl = '/dealer_locator/prefDealers_genxml.php?prefDealers=' + prefDealers + '&lat=' + center.lat() + '&lng=' + center.lng() + "&eligibleZip=" + eligibleZip + "&s=" + styleNo + "&c=" + colorNo + "&designer=" + designer + "&id=" + status;
			//alert ("searchURL = " + searchUrl);
			
			downloadUrl(searchUrl, function(data) {
				var xml = parseXml(data);
				var markerNodes = xml.documentElement.getElementsByTagName("marker");
				var bounds = new google.maps.LatLngBounds();
				for (var i = 0; i < markerNodes.length; i++) {
					var preferred = markerNodes[i].getAttribute("preferred");
					var website = markerNodes[i].getAttribute("website");
					var name = markerNodes[i].getAttribute("name");
					var address = markerNodes[i].getAttribute("address");
					var address1 = markerNodes[i].getAttribute("address1");
					var address2 = markerNodes[i].getAttribute("address2");
					var city = markerNodes[i].getAttribute("city");
					var state = markerNodes[i].getAttribute("state");
					var zip = markerNodes[i].getAttribute("zip");
					var phone = markerNodes[i].getAttribute("phone");
					var fax = markerNodes[i].getAttribute("fax");
					var email = markerNodes[i].getAttribute("email");
					var hours = markerNodes[i].getAttribute("hours");
					var largest_selection = markerNodes[i].getAttribute("largest_selection");
					var productLink = markerNodes[i].getAttribute("productLink");
					var distance = parseFloat(markerNodes[i].getAttribute("distance"));
					var latlng = new google.maps.LatLng(
					parseFloat(markerNodes[i].getAttribute("lat")),
					parseFloat(markerNodes[i].getAttribute("lng")));
					createListItem(saddr, preferred, productLink, name, address1, address2, city, state, zip, phone, fax, email, hours, largest_selection, distance, i, false);
					createMarker(latlng, name, address);
					bounds.extend(latlng);
				}
				var authorizedDealers = document.getElementById("authorized_dealers");
				authorizedDealers.style.display = "block";
				authorizedDealers.style.visibility = "visible";
				var preferredDiv = document.getElementById("preferred_dealer_container");
				preferredDiv.style.display = "block";
				preferredDiv.style.visibility = "visible";
				toggle_state_map_visibility("hidden");
				toggle_mini_search_visibility("hidden");
				hideLoadingDiv();
				map.fitBounds(bounds);
				locationList.style.visibility = "visible";
			});
		
		} else {
			alert(address + ' not found');
		}
	});
}





function searchLocations(theSearchBoxID, zipOnLoad) {
	
	var zipValue = '';
	var cityValue = '';
	var stateValue = '';
	
	var address = '';
	
	if(theSearchBoxID == "newSearch"){
		zipValue = document.getElementById("zipInput").value;
		cityValue = document.getElementById("cityInput").value;
		stateValue = document.getElementById("stateInput").value;
	}
	else if(theSearchBoxID == "mini_search"){
		zipValue = document.getElementById("zipInputMini").value;
		//stateValue = document.getElementById("stateInputMini").value;
	}
	else{
	}
	
	var fullStateName = getFullStateName(stateValue);
	
	var address = '';
	var theState = '';
	
	if(zipValue != ''){
		address = address + zipValue;
	}
	else{
		if(cityValue != ''){
			address = address + cityValue + ', ';
		}
		if(stateValue != '' && stateValue != 'Select State or Province'){
			address = address + fullStateName;
			if(cityValue == ''){ //if the city is left blank, but a state is filled in...
				theState = stateValue;
			}
		}   		
	}  
	if(zipOnLoad != ''){
		zipValue = zipOnLoad;
		address = address + zipValue;
	}
	
	var isStateSearch = false;
	if(stateValue != '' && zipValue == '' && cityValue == ''){
		isStateSearch = true;
	}
	else{
		isStateSearch = false;
	}
	
	if(zipValue.length == 6){
		if(zipValue.substring(5) == " "){
			zipValue = zipValue.substring(0, 5);
		}
	}
	
	zipValue = zipValue.toUpperCase();
	
	
	
	//validation
	
	if(zipValue == '' && cityValue == '' && stateValue == ''){ // all fields left blank
		alert ("Please fill out search fields with valid information.");
	}
	else if(zipValue == '' && cityValue != '' && stateValue == ''){ // city is only field entered
		alert ("Please enter a state or province in the search field.");
	}
	else if(zipValue == '' && stateValue != ''){ // zip is blank, but the state is at least filled out
		theSearchedAddress = address;
		var geocoder = new google.maps.Geocoder();
		geocoder.geocode({address: address}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				searchLocationsNear(results[0].geometry.location, theState, address, isStateSearch);//second argument is "theState"... tells query to look outside the 75 mi. radius and grab all from a state
			} else {
				alert("No results found for the address " + address);
			}
		});
	}
	else if(zipValue != '' && stateValue == ''){ // zip is only field entered, no state
		var zipCodePattern1 = /^[0-9]{5,5}([- ]?[0-9]{4,4})?$/;
		var zipCodePattern2 = /^[ABCEGHJ-NPRSTVXY]{1}[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[ ]?[0-9]{1}[ABCEGHJ-NPRSTV-Z]{1}[0-9]{1}$/;
		if(zipCodePattern1.test(zipValue) == false && zipCodePattern2.test(zipValue) == false){
			alert("Zip code is invalid. Please enter valid zip code.");
		}
		else{  // OK, it passed the regex validation...
			var zipURL = "/dealer_locator/isValidZipCode.php?zipCode=" + zipValue;
			downloadUrl(zipURL, function(data) {  //"data" is true if the zip code is a valid US or Canadian zip
				if(data == "true"){
					theSearchedAddress = address;
					var geocoder = new google.maps.Geocoder();
					geocoder.geocode({address: address}, function(results, status) {
						if (status == google.maps.GeocoderStatus.OK) {
							searchLocationsNear(results[0].geometry.location, theState, address, isStateSearch);//second argument is "theState"... tells query to look outside the 75 mi. radius and grab all from a state
						} else {
							alert("No results found for the address " + address);
						}
					});	
				}
				else{
					alert("Zip code is invalid. Please enter valid zip code.");
				}
			});
		}
	}
}







function searchLocationOnMap(stateValue){
	var fullStateName = getFullStateName(stateValue);
	var address = fullStateName;
	theSearchedAddress = address;
	var geocoder = new google.maps.Geocoder();
	geocoder.geocode({address: address}, function(results, status) {
		if (status == google.maps.GeocoderStatus.OK) {
			searchLocationsNear(results[0].geometry.location, stateValue, address, true); //second argument is "theState"... tells query to look outside the 75 mi. radius and grab all from a state
		} else {
			alert("No stores found in " + state + ".");
		}
	});
}

function clearLocations() {
	infoWindow.close();
	for (var i = 0; i < markers.length; i++) {
		markers[i].setMap(null);
	}
	markers.length = 0;
	locationList.innerHTML = "";
	$("#results_container").css("overflow-y", "hidden");
}
	


function searchLocationsNear(center, theState, saddr, isStateSearch) {
	//alert (isStateSearch);
	showLoadingDiv();
	clearLocations();     
	var radius = 75;
	var searchUrl = '/dealer_locator/phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius + '&theState=' + theState;
	//alert ("searchURL = " + searchUrl);
	downloadUrl(searchUrl, function(data) {
		var xml = parseXml(data);
		var markerNodes = xml.documentElement.getElementsByTagName("marker");
		var bounds = new google.maps.LatLngBounds();
		for (var i = 0; i < markerNodes.length; i++) {
			var preferred = markerNodes[i].getAttribute("preferred");
			var website = markerNodes[i].getAttribute("website");
			var name = markerNodes[i].getAttribute("name");
			var address = markerNodes[i].getAttribute("address");
			var address1 = markerNodes[i].getAttribute("address1");
			var address2 = markerNodes[i].getAttribute("address2");
			var city = markerNodes[i].getAttribute("city");
			var state = markerNodes[i].getAttribute("state");
			var zip = markerNodes[i].getAttribute("zip");
			var phone = markerNodes[i].getAttribute("phone");
			var fax = markerNodes[i].getAttribute("fax");
			var email = markerNodes[i].getAttribute("email");
			var hours = markerNodes[i].getAttribute("hours");
			var largest_selection = markerNodes[i].getAttribute("largest_selection");
			var distance = parseFloat(markerNodes[i].getAttribute("distance"));
			var latlng = new google.maps.LatLng(
			parseFloat(markerNodes[i].getAttribute("lat")),
			parseFloat(markerNodes[i].getAttribute("lng")));
			createListItem(saddr, preferred, website, name, address1, address2, city, state, zip, phone, fax, email, hours, largest_selection, distance, i, isStateSearch);
			createMarker(latlng, name, address);
			bounds.extend(latlng);
		}
		var authorizedDealers = document.getElementById("authorized_dealers");
		authorizedDealers.style.display = "block";
		authorizedDealers.style.visibility = "visible";
		var preferredDiv = document.getElementById("preferred_dealer_container");
		preferredDiv.style.display = "block";
		preferredDiv.style.visibility = "visible";
		toggle_state_map_visibility("hidden");
		toggle_mini_search_visibility("hidden");
		hideLoadingDiv();
		map.fitBounds(bounds);
		locationList.style.visibility = "visible";
	});
}









function createMarker(latlng, name, address) {
	var html = "<b>" + name + "</b> <br/>" + address;
	var marker = new google.maps.Marker({
		map: map,
		position: latlng
	});
	google.maps.event.addListener(marker, 'click', function() {
		infoWindow.setContent(html);
		infoWindow.open(map, marker);
	});
	markers.push(marker);
}









function createOption(name, distance, num) {
	var option = document.createElement("option");
	option.value = num;
	option.innerHTML = name + "(" + distance.toFixed(1) + ")";
	locationSelect.appendChild(option);
}










function createListItem(saddr, preferred, website, name, address1, address2, city, state, zip, phone, fax, email, hours, largest_selection, distance, num, isStateSearch){
	var listContainer = document.getElementById("results_container");
	listContainer.style.display = "block";
	var searchForm = document.getElementById("newSearch");
	searchForm.style.display = "none";
	var locationListItem = document.createElement("li");
	var address2String = String;
	var phoneString = String;
	var faxString = String;
	var emailString = String;
	var hoursString = String;
	var premiumGraphicString = String;
	if(phone != '' && phone != ' ' && phone.length > 1){
		phoneString = "Phone: " + phone + "<br />";
	}
	else{
		phoneString = '';
	}
	if(fax != '' && fax != ' ' && fax.length > 1){
		faxString = "Fax: " + fax + "<br />";
	}
	else{
		faxString = '';
	}
	if(email != ''&& email != ' ' && email.length > 1){
		emailString = "<a href=\"mailto:" + email + "\">Email Store &raquo;</a><br />";
	}
	else{
		emailString = '';
	}
	if(hours != '' && hours != ' ' && hours.length > 1){
		hoursString = "Store Hours: " + hours + "<br />";
	}
	else{
		hoursString = '';
	}
	if(address2 != '' && address2 != ' ' && address2.length > 1){
		address2String = address2 + "<br />";
	}
	else{
		address2String = '';
	}
	
	if(largest_selection == 1){
		premiumGraphicString = "<img style=\"padding: 0px; float: right;\" src=\"/dealer_locator/images/largest_selection.gif\">";
	}
	else{
		premiumGraphicString = "";
	}
	
	
	
	var prefDealerDistance = '';
	var nonprefDealerDistance = '';
	if(isStateSearch == false){
		prefDealerDistance = "Distance: " + distance.toFixed(1) + " miles away<br />";
		nonprefDealerDistance = "Distance: " + distance.toFixed(1) + " miles away<br />";
	}
	else{
		prefDealerDistance = "";
		nonprefDealerDistance = "";
	}
	
	var addressString = String;
	addressString = address1 + " " + address2 + " " + city + ", " + state + " " + zip;
	
	if(preferred == 1){
		locationListItem.className = "searchResult preferred";
		//locationListItem.innerHTML = "<span class=\"storeName\">" + name + "</span><br />" + address1 + address2 + "<br />" + city + ", " + state + "&nbsp;" + zip + "<br />Phone: " + phone + "<br /><a href=\"" + "#" + ">Get Directions (" + distance.toFixed(1) + ") &raquo;</a>";
		locationListItem.innerHTML = premiumGraphicString + "<img src=\"/dealer_locator/images/star.gif\" align=\"left\" /><span class=\"storeName\">" + name + "</span><br />" + prefDealerDistance + "<a href=\"" + website + "\" target=\"_parent\"><img src=\"/dealer_locator/images/shop_online.gif\" /></a><a onclick = \"getDirections('directionsLink" + num + "')\"><img src=\"/dealer_locator/images/map_btn.gif\" /></a><br />" + address1 + "<br />" + address2String + city + ", " + state + "&nbsp;" + zip + "<br />" + phoneString + faxString + emailString + hoursString + "<a onclick = \"getDirections('directionsLink" + num + "')\">" + "Get Directions &raquo;" + "</a>";
	}
	else{
		locationListItem.className = "searchResult";
		locationListItem.innerHTML = premiumGraphicString + "<span class=\"storeName\">" + name + "</span><br />" + nonprefDealerDistance + address1 + "<br />" + address2String + city + ", " + state + "&nbsp;" + zip + "<br />" + phoneString + emailString + "<a onclick = \"getDirections('directionsLink" + num + "')\">" + "Get Directions &raquo;" + "</a>";
	}
	
	locationList.appendChild(locationListItem);
	
	var directionsForm = document.createElement("form");
	directionsForm.setAttribute("action", "http://maps.google.com/maps");
	directionsForm.setAttribute("target", "_blank");
	directionsForm.setAttribute("method", "get");
	directionsForm.setAttribute("id", "directionsLink" + num);
	
	var input1 = document.createElement("input");
	input1.setAttribute("type", "hidden");
	input1.setAttribute("name", "saddr");
	input1.setAttribute("id", "saddr");
	input1.setAttribute("value", saddr);
	var input2 = document.createElement("input");
	input2.setAttribute("type", "hidden");
	input2.setAttribute("name", "daddr");
	input2.setAttribute("value", addressString);
	var input3 = document.createElement("input");
	input3.setAttribute("type", "hidden");
	input3.setAttribute("name", "hl");
	input3.setAttribute("value", "en");
	
	directionsForm.appendChild(input1);
	directionsForm.appendChild(input2);
	directionsForm.appendChild(input3);	 
	
	locationListItem.appendChild(directionsForm);
}
	
	
	
	
	
	
	

function getDirections(formID) {
	document.getElementById(formID).submit();
}











function downloadUrl(url, callback) {
	var request = window.ActiveXObject ?
	new ActiveXObject('Microsoft.XMLHTTP') :
	new XMLHttpRequest;
	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			request.onreadystatechange = doNothing;
			callback(request.responseText, request.status);
		}
	};
	request.open('GET', url, true);
	request.send(null);
}

	
function parseXml(str) {
	if (window.ActiveXObject) {
		var doc = new ActiveXObject('Microsoft.XMLDOM');
		doc.loadXML(str);
		return doc;
	} else if (window.DOMParser) {
		return (new DOMParser).parseFromString(str, 'text/xml');
	}
}





function doNothing() {}











function showLoadingDiv(){
	$('#loading_overlay').animate({
	opacity: 0 }, 0);
	var loadingDiv = document.getElementById("loading_overlay");
	loadingDiv.style.visibility = "visible";
	loadingDiv.style.display = "block";
	$("#loading_overlay").animate(
	{"opacity": ".6"},
	200);
}








function hideLoadingDiv(){
	$("#loading_overlay").animate(
	{"opacity": "0"},
	500, function() {
	var loadingDiv = document.getElementById("loading_overlay");
	loadingDiv.style.display = "none";
	});
	}
	
	function toggle_mini_search_visibility(visibility){
	clearInputs();
	var miniSearch = document.getElementById("mini_search");
	var miniSearchBtn = document.getElementById("start_mini_search");
	if(visibility == "visible"){
		miniSearch.style.visibility = "visible";
		miniSearch.style.display = "block";
		miniSearchBtn.style.visibility = "hidden";
		miniSearchBtn.style.display = "none";
	}
	else if(visibility == "hidden"){
		miniSearch.style.visibility = "hidden";
		miniSearch.style.display = "none";
		miniSearchBtn.style.visibility = "visible";
		miniSearchBtn.style.display = "block";
	}
	calculate_results_height();
}










function toggle_state_map_visibility(visibility){
	var clickableMap = document.getElementById("clickable_map");
	var googleMap = document.getElementById("map");
	var leftHeader = document.getElementById("left_col_header_text");
	var rightHeader = document.getElementById("right_col_header_text");
	var authorizedDealers = document.getElementById("authorized_dealers");
	var resetDiv = document.getElementById("reset_div");
	
	if(visibility == "visible"){ //display clickable map
		clickableMap.style.visibility = "visible";
		googleMap.style.visibility = "hidden";
		leftHeader.innerHTML = leftHeaderResultsText;
		rightHeader.innerHTML = rightHeaderResultsText;
		showYourSearch(theSearchedAddress);
	}
	if(visibility == "hidden"){ // Hide clickable map
		clickableMap.style.visibility = "hidden";
		googleMap.style.visibility = "visible";
		resetDiv.style.display = "block";
		resetDiv.style.visibility = "visible";
		leftHeader.innerHTML = leftHeaderResultsText;
		rightHeader.innerHTML = rightHeaderResultsText;
		showYourSearch(theSearchedAddress);
	}
	calculate_results_height();
}













function reset_search(){
	clearInputs();
	var clickableMap = document.getElementById("clickable_map");
	var googleMap = document.getElementById("map");
	var listContainer = document.getElementById("results_container");
	var searchForm = document.getElementById("newSearch");
	var authorizedDealers = document.getElementById("authorized_dealers");
	var resetDiv = document.getElementById("reset_div");
	var miniSearch = document.getElementById("mini_search");
	var miniSearchBtn = document.getElementById("start_mini_search");
	var leftHeader = document.getElementById("left_col_header_text");
	var rightHeader = document.getElementById("right_col_header_text");
	var preferredDiv = document.getElementById("preferred_dealer_container");
	var yourSearch = document.getElementById("your_search");
	
	
	clickableMap.style.visibility = "visible";
	googleMap.style.visibility = "hidden";
	listContainer.style.display = "none";
	searchForm.style.display = "block";
	authorizedDealers.style.display = "none";
	authorizedDealers.style.visibility = "hidden";
	resetDiv.style.display = "none";
	resetDiv.style.visibility = "hidden";
	miniSearch.style.display = "none";
	miniSearch.style.visibility = "hidden";
	miniSearchBtn.style.display = "none";
	miniSearchBtn.style.visibility = "hidden";
	preferredDiv.style.display = "none";
	preferredDiv.style.visibility = "hidden";
	yourSearch.innerHTML = "";
	
	leftHeader.innerHTML = leftHeaderText;
	rightHeader.innerHTML = rightHeaderText;
	
	calculate_results_height();
}













function calculate_results_height(){
	var totalContentHeight = $("#right_col_wrapper").height();
	var listContainer = document.getElementById("results_container");
	var miniSearch = document.getElementById("mini_search");
	var miniSearchBtn = document.getElementById("start_mini_search");
	var authorizedDealers = document.getElementById("authorized_dealers");
	var resetDiv = document.getElementById("reset_div");
	var preferredDiv = document.getElementById("preferred_dealer_container");
	
	var miniSearchHeight = 0;
	var searchBtnHeight = 0;
	var authorizedHeight = 0;
	var contentHeaderHeight = 37;
	var preferredDivHeight = 0;
	var resetDivHeight = 0;
	
	if(miniSearch.style.display == "block"){
		miniSearchHeight = $("#mini_search").height(); //minus the padding and border
		miniSearchHeight += 20;
	}
	if(miniSearchBtn.style.display == "block"){
		searchBtnHeight = $("#start_mini_search").height();
	}
	else{
		searchBtnHeight = 0;
	}
	if(authorizedDealers.style.display == "block"){
		authorizedHeight = $("#authorized_dealers").height();
		//alert("authorized height = " + authorizedHeight);
	}
	if(resetDiv.style.display == "block"){
		resetDivHeight = $("#reset_div").height();
		//alert("authorized height = " + authorizedHeight);
	}
	
	if(preferredDiv.style.display == "block"){
		preferredDivHeight = $("#preferred_dealer_container").height();
		preferredDivHeight += 12; //padding and border
	}
	
	var newHeight = (totalContentHeight - miniSearchHeight - searchBtnHeight - authorizedHeight - resetDivHeight - preferredDivHeight);
	//alert ("new height = " + newHeight);
	
	$("#results_container").height(newHeight+2)
	if($("#locationList").height() < $("#results_container").height()){
		$("#results_container").css("overflow-y", "hidden");
	}
	else{
		$("#results_container").css("overflow-y", "scroll");
	}
	$("#left_col_wrapper").height(totalContentHeight-preferredDivHeight)
}

















function getFullStateName(abbrev){
	statesArray = new Array();
	
	statesArray['AL'] = "Alabama";
	statesArray['AK'] = "Alaska";
	statesArray['AZ'] = "Arizona";
	statesArray['AR'] = "Arkansas";
	statesArray['CA'] = "California";
	statesArray['CO'] = "Colorado";
	statesArray['CT'] = "Connecticut";
	statesArray['DE'] = "Delaware";
	statesArray['DC'] = "District of Columbia";
	statesArray['FL'] = "Florida";
	statesArray['GA'] = "Georgia";
	statesArray['HI'] = "Hawaii";
	statesArray['ID'] = "Idaho";
	statesArray['IL'] = "Illinois";
	statesArray['IN'] = "Indiana";
	statesArray['IA'] = "Iowa";
	statesArray['KS'] = "Kansas";
	statesArray['KY'] = "Kentucky";
	statesArray['LA'] = "Louisiana";
	statesArray['ME'] = "Maine";
	statesArray['MD'] = "Maryland";
	statesArray['MA'] = "Massachusetts";
	statesArray['MI'] = "Michigan";
	statesArray['MN'] = "Minnesota";
	statesArray['MS'] = "Mississippi";
	statesArray['MO'] = "Missouri";
	statesArray['MT'] = "Montana";
	statesArray['NE'] = "Nebraska";
	statesArray['NV'] = "Nevada";
	statesArray['NH'] = "New Hampshire";
	statesArray['NJ'] = "New Jersey";
	statesArray['NM'] = "New Mexico";
	statesArray['NY'] = "New York";
	statesArray['NC'] = "North Carolina";
	statesArray['ND'] = "North Dakota";
	statesArray['OH'] = "Ohio";
	statesArray['OK'] = "Oklahoma";
	statesArray['OR'] = "Oregon";
	statesArray['PA'] = "Pennsylvania";
	statesArray['PR'] = "Puerto Rico";
	statesArray['RI'] = "Rhode Island";
	statesArray['SC'] = "South Carolina";
	statesArray['SD'] = "South Dakota";
	statesArray['TN'] = "Tennessee";
	statesArray['TX'] = "Texas";
	statesArray['UT'] = "Utah";
	statesArray['VT'] = "Vermont";
	statesArray['VA'] = "Virginia";
	statesArray['WA'] = "WA";
	statesArray['WV'] = "West Virginia";
	statesArray['WI'] = "Wisconsin";
	statesArray['WY'] = "Wyoming";
	statesArray['AB'] = "Alberta";
	statesArray['BC'] = "British Columbia";
	statesArray['MB'] = "Manitoba";
	statesArray['NB'] = "New Brunswick";
	statesArray['NL'] = "Newfoundland and Labrador";
	statesArray['NT'] = "Northwest Territories";
	statesArray['NS'] = "Nova Scotia";
	statesArray['NU'] = "Nunavut";
	statesArray['ON'] = "Ontario";
	statesArray['PE'] = "Prince Edward Island";
	statesArray['QC'] = "Quebec";
	statesArray['SK'] = "Saskatchewan";
	statesArray['YT'] = "Yukon Territory, Canada";

	return statesArray[abbrev];
}


function gup( name ){
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return results[1];
}






function clearInputs(){
	inputArray = ["zipInput", "cityInput", "stateInput", "zipInputMini"];
	for(i=0; i<inputArray.length; i++){
		input = document.getElementById(inputArray[i]);
		input.value = "";
	}
}




function showYourSearch(searchCriteria){
	var yourSearch = document.getElementById("your_search");
	yourSearch.innerHTML = "&nbsp;&nbsp;" + searchCriteria;
}


// Changes the cursor to an hourglass
function cursor_hand() {
document.body.style.cursor = 'pointer';
}

// Returns the cursor to the default pointer
function cursor_clear() {
document.body.style.cursor = 'default';
}





