





function selectForfaitVisible() {
    var radiobox = document.getElementsByName("radio_forfait");
    var selectbox;

    for (var i = 0; i < radiobox.length; i++) {
        selectbox = document.getElementById(radiobox[i].value);

        selectbox.disabled = "disabled";
        selectbox.options[0].selected = true;
        
        if (radiobox[i].checked == true) {
            selectbox.disabled = ""; 
        }
    }
    
    
}


function chargerDateForfait(lang) {
    if (typeof lang == "undefined") {
       lang = "fra";
   }

    

    /*Créer l'objet ajax*/
    if (window.XMLHttpRequest) {    // Object of the current windows
        xhr = new XMLHttpRequest();     // Firefox, Safari, ...
    } else if (window.ActiveXObject) {   // ActiveX version
        xhr = new ActiveXObject("Microsoft.XMLHTTP");  // Internet Explorer
    } 
    
    
    
    /*Fonction de retour*/
    xhr.onreadystatechange = function() { // instructions to process the response
        if (xhr.readyState == 4) {

            var numForfait = getRadioValue("radio_forfait");

            var selBox = document.getElementById(numForfait);
            var nbSemaine = selBox.options[selBox.selectedIndex].getAttribute("semaines");


            var selectDate = document.getElementById("date_forfait");

            var xmlObj = xhr.responseXML.getElementsByTagName("config")[0];
            var lengthDate = xmlObj.getElementsByTagName("date").length;

            var xmlDate;
            var lengthForfait;
            var xmlForfait;

            var newOptions;

            var nomChoisirOption;

            if (lang == "eng") {
                nomChoisirOption = "Choose an option";
            } else if (lang == "spa") {
                nomChoisirOption = "Elija una opci&oacute;n";
            } else {
                nomChoisirOption = "Choisissez une option";     
            }




            document.getElementById("selDate").innerHTML = "";

            newOptions = document.createElement("option");
            newOptions.innerHTML = nomChoisirOption;
            newOptions.value = "0";
            document.getElementById("selDate").appendChild(newOptions);

            //Création du listbox des dates
            for (var i = 0; i < lengthDate; i++) {
                xmlDate = xmlObj.getElementsByTagName("date")[i];
                lengthForfait = xmlDate.getElementsByTagName("forfait").length;

                for (var j = 0; j < lengthForfait; j++) {
                    xmlForfait = xmlDate.getElementsByTagName("forfait")[j];
                    if (xmlForfait.getAttribute("forfait") == numForfait && xmlForfait.getAttribute("semaine") == nbSemaine) {
                        newOptions = document.createElement("option");
                        newOptions.innerHTML = xmlDate.getAttribute("date");
                        newOptions.value = xmlDate.getAttribute("date");
                        document.getElementById("selDate").appendChild(newOptions);
                    }
                }
            }
            document.getElementById("selDate").disabled = false;

        }
    };

    /*Envoyer la demande*/
    xhr.open('GET', '../xml/config_date.xml', true);
    xhr.send(null); 
}


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("radio_forfait", "selone_radio", radioAlert);
    if (getRadioValue("radio_forfait") != undefined) {
        frmvalidator.addValidation(getRadioValue("radio_forfait"), "dontselect=0", selectAlert);
    }

    //Validation du début du programme
    frmvalidator.addValidation("selDate", "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);
    /*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_date_prem_nuit", "req", reqAlert);
    frmvalidator.addValidation("assurance_date_der_nuit", "req", reqAlert);


    //validation de la déclaration
    frmvalidator.addValidation("declaration", "shouldselchk", declarationAlert);
}


function getRadioValue(radioN) {
    for (i = 0; i < document.getElementsByName(radioN).length; i++) {
        if (document.getElementsByName(radioN)[i].checked == true)
            return document.getElementsByName(radioN)[i].value;
    }

}

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() { 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() { 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 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;
    }
}

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);

    }
}