		function onGeocodePageLoad(){
			if(err == "1"){
				alert("No locations were found. Please expand your search.");
			
				//Set all form values to their defaults on page load
				document.getElementById("name").value = name;
				document.getElementById("address").value = street;
				document.getElementById("city").value = city;
				document.getElementById("postalcode").value = postalcode;
				var sel = document.getElementById("state");
				for(var i=0; i < sel.options.length; i++){
					if(sel.options[i].value == state){
						sel.selectedIndex = i;
						break;
					}
				}
				var sel = document.getElementById("country");
				for(var i=0; i < sel.options.length; i++){
					if(sel.options[i].value == country){
						sel.selectedIndex = i;
						break;
					}
				}
				document.getElementById("radius").value = radius;
			}
			else {

				//Set all form values to their defaults on page load
				document.getElementById("olat").value = "";
				document.getElementById("olng").value = "";
				document.getElementById("oname").value = "";
				document.getElementById("ostreet").value = "";
				document.getElementById("ocity").value = "";
				document.getElementById("opostalcode").value = "";
				document.getElementById("ostate").value = "";
				document.getElementById("oradius").value = "";
				document.getElementById("ounits").value = "";
			}
			
			changeCountry(document.getElementById("country"))

			//Focus on the first input of the form on page load
			var formStart = document.getElementById("address");
			formStart.focus();

		}
		
		
		function getDBLayerQuery(name, extracriteria){
			var dblq = new MQDBLayerQuery();
			dblq.setDBLayerName(name);
			dblq.setExtraCriteria(extracriteria);
			return dblq;
		}
		
		var results;
		
		function findName(n, street, city, state, postal, country, radius, units){
			var criteria = " N like '%" + n.replace("'", "''") + "%'";
			if(!StringFunctions.isBlank(street)){
				criteria += " AND addresslike '%" + street.replace("'", "''") + "%'";
			}
			if(!StringFunctions.isBlank(city)){
				criteria += " AND city like '%" + city.replace("'", "''") + "%'";
			}
			if(!StringFunctions.isBlank(state)){
				criteria += " AND state like '" + state.replace("'", "''") + "'";
			}
			if(!StringFunctions.isBlank(postal)){
				criteria += " AND ZIP like '%" + postal.replace("'", "''") + "%'";
			}
			if(!StringFunctions.isBlank(country)){
				criteria += " AND country like '" + country.replace("'", "''") + "'";
			}
			
			var dblq = getDBLayerQuery(MQ_POI_TABLE , criteria);
			var scIds = new MQStringCollection();
			var scFields = new MQStringCollection();
			scFields.add("N");
			scFields.add("address");
			scFields.add("city");
			scFields.add("state");
			scFields.add("ZIP");
			scFields.add("country");
			scFields.add("Lat");
			scFields.add("Lng");
			
			var sExec = new MQExec(MQ_API_SPATIAL_SERVER, MQ_API_PATH, MQ_API_PORT, PROXY_SERVER, PROXY_PATH, PROXY_PORT);
			var rs = new MQRecordSet()
			sExec.getRecordInfo(scFields, dblq, rs, scIds);
			
			var results = new Array();
			var itt = 0;
			while(!rs.isEOF()){
				var obj = new Object();
				obj.name = rs.getField("N");
				obj.street = rs.getField("address");
				obj.city = rs.getField("city");
				obj.state = rs.getField("state");
				obj.postal = rs.getField("ZIP");
				obj.country = rs.getField("country");
				obj.lat = rs.getField("Lat");
				obj.lng = rs.getField("Lng");
				results.push(obj);
				
				rs.moveNext();
				
				if(itt == 10)
					break;
				itt++;
			}
			
			if(results.length == 1 ){
				var r = results[0];
				document.getElementById("oname").value = r.name;
				document.getElementById("ostreet").value = r.street;
				document.getElementById("ocity").value = r.city;
				document.getElementById("ostate").value = r.state;
				document.getElementById("opostalcode").value = r.postal;
				document.getElementById("ocountry").value = r.country;
				document.getElementById("olat").value = r.lat;
				document.getElementById("olng").value = r.lng;
				document.getElementById("oradius").value = radius;
				document.getElementById("ounits").value = units;
				document.getElementById("frmSubmit").submit();
				return true;
			}
			else if(results.length > 1 ){
				showAmbigNamedResults(results, radius, units);
				return true;
			}
			return false;
		}
		
		function showAmbigNamedResults(results, radius, units){
			document.getElementById("divPrivacy").style.display = "none";
		
			var tbl = document.getElementById("tblEntry");
			for(var i = tbl.rows.length - 1; i >= 0; i--){
				tbl.deleteRow(i);
			}
			
			tbl.cellPadding = 2;
			
			var trItt = tbl.rows.length;
			for(var i = 0; i < results.length; i++){
				var r = results[i];
				var tr = tbl.insertRow(trItt++);
				var td = tr.insertCell(0);
				var spacer = false;
				
				td.appendChild(document.createTextNode(r.name));
				td.appendChild(document.createElement("br"));
				
				if(!StringFunctions.isBlank(r.street)){
					td.appendChild(document.createTextNode(r.street));
					td.appendChild(document.createElement("br"));
				}
				
				if(!StringFunctions.isBlank(r.city)){
					td.appendChild(document.createTextNode(r.city));
					spacer = true;
				}
				
				if(!StringFunctions.isBlank(r.state)){
					if(spacer){
						td.appendChild(document.createTextNode(", "));				
					}
					td.appendChild(document.createTextNode(r.state));
					spacer = true;
				}
				
				if(!StringFunctions.isBlank(r.postal)){
					if(spacer){
						td.appendChild(document.createTextNode(" "));				
					}
					td.appendChild(document.createTextNode(r.postal));
					spacer = true;
				}
							
				if(!StringFunctions.isBlank(r.country)){
					if(spacer){
						td.appendChild(document.createTextNode(" "));				
					}
					td.appendChild(document.createTextNode(r.country));
					spacer = true;
				}
				
				td = tr.insertCell(1);
				var frm = document.createElement("form");
				td.appendChild(frm);
				frm.action = "icing_locator.asp";
				frm.id = "amb" + i;
				frm.method = "get";
				frm.onsubmit = function(){
					for(var i = 0; i < results.length; i++){
						document.getElementById("inpt_amb" + i).disabled = true;
					}
					return true;
				};
				
				var inpt = DOMFunctions.createInputElement("hidden", "oname", r.name);
				frm.appendChild(inpt);

				var inpt = DOMFunctions.createInputElement("hidden", "ostreet", r.street);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "ocity", r.city);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "ostate", r.state);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "opostalcode", r.postal);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "ocountry", r.country);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "olat", r.lat);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "olng", r.lng);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "oradius", radius);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "ounits", units);
				frm.appendChild(inpt);

				var inpt = DOMFunctions.createInputElement("submit", "", "Select");
				frm.appendChild(inpt);
				inpt.id = "inpt_amb" + i;
				
			}
		
		}
	
		function geocode(){
			var sName = document.getElementById("name").value;
			var sAddress = document.getElementById("address").value;
			var sCity = document.getElementById("city").value;
			var sStateProvince = document.getElementById("state").value;
			var sPostalCode = document.getElementById("postalcode").value;
			var sel = document.getElementById("country");
			var sCountry = sel.options[sel.selectedIndex].value;
			
			var radius = document.getElementById("radius").value;

			var units = "mi";
				
			if(sCountry != "US" && sCountry != "CA"){
				sStateProvince = "";
			}
				
			if(!StringFunctions.isBlank(sName)){
				if(findName(sName, sAddress, sCity, sStateProvince, sPostalCode, sCountry, radius, units)){
					return false;
				}
			}
				
			if(sCountry == "US"){
				if(StringFunctions.isBlank(sCity) || StringFunctions.isBlank(sStateProvince)){
					if(StringFunctions.isBlank(sPostalCode)){						
						if(!StringFunctions.isBlank(sStateProvince)){
							document.getElementById("ostreet").value = sAddress;
							document.getElementById("ocity").value = sCity;
							document.getElementById("ostate").value = sStateProvince;
							document.getElementById("opostalcode").value = sPostalCode;
							document.getElementById("ocountry").value = sCountry;
							document.getElementById("olat").value = "-100";
							document.getElementById("olng").value = "-200";
							document.getElementById("oradius").value = radius;
							document.getElementById("ounits").value = units;
							
							document.getElementById("frmSubmit").submit();						
						}
						else {						
							alert("Please enter a City/State or Postal Code!");
						}
						return false;
					}
				}
			}
			else {
				if(StringFunctions.isBlank(sCity)){
					if(StringFunctions.isBlank(sPostalCode)){			
						document.getElementById("ostreet").value = sAddress;
						document.getElementById("ocity").value = sCity;
						document.getElementById("ostate").value = sStateProvince;
						document.getElementById("opostalcode").value = sPostalCode;
						document.getElementById("ocountry").value = sCountry;
						document.getElementById("olat").value = "-100";
						document.getElementById("olng").value = "-200";
						document.getElementById("oradius").value = radius;
						document.getElementById("ounits").value = units;
						document.getElementById("frmSubmit").submit();
						return false;
					}
				}			
			}
			
			if(!StringFunctions.checkPositiveNumeric(radius)){
				alert("Please enter a valid radius!");
				return false;
			}
			
			
			var gExec = new MQExec(MQ_API_GEOCODE_SERVER, MQ_API_PATH, MQ_API_PORT, PROXY_SERVER, PROXY_PATH, PROXY_PORT);
			var mqAddress = new MQAddress();
			mqAddress.setStreet(sAddress);
			mqAddress.setCity(sCity);
			mqAddress.setState(sStateProvince);
			mqAddress.setPostalCode(sPostalCode);
			mqAddress.setCountry(sCountry);
			
			var mqLocationCollection = new MQLocationCollection();
			gExec.geocode(mqAddress, mqLocationCollection);
		
		
			if(mqLocationCollection.getSize() == 0){
				alert("Address couldn't be found!");
				return false;
			}
			else if(mqLocationCollection.getSize() > 1){
				showAmbigResults(mqLocationCollection, radius, units);
				return false;
			}
			else {
				var gAddress = mqLocationCollection.getAt(0);
				document.getElementById("ostreet").value = gAddress.getStreet();
				document.getElementById("ocity").value = gAddress.getCity();
				document.getElementById("ostate").value = gAddress.getState();
				document.getElementById("opostalcode").value = gAddress.getPostalCode();
				document.getElementById("ocountry").value = gAddress.getCountry();
				document.getElementById("olat").value = gAddress.getMQLatLng().getLatitude();
				document.getElementById("olng").value = gAddress.getMQLatLng().getLongitude();
				document.getElementById("oradius").value = radius;
				document.getElementById("ounits").value = units;
				
				document.getElementById("frmSubmit").submit();
				
			}
			return false;
			
		}
		
		function showAmbigResults(mqLocationCollection, radius, units){
			document.getElementById("divPrivacy").style.display = "none";
		
			var tbl = document.getElementById("tblEntry");
			for(var i = tbl.rows.length - 1; i >= 0; i--){
				tbl.deleteRow(i);
			}
			
			tbl.cellPadding = 0;
			
			var trItt = tbl.rows.length;
			for(var i = 0; i < mqLocationCollection.getSize(); i++){
				var gAddress = mqLocationCollection.getAt(i);
				var tr = tbl.insertRow(trItt++);
				var td = tr.insertCell(0);
				var spacer = false;
				
				if(!StringFunctions.isBlank(gAddress.getStreet())){
					td.appendChild(document.createTextNode(gAddress.getStreet()));
					td.appendChild(document.createElement("br"));
				}
				
				if(!StringFunctions.isBlank(gAddress.getCity())){
					td.appendChild(document.createTextNode(gAddress.getCity()));
					spacer = true;
				}
				
				if(!StringFunctions.isBlank(gAddress.getState())){
					if(spacer){
						td.appendChild(document.createTextNode(", "));				
					}
					td.appendChild(document.createTextNode(gAddress.getState()));
					spacer = true;
				}
				
				if(!StringFunctions.isBlank(gAddress.getPostalCode())){
					if(spacer){
						td.appendChild(document.createTextNode(" "));				
					}
					td.appendChild(document.createTextNode(gAddress.getPostalCode()));
					spacer = true;
				}
							
				if(!StringFunctions.isBlank(gAddress.getCountry())){
					if(spacer){
						td.appendChild(document.createTextNode(" "));				
					}
					td.appendChild(document.createTextNode(gAddress.getCountry()));
					spacer = true;
				}
				
				
				if(!StringFunctions.isBlank(gAddress.getCounty())){
					if(spacer){
					td.appendChild(document.createElement("br"));				
					}
					td.appendChild(document.createTextNode("(" + gAddress.getCounty() + ")"));
					spacer = true;
				}
				
				td = tr.insertCell(1);
				var frm = document.createElement("form");
				td.appendChild(frm);
				frm.action = "icing_locator.asp";
				frm.id = "amb" + i;
				frm.method = "get";
				frm.onsubmit = function(){
					for(var i = 0; i < mqLocationCollection.getSize(); i++){
						document.getElementById("inpt_amb" + i).disabled = true;
					}
					return true;
				};
				
				var inpt = DOMFunctions.createInputElement("hidden", "ostreet", gAddress.getStreet());
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "ocity", gAddress.getCity());
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "ostate", gAddress.getState());
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "opostalcode", gAddress.getPostalCode());
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "ocountry", gAddress.getCountry());
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "olat", gAddress.getMQLatLng().getLatitude());
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "olng", gAddress.getMQLatLng().getLongitude());
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "oradius", radius);
				frm.appendChild(inpt);
				var inpt = DOMFunctions.createInputElement("hidden", "ounits", units);
				frm.appendChild(inpt);

				var inpt = DOMFunctions.createInputElement("submit", "", "Select");
				frm.appendChild(inpt);
				inpt.id = "inpt_amb" + i;
				
			}
		
		}
		
		
		function changeCountry(sel){
			var td = document.getElementById("tdStateProvince");
			DOMFunctions.removeAllChildren(td);			
			td.appendChild(document.createTextNode("State:"));
		
			var country = sel.options[sel.selectedIndex].value;
			switch(country){
				case "CA":
					DOMFunctions.removeAllChildren(td);			
					td.appendChild(document.createTextNode("Province:"));				
				case "US":
					document.getElementById("trStateProvince").style.display = "";
					document.getElementById("trStateProvince2").style.display = "";
					document.getElementById("trName").style.display = "";
					document.getElementById("spnOr").style.display = "";
					break;
				default:
					document.getElementById("trStateProvince").style.display = "none";			
					document.getElementById("trStateProvince2").style.display = "none";
					document.getElementById("state").selectedIndex =0;
					document.getElementById("trName").style.display = "none";
					document.getElementById("spnOr").style.display = "none";
					break;
			}
			
			var stateSelect = document.getElementById("state");
			COUNTRIES.updateStateSelect(stateSelect, country);
		}

