function getStatesByCountry(selectedItem, statesSelectElement, countrySelectElement)
{
	if (countrySelectElement == undefined)
		countrySelectElement = document.getElementById('id_country');
	
	var oCallback = { 
						    success: function(o) { 
						    	var results = YAHOO.lang.JSON.parse(o.responseText);
						    	
						    	if (results['success'] == true)
					    			populateStatesSelect(results['aStates'], statesSelectElement, selectedItem);
					    		else
					    			showMessage(results['message']);	
						    	
						    }, 
						    failure: function(o) { 
						        var results = YAHOO.lang.JSON.parse(o.responseText); 
						        showMessage(results['message']);
						    }, 
						    scope: this, 
						    argument: this.login_name 
						}
	
	var dataSourceUrl = document.getElementById('form1').action + 'client/get-states-by-country/';
	
	var countries = countrySelectElement;
	var id_country = countries.options[countries.selectedIndex].value;
	
	var postData = 'id_country=' + id_country;
	var request = YAHOO.util.Connect.asyncRequest('POST', dataSourceUrl, oCallback, postData);
}

function populateStatesSelect(aStates, selectElement, selectedItem)
{
	if (selectElement == undefined)
		selectElement = document.getElementById('id_state'); 
	
	selectElement.options.length = 0;
	for (id in aStates)
	{
		var optn = document.createElement("OPTION");
		optn.text = aStates[id];
		optn.value = id;
		if (selectedItem != null && selectedItem == id)
			optn.selected = true;
		selectElement.options.add(optn);
	}
}

