function getCityState(zip) {
	var xmlHttp;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				return false;
			}
		}
	}
	
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			var data = xmlHttp.responseText;
			var cityStateArr = data.split('|');
			var cities = cityStateArr[0].split(',');
			var states = cityStateArr[1].split(',');
			document.all.citySpan.innerHTML = '<input type="text" id="startCity" name="startCity" />';
			document.all.stateSpan.innerHTML = '<input type="text" id="startState" name="startState" />';
			
			if (cities.length == 1) {
				document.all.startCity.value = cities[0];
			} else if (cities.length > 1) {
				document.all.citySpan.innerHTML = '<select id="startCity" name="startCity" ></select>';
				for (i = 0; i < cities.length; i++) {
					document.all.startCity.options[i] = new Option(cities[i], cities[i]);
				}
			}
			
			if (states.length == 1) {
				document.all.startState.value = states[0];
			} else if (cities.length > 1) {
				document.all.stateSpan.innerHTML = '<select id="startState" name="startState"></select>';
				for (i = 0; i < states.length; i++) {
					document.all.startState.options[i] = new Option(states[i], states[i]);
				}
			}
		}
	}
	
	xmlHttp.open("GET", "/cityState.jsrv?zip=" + zip, true);
	xmlHttp.send(null);
}