
function showCities(city,fnct){
	var state = getSelectValue(document.getElementById('loc_state'));
	var url = '/review/ajax_getCityOptions.jsp?state='+state;
	loadUpdate(url, 
		function(req){ 
			var resp;
			try{resp = eval('('+ req.responseText+')')}catch(err){}
			populateSelect(
					'Select City',
					document.getElementById('loc_state'),
					document.getElementById('loc_city'),
					getCityOption,
					resp,
					city
					);
			if(fnct)fnct();
		}
	)
}

function showNeighborhoods(neighborhood,fnct, dontToggleZipNeighborhoodSelect){
	var state = getSelectValue(document.getElementById('loc_state'));
	var city = getSelectValue(document.getElementById('loc_city'));	
	var url = '/review/ajax_getNeighborhoodOptions.jsp?state='+state+'&city='+city;
	loadUpdate(url, 
		function(req){ 
			var resp;
			try{resp = eval('('+ req.responseText+')')}catch(err){}
			if(resp){
				resp.unshift(
					{
						neighborhood_id:'',
						neighborhood:'any'
					}
				);
			}
			populateSelect(
					'Choose Neighborhood',
					document.getElementById('loc_city'),
					document.getElementById('loc_neighborhood'),
					getNeighborhoodOption,
					resp,
					neighborhood
					);
			if(resp && resp.length && resp.length > 0 && !dontToggleZipNeighborhoodSelect){
				document.getElementById("loc_neighborhood").disabled = false;
				document.getElementById("loc_zip").disabled = true;				
				document.getElementById("neighborhood").disabled = false;
				document.getElementById("neighborhood").checked = true;
			}
			else{
				document.getElementById("loc_zip").disabled = false;
				document.getElementById("neighborhood").disabled = true;
				document.getElementById("zip").checked = true;				
			}
			if(fnct)fnct();
		}
	)
}

function loadUpdate(url, fnct){
	AjaxRequest.get(
			{
				'url': url,
				'onSuccess':fnct
			}
		);
}


function populateSelect(defaultText,selectTrigger, mySelect, getOptionFunct, respObj,selected){
	//mySelect.disabled = true;
	mySelect.innerHTML = "";	
	mySelect.options[0] = new Option(defaultText,'');

	if(selectTrigger.selectedIndex == 0) return;
	if(!respObj) return;
	for(i = 0; i < respObj.length; i++){

		mySelect.options[i+1] = getOptionFunct(respObj[i]);
		if(selected && mySelect.options[i+1].value == selected)mySelect.options[i+1].selected = true;
	}
	//mySelect.disabled = false;
}

function getCityOption(obj){
	var opt = new Option( obj.city, obj.city);
	opt.id = obj.city;
	return opt;
}

function getNeighborhoodOption(obj){
	var opt = new Option( obj.neighborhood, obj.neighborhood_id);
	opt.id = obj.neighborhood;
	return opt;
}

function getSelectValue( selectNode )
{
	return selectNode.options[selectNode.selectedIndex].value
}

function onLoad() 
{
		if(document.getElementById('loc_state') != ''){
			showCities();
		}
}

function validateSearch(form){
	var rgx = new RegExp('^[0-9]{5} *$');
	if(
		(form.city.selectedIndex == 0 || form.state.selectedIndex == 0) 
		&& 
		(document.getElementById('loc_zip').value.match(rgx) == null || document.getElementById('loc_zip').disabled == true)
	){	
		alert("Please provide city and state or zip.");
		return false;
	}
	else return true;
}
