// Planned Road
var plannedRoad = {
	maporamaDirectory: 'accor',
	maporamaSiteOrigin: 'ALL',
	maporamaSAConfig: '1',

    init:function(){
		//language
		this.lang = jQuery("html").attr("lang");
		//others
		this.urlMap ="/scripts-v66/booking/common/json/carto/map_"+plannedRoad.lang+".json";
		
		//request pour récupérer le contexte site
		ajaxRequest._executeByUrl(
			"/bean/getViewBeans.action?beans=CurrenciesViewBean|OriginViewBean",
			"validatorInvalidState", 
			"plannedRoad.success(errors, response)"
		);
	},
		
	success : function(errors, json){
		if(json.viewBeans && json.viewBeans.CurrenciesViewBean && json.viewBeans.OriginViewBean ){
			plannedRoad.maporamaDirectory = json.viewBeans.OriginViewBean.maporamaDirectory;
			plannedRoad.maporamaSiteOrigin = json.viewBeans.OriginViewBean.maporamaSiteOrigin;
		}
		// récriture des paramètres variables pour maporama (siteOrigine, SA_config, trigramme)
		jQuery("input[name='siteOrigine']").val(plannedRoad.maporamaSiteOrigin);
		switch (plannedRoad.maporamaSiteOrigin) {
			case 'SOF': plannedRoad.maporamaSAConfig = 'sofitel'; break;
			case 'SUI': plannedRoad.maporamaSAConfig = 'suitehotel'; break;
			case 'NOV': plannedRoad.maporamaSAConfig = 'novotel'; break;
			case 'MER': plannedRoad.maporamaSAConfig = 'mercure'; break;
			case 'ASE': plannedRoad.maporamaSAConfig = 'ase'; break;
			case 'IBI': plannedRoad.maporamaSAConfig = 'ibis'; break;
			case 'ETP': plannedRoad.maporamaSAConfig = 'etaphotel'; break;
			case 'FOR': plannedRoad.maporamaSAConfig = 'formule1'; break;
			case 'HOF': plannedRoad.maporamaSAConfig = 'hof'; break;
			default: plannedRoad.maporamaSAConfig = '1'; break; // fonctionnalité non dispo sur les sites PUL, BUS, TRV et MEE
		}
		jQuery("input[name='SA_config']").val(plannedRoad.maporamaSAConfig);
		jQuery("form[name='searchform']").attr("action", "http://accor.maporama.com/idl/"+ plannedRoad.maporamaDirectory +"/itinerary.aspx");

		// load countries
		plannedRoad.countryContent();
		plannedRoad.subForm();
	},
	
	countryContent : function() {
		jQuery.getJSON(plannedRoad.urlMap,
			function(data){
			var items = data.page.forms.common.countries.list.item;
			jQuery.each(items, function(i,item){// load countries
				if ( item.foriti != 0 ) {
					jQuery("select.tMapCountry").append('<option value="'+item.code+'">'+item.name+'</option>');
				}
			});

			// specific for hotelf1 : pre-select France
			if (plannedRoad.maporamaSiteOrigin == 'HOF'){
				jQuery("select.tMapCountry option[value='']").attr("selected", "");
				jQuery("select.tMapCountry option[value=FR]").attr("selected", "selected");
			}
		});
	},
	
	subForm : function() {
		jQuery(".tSubmit").click(function(){
			/** City and ZIP code check */
			jQuery('.errorMessage').find('p').remove();
			var isError = false;
			jQuery("form[name='searchform'].validatorInvalidState").removeClass('validatorInvalidState');
			var cityStart = jQuery("form[name='searchform'] input[name='ITI_START_city']");
			var zipStart = jQuery("form[name='searchform'] input[name='ITI_START_zip']");
			var countryStart = jQuery("form[name='searchform'] select[name='ITI_START_country'] option:selected");
			var cityEnd = jQuery("form[name='searchform'] input[name='ITI_END_city']");
			var zipEnd = jQuery("form[name='searchform'] input[name='ITI_END_zip']");
			var countryEnd = jQuery("form[name='searchform'] select[name='ITI_END_country'] option:selected");
			if ((cityStart.val() == '' && zipStart.val() == '')) {
				cityStart.parent().addClass('validatorInvalidState');
				zipStart.parent().addClass('validatorInvalidState');
				isError = true;
				jQuery('.errorMessage').append('<p>'+i18n.maporama.errorCity+'</p>');
			} else {
				cityStart.parent().removeClass('validatorInvalidState');
				zipStart.parent().removeClass('validatorInvalidState');
			}
			if(countryStart.val() == ''){
				countryStart.parent().parent().addClass('validatorInvalidState');
				isError = true;
				jQuery('.errorMessage').append('<p>'+i18n.maporama.errorCountry+'</p>');
			} else {
				countryStart.parent().parent().removeClass('validatorInvalidState');
			}
			if ((cityEnd.val() == '' && zipEnd.val() == '')) {
				cityEnd.parent().addClass('validatorInvalidState');
				zipEnd.parent().addClass('validatorInvalidState');
				isError = true;
				jQuery('.errorMessage').append('<p>'+i18n.maporama.errorCity+'</p>');
			} else {
				cityEnd.parent().removeClass('validatorInvalidState');
				zipEnd.parent().removeClass('validatorInvalidState');
			}
			if(countryEnd.val() == ''){
				countryEnd.parent().parent().addClass('validatorInvalidState');
				isError = true;
				jQuery('.errorMessage').append('<p>'+i18n.maporama.errorCountry+'</p>');
			} else {
				countryEnd.parent().parent().removeClass('validatorInvalidState');
			}
			if (isError) {
				jQuery('.errorMessage').show();			
			} else {
				jQuery("#searchform").submit();
			}
			return false;
		});
	}
	
}

jQuery(document).ready(function(){
	utils.rewriteTitle();
    jQuery.noConflict();
	utils.tooltips.init();
	plannedRoad.init();
});
