// jQuery script to handle dynamic location dropdowns

jQuery(document).ready(function($){

	// when user changes the country dropdown, populate the state dropdown accordingly
	// also, disable city dropdown
	var bindChangeCountry = function() {
		$('#country_iso').change(function() {
			var country_iso = $(this).val(); // get selected country ISO
			$('#state_dropdown').load('/ajax/printStateDropdown.php?country_iso=' + country_iso, function() {
				if (country_iso == '') {
					$('#state_id').attr('disabled', true); // if no country is passed in, disable state dropdown
				}
				$('#city_id').attr('disabled', true);
				$('#addCity').hide();
				$('#city_id').val('');
				bindChangeState();
			});
		});
	};

	// when user changes the state dropdown, populate the city dropdown accordingly
	var bindChangeState = function() {
		$('#state_id').change(function() {
			var country_iso 	= $('#country_iso').val(); 		// get selected country ISO
			var state_id 		= $(this).val(); 				// get selected state_id
			var allow_add_city	= $('#allow_add_city').val(); 	// whether or not to show 'add city' link
			if (!allow_add_city) {
				allow_add_city = 'false'; // do not allow adding new city by default
			}
			$('#city_dropdown').load('/ajax/printCityDropdown.php?country_iso=' + country_iso + '&state_id=' + state_id + '&allow_add_city=' + allow_add_city, function() {
				bindShowAddCityForm();
				$('#addCity').show(); // show the 'add city' link
			});
		});
	};
	
	var bindShowAddCityForm = function() {
		$('#addCity').bind (
			'click',
			function(){
			
				$('#addCityForm').slideToggle();
				$('#new_city_name').focus();
				
				return false; // prevent loading of page after clicking anchor

			}
		);
	};
	
	var bindAddCitySubmit = function() {
		$('#addCitySubmit').bind (
			'click',
			function(){
			
				var country_iso 	= $('#country_iso').val(); // get selected country ISO
				var state_id 		= $('#state_id').val(); // get selected state_id
				var new_city_name 	= $('#new_city_name').val(); // get new city name

				new_city_name		= encodeURIComponent(new_city_name); // URI encode to handle spaces
				
				$('#city_dropdown').load('/ajax/insertCity.php?country_iso=' + country_iso + '&state_id=' + state_id + '&city_name=' + new_city_name, function() {
					bindShowAddCityForm();
					$('#new_city_name').val('');
					$('#addCityForm').hide();
				});
				return false; // prevent loading of page after clicking anchor

			}
		);
	};
	
	bindChangeCountry();
	bindChangeState();
	bindAddCitySubmit();
	bindShowAddCityForm();
	
});