	jQuery.noConflict();
     // callback functions for successful zipservice queries.
	function injectGeoCode(data) {
		if (data.Error != undefined) {
			//alert(data.Error);
		} else {
			geocode = data['covered_territory'];
			jQuery("#Geographypi_Geography").val(geocode);
		}
	}

	function injectCityState(data) {
		if (data.Error != undefined) {
			//alert(data.Error);
		} else {
			postalcode = data.postalcode;
			cityname = data.CityName;
			stateabbr = data.StateAbbr;
			jQuery("#Cityhpi_Cityh").val(cityname);
			jQuery("#Statehpi_Stateh").val(stateabbr);
		}
	}

	function runTerritoryInfoByZip(postalcode) {
		jQuery.getJSON("http://www.recurve.com/services/zipservice.php?callback=?", { method: "TerritoryInfoByZip", postalcode: postalcode, returntype: "jsonp"}, injectGeoCode);
	}

	function US_LookupByZip(postalcode) {
		jQuery.getJSON("http://www.recurve.com/services/zipservice.php?callback=?", { method: "US_LookupByZip", postalcode: postalcode, returntype: "jsonp"}, injectCityState);
	}

	jQuery(document).ready(
		function () {
			jQuery("#Zippi_Zip").change(
				function() {
					var bSuccess = true;
					try {
						postalcode = jQuery("#Zippi_Zip").val();
					} catch (err) {
						// Error, don't run injection.
						bSuccess = false;
					}
					if (bSuccess) {
						runTerritoryInfoByZip(postalcode);
						US_LookupByZip(postalcode);
					}
				}
			);
		}
	);
