// contiene la gestione dei moduli del percorso di prenotazione


// percorso di prenotazione: Fase 1 - controlla se l'utente ha selezionato almeno una camera
function reservation__step_1() {
	var return_val = false;
	for (i=0; i<getE('reserv_form1').length; i++) {
		if (getE('reserv_form1').elements[i].type.toLowerCase()=='checkbox' && getE('reserv_form1').elements[i].id.toLowerCase().indexOf('prenota_checkbox_')>=0 && getE('reserv_form1').elements[i].checked) {
			return_val = true;
		}
	}
	
	if (!return_val) {
		alert(transl_00000);
	}
	
	return return_val;
}

/*
	percorso di prenotazione: Fase 2 - visualizza o nasconde il box per l'impostazione dei letti
	aggiuntivi, in base al numero di persone da ospitare. "rooms_list" e' una strigna contenente
	la lista di ID delle stanze.
	
	"presel_array" e' un array contenente la lista di associazioni "id_room => letti" che rappresenta
	i valori preselezionati per ogni stanza. Se non ci sono valori preselezionati, passare
	l'array vuoto.
*/
function reservation__step2__display_add_beds_box(max_beds, presel_array) {
	if (isObject(getE('add_beds_box'))) {
		if (parseInt(getE('total_people').value)>max_beds) {
			// aggiorna il contatore di letti mancanti
			var needed_beds = parseInt(getE('total_people').value) - max_beds;
			getE('add_beds__needed_label').innerHTML = needed_beds;
			
			// aggiorna i menu' SELECT per l'impostazione dei letti
			var rooms_arr = getE('selected_rooms').value.split(",");
			for (i=0; i<rooms_arr.length; i++) {
				if (isObject(getE('add_beds__room_'+rooms_arr[i]))) {		// perche' questo campo SELECT potrebbe non esistere per tutte le stanze (non esiste se la stanza non ha disponibilita' di letti aggiuntivi)
					getE('add_beds__room_'+rooms_arr[i]).length = 0;
					
					var this_max_beds = needed_beds;
					var check_beds_room = getE('check_beds_room_'+rooms_arr[i]).value.split('-');
					if (check_beds_room.length==2) {
						if (parseInt(check_beds_room[1])<this_max_beds)		{	this_max_beds = check_beds_room[1];	}
					}
					
					for (j=0; j<=this_max_beds; j++) {
						getE('add_beds__room_'+rooms_arr[i]).options[getE('add_beds__room_'+rooms_arr[i]).length] = new Option(j, j);
					}
					
					// elemento preselezionato
					if (presel_array[rooms_arr[i]]!=null && presel_array[rooms_arr[i]]>0) {
						getE('add_beds__room_'+rooms_arr[i]).selectedIndex = presel_array[rooms_arr[i]];
					}
				}
			}
			
			getE('add_beds_box').style.display = '';
		}
		else {
			getE('add_beds_box').style.display = 'none';
		}
	}
}

// percorso di prenotazione: Fase 2 - gestisce il submit
function reservation__step_2__submit() {
	var return_val = true;
	var total_people = parseInt(getE('total_people').value);
	
	if (total_people<1 || total_people>parseInt(getE('total_beds'))) {
		return_val = false;
		alert(transl_00005a);
	}
	else {		// controlla se sono stati impostati i letti aggiuntivi eventualmente necessari
		if (total_people>parseInt(getE('ordinary_beds').value)) {
			var selected_add_beds = 0;
			var needed_add_beds = total_people - parseInt(getE('ordinary_beds').value);
			
			// scorre un array contenente gli ID delle stanze selezionate per recuperare il numero di letti aggiuntivi impostati
			var rooms_arr = getE('selected_rooms').value.split(",");
			for (i=0; i<rooms_arr.length; i++) {
				if (isObject(getE('add_beds__room_'+rooms_arr[i]))) {		// perche' questo campo SELECT potrebbe non esistere per tutte le stanze (non esiste se la stanza non ha disponibilita' di letti aggiuntivi)
					selected_add_beds = selected_add_beds + parseInt(getE('add_beds__room_'+rooms_arr[i]).value);
				}
			}
			
			if (selected_add_beds!=needed_add_beds) {
				var alert_msg = transl_00005b.replace('[replace_ordinary_beds]', getE('ordinary_beds').value);
				alert_msg = alert_msg.replace('[replace_people_num]', total_people);
				alert_msg = alert_msg.replace('[replace_needed_add_beds]', needed_add_beds);
				return_val = false;
				alert(alert_msg);
			}
		}
	}
	
	return return_val;
}

// percorso di prenotazione: Fase 3 - mostra o nasconde i blocchi con i dettagli sulla tipologia di pagamento selezionata
function reservation__step_3__payment_info() {
	if (getE('payment_cc').checked) {
		getE('payment_bn__div').style.display = 'none';
		getE('payment_cc__div').style.display = '';
	}
	else if (getE('payment_bn').checked) {
		getE('payment_cc__div').style.display = 'none';
		getE('payment_bn__div').style.display = '';
	}
	getE('logocomunetop').style.position = 'relative';
	getE('logocomunetop').style.position = 'absolute';
}

// percorso di prenotazione: Fase 3 - gestisce il submit
function reservation__step_3__submit(is_full_form, pay_only_with_credit_card) {
	if (!pay_only_with_credit_card && is_full_form && (isObject(getE('payment_cc')) && !getE('payment_cc').checked) && (isObject(getE('payment_bn')) && !getE('payment_bn').checked) && parseInt(getE('conferma').value)==1) {
		alert(transl_00006);
		return;
	}
	
	if (!getE('terms_check').checked) {
		alert(transl_00012);
		return;
	}
	
	if (isObject(getE('login_email__res'))) {
		if (getE('login_email__res').value=="" || getE('login_pwd__res').value=="") {
			alert(transl_00007);
			return;
		}
	}
	
	getE('reserv_form').submit();
}