function findPOISByDistance(zipcode, radius) {
	var zipexp = /^\d{5}$/;
	if ( zipcode.match(zipexp) ) {
		hbxCall("/locations/fm", "zipcode/"+zipcode);
		//Perform the search
		var gw = new AjaxCall(
			{
			request_url: "ajax/find_stores_in_range.asp",
		 	request_method: "GET", 
		 	response_callback: displaySearchResults,
		 	response_format: "TEXT"
			}
		);
		gw.setRequestParam("zipcode", zipcode);
		gw.setRequestParam("radius", radius);
		gw.execute();
	} else {
		displaySearchResults("");
	}
	
}

function displaySearchResults(results) {
	if (results.trim() != "") { 
		var display = document.getElementById("locations");
		display.innerHTML = results;
		showStreetInstructions();
	} else {
		//alert("There are no restaraurants near your zip code, please try again.");
	}
	
	var zipcode = document.getElementById("zipcode").value;
	var radius = document.getElementById("radius").value;
		
	fmCustomSearchPOIsZipcode(zipcode, radius);
}

function findStateStores(event, state) {
	hbxCall("/locations/fm", state);
	
	var gw = new AjaxCall(
		{
		request_url: "ajax/find_stores_by_state.asp",
	 	request_method: "GET", 
	 	response_callback: displayStateStores,
	 	response_format: "TEXT"
		}
	);
	gw.setRequestParam("state", state);
	gw.execute();
}

function displayStateStores(results) {
	var display = document.getElementById("locations");
	display.innerHTML = results;
}

function clearStoreList() {
	var display = document.getElementById("locations");
	display.innerHTML = "";
}

function hbxCall(mlc, pn) {
	var escapedPN = pn.replace(/ /g,"+");
	var escapedMLC = mlc.replace(/ /g,"+");
	_hbPageView( escapedPN, escapedMLC );
}

function searchZip() {
	findPOISByDistance(document.getElementById("zipcode").value, document.getElementById("radius").value);
}

function initSearchZip(radius, zip) {
	document.getElementById("zipcode").value = zip;
	document.getElementById("radius").value = radius;
	searchZip();
}
	
function submitenter(e)
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;
	
	if (keycode == 13) {
	  searchZip();
	  return false;
	} else {
		return true;
	}
}

function initMapWithPOI(poi_id, state) {
	fmCustomShowDBMMap(poi_id);
	findStateStores('', state);
}

function showUSInstructions() {
	hideInstructions();
	document.getElementById("USLevelInstructions").style.display = "block";		
}

function showStreetInstructions() {
	hideInstructions();
	document.getElementById("StreetLevelInstructions").style.display = "block";		
}

function hideInstructions() {
	document.getElementById("USLevelInstructions").style.display = "none";
	document.getElementById("StreetLevelInstructions").style.display = "none";
}