function shutDownSelectField(fieldID) {
   selectField = new getObj(fieldID);
  
   selectField.obj.length = 1;
   selectField.obj[0].text = '------';
   selectField.obj[0].value = -1;
   selectField.obj.disabled = true;
}

function countryFilterChanged() {
   httpObject = getHTTPObject();
   
   countrySelect = new getObj('country_filter');
   
   if(countrySelect.obj[countrySelect.obj.selectedIndex].value != -1) {
	  if (httpObject != null) {
		 httpObject.open("GET", "http://www.wifihotspotscout.com/location_filter_data_fetcher.php?action=get_states&filter_country="+countrySelect.obj[countrySelect.obj.selectedIndex].value, true);
		 httpObject.send(null);
		 httpObject.onreadystatechange = populateStates;
	  }
   } else {
      //user selected ---- 
      shutDownSelectField('state_filter');
      
      submitButton = new getObj('submit_filter');
      submitButton.obj.disabled = true;
   }
   
   //now we need to invalidate the selects that depend on the country select
   shutDownSelectField('city_filter');
}

function stateFilterChanged() {
   httpObject = getHTTPObject();
   
   countrySelect = new getObj('country_filter');
   stateSelect = new getObj('state_filter');
   
   if(stateSelect.obj[stateSelect.obj.selectedIndex].value != -1) {
	  if (httpObject != null) {
		 httpObject.open("GET", "http://www.wifihotspotscout.com/location_filter_data_fetcher.php?action=get_cities&filter_country="+countrySelect.obj[countrySelect.obj.selectedIndex].value+"&filter_state="+stateSelect.obj[stateSelect.obj.selectedIndex].value, true);
		 httpObject.send(null);
		 httpObject.onreadystatechange = populateCities;
	  }
   } else {
      //user selected ---- 
      shutDownSelectField('city_filter');
   }
}

function populateStates() {
   if(httpObject.readyState == 4) {
      var response = httpObject.responseText;
      
      var responsArray = response.split("##|##");
      
      stateSelect = new getObj('state_filter');

	  stateSelect.obj.length = 1;
	  stateSelect.obj.length = responsArray.length;
	 
	  for (i=1; i < responsArray.length; i++)
	  {
		stateSelect.obj[i].text = responsArray[i];
		stateSelect.obj[i].value = responsArray[i];
	  }
	  
	  //enable states
	  stateSelect.obj.disabled = false;
	  
	  //enable submit button
	  submitButton = new getObj('submit_filter');
      submitButton.obj.disabled = false;
   }
}

function populateCities() {
   if(httpObject.readyState == 4) {
      var response = httpObject.responseText;
      
      var responsArray = response.split("##|##");
      
      citySelect = new getObj('city_filter');
      
      citySelect.disabled = false;
      
	  citySelect.obj.length = 1;
	  citySelect.obj.length = responsArray.length;
	  
	  for (i=1; i < responsArray.length; i++)
	  {
		citySelect.obj[i].text = responsArray[i];
		citySelect.obj[i].value = responsArray[i];
	  }
	  
	  //enable cities
	  citySelect.obj.disabled = false;
   }
}