var loadingMessage	= '<br /><br /><img src="/booking/images/ajax-loader.gif" border="0"><br /><br />Elaborazione in corso...</span>';
var alertErrNomePax_js 		= "Inserire il nome e il cognome di tutti i passeggeri.";
var alertErrChIfPax_js		= "Per tutti i Child e gli Infant e' necessario inserire la data di nascita.";
alertBirthPaxDate_1_js	= "La data di nascita del ";
alertBirthPaxDate_2_js	= " passeggero deve essere valida e nel formato gg/mm/aaaa";
alertBirthPaxMonth_1_js	= "Il mese della data di nascita del ";
alertBirthPaxMonth_2_js	= " passeggero deve essere un numero compreso tra 1 e 12";
alertBirthPaxDay_1_js	= "Il giorno della data di nascita del ";
alertBirthPaxDay_2_js	= " passeggero deve essere un numero compreso tra 1 e 31";
alertCheckMonth31_1_js	= "Il mese ";
alertCheckMonth31_2_js	= " della data di nascita del ";
alertCheckMonth31_3_js	= " passeggero non ha 31 giorni!";	
alertCheckFeb_1_js		= "Febbraio ";
alertCheckFeb_2_js		= " non ha ";
alertCheckFeb_3_js		= " giorni!";


function doAccetto(bChecked) {
	var objChkAut = window.opener.document.getElementById('aut_trattamento');
	objChkAut.checked = bChecked;
	objChkAut.onclick();
}

function doLogin() {
	var s1 = opt.core.trim(document.frmLogin.username.value);
	var s2 = opt.core.trim(document.frmLogin.password.value);
	if (s1 == '' || s2 == '') {
		alert('Inserire username e password per proseguire!')
		document.frmLogin.username.focus();
		return false;
	}
	document.frmLogin.username.value = s1;
	document.frmLogin.password.value = s2;
	submitAjaxForm('frmLogin', submitAjaxForm_login, 'boxForSubmitAjax','Verifica credenziali in corso...');
}

function doRegistrazione() {
	var s1 = opt.core.trim(document.frmUsrPrivato.USR_NOME.value);
	var s2 = opt.core.trim(document.frmUsrPrivato.USR_COGNOME.value);
	var s3 = opt.core.trim(document.frmUsrPrivato.USR_EMAIL.value);
	
	if (s1 == '' || s2 == '' || s3 == '') {
		alert('Inserire nome, cognome ed email per proseguire!')
		document.frmUsrPrivato.USR_NOME.focus();
		return false;
	}
	if (! opt.validator.isEmail(s3)) {
		alert('Indirizzo email non valido');
		document.frmUsrPrivato.USR_EMAIL.focus();
		return false;
	}
	
	document.frmUsrPrivato.USR_NOME.value = s1;
	document.frmUsrPrivato.USR_COGNOME.value = s2;
	document.frmUsrPrivato.USR_EMAIL.value = s3;			
	submitAjaxForm('frmUsrPrivato', submitAjaxForm_login, 'boxForSubmitAjax2','Registrazione nuovo utente in corso...');
}

function doInvioCred() {
	var s1 = opt.core.trim(document.frmCredenziali.email.value);
	if (s1 == '' ) {
		alert('Inserire indirizzo email per proseguire!')
		document.frmCredenziali.email.focus();
		return false;
	} else {
		if ( ! isValidEmail(s1) ) {
			alert('Indirizzo email non corretto, verificare!')
			document.frmCredenziali.email.focus();
			return false;
		}	
	}
	document.frmCredenziali.email.value = s1;
	submitAjaxForm('frmCredenziali', submitAjaxForm_credenziali, 'boxForSubmitAjaxCred','<span class="">Verifica email in corso...</span><br /><br />');
}

function isValidEmail(sEmail) {
	var re = new RegExp(/^([a-zA-Z0-9]{3,})(((\.|\-|\_)[a-zA-Z0-9]{2,})+)?@([a-z]{3,})(\-[a-z0-9]{3,})?(\.[a-z]{2,})+$/);
	return re.test(sEmail);
}	

function checkpasseggeri(action) {
	var iCounter		= 0;
	var dayFieldValue	= "";
	var monthFieldValue	= "";
	var yearFieldValue	= "";
	var checkDateResult	= "";
	var codfisc 		= "";
	var prefixField 	= "";
	var re = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
	
	var numberOfPax = document.getElementById('PAXNUMBER').value;
	
	if (typeof(action) != 'undefined')
		prefixField = "mod_";		
	
	for (iCounter = 1; iCounter <= numberOfPax; iCounter++) {
		FirstName		= document.getElementById(prefixField + "passengers_" + iCounter + "__FIRSTNAME").value;				
		LastName		= document.getElementById(prefixField + "passengers_" + iCounter + "__LASTNAME").value;			
		objTitle		= document.getElementById(prefixField + "passengers_" + iCounter + "__TITLE");
		dayFieldValue 	= document.getElementById(prefixField + "passengers_" + iCounter + "__BIRTHDATE_DD").value;
		monthFieldValue	= document.getElementById(prefixField + "passengers_" + iCounter + "__BIRTHDATE_MM").value;
		yearFieldValue	= document.getElementById(prefixField + "passengers_" + iCounter + "__BIRTHDATE_YYYY").value;
		
		if (objTitle.type == 'select-one') {
			titleName		= objTitle.options[objTitle.selectedIndex].value;	
		} else {
			titleName		= objTitle.value;	
		}
		if ((FirstName == '' || LastName == '')) {
			return alertErrNomePax_js;
		}
		if (((titleName == 'CHD') || (titleName == 'INF')) && ((dayFieldValue == '') && (monthFieldValue == '') && (yearFieldValue == ''))) {
			return alertErrChIfPax_js;
		}
		
		if ((dayFieldValue != '') || (monthFieldValue != '') || (yearFieldValue != '')) {
			checkDateResult	= checkDate(monthFieldValue + "/" + dayFieldValue + "/" + yearFieldValue, iCounter);
			if (checkDateResult != '') {
				return checkDateResult;
			}
		}		
	}

	return "ok";
} 

function checkDate(dateStr, IdPax) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	var lstErrori = "";

	if (matchArray == null) {
		lstErrori = lstErrori + "\r" + alertBirthPaxDate_1_js +IdPax +alertBirthPaxDate_2_js;
		return lstErrori;
	}
	
	month 	= matchArray[1]; // p@rse date into variables
	day 	= matchArray[3];
	year 	= matchArray[5];
	
	if (month < 1 || month > 12) { // check month range
		lstErrori = lstErrori + "\r" + alertBirthPaxMonth_1_js + IdPax + alertBirthPaxMonth_2_js;
		return lstErrori;
	}
	
	if (day < 1 || day > 31) {
		lstErrori = lstErrori + "\r" + alertBirthPaxDay_1_js + IdPax + alertBirthPaxDay_2_js;
		return lstErrori;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		lstErrori = lstErrori + "\r" + alertCheckMonth31_1_js + month + alertCheckMonth31_2_js + IdPax + alertCheckMonth31_3_js;
		return lstErrori;
	}
	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			lstErrori = lstErrori + "\r" + alertCheckFeb_1_js + year + alertCheckFeb_2_js + day + alertCheckFeb_3_js;
			return lstErrori;
		}
	}
	return lstErrori; // date is valid
}	
function makePrev(){
	var result = checkpasseggeri();
	if (result=='ok') {
		document.getElementById('btnPreventivo').style.display = 'none';
		document.cpp.PRODUCTS_1_1_SERVICEID.value=opt.form.getCheckboxValues('ALT');
		var objForm = document.getElementById('cpp'); 
		objForm.action = "/booking/preventivo.cfm?date=" + new Date();
		submitAjaxForm('cpp', submitAjaxForm_RisultatoPasseggeri,'Preventivo', '<center>Creazione preventivo in corso...</center>');
	} else {
		alert(result);
	}		
}
function submitAjaxForm_RisultatoPasseggeri(response){			
	var stepPrev = dijit.byId("Preventivo");
	stepPrev.setContent(response);
	document.body.style.cursor = 'default';
}
function submitAjaxForm_credenziali(response) {
	var MainPane = dijit.byId("boxAgeContainer");
	MainPane.setContent(response);
	document.body.style.cursor = 'default';			
}	
function submitAjaxForm(theForm, handlerFunction, theTarget, theMessage) {
	if (typeof theMessage == 'undefined')
		theMessage = loadingMessage;
	
	dijit.byId(theTarget).setContent(theMessage);
	
	var kw = {		
			form: theForm,
	        load: handlerFunction,
	        error: function(data){
	        		console.error(data);
	                dijit.byId(theTarget).setContent('<br /><span class="dijitContentPaneError">Si &egrave; verificato un errore</span>');
	        }
	        
	};
	dojo.xhrPost(kw);
}
function resetPreventivo(){
	var objBtn = document.getElementById('btnPreventivo');
	if (objBtn)
		objBtn.style.display = '';
	dijit.byId('Preventivo').setContent('');
}
function submitAjaxForm_login(response) {
	var divResult= dijit.byId("Login");				
	divResult.setContent(response);		
	document.body.style.cursor = 'default';
}	

