///////////////////////////////////////////////////
//                                               //
//            www.myflorencetours.com                //
//                                               //
///////////////////////////////////////////////////

/*
///////////////////////////////////////////
history.forward();                      ///
if(history.length > 0)history.forward() ///
///////////////////////////////////////////
*/
function checkSearchForm(lang)	{

    var from = document.getElementById('fromDate').value;
    var to = document.getElementById('toDate').value;

    switch(lang)
    {
        case 'en':
            dateerr = "Please, select a Date for the Tour";
            formatodata = "dd-mm-yyyy";
            //rangeerr = "Error! Wrong range of dates";
            break;
        case 'it':
            dateerr = "Si prega di selezionare la Data del Tour";
            formatodata = "gg-mm-aaaa";
            //rangeerr = "Errore nell'inserimento delle date";
            break;
        case 'fr':
            dateerr = "S'il vous plaît, choisissez une date pour le Tour";
            formatodata = "jj-mm-aaaa";
            //rangeerr = "Erreur! Mauvaise série de dates";
            break;
        case 'es':
            dateerr = "Por favor, seleccione una fecha para el Tour";
            formatodata = "dd-mm-aaaa";
            //rangeerr = "¡Error! Rango incorrecto de las fechas";
            break;
        case 'de':
            dateerr = "Bitte wählen Sie ein Datum für die Tour";
            formatodata = "tt-mm-jjjj";
            //rangeerr = "Fehler! Falsche Datumsbereich";
            break;
    }

    if ((from == "") || (from == "undefined")||(from== formatodata)) {
        alert(dateerr);
        return false;
    }
    else if ((to == "") || (to == "undefined")||(to== formatodata)) {
        alert(dateerr);
        return false;
    }
    else{
        return true;
    }
}
//controllo il form prima di inviare i dati
function checkEstimateForm(lang)	{

    var date = document.getElementById('data').value;
    var time = document.getElementById('orario').value;
    var numfull = document.getElementById('interi1').value;
    var numhalf = document.getElementById('ridotti1').value;

    switch(lang)
    {
        case 'en':
            dateerr = "Please, select a Date for the Tour";
            timeerr = "Please, select a Time for the Tour";
            peopleerr = "Please, Insert the Number of People";
            childrenerr = "Please, Insert the Number of Children";
            break;
        case 'it':
            dateerr = "Si prega di selezionare la Data del Tour";
            timeerr = "Si prega di selezionare l'Orario del Tour";
            peopleerr = "Si prega di selezionare il Numero di Persone";
            childrenerr = "Si prega di selezionare il Numero di Bambini";
            break;
        case 'fr':
            dateerr = "S'il vous plaît, choisissez une date pour le Tour";
            timeerr = "S'il vous plaît, sélectionnez un temps pour la tournée";
            peopleerr = "S'il vous plaît, insérer le nombre de personnes";
            childrenerr = "S'il vous plaît, insérer le nombre d'enfants";
            break;
        case 'es':
            dateerr = "Por favor, seleccione una fecha para el Tour";
            timeerr = "Por favor, seleccione un tiempo para el Tour";
            peopleerr = "Por favor, introduzca el número de personas";
            childrenerr = "Por favor, introduzca el número de niños";
            break;
        case 'de':
            dateerr = "Bitte wählen Sie ein Datum für die Tour";
            timeerr = "Bitte wählen Sie eine Uhrzeit für die Tour";
            peopleerr = "Bitte, legen Sie die Anzahl der Personen";
            childrenerr = "Bitte, legen Sie die Anzahl der Kinder";
            break;
    }

    if ((date == "") || (date == "dd-mm-yyyy") || (date == "undefined")) {
        document.formbooking.data.focus();
        alert(dateerr);
        return false;
    }
    else if ((time == "") || (time == "undefined")) {
        document.formbooking.orario.focus();
        alert(timeerr);
        return false;
    }
    else if ((numfull == "") || (numfull == "0") || (numfull == "undefined")) {
        document.formbooking.interi1.focus();
        alert(peopleerr);
        return false;
    }
    else if ((numhalf == "") || (numhalf == "undefined")) {
        document.formbooking.ridotti1.focus();
        alert(childrenerr);
        return false;
    }
    else{
        return true;
    }
}

function calculate_price(status, action, lang, isIncEstimate)	{

    if(status)
    {
        fixedfee = parseFloat(window.document.getElementById('fixedfee').value);
        pricefull = parseFloat(window.document.getElementById('prezzointeri1').value);
        pricehalf = parseFloat(window.document.getElementById('prezzoridotti1').value);

        numfull = parseFloat(window.document.getElementById('interi1').value);
        numhalf = parseFloat(window.document.getElementById('ridotti1').value);
        lingua = window.document.getElementById('lingua').value;
        type = window.document.getElementById('type').value;
        sito = window.document.getElementById('sito').value;
        tourCode = window.document.getElementById('tourCode').value;
        car = window.document.getElementById('car').value;
        start = window.document.getElementById('start').value;
        oneway1 = window.document.getElementById('oneway1');
        oneway0 = window.document.getElementById('oneway0');
        oneway1.checked ? oneway = oneway1.value : oneway = oneway0.value;

        calculate(fixedfee, pricefull, pricehalf, numfull, numhalf, lingua, type, sito, tourCode, car, start, oneway);
        prezzosingolo = prezzototale/(numfull+numhalf);

        switch(lang)
        {
            case 'en':
                total = "Total";
                perperson = "Price Per Person";
                estimateimg = "<img src=\"../images/estimate.jpg\" alt=\"Estimate\"/>";
                bookimg = "<img src=\"../images/book.jpg\"alt=\"Book this Tour\"/>";
                break;
            case 'it':
                total = "Totale";
                perperson = "Prezzo a Persona";
                estimateimg = "<img src=\"../../images/estimate-it.jpg\" alt=\"Stima\"/>";
                bookimg = "<img src=\"../../images/book-it.jpg\"alt=\"Prenota\"/>";
                break;
            case 'fr':
                total = "Prix Total";
                perperson = "Prix Pour Personne";
                estimateimg = "<img src=\"../../images/estimate-fr.jpg\" alt=\"Estimation\"/>";
                bookimg = "<img src=\"../../images/book-fr.jpg\"alt=\"Réserver ce Tour\"/>";
                break;
            case 'es':
                total = "Precio Total";
                perperson = "Precio Por Persona";
                estimateimg = "<img src=\"../../images/estimate-es.jpg\" alt=\"Estimación\"/>";
                bookimg = "<img src=\"../../images/book-es.jpg\"alt=\"Reserve este Tour\"/>";
                break;
            case 'de':
                total = "Gesamtpreis";
                perperson = "Preis pro Person";
                estimateimg = "<img src=\"../../images/estimate-de.jpg\" alt=\"Schätzung\"/>";
                bookimg = "<img src=\"../../images/book-de.jpg\"alt=\"Buchen Sie diese Tour\"/>";
                break;
        }
        
        if(isIncEstimate)
        {
            window.document.getElementById('result').style.display = "block";
            window.document.getElementById('result').innerHTML = "<div id=\"prezzo\">"+total+": <b>&euro;"+prezzototale.toFixed(2)+"</b><br/>"+perperson+": <b>&euro;"+prezzosingolo.toFixed(2)+"</b></div>";
            window.document.getElementById('totale').value = prezzototale.toFixed(2);
            window.document.getElementById('perperson').value = prezzosingolo.toFixed(2);

            if (checkNumPeople(lang, tourCode)) {
                submitButton = "<a href=\"javascript:submitFormEstimate('"+lang+"', '"+tourCode+"', '"+action+"', 'formbooking', 'post');\"  id=\"bookthistour\"  >"+bookimg+"</a>";
            } else  {
                submitButton="";
            }

            window.document.getElementById('changer').innerHTML = submitButton+"<a href=\"javascript:calculate_price(checkEstimateForm('"+lang+"'), '"+action+"', '"+lang+"', "+isIncEstimate+")\" >"+estimateimg+"</a>&nbsp;<div class=\"clright\"></div> ";
        }
        else
        {
            window.document.getElementById('divstima').style.display = "block";
            window.document.getElementById('divstima').innerHTML = "<td colspan=2>&nbsp;</td></tr><tr><td colspan=2><b>Price Details</b></td></tr><tr><td class=\"label\">"+total+":</td><td><b>&euro; "+prezzototale.toFixed(2)+"</b><input type=\"hidden\" name=\"amount\" id=\"amount\" value=\""+prezzototale.toFixed(2)+"\"/></td></tr><tr><td class=\"label\">"+perperson+":</td><td><b>&euro; "+prezzosingolo.toFixed(2)+"</b></td>";
        }

    }
}
function calculate(fixedfee, pricefull, pricehalf, numfull, numhalf, lingua, type, sito, tourCode, car, start)
{
    a = pricefull * numfull;
    b = pricehalf * numhalf; //per i tour privati sarà sempre 0
    c = 0;

    if(sito == "Rome" && type == '1') //controllo lingua roma
    {
        //traduzioni dei valori possibili - non mettere le html entities ma lasciare i caratteri speciali così sennò non funzionano i controlli
        if( lingua != 'English' && lingua != 'French' && lingua != 'German' && lingua != 'Italian' && lingua != 'Spanish' &&
            lingua != 'Inglese' && lingua != 'Francese' && lingua != 'Tedesco' && lingua != 'Italiano' && lingua != 'Spagnolo' &&
            lingua != 'Anglais' && lingua != 'Français' && lingua != 'Allemande' && lingua != 'Italienne' && lingua != 'Espagnole' &&
            lingua != 'Inglés' && lingua != 'Francés' && lingua != 'Alemán' && lingua != 'Italiano' && lingua != 'Español')
            fixedfee = fixedfee + 30;
        if(numfull >20)
            c = (numfull-20)*2.50;

        if(tourCode == "RRPE03" || tourCode == "RRPI03" || tourCode == "RRPF03" || tourCode == "RRPS03" ||
           tourCode == "RTPE03" || tourCode == "RTPI03" || tourCode == "RTPF03" || tourCode == "RTPS03" ) //roma barocca e barocca + transfer in tutte le lingue
        {
            if(numfull == 1)
                a= 0;
            else
                a = (numfull-1)*6;
        }

    }
    if((tourCode == "RTPI01" || tourCode == "RTPI02" || tourCode == "RTPI03" || tourCode == "RTPI04" ||
        tourCode == "RTPE01" || tourCode == "RTPE02" || tourCode == "RTPE03" || tourCode == "RTPE04" ||
        tourCode == "RTPF01" || tourCode == "RTPF02" || tourCode == "RTPF03" || tourCode == "RTPF04" ||
        tourCode == "RTPS01" || tourCode == "RTPS02" || tourCode == "RTPS03" || tourCode == "RTPS04")) //transfers combi
    {
        numtick = numfull+numhalf;

        switch(start)
        {
            case '0':
                
                if(numtick <=3)
                    c = 63;
                if(numtick > 3 && numtick <= 6)
                    c = 88;
                if(numtick > 6 && numtick <= 8)
                    c = 98;
                break;

            case '1':
                if(numtick <=3)
                    c = 163;
                if(numtick > 3 && numtick <= 6)
                    c = 190;
                if(numtick > 6 && numtick <= 8)
                    c = 203;
                break;
        }
        if(oneway == 0)
            c = c*2;
    }

    prezzototale = fixedfee+a+b+c;
}
/*per tour*/
function apri(cod, link, lang, isAlt, isTick, num){
    var str = link+'js/calendarsimple.php?lang='+lang+'&cod='+cod+"&isAlt="+isAlt+"&isTick="+isTick+"&num="+num;
    aa=window.open(str,'new','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=240,height=200,left=100,top=100');
    aa.focus();
}
/*per biglietti*/
function apri1(num, link, lang){
    var str = link+'js/pro_romecal.php?lang='+lang+'&M='+num;
    aa=window.open(str,'new','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=240,height=290,left=100,top=100');
    aa.focus();
}
/*per comodo*/
function comodo(link){
    aa=window.open(link,'new','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=450,height=500,left=100,top=100');
    aa.focus();
}


/*controllo booking.php*/
function resetBTError ()
{
    document.getElementById('interi1Error').innerHTML = "";	
    document.getElementById('ridotti1Error').innerHTML = "";	
    document.getElementById('dataError').innerHTML = "";	
    document.getElementById('altdataError').innerHTML = "";	
    document.getElementById('orarioError').innerHTML = "";	
}
function checkBookingTour(lang)	{

    resetBTError(); //cancella cambiamenti per errori

    var interi1 = document.getElementById('interi1').value;
    var ridotti1 = document.getElementById('ridotti1').value;
    var g1 = document.getElementById('gg1').value;
    var m1 = document.getElementById('mm1').value;
    var g2 = document.getElementById('gg2').value;
    var m2 = document.getElementById('mm2').value;
    var orario = document.getElementById('orario').value;

    switch(lang)
    {
        case 'en':
            error = "The field is required.";
            data_error = "Please select a date";
            time_error = "Please select a time";
            break;
        case 'it':
            error = "Campo obbligatorio.";
            data_error = "Si prega di selezionare una data";
            time_error = "Si prega di selezionare un'orario";
            break;
        case 'fr':
            error = "Le champ est obligatoire.";
            data_error = "S'il vous plaît choisir une date";
            time_error = "S'il vous plaît sélectionnez une heure";
            break;
        case 'es':
            error = "El campo es obligatorio.";
            data_error = "Por favor, seleccione una fecha";
            time_error = "Por favor, seleccione una hora";
            break;
        case 'de':
            error = "Das Feld ist erforderlich.";
            data_error = "Bitte wählen Sie ein Datum";
            time_error = "Bitte wählen Sie eine Zeit";
            break;
    }

    if ((interi1 == "") || (interi1 == "undefined")) {
        document.bookingTourForm.interi1.focus();
        document.getElementById('interi1Error').innerHTML = error;
        return false;
    }
    else if ((ridotti1 == "") || (ridotti1 == "undefined")) {
        document.bookingTourForm.ridotti1.focus();
        document.getElementById('ridotti1Error').innerHTML = error;
        return false;
    }
    else if ((g1 == "") || (g1 == "undefined") || (m1 == "") || (m1 == "undefined")) {
        document.bookingTourForm.gg1.focus();
        document.getElementById('dataError').innerHTML = data_error;
        return false;
    }
    else if ((g2 == "") || (g2 == "undefined") || (m2 == "") || (m2 == "undefined")) {
        document.bookingTourForm.gg2.focus();
        document.getElementById('altdataError').innerHTML = data_error;
        return false;
    }
    else if ((orario == "") || (orario == "undefined")) {
        document.bookingTourForm.orario.focus();
        document.getElementById('orarioError').innerHTML = time_error;
        return false;
    }
    else{
        return true;
    }
}

/*controllo booking-datas.php*/
function resetBDatasError (isTicket)
{

    if(!isTicket)
        document.getElementById('altdataError').innerHTML = "";

    document.getElementById('nameError').innerHTML = "";
    document.getElementById('surnameError').innerHTML = "";
    document.getElementById('countryError').innerHTML = "";
    document.getElementById('emailError').innerHTML = "";
    document.getElementById('emailConfirmError').innerHTML = "";
    document.getElementById('phonesError').innerHTML = "";
    document.getElementById('confirmLawError').innerHTML = "";
}
function checkBDatas(lang, isTicket)	{

    resetBDatasError(isTicket); //cancella cambiamenti per errori


    if(!isTicket)
    {
        var dataalt = document.getElementById('dataalt').value;
        var orarioalt = document.getElementById('orarioalt').value;
    }

    var name = document.getElementById('name').value;
    var surname = document.getElementById('surname').value;
    var country = document.getElementById('country').value;
    var email = document.getElementById('email').value;
    var emailConfirm = document.getElementById('emailConfirm').value;
    var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;/*espress regolare per controllare il formato delle mail*/
    var phone = document.getElementById('phone').value;
    var confirmLaw = document.getElementById('confirmLaw').checked;

    switch(lang)
    {
        case 'en':
            error = "The field is required.";
            data_error = "In case you don't have an alternate date, please insert the same date.";
            email_error = "Please enter a valid E-Mail Address.";
            email_confirm_error = "The Confirm E-Mail is not valid.";
            confirmLaw_alert = "Please authorize us to process your personal datas.";
            break;
        case 'it':
            error = "Campo obbligatorio.";
            data_error = "Si prega di selezionare una data e un orario alternativo. Se non avete una data e un orario alternativo vi preghiamo di inserire la stessa data e lo stesso orario.";
            email_error = "Si prega di inserire un indirizzo E-Mail valido.";
            email_confirm_error = "Il compo di conferma E-Mail non è valido.";
            confirmLaw_alert = "Si prega di autorizzare il trattamento dei dati personali.";
            break;
        case 'fr':
            error = "Le champ est obligatoire.";
            data_error = "Si vous n'avez pas une date alternative, merci d'insérer la même date.";
            email_error = "S'il vous plaît entrer un E-Mail Adresse.";
            email_confirm_error = "La Email Confirmez n'est pas valide.";
            confirmLaw_alert = "S'il vous plaît nous autorisez à traiter vos données personnelles.";
            break;
        case 'es':
            error = "El campo es obligatorio.";
            data_error = "Si no tiene une fecha alternativa, por favor introduzca la misma fecha.";
            email_error = "Por favor, introduzca una dirección de correo electrónico.";
            email_confirm_error = "La confirmación de correo electrónico no es válida.";
            confirmLaw_alert = "Por favor, nos autoriza a procesar sus datos personales.";
            break;
        case 'de':
            error = "Das Feld ist erforderlich.";
            data_error = "Bitte wählen Sie eine Alternative Datum und eine Uhrzeit.";
            email_error = "Bitte geben Sie eine gültige eMail Adresse.";
            email_confirm_error = "Die E-Mail bestätigen ist nicht gültig.";
            confirmLaw_alert = "Bitte autorisieren uns, Ihre persönlichen Daten verarbeiten.";
            break;
    }

    if (!isTicket && (dataalt == "" || dataalt == "undefined" || dataalt == "dd-mm-yyyy" || orarioalt == "" || orarioalt == "undefined" )) {
        document.bookingTourForm.dataalt.focus();
        document.getElementById('altdataError').innerHTML = data_error;
        return false;
    }
    else if ((name == "") || (name == "undefined")) {
        document.bookingTourForm.name.focus();
        document.getElementById('nameError').innerHTML = error;
        return false;
    }
    else if ((surname == "") || (surname == "undefined")) {
        document.bookingTourForm.surname.focus();
        document.getElementById('surnameError').innerHTML = error;
        return false;
    }
    else if ((country == "") || (country == "undefined")) {
        document.bookingTourForm.country.focus();
        document.getElementById('countryError').innerHTML = error;
        return false;
    }
    else if ((phone == "") || (phone == "undefined")) {
        document.bookingTourForm.prefix.focus();
        document.getElementById('phonesError').innerHTML = error;
        return false;
    }
    else if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) {
        document.bookingTourForm.email.focus();
        document.getElementById('emailError').innerHTML = email_error;
        return false;
    }
    else if (email != emailConfirm) {
        document.bookingTourForm.emailConfirm.focus();
        document.getElementById('emailConfirmError').innerHTML = email_confirm_error;
        return false;
    }
    else if (!confirmLaw){
        alert(confirmLaw_alert);
        return false;
    }
    else if (isTicket && !validCreditCard(lang)){
        return false;
    }
    else{
        return true;
    }
}

/*
 *INFO FORM
 */
// cancella tutti gli errori
function resetError ()
{
    document.getElementById('nameError').innerHTML = "";
    document.getElementById('surnameError').innerHTML = "";
    document.getElementById('phonesError').innerHTML = "";
    document.getElementById('emailError').innerHTML = "";
    document.getElementById('emailConfirmError').innerHTML = "";
    document.getElementById('confirmLawError').innerHTML = "";
}
//controllo il form prima di inviare i dati
function checkForm(lang)	{

    resetError(); //cancella cambiamenti per errori

    var name = document.getElementById('name').value;
    var surname = document.getElementById('surname').value;
    var email = document.getElementById('email').value;
    var emailConfirm = document.getElementById('emailConfirm').value;
    var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;/*espress regolare per controllare il formato delle mail*/
    var phone = document.getElementById('phone').value;
    var confirmLaw = document.getElementById('confirmLaw').checked;

    switch(lang)
    {
        case 'en':
            name_error = "The field Name is required.";
            surname_error = "The field Surname is required.";
            email_error = "Please enter a valid E-Mail Address.";
            email_confirm_error = "The Confirm E-Mail is not valid.";
            phones_error = "The field Telephone Number is required.";
            confirmLaw_alert = "Please authorize us to process your personal datas.";
            break;
        case 'it':
            name_error = "Il campo Nome è obbligatorio.";
            surname_error = "Il campo Cognome è obbligatorio.";
            email_error = "Si prega di inserire un indirizzo E-Mail valido.";
            email_confirm_error = "Il compo di conferma E-Mail non è valido.";
            phones_error = "Il campo Telefono è obbligatorio.";
            confirmLaw_alert = "Si prega di autorizzare il trattamento dei dati personali.";
            break;
        case 'fr':
            name_error = "Le champ Nom est obligatoire.";
            surname_error = "Le champ Prénom est obligatoire.";
            email_error = "S'il vous plaît entrer un E-Mail Adresse.";
            email_confirm_error = "La Email Confirmez n'est pas valide.";
            phones_error = "Le champ Numéro de Téléphone est obligatoire.";
            confirmLaw_alert = "S'il vous plaît nous autorisez à traiter vos données personnelles.";
            break;
        case 'es':
            name_error = "El campo Nombre es obligatorio.";
            surname_error = "El campo Apellido es obligatorio";
            email_error = "Por favor, introduzca una dirección de correo electrónico.";
            email_confirm_error = "La confirmación de correo electrónico no es válida.";
            phones_error = "El campo Número de Teléfono es obligatorio";
            confirmLaw_alert = "Por favor, nos autoriza a procesar sus datos personales.";
            break;
        case 'de':
            name_error = "Das Feld Name ist erforderlich.";
            surname_error = "Das Feld Vorname ist erforderlich";
            email_error = "Bitte geben Sie eine gültige eMail Adresse.";
            email_confirm_error = "Die E-Mail bestätigen ist nicht gültig.";
            phones_error = "Das Feld Telefonnummer ist erforderlich";
            confirmLaw_alert = "Bitte autorisieren uns, Ihre persönlichen Daten verarbeiten.";
            break;
    }

    if ((name == "") || (name == "undefined")) {
        document.infoForm.name.focus();
        document.getElementById('nameError').innerHTML = name_error;
        return false;
    }
    else if ((surname == "") || (surname == "undefined")) {
        document.infoForm.surname.focus();
        document.getElementById('surnameError').innerHTML = surname_error;
        return false;
    }
    else if ((phone == "") || (phone == "undefined")) {
        document.infoForm.phone.focus();
        document.getElementById('phonesError').innerHTML = phones_error;
        return false;
    }
    else if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) {
        document.infoForm.email.focus();
        document.getElementById('emailError').innerHTML = email_error;
        return false;
    }
    else if (email != emailConfirm) {
        document.infoForm.emailConfirm.focus();
        document.getElementById('emailConfirmError').innerHTML = email_confirm_error;
        return false;
    }
    else if (!confirmLaw){
        alert(confirmLaw_alert);
        return false;
    }
    else{
        return true;
    }
}

/*NUOVO FORM TRANSFER*/
// cancella tutti gli errori
function resetTrError (num)
{
    document.getElementById('dateError'+num).innerHTML = "";
    document.getElementById('hourError'+num).innerHTML = "";
    document.getElementById('start_placeError'+num).innerHTML = "";
    document.getElementById('arrival_placeError'+num).innerHTML = "";
    document.getElementById('adultsError'+num).innerHTML = "";
    document.getElementById('total_personError'+num).innerHTML = "";

    document.getElementById('nameError'+num).innerHTML = "";
    document.getElementById('surnameError'+num).innerHTML = "";
    document.getElementById('phonesError'+num).innerHTML = "";
    document.getElementById('emailError'+num).innerHTML = "";
    document.getElementById('emailConfirmError'+num).innerHTML = "";
    document.getElementById('confirmLawError'+num).innerHTML = "";
}
//controllo il form prima di inviare i dati
function checkTrForm(lang, idForm, num)	{



    resetTrError(num); //cancella cambiamenti per errori

    var tmpForm = document.getElementById(idForm);
    var date = document.getElementById('date'+num).value;
    var hour = document.getElementById('hour'+num).value;
    var start_place = document.getElementById('start_place'+num).value;
    var arrival_place = document.getElementById('arrival_place'+num).value;
    var adults = document.getElementById('adults'+num).value;
    var total_person = document.getElementById('total_person'+num).value;

    var name = document.getElementById('name'+num).value;
    var surname = document.getElementById('surname'+num).value;
    var email = document.getElementById('email'+num).value;
    var emailConfirm = document.getElementById('emailConfirm'+num).value;
    var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;/*espress regolare per controllare il formato delle mail*/
    var phone = document.getElementById('phone'+num).value;
    var confirmLaw = document.getElementById('confirmLaw'+num).checked;

    switch(lang)
    {
        case 'en':
            date_error = "The field Service Date is required.";
            hour_error = "The field Departure Time is required.";
            start_place_error = "The field Departure Point is required.";
            arrival_place_error = "The field Arrival Point is required.";
            adults_error = "The field N. of People is required.";
            total_person_error = "The field Total Number of People is required.";

            name_error = "The field Name is required.";
            surname_error = "The field Surname is required.";
            email_error = "Please enter a valid E-Mail Address.";
            email_confirm_error = "The Confirm E-Mail is not valid.";
            phones_error = "The field Telephone Number is required.";
            confirmLaw_alert = "Please authorize us to process your personal datas.";
            break;
        case 'it':
            date_error = "Il campo Data del Servizio è obbligatorio.";
            hour_error = "Il campo Orario di Partenza è obbligatorio.";
            start_place_error = "Il campo Luogo di Partenza è obbligatorio.";
            arrival_place_error = "Il campo Luogo di Arrivo è obbligatorio.";
            adults_error = "Il campo N° di Persone è obbligatorio.";
            total_person_error = "Il campo N° di Persone Totali è obbligatorio.";

            name_error = "Il campo Nome è obbligatorio.";
            surname_error = "Il campo Cognome è obbligatorio.";
            email_error = "Si prega di inserire un indirizzo E-Mail valido.";
            email_confirm_error = "Il compo di conferma E-Mail non è valido.";
            phones_error = "Il campo Telefono è obbligatorio.";
            confirmLaw_alert = "Si prega di autorizzare il trattamento dei dati personali.";
            break;
        case 'fr':
            date_error = "Le champ Date du Service est obligatoire.";
            hour_error = "Le champ Horaire de Départ est obligatoire.";
            start_place_error = "Le champ Lieu de Départ est obligatoire.";
            arrival_place_error = "Le champ Lieu d'Arrivée est obligatoire.";
            adults_error = "Le champ N. de Personnes est obligatoire.";
            total_person_error = "Le champ Numero Total de Personnes est obligatoire.";

            name_error = "Le champ Nom est obligatoire.";
            surname_error = "Le champ Prénom est obligatoire.";
            email_error = "S'il vous plaît entrer un E-Mail Adresse.";
            email_confirm_error = "La Email Confirmez n'est pas valide.";
            phones_error = "Le champ Numéro de Téléphone est obligatoire.";
            confirmLaw_alert = "S'il vous plaît nous autorisez à traiter vos données personnelles.";
            break;
        case 'es':
            date_error = "El campo Fecha del servicio es obligatorio.";
            hour_error = "El campo Hora de salida es obligatorio.";
            start_place_error = "El campo Punto de partida es obligatorio.";
            arrival_place_error = "El campo Punto de llegada es obligatorio.";
            adults_error = "El campo N. de personas es obligatorio.";
            total_person_error = "Il campo Número total de personas es obligatorio.";

            name_error = "El campo Nombre es obligatorio.";
            surname_error = "El campo Apellido es obligatorio";
            email_error = "Por favor, introduzca una dirección de correo electrónico.";
            email_confirm_error = "La confirmación de correo electrónico no es válida.";
            phones_error = "El campo Número de Teléfono es obligatorio";
            confirmLaw_alert = "Por favor, nos autoriza a procesar sus datos personales.";
            break;
        case 'de':
            date_error = "Il campo Data del Servizio è obbligatorio.";
            hour_error = "Il campo Orario di Partenza è obbligatorio.";
            start_place_error = "Il campo Luogo di Partenza è obbligatorio.";
            arrival_place_error = "Il campo Luogo di Arrivo è obbligatorio.";
            adults_error = "Il campo N° di Persone è obbligatorio.";
            total_person_error = "Il campo N° di Persone Totali è obbligatorio.";

            name_error = "Das Feld Name ist erforderlich.";
            surname_error = "Das Feld Vorname ist erforderlich";
            email_error = "Bitte geben Sie eine gültige eMail Adresse.";
            email_confirm_error = "Die E-Mail bestätigen ist nicht gültig.";
            phones_error = "Das Feld Telefonnummer ist erforderlich";
            confirmLaw_alert = "Bitte autorisieren uns, Ihre persönlichen Daten verarbeiten.";
            break;
    }

    if ((date == "") || (date == "undefined")) {
        tmpForm.date.focus();
        document.getElementById('dateError'+num).innerHTML = date_error;
        return false;
    }
    else if ((hour == "") || (hour == "undefined")) {
        tmpForm.hour.focus();
        document.getElementById('hourError'+num).innerHTML = hour_error;
        return false;
    }
    else if ((start_place == "") || (start_place == "undefined")) {
        tmpForm.start_place.focus();
        document.getElementById('start_placeError'+num).innerHTML = start_place_error;
        return false;
    }
    else if ((arrival_place == "") || (arrival_place == "undefined")) {
        tmpForm.arrival_place.focus();
        document.getElementById('arrival_placeError'+num).innerHTML = arrival_place_error;
        return false;
    }
    else if ((adults == "") || (adults == "undefined")) {
        tmpForm.adults.focus();
        document.getElementById('adultsError'+num).innerHTML = adults_error;
        return false;
    }
    else if ((total_person == "") || (total_person == "undefined")) {
        tmpForm.total_person.focus();
        document.getElementById('total_personError'+num).innerHTML = total_person_error;
        return false;
    }

    else if ((name == "") || (name == "undefined")) {
        tmpForm.name.focus();
        document.getElementById('nameError'+num).innerHTML = name_error;
        return false;
    }
    else if ((surname == "") || (surname == "undefined")) {
        tmpForm.surname.focus();
        document.getElementById('surnameError'+num).innerHTML = surname_error;
        return false;
    }
    else if ((phone == "") || (phone == "undefined")) {
        tmpForm.phone.focus();
        document.getElementById('phonesError'+num).innerHTML = phones_error;
        return false;
    }
    else if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) {
        tmpForm.email.focus();
        document.getElementById('emailError'+num).innerHTML = email_error;
        return false;
    }
    else if (email != emailConfirm) {
        tmpForm.emailConfirm.focus();
        document.getElementById('emailConfirmError'+num).innerHTML = email_confirm_error;
        return false;
    }
    else if (!confirmLaw){
        alert(confirmLaw_alert);
        return false;
    }
    else{
        return true;
    }
}

function submitForm(status, action, idForm, method) {
    if (status==true){
        var tmpForm = document.getElementById(idForm);
        tmpForm.action  = action;
        tmpForm.method = method;
        tmpForm.submit();
    }
}

function submitFormEstimate(lang, tourCode, action, idForm, method) {
    if (checkNumPeople(lang, tourCode)){
        var tmpForm = document.getElementById(idForm);
        tmpForm.action  = action;
        tmpForm.method = method;
        tmpForm.submit();
    }
}

function sumPeople() {
    var adults = parseFloat(document.getElementById('adults').value);

    var children = 0;
    if(document.getElementById('children').value > 0)
        children = parseFloat(document.getElementById('children').value);

    var total = adults + children;
    if(isNaN(total))
        total = "";
    document.getElementById('total_person').value = total;
}

function textAreaGray(areaId, txt) {

    var area = document.getElementById(areaId).value;
    if (area != txt)
        document.getElementById(areaId).style.color = "#000";
}

/*carte di credito*/
function validCreditCard(lang)
{

    switch(lang)
    {
        case 'en':
            error1 = "Please enter numbers only, no spaces or letters.";
            error2 = "Invalid Master Card number.";
            error3 = "Invalid Visa number.";
            error4 = "Invalid American Express number.";
            error5 = "Card type not accept.";
            error6 = "Enter your Credit Card number.";
            error7 = "Select Expiration Month.";
            error8 = "Select Expiration Year.";
            error9 = "Enter your Name and Surname.";
            error10 = "Select if you are European or not.";
            error11 = "The Card is not valid yet. Please enter a valid Card to process.";
            break;
        case 'it':
            error1 = "Si prega di non inserire spazi o lettere, ma soltanto numeri.";
            error2 = "Numero Master Card non valido.";
            error3 = "Numero Visa non valido.";
            error4 = "Numero American Express non valido.";
            error5 = "Tipo di carta non accettato.";
            error6 = "Si prega di inseire il numero della Carta di Credito.";
            error7 = "Selezionare il Mese di Scadenza.";
            error8 = "Selezionare l'Anno di Scadenza.";
            error9 = "Iserire il suo Nome e Cognome.";
            error10 = "Selezionare se è un Cittadino Europeo.";
            error11 = "La Carta non è più valida. Si prega di inserire una carta valida per andare avanti.";
            break;
        case 'fr':
            error1 = "S'il vous plaît saisir uniquement des chiffres, sans espaces ni lettres.";
            error2 = "Blancs Master Card nombre.";
            error3 = "Blancs Visa nombre.";
            error4 = "Blancs American Express nombre.";
            error5 = "Le type de carte n'est pas acceptée.";
            error6 = "Entrez votre numéro de carte de crédit.";
            error7 = "Sélectionner Mois d'expiration.";
            error8 = "Sélectionner l'année d'expiration.";
            error9 = "Saisissez votre nom et prénom.";
            error10 = "Cochez cette case si vous êtes européen ou non.";
            error11 = "La carte n'est pas encore valide. S'il vous plaît entrer une carte valide pour traiter.";
            break;
        case 'es':
            error1 = "Por favor, introduzca sólo números, sin espacios o letras.";
            error2 = "Número de Master Card no válido.";
            error3 = "Número de Visa no válido.";
            error4 = "Número de American Express no válido.";
            error5 = "Tipo de tarjeta no aceptada.";
            error6 = "Ingrese su número de tarjeta de crédito.";
            error7 = "Seleccione el mes de vencimiento.";
            error8 = "Seleccione el año de vencimiento.";
            error9 = "Ingrese su Nombre y Apellido.";
            error10 = "Seleccione si son europeos o no.";
            error11 = "La tarjeta no es válida todavía. Por favor, introduzca una tarjeta válida para procesar.";
            break;
        case 'de':
            error1 = "Bitte geben Sie nur Zahlen, keine Leerzeichen oder Buchstaben.";
            error2 = "Ungültige Master Card Nummer.";
            error3 = "Ungültige Visa Nummer.";
            error4 = "Ungültige American Express Nummer.";
            error5 = "Card Typ nicht akzeptieren.";
            error6 = "Geben Sie Ihre Kreditkartennummer.";
            error7 = "Wählen Verfallmonat.";
            error8 = "Wählen Verfall Jahr.";
            error9 = "Geben Sie Ihren Vor-und Nachname.";
            error10 = "Wählen Sie, wenn Sie in Europa oder anderswo.";
            error11 = "Die Karte ist noch nicht gültig. Bitte geben Sie eine gültige Karte zu verarbeiten.";
            break;
    }

    cardNumber= document.bookingTourForm.card.value;
    for(x=0;x<cardNumber.length;x++)
    {
        if(cardNumber.charCodeAt(x)<48 || cardNumber.charCodeAt(x)>57)
        {
            alert(error1);
            document.bookingTourForm.card.focus();
            return false;
        }
    }
    cardType=document.bookingTourForm.paymentMethod.value;
    switch(cardType)
    {
        case "MasterCard":
            if(cardNumber.length!=16 || cardNumber.substr(0,2) <51 || cardNumber.substr(0,2)>55 )
            {
                alert(error2);
                document.bookingTourForm.card.focus();
                return false;
            }
            break;
        case "Visa":
            if(cardNumber.substr(0,1) !=4)
            {
                alert(error3);
                document.bookingTourForm.card.focus();
                return false;
            }
            else if(cardNumber.length!=16 && cardNumber.length!=13)
            {
                alert(error3);
                document.bookingTourForm.card.focus();
                return false;
            }
            break;
        case "Amex":
            if(cardNumber.length !=15)
            {
                alert(error4);
                document.bookingTourForm.card.focus();
                return false;
            }
            else if(cardNumber.substr(0,2)!=37 && cardNumber.substr(0,2)!=34)
            {
                alert(error3);
                document.bookingTourForm.card.focus();
                return false;
            }
            break;
        case "Cash":
            return true;
            break;
        default:
            alert(error5);

    }
    if(cardNumber=="")
    {
        alert(error6);
        document.bookingTourForm.card.focus();
        return false;
    }
    expiremonth = document.bookingTourForm.expiremonth.value;
    if(expiremonth =="")
    {
        alert(error7);
        document.bookingTourForm.expiremonth.focus();
        return false;
    }
    expireyear = document.bookingTourForm.expireyear.value;
    if(expireyear =="")
    {
        alert(error8);
        document.bookingTourForm.expireyear.focus();
        return false;
    }
    namesurname= document.bookingTourForm.namesurname.value;
    if(namesurname=="")
    {
        alert(error9);
        document.bookingTourForm.namesurname.focus();
        return false;
    }
    european1= document.bookingTourForm.european1.checked;
    european2= document.bookingTourForm.european2.checked;
    if(european1=="" && european2=="")
    {
        alert(error10);
        document.bookingTourForm.european1.focus();
        return false;
    }
    if(!CheckValid())
    {
        alert(error11);
        return false;
    }
    return true;

}

function CheckValid()
{
    var cardNumber = document.bookingTourForm.card.value;

    var no_digit = cardNumber.length;
    var oddoeven = no_digit & 1;
    var sum = 0;

    for (var count = 0; count < no_digit; count++) {
        var digit = parseInt(cardNumber.charAt(count));
        if (!((count & 1) ^ oddoeven)) {
            digit *= 2;
            if (digit > 9)
                digit -= 9;
        }
        sum += digit;
    }
    if (sum % 10 == 0)
        return true;
    else
        return false;
}


function checkNumPeople(lang, tourCode)   {

    max = 25;
    //transfers - max 8 persone
    if(tourCode == "RTPI01" || tourCode == "RTPI02" || tourCode == "RTPI03" || tourCode == "RTPI04" ||
        tourCode == "RTPE01" || tourCode == "RTPE02" || tourCode == "RTPE03" || tourCode == "RTPE04" ||
        tourCode == "RTPF01" || tourCode == "RTPF02" || tourCode == "RTPF03" || tourCode == "RTPF04" ||
        tourCode == "RTPS01" || tourCode == "RTPS02" || tourCode == "RTPS03" || tourCode == "RTPS04")
        max = 8;

    var interi = parseInt(document.getElementById("interi1").value);
    if (interi==""||interi=="undefined") interi = 0;
    var ridotti = parseInt(document.getElementById("ridotti1").value);
    if (ridotti==""||ridotti=="undefined") ridotti = 0;

    totale = interi+ridotti;

    var msg;

    switch (lang)   {
        case 'it':
            msg = "Numero massimo di persone consentite: ";
            break;
        case 'en':
            msg = "Maximum number of people allowed: ";
            break;
        case 'fr':
            msg = "Nombre maximum de personnes possible: ";
            break;
        case 'es':
            msg = "Número máximo de personas permitidas: ";
            break;
    }

    if (totale > max) {
        alert (msg+max);
        return false;
    }
    else    {
        return true;
    }
}
