var advancedBookingEngine = {
	_init : function(){
		advancedBookingEngine.rewriteCountryCity("booking-countries", "booking-cities");
		Event.observe("booking-countries", "change", function(event){
			advancedBookingEngine.rewriteCountryCity("booking-countries", "booking-cities");
			advancedBookingEngine.updateField("hotel_ou_ville", "booking-countries", "booking-cities");
		});
		
		Event.observe("booking-cities", "change", function(event){
			advancedBookingEngine.updateField("hotel_ou_ville", "booking-countries", "booking-cities");
		});
		
		if($("localHotelsHelper")){
			Event.observe("localHotelsHelper", "click", function(event){
					$('localHotelsHelper').addClassName('hidden');
					$('booking-countries').removeClassName('hidden');
					$('booking-cities').removeClassName('hidden');
			});
		}
	},
	
	rewriteCountryCity: function(countrySelectId, citySelectId){
    	var countrySelect = $(countrySelectId);
    	var citySelect = $(citySelectId);	
    	var index=1;
    	if(countrySelect.value){    		
				citySelect.options.length=0;
				citySelect.innerHTML="";    		
				citySelect.options[0]=new Option(selectCity, "");
				if(countryCity[countrySelect.value].cities.length>0)
		    	for(var j=0;j<countryCity[countrySelect.value].cities.length; j++){    		
		    		var city = countryCity[countrySelect.value].cities[j];
		    		citySelect.options[index] = new Option(city,city);
		    		index++;
		    	}
		    else {
		    	citySelect.options[0]=new Option(selectNo, "");	
		    }
    	} else {
				citySelect.options.length=0;
				citySelect.innerHTML="";      		
				citySelect.options[0]=new Option(selectCity, "");
    		countrySelect.options[0]=new Option(selectCountry,"");    	
	    	for(var country in countryCity){    		
	    		countrySelect.options[index] = new Option(country,country);
	    		index++;
	    	}
	    }
    },
    
    updateField : function(fieldToUpdate, countriesSelect, citiesSelect){
    	if($(fieldToUpdate) && $(countriesSelect) && $(citiesSelect)){
    		$(fieldToUpdate).value = '';
    		if($(citiesSelect).value != '') $(fieldToUpdate).value = $(citiesSelect).value + ', ';
    		if($(countriesSelect).value != ''){
    			$(fieldToUpdate).value += $(countriesSelect).value;
    		}
    		else{$(fieldToUpdate).value = $(fieldToUpdate).defaultValue;}
    		if($('type_geo')) $('type_geo').value = '';
    		if($('code_geo')) $('code_geo').value = '';
    	}
    }
}