/**	Seleziona il mese da usare in base alla lingua
*/
function getMonthLang(month)
{
	switch(lang) {
		case "de":
			var aMonth   = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
		break;
		case "en":
			var aMonth   = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
		break;
		case "it":
			var aMonth   = new Array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre");
		break;
	}
	return aMonth[month];
}

/**	Cancella tutte le option di una select box
*/
function emptyOptions(selectBoxId)
{
	for(var i = 0; i < $(selectBoxId).options.length; i++) {
		$(selectBoxId).options[i] = null;
	}
}

/**	Setta la data di partenza a partire da una data inglese
*/
function setArrival(enDate)
{
	if(enDate) {
		$('arrival_day').options[enDate.split('-')[2]*1-1].selected = true;

		$('arrival_month').options[enDate.split('-')[1]*1-1].selected = true;

		/* Anni */
		for(var i=0; i< $('arrival_year').length; i++) {
			if(enDate.split('-')[0] == $('arrival_year').options[i].value)
				$('arrival_year').options[i].selected = true;
			else
				$('arrival_year').options[i].selected = false;
		}

		updateDepartureDate(enDate);
	}
}

/** Una volta che viene settato l'arrivo, dev'essere settata
	in automatico anche la partenza, sulla base della data
	di arrivo + i giorni (id: days) */
function updateDepartureDate(enDate)
{
	$('departure_day').value = (enDate.split('-')[2]*1 + 1*$('days').value);
	$('departure_month').value = getMonthLang(enDate.split('-')[1]*1-1);
	$('departure_month_id').value = enDate.split('-')[1]*1;
	$('departure_year').value = enDate.split('-')[0];

	/* Se la data di partenza e' superiore al giorno massimo
		del mese, effettua uno shift al mese successivo */
	if($('departure_day').value > dayOfMonth((enDate.split('-')[1]*1-1))) {
		$('departure_day').value = $('departure_day').value - dayOfMonth((enDate.split('-')[1]*1-1));
		var newMonth = enDate.split('-')[1] == 12 ? 1 :  enDate.split('-')[1]*1+1;
		$('departure_month').value = getMonthLang(newMonth-1);
		$('enDate.split('-')[1]*1-1').value = newMonth;
		var newYear = enDate.split('-')[1] == 12 ? enDate.split('-')[0]*1+1 :  enDate.split('-')[0];
		$('departure_year').value = newYear;
	}
}

/**	Restituisce i giorni del mese
	di un particolare mese dell'anno
*/
function dayOfMonth(day)
{
	var aMonthDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	return aMonthDay[day];
}

/**	Verifica se la data passata come parametro e' inferiore
	della data di inizio dell'offerta
*/
function lessThenDateFrom(enDate)
{
	vdate = enDate.replace(/-/g, "");
	var from = $('arrival_from').value.replace(/-/g, "");
	return (vdate < from) ? true : false;
}


/**	Verifica se la data passata come parametro e' maggiore
	della data di fine dell'offerta
*/
function moreThenDateTo(enDate)
{
	vdate = enDate.replace(/-/g, "");
	var to = $('arrival_to').value.replace(/-/g, "");
	return (vdate > to) ? true : false;
}

/**	Verifica le date al cambiamento del giorno, del mese
	o dell'anno delle select box relative alla data di arrivo
*/
function checkArrivalDate(enDate)
{
	if(lessThenDateFrom(enDate)) {
		setArrival($('arrival_from').value);
	} else if(moreThenDateTo(enDate)) {
		setArrival($('arrival_to').value);
	} else {
		updateDepartureDate(enDate);
	}
}

/**	Somma il numero di persone per le quali
	si effettua la prenotazione
*/
function sumPeople()
{
	$('people_n').value = 	$('adults').value*1 +
							$('children0').value*1 +
							$('children4').value*1 +
							$('children8').value*1;
}

/**	Somma il numero di camere per le quali
	si effettua la prenotazione
*/
function sumRooms()
{
	$('beds_n').value = 	$('room_single_1').value*1
							+ $('room_single_2').value*2
							+ $('room_single_3').value*1
							+ $('room_single_4').value*2
							+ $('room_double_1').value*2
							+ $('room_double_2').value*3
							+ $('room_double_3').value*2
							+ $('room_double_4').value*3
							+ $('room_triple_1').value*3
							+ $('room_triple_2').value*4
							+ $('room_triple_3').value*3
							+ $('room_triple_4').value*4;

	$('cradles_n').value =	$('room_single_2').value*1
							+ $('room_single_4').value*1
							+ $('room_double_2').value*1
							+ $('room_double_4').value*1
							+ $('room_triple_2').value*1
							+ $('room_triple_4').value*1;

	$('rooms_n').value = 	$('room_single_1').value*1
							+ $('room_single_2').value*1
							+ $('room_single_3').value*1
							+ $('room_single_4').value*1
							+ $('room_double_1').value*1
							+ $('room_double_2').value*1
							+ $('room_double_3').value*1
							+ $('room_double_4').value*1
							+ $('room_triple_1').value*1
							+ $('room_triple_2').value*1
							+ $('room_triple_3').value*1
							+ $('room_triple_4').value*1;
}

window.addEvent('domready', function() {	// Window Domready

if(offer != 0) {
	setArrival($('arrival_from').value);
}

/**
	Cambia i campi delle offerte se viene cambiato il tipo di pacchetto
*/
if($('offers'))
$('offers').addEvent('change', function (e) {
	e = new Event(e).stop();
	var url = SITE_URL+"ajax/booking_load_offers.php";

	emptyOptions('offers_term');

	if($('offers').options[0].value == 0)
		$('offers').options[0] = null;

	new Ajax(url, {
		data: 'offer='+$('offers').value,
		method: 'post',
		evalResponse: true,
		onComplete: function (t) {
			if(r[0] == '1') {
				$('days').value = r[1];
				var j = 0; 
				for(var i = 2; i < r.length; i++) {
					$('offers_term').options[j++] = new Option(
						r[i].split('|')[1],
						r[i].split('|')[0]
					);
				}
				/* Aggiorna i limiti delle date */
				$('arrival_from').value = r[2].split('|')[2];
				$('arrival_to').value   = r[2].split('|')[3];
				setArrival(r[2].split('|')[2]);
			} else {
				$('offers_term').options[0] = new Option(r[1], '');
			}
		}

	}).request();

});

$('arrival_day').addEvent('change', function() {
	var enDate = $('arrival_year').value +'-'+ $('arrival_month').value +'-'+ $('arrival_day').value;
	checkArrivalDate(enDate);
});

$('arrival_month').addEvent('change', function() {
	var enDate = $('arrival_year').value +'-'+ $('arrival_month').value +'-'+ $('arrival_day').value;
	checkArrivalDate(enDate);
});

$('arrival_year').addEvent('change', function() {
	var enDate = $('arrival_year').value +'-'+ $('arrival_month').value +'-'+ $('arrival_day').value;
	checkArrivalDate(enDate);
});

$('offers_term').addEvent('change', function (e) {
	e = new Event(e).stop();

	var url = SITE_URL+"ajax/booking_load_dates.php";

	new Ajax(url, {
		data: 'offer_term='+$('offers_term').value,
		method: 'post',
		evalResponse: true,
		onComplete: function (t) {
			if(r[0] == '1') {
// 				alert(r[1]);
				/* Aggiorna i limiti delle date */
				$('arrival_from').value = r[1];
				$('arrival_to').value   = r[2];
				setArrival(r[1]);
			}
		}

	}).request();
});

$('adults').addEvent('change', function() { sumPeople(); } );
$('children0').addEvent('change', function() { sumPeople(); } );
$('children4').addEvent('change', function() { sumPeople(); } );
$('children8').addEvent('change', function() { sumPeople(); } );

$('room_single_1').addEvent('change', function() { sumRooms(); } );
$('room_single_2').addEvent('change', function() { sumRooms(); } );
$('room_single_3').addEvent('change', function() { sumRooms(); } );
$('room_single_4').addEvent('change', function() { sumRooms(); } );
$('room_triple_1').addEvent('change', function() { sumRooms(); } );
$('room_triple_2').addEvent('change', function() { sumRooms(); } );
$('room_triple_3').addEvent('change', function() { sumRooms(); } );
$('room_triple_4').addEvent('change', function() { sumRooms(); } );
$('room_double_1').addEvent('change', function() { sumRooms(); } );
$('room_double_2').addEvent('change', function() { sumRooms(); } );
$('room_double_3').addEvent('change', function() { sumRooms(); } );
$('room_double_4').addEvent('change', function() { sumRooms(); } );


$('sent').addEvent('click', function(e) {
	e = new Event(e).stop();

	var url = SITE_URL+"ajax/booking_save.php";
	var sentValue = $('sent').value;

	$('sent').disabled = true;
	$('sent').value = 'Loading...'

	new Ajax(url, {
		data: $('booking').toQueryString(),
		method: 'post',
		evalResponse: true,
		onComplete: function (t) {
			if(r[0] == '1') {
				$('booking').innerHTML = '';
				$('successfully').innerHTML = r[1];
			} else {
				$('bk_msg').style.backgroundColor = '#ec0101';
				$('bk_msg').style.display = 'block';
				$('bk_msg').innerHTML = r[1];
				(function(){$('bk_msg').style.display = 'none'}).delay(2000);
				$('sent').disabled = false;
				$('sent').value = sentValue;
			}
		}

	}).request();
});

});	// End Window Domready

