function refreshStoreCitySelections(form, stateID) {
	var city = form.elements["city"];
	var country=form.elements["country"];
	country=country.value;
	if (stateID != "") {
		var params = "state="+stateID+"&country="+country;
		//alert(params);
		new SmartAjax.Request("/storeLocatorFindCityForState.do", {
			onComplete: _getCitysForState_onComplete, 
			method: "get", 
			parameters: params
			}, form.elements["city"]
		);
	} else {
		_clearOptions(city);
		city.disabled = true;
	}
}
function _getCitysForState_onComplete(request, callBackParam) {
    var o = callBackParam;

	// remove original labels
	_clearOptions(o);
	
	var nodes = request.responseXML.getElementsByTagName("option");	// see cityOptions.jsp
	for (var i = 0; i < nodes.length; i++) {
		var label = request.responseXML.getElementsByTagName("label")[i].childNodes[0].nodeValue;
		var value = "";
		if (request.responseXML.getElementsByTagName("value")[i].childNodes.length > 0) {
			value = request.responseXML.getElementsByTagName("value")[i].childNodes[0].nodeValue;
		}
		o.options[i] = new Option(label, value, false, false);
	}
	
	o.disabled = false;	// re-enabling the field
}
function _clearOptions(select) {
	if (select != null && select != undefined) {
		// We must remove in inverse order because when an option is removed, 
		// all other options are shifted
		for (var i = select.options.length-1; i >= 0; i--) {
			select.remove(i);
		}
	}
}

function refreshStoreStatesSelections(form, country) {
	var state = form.elements["state"];
	var city=form.elements["city"];
	if (country != "") {
		var params = "country="+country;
		new SmartAjax.Request("/storeLocatorFindStateForCountry.do", {
			onComplete: _getStatesForCountry_onComplete, 
			method: "get", 
			parameters: params
			}, form.elements["state"]
		);
	} else {
	    _clearOptions(state);
		_clearOptions(city);
		state.disabled = true;
		city.disabled = true;
	}
}

function _getStatesForCountry_onComplete(request, callBackParam) {
    var o = callBackParam;

	// remove original labels
	_clearOptions(o);
	
	var nodes = request.responseXML.getElementsByTagName("option");	// see stateOptions.jsp
	for (var i = 0; i < nodes.length; i++) {
		var label = request.responseXML.getElementsByTagName("label")[i].childNodes[0].nodeValue;
		var value = "";
		if (request.responseXML.getElementsByTagName("value")[i].childNodes.length > 0) {
			value = request.responseXML.getElementsByTagName("value")[i].childNodes[0].nodeValue;
		}
		o.options[i] = new Option(label, value, false, false);
	}
	
	o.disabled = false;	// re-enabling the field
}
