
function initStartDate(lang) {

    if (lang == "fra") {
        var nomChoisirOption = "Choisissez une option";
        var date8 = "21 juin";
        var date7 = "28 juin";
        var date6 = "5 juillet";
        var date5 = "12 juillet";
        var date4 = "19 juillet";
        var date3 = "26 juillet";
        var date2 = "2 Ao&ucirc;t";
        var date1 = "9 Ao&ucirc;t";
    } else if (lang == "spa") {
        var nomChoisirOption = "Elija una opci&oacute;n";
        var date8 = "21 de Junio";
        var date7 = "28 de Junio";
        var date6 = "5 de Julio";
        var date5 = "12 de Julio";
        var date4 = "19 de Julio";
        var date3 = "26 de Julio";
        var date2 = "2 de Agosto";
        var date1 = "9 de Agosto";
    } else {
        var nomChoisirOption = "Choose an option";
        var date8 = "June 21";
        var date7 = "June 28";
        var date6 = "July 5";
        var date5 = "July 12";
        var date4 = "July 19";
        var date3 = "July 26";
        var date2 = "August 2";
        var date1 = "August 9";
    }
    
    //select the dropbox and nbWeeks
    var boxWeek = document.getElementById("programme_liste");
    var nbWeeks = boxWeek.options[boxWeek.selectedIndex].getAttribute("value").substring(0, 1);

    //Clear dropbox
    document.getElementById("date_debut_cours").innerHTML = "";
    newOption("0", nomChoisirOption);

    if (nbWeeks > 0 && nbWeeks < 9) newOption("21 Juin", date8);
    if (nbWeeks > 0 && nbWeeks < 8) newOption("28 Juin", date7);
    if (nbWeeks > 0 && nbWeeks < 7) newOption("5 Juillet", date6);
    if (nbWeeks > 0 && nbWeeks < 6) newOption("12 Juillet", date5);
    if (nbWeeks > 0 && nbWeeks < 5) newOption("19 Juillet", date4);
    if (nbWeeks > 0 && nbWeeks < 4) newOption("26 Juillet", date3);
    if (nbWeeks > 0 && nbWeeks < 3) newOption("2 Aout", date2);
    if (nbWeeks > 0 && nbWeeks < 2) newOption("9 Aout", date1);

    function newOption(_value, _innerHTML) {
        newOptions = document.createElement("option");
        newOptions.innerHTML = _innerHTML;
        newOptions.value = _value;
        document.getElementById("date_debut_cours").appendChild(newOptions);                    
    }
}


function refreshValidation(lang) {
    frmvalidator.clearAllValidations();

    if (lang == "fra") {
        var reqAlert = "Veuillez compléter ce champ.";
        var dateAlert = "Mauvais format de date. Voici le bon format : jj/mm/aaaa";
        var numberAlert = "Seuls des chiffres sont acceptés.";
        var radioAlert = "Veuillez faire une sélection.";
        var emailAlert = "Adresse courriel non valide.";
        var selectAlert = "Choisissez une option.";
        var declarationAlert = "Vous devez accepter les termes et conditions pour continuer.";
    } else if (lang == "spa") {
        var reqAlert = "Por favor, complete el campo.";
        var dateAlert = "Mala formato de fecha. Aquí está el formato correcto: dd/mm/aaaa";
        var numberAlert = "Sólo se aceptan los números.";
        var radioAlert = "Por favor haga una selección.";
        var emailAlert = "E-mail no es válido.";
        var selectAlert = "Elija una opción.";
        var declarationAlert = "Debes aceptar los términos y condiciones para continuar.";
    } else {
        var reqAlert = "Please fill this field.";
        var dateAlert = "Bad date format. Use this one : yyyy/mm/dd";
        var numberAlert = "Only numbers are accepted.";
        var radioAlert = "Please check an option.";
        var emailAlert = "Invalid email address";
        var selectAlert = "Please select an option.";
        var declarationAlert = "You must accept the terms and conditions to continue.";
    }


    //Validation des informations personnelles
    frmvalidator.addValidation("info_perso_prenom", "req", reqAlert);
    frmvalidator.addValidation("info_perso_nom", "req", reqAlert);
    frmvalidator.addValidation("info_perso_naissance_jour", "minlen=2", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_jour", "gt=0", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_jour", "lt=32", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_mois", "req", reqAlert);
    frmvalidator.addValidation("info_perso_naissance_mois", "num", numberAlert);
    frmvalidator.addValidation("info_perso_naissance_mois", "maxlen=2", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_mois", "minlen=2", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_mois", "gt=0", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_mois", "lt=13", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_annee", "req", reqAlert);
    frmvalidator.addValidation("info_perso_naissance_annee", "num", numberAlert);
    frmvalidator.addValidation("info_perso_naissance_annee", "maxlen=4", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_annee", "minlen=4", dateAlert);
    frmvalidator.addValidation("info_perso_naissance_annee", "gt=0", dateAlert);
    frmvalidator.addValidation("info_perso_rbox_sexe", "selone_radio", radioAlert);

    frmvalidator.addValidation("info_perso_telephone", "req", reqAlert);
    frmvalidator.addValidation("info_perso_pays", "req", reqAlert);
    frmvalidator.addValidation("info_perso_code_postal", "req", reqAlert);
    frmvalidator.addValidation("info_perso_adresse", "req", reqAlert);

    frmvalidator.addValidation("info_perso_nationalite", "req", reqAlert);

    frmvalidator.addValidation("info_perso_courriel", "req", reqAlert);
    frmvalidator.addValidation("info_perso_courriel", "email", emailAlert);

    //Validation du programme
    frmvalidator.addValidation("programme_liste", "dontselect=0", selectAlert);

    //Validation du début du programme
    frmvalidator.addValidation("date_debut_cours", "dontselect=0", selectAlert);

    //Validation de l'hébergement
    frmvalidator.addValidation("hebergement_liste", "dontselect=0", selectAlert);
    if (document.getElementById("hebergement_liste").selectedIndex > 1) {
        frmvalidator.addValidation("hebergement_date_prem_nuit", "req", reqAlert);
        frmvalidator.addValidation("hebergement_date_der_nuit", "req", reqAlert);
    }

    //Validation de l'accueil à l'aéroport
    frmvalidator.addValidation("aeroport_accueil", "dontselect=0", selectAlert);
    /*if (document.getElementById("aeroport_accueil").selectedIndex > 1) {
    frmvalidator.addValidation("aeroport_date_arrivee", "req", reqAlert);
    frmvalidator.addValidation("aeroport_heure_arrivee", "req", reqAlert);
    frmvalidator.addValidation("aeroport_nom", "req", reqAlert);
    frmvalidator.addValidation("aeroport_nom_compagnie", "req", reqAlert);
    frmvalidator.addValidation("aeroport_provenance_vol", "req", reqAlert);
    frmvalidator.addValidation("aeroport_numero_vol", "req", reqAlert);
    }*/


    //Validation de l'assurance
    frmvalidator.addValidation("assurance_liste", "dontselect=0", selectAlert);
    if (document.getElementById("assurance_liste").selectedIndex > 1) {
        frmvalidator.addValidation("assurance_date_prem_nuit", "req", reqAlert);
        frmvalidator.addValidation("assurance_date_der_nuit", "req", reqAlert);
    }

    //validation de la déclaration
    frmvalidator.addValidation("declaration", "shouldselchk", declarationAlert);
}


function run_calendar(lang) {

    //Tableau pour les langues du tableau
    var langArray
    if (lang == "fra") {
        langArray =
		{
		    'days': {
		        'char': ['D', 'L', 'M', 'M', 'J', 'V', 'S'],
		        'short': ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
		        'mid': ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
		        'long': ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']
		    },
		    'months': {
		        'short': ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aou', 'Sep', 'Oct', 'Nov', 'Dec'],
		        'long': ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
		    },
		    'am_pm': {
		        'lowerCase': ['am', 'pm'],
		        'upperCase': ['AM', 'PM']
		    }
		};
    } else if (lang == "spa") {
        langArray =
		{
		    'days': {
		        'char': ['S', 'L', 'M', 'M', 'J', 'V', 'S'],
		        'short': ['So', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
		        'mid': ['Dom', 'Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb'],
		        'long': ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado']
		    },
		    'months': {
		        'short': ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
		        'long': ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre']
		    },
		    'am_pm': {
		        'lowerCase': ['am', 'pm'],
		        'upperCase': ['AM', 'PM']
		    }

		};
    }

    var calender1 = new Calendar("calendar1", "cal1_toggler", { inputField: 'hebergement_date_prem_nuit',
        offset: { x: -263 },
        dateFormat: 'Y/m/d',
        idPrefix: 'cal1',
        language: langArray,
        onSelect: function() { calcNbSemaine("hebergement"); this.closeCalendar(); },
        weekend: []
    });



    var calender2 = new Calendar("calendar2", "cal2_toggler", { inputField: 'hebergement_date_der_nuit',
        offset: { x: -263 },
        dateFormat: 'Y/m/d',
        idPrefix: 'cal2',
        language: langArray,
        onSelect: function() { calcNbSemaine("hebergement"); this.closeCalendar(); },
        weekend: []
    });


    var calender3 = new Calendar("calendar3", "cal3_toggler", { inputField: 'assurance_date_prem_nuit',
        offset: { x: -263 },
        dateFormat: 'Y/m/d',
        idPrefix: 'cal3',
        language: langArray,
        onSelect: function() { this.closeCalendar(); },
        weekend: []
    });

    var calender4 = new Calendar("calendar4", "cal4_toggler", { inputField: 'assurance_date_der_nuit',
        offset: { x: -263 },
        dateFormat: 'Y/m/d',
        idPrefix: 'cal4',
        language: langArray,
        onSelect: function() { calcNbSemaine("assurance"); this.closeCalendar(); },
        weekend: []
    });

    var calenderAero1 = new Calendar("calendarAero1", "calAero1_toggler", { inputField: 'aeroport_date_arrivee',
        offset: { x: -263 },
        dateFormat: 'Y/m/d',
        idPrefix: 'calA1',
        language: langArray,
        onSelect: function() { calcNbSemaine("assurance"); this.closeCalendar(); },
        weekend: []
    });
}


function calcNbSemaine(section) {
    var date_debut_str = document.getElementById(section + "_date_prem_nuit").value;
    var date_fin_str = document.getElementById(section + "_date_der_nuit").value;

    if (date_debut_str != "" && date_fin_str != "") {
        var date_debut = new Date(date_debut_str);
        var date_fin = new Date(date_fin_str);

        var one_day = 86400000; /*une journée en miliseconde*/
        var delta_date = (date_fin.getTime() - date_debut.getTime()) / one_day;


        document.getElementById(section + "_nb_semaine").value = Math.floor(delta_date / 7);
        document.getElementById(section + "_nb_jour").value = Math.round(delta_date % 7);

    }
}


function herbegement_select_change() {

    if (document.getElementById("hebergement_liste").selectedIndex <= 1) {

        document.getElementById("redStar1").style.visibility = "hidden";
        document.getElementById("redStar2").style.visibility = "hidden";
        document.getElementById("calendarLink1").style.visibility = "hidden";
        document.getElementById("calendarLink2").style.visibility = "hidden";

        document.getElementById("hebergement_date_prem_nuit").disabled = true;
        document.getElementById("hebergement_date_der_nuit").disabled = true;

    } else {
        document.getElementById("redStar1").style.visibility = "visible";
        document.getElementById("redStar2").style.visibility = "visible";
        document.getElementById("calendarLink1").style.visibility = "visible";
        document.getElementById("calendarLink2").style.visibility = "visible";
        document.getElementById("hebergement_date_prem_nuit").disabled = false;
        document.getElementById("hebergement_date_der_nuit").disabled = false;
    }
}

function aeroport_change_select() {
    if (document.getElementById("aeroport_accueil").selectedIndex <= 1) {
        document.getElementById("redStarAero1").style.visibility = "hidden";
        document.getElementById("redStarAero2").style.visibility = "hidden";
        document.getElementById("redStarAero3").style.visibility = "hidden";
        document.getElementById("redStarAero4").style.visibility = "hidden";
        document.getElementById("redStarAero5").style.visibility = "hidden";
        document.getElementById("redStarAero6").style.visibility = "hidden";

        document.getElementById("calendarLinkAero1").style.visibility = "hidden";

        document.getElementById("aeroport_date_arrivee").disabled = true;
        document.getElementById("aeroport_heure_arrivee").disabled = true;
        document.getElementById("aeroport_nom").disabled = true;
        document.getElementById("aeroport_nom_compagnie").disabled = true;
        document.getElementById("aeroport_provenance_vol").disabled = true;
        document.getElementById("aeroport_numero_vol").disabled = true;
    } else {
        document.getElementById("redStarAero1").style.visibility = "visible";
        document.getElementById("redStarAero2").style.visibility = "visible";
        document.getElementById("redStarAero3").style.visibility = "visible";
        document.getElementById("redStarAero4").style.visibility = "visible";
        document.getElementById("redStarAero5").style.visibility = "visible";
        document.getElementById("redStarAero6").style.visibility = "visible";

        document.getElementById("calendarLinkAero1").style.visibility = "visible";

        document.getElementById("aeroport_date_arrivee").disabled = false;
        document.getElementById("aeroport_heure_arrivee").disabled = false;
        document.getElementById("aeroport_nom").disabled = false;
        document.getElementById("aeroport_nom_compagnie").disabled = false;
        document.getElementById("aeroport_provenance_vol").disabled = false;
        document.getElementById("aeroport_numero_vol").disabled = false;
    }
}


function assurance_change_select() {
    if (document.getElementById("assurance_liste").selectedIndex <= 1) {
        document.getElementById("redStar3").style.visibility = "hidden";
        document.getElementById("redStar4").style.visibility = "hidden";

        document.getElementById("calendarLink3").style.visibility = "hidden";
        document.getElementById("calendarLink4").style.visibility = "hidden";

        document.getElementById("assurance_date_prem_nuit").disabled = true;
        document.getElementById("assurance_date_der_nuit").disabled = true;
    } else {
        document.getElementById("redStar3").style.visibility = "visible";
        document.getElementById("redStar4").style.visibility = "visible";

        document.getElementById("calendarLink3").style.visibility = "visible";
        document.getElementById("calendarLink4").style.visibility = "visible";

        document.getElementById("assurance_date_prem_nuit").disabled = false;
        document.getElementById("assurance_date_der_nuit").disabled = false;
    }
}



