// Parametri
var curLang = "it";
var curLanguage = "ita";

// DOM ready
$(document).ready(function(){
	
	detectLang();
	
	//if (curLang != "it")
	//	alert(curLang + " - " + curLanguage);
		
    // Impostazione lingua per datepicker
    //$.datepicker.setDefaults($.datepicker.regional[curLang]);
    
    // Init datepickers
    var dpf = $('#dpFrom');
    var dpt = $('#dpTo');
	var currentTime = new Date();
	var tomorrow = new Date();
	var afterTomorrow = new Date();
	
	tomorrow.setDate(currentTime.getDate() + 1);
	afterTomorrow.setDate(afterTomorrow.getDate() + 2);
    
	dpf.datepicker({
        onSelect: function (dateText, inst) {
	        $('#errMsg').fadeOut('fast');
	        	
        	// Imposta lower bound data arrivo 
            var lowerDate = dpf.datepicker('getDate');
            lowerDate.setDate(lowerDate.getDate() + 1);
			dpt.datepicker("option", "minDate", lowerDate);
        }
    });
    dpt.datepicker({
        onSelect: function (dateText, inst) {
	        $('#errMsg').fadeOut('fast');
	    }
	});    
    dpf.datepicker('setDate', tomorrow);
	dpt.datepicker('setDate', afterTomorrow);
	
	$('#totAdulti').val('1');
	$('#totBambini').val('0');
	$('#totCamere').val('1');
	hideChildAge();
	
	$('#totBambini').change(function() {
		setChildAge($('#totBambini').val());
	});
	
	$('#sendQuery').click(function() { checkAndSend(); });    
});

function hideChildAge() {
	$('#etaBambini').fadeOut('fast', function() {
		$(this).find('.childAge').remove();
	});
}

function setChildAge(nBambini) {

	$('#etaBambini').fadeOut('fast', function() {
		$(this).find('.childAge').remove();
	if (nBambini == 0) return true;
	
	var ageRow = "";
	var idAgeSelector = "st1bamb";
	for (var i = 0; i < nBambini; i++) {
		
		ageRow = "<select id='" + idAgeSelector + (i + 1) + "' class='param_data left childAge'>" +
			"<option value='0'>--</option>" +
			"<option value='0'><1</option>" +
			"<option value='1'>1</option>" +
		    "<option value='2'>2</option>" +
		    "<option value='3'>3</option>" +
		    "<option value='4'>4</option>" +
		    "<option value='5'>5</option>" +
		    "<option value='6'>6</option>" +
		    "<option value='7'>7</option>" +
		    "<option value='8'>8</option>" +
		    "<option value='9'>9</option>" +
		    "<option value='10'>10</option>" +
		    "<option value='11'>11</option>" +
		    "<option value='12'>12</option>" +
		    "<option value='13'>13</option>" +
		    "<option value='14'>14</option>" +
		    "<option value='15'>15</option>" +
			"</select>";
			
		$('#etaBambini').append(ageRow);
	}
	
	$('#etaBambini').fadeIn('fast');
	});
}

function checkAndSend() {

	var errArrival = curLang == "it" ? "Imposta data arrivo" : "Insert a valid arrival date"; 
	// Verifica validità dati
	if (!isDate($('#dpFrom').val(), false)) {
		$('#errMsg').text(errArrival).fadeIn('fast');
		return false;
	}		

	var errDeparture = curLang == "it" ? "Imposta data partenza" : "Insert a valid departure date"; 
	if (!isDate($('#dpTo').val(), false)) {
		$('#errMsg').text(errDeparture).fadeIn('fast');
		return false;
	}
	
	// Impostazione valori per query
	var arrivo = $('#dpFrom').val().split("/"); 
	var partenza = $('#dpTo').val().split("/");
	var totAdulti = $('#totAdulti').val();
	var totBambini = $('#totBambini').val();
	var totCamere = $('#totCamere').val();
	//var lang= "ita";
	var stile = 3106;
	var codAlbergo = 5728;
	var etaBambini = totBambini > 0 ? getAgeString() : "";
	
	//prenota.htm
    var url = "https://www.aec-internet.it/booking_engine/prenota_new.htm?" +
		"gg=" + arrivo[0] + "&mm=" + arrivo[1] + "&aa=" + arrivo[2] + 
		"&ggf=" + partenza[0] + "&mmf=" + partenza[1] + "&aaf=" + partenza[2] + 
		"&tot_adulti=" + totAdulti + "&tot_bambini=" + totBambini + "&tot_camere=" + totCamere + 
		"&lingua_int=" + curLanguage + "&id_stile=" + stile + "&tappa_1_id_albergo=" + codAlbergo +
		etaBambini +
		"&headvar=ok&dc=123&n_tappe=1";
		
	window.location = url;
}

function isDate(dateStr, acceptBlank) {

    if ((acceptBlank) && (dateStr == "")) return true;

    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = dateStr.match(datePat);

    if (matchArray == null) {
        return false;
    }

    var month = matchArray[3];
    var day = matchArray[1];
    var year = matchArray[5];

    if (month < 1 || month > 12) {
        return false;
    }

    if (day < 1 || day > 31) {
        return false;
    }

    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
        return false;
    }

    if (month == 2) { // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) {
            return false;
        }
    }
    return true;
}

function getAgeString() {
	var ageStr = "";
	
	$('.childAge').each(function() {
		ageStr += "&" + $(this).attr('id') + "=" + $(this).val();
	});
	
	return ageStr;
}

function detectLang() {
	var cur = location.href;
	var arr = cur.split("/");
	var l = arr[3];
	if (l) {
		switch (l) {
			case "uk": case "uk-tmp":
				curLang = "uk";
				curLanguage = "eng";
				break;
			case "de": case "de-tmp":
				curLang = "uk";
				curLanguage = "deu";
				break;
			default:
				curLang = "it";
				curLanguage = "ita";
				break;
							
		} 
	} else {
		curLang = "it";
		curLanguage = "ita";		
	}
}

