function JoursFeries(an){
    var JourAn = new Date(an, "00", "01")
    var FeteTravail = new Date(an, "04", "01")
    var Victoire1945 = new Date(an, "04", "08")
    var FeteNationale = new Date(an, "06", "14")
    var Assomption = new Date(an, "07", "15")
    var Toussaint = new Date(an, "10", "01")
    var Armistice = new Date(an, "10", "11")
    var Noel = new Date(an, "11", "25")
    //var SaintEtienne = new Date(an, "11", "26") 
    
    var G = an % 19
    var C = Math.floor(an / 100)
    var H = (C - Math.floor(C / 4) - Math.floor((8 * C + 13) / 25) + 19 * G + 15) % 30
    var I = H - Math.floor(H / 28) * (1 - Math.floor(H / 28) * Math.floor(29 / (H + 1)) * Math.floor((21 - G) / 11))
    var J = (an * 1 + Math.floor(an / 4) + I + 2 - C + Math.floor(C / 4)) % 7
    var L = I - J
    var MoisPaques = 3 + Math.floor((L + 40) / 44)
    var JourPaques = L + 28 - 31 * Math.floor(MoisPaques / 4)
    var Paques = new Date(an, MoisPaques - 1, JourPaques)
    var VendrediSaint = new Date(an, MoisPaques - 1, JourPaques - 2)
    var LundiPaques = new Date(an, MoisPaques - 1, JourPaques + 1)
    var Ascension = new Date(an, MoisPaques - 1, JourPaques + 39)
    var Pentecote = new Date(an, MoisPaques - 1, JourPaques + 49)
    // var LundiPentecote = new Date(an, MoisPaques-1, JourPaques+50) 
    
    return new Array(JourAn, VendrediSaint, Paques, LundiPaques, FeteTravail, Victoire1945, Ascension, Pentecote, FeteNationale, Assomption, Toussaint, Armistice, Noel)
}

function recherche_rapide(tableau, valeur){
    var chaine = "|" + tableau.join("|") + "|";
    if (chaine.indexOf("|" + valeur + "|") == -1) 
        return true;
    else 
        return false;
}

function verif_jour(la_date){
    if (la_date.getDay() == 0 || la_date.getDay() == 6) {
        return false;
    }
    else {
        return true;
    }
}

function valid(theForm){

    if (theForm.civ_devis[0].checked == false && theForm.civ_devis[1].checked == false && theForm.civ_devis[2].checked == false) {
        alert("Vous devez indiquer votre civilité.");
        theForm.civ_devis[0].focus();
        return (false);
    }
    
    if (theForm.nom_devis.value == "") {
        alert("Vous devez saisir un nom.");
        theForm.nom_devis.focus();
        return (false);
    }
    
    if (theForm.prenom_devis.value == "") {
        alert("Vous devez saisir un prénom.");
        theForm.prenom_devis.focus();
        return (false);
    }
    
    if (theForm.mail_devis.value == "") {
        alert("Vous devez saisir votre e-mail.");
        theForm.mail_devis.focus();
        return (false);
    }
    
    if (!controlemail(theForm.mail_devis)) {
        theForm.mail_devis.focus();
        return (false);
    }
    
    if (theForm.tel_devis.value == "") {
        alert("Vous devez saisir votre téléphone.");
        theForm.tel_devis.focus();
        return (false);
    }
    
    if (theForm.tel_devis.value.length < 10) {
        alert("Votre numéro de téléphone doit contenir 10 chiffres");
        theForm.tel_devis.focus();
        return (false);
    }
    
    if (!validchiffres(theForm.tel_devis, '.- ', 'Le téléphone')) {
        theForm.tel_devis.focus();
        return (false);
    }
    
    if (theForm.fax_devis.value != "") {
    
        if (theForm.fax_devis.value.length < 10) {
            alert("Votre fax doit contenir 10 chiffres");
            theForm.fax_devis.focus();
            return (false);
        }
        
        if (!validchiffres(theForm.fax_devis, '.- ', 'Le fax')) {
            theForm.fax_devis.focus();
            return (false);
        }
    }
    
    if (theForm.adr_devis.value == "") {
        alert("Vous devez saisir l'adresse.");
        theForm.adr_devis.focus();
        return (false);
    }
    
    if (theForm.cp_devis.value == "") {
        alert("Vous devez saisir le code postal.");
        theForm.cp_devis.focus();
        return (false);
    }
    
    if (theForm.cp_devis.value.length < 5) {
        alert("Votre code postal doit contenir 5 chiffres");
        theForm.cp_devis.focus();
        return (false);
    }
    
    if (!validchiffres(theForm.cp_devis, '', 'Le code postal')) {
        theForm.cp_devis.focus();
        return (false);
    }
    
    if (theForm.ville_devis.value == "") {
        alert("Vous devez saisir la ville.");
        theForm.ville_devis.focus();
        return (false);
    }
    
    if (theForm.budget.value == "") {
        alert("Vous devez saisir un budget par personne.");
        theForm.budget.focus();
        return (false);
    }
    
    if (theForm.nbpersonne.value == "") {
        alert("Vous devez saisir le nombre de personne.");
        theForm.nbpersonne.focus();
        return (false);
    }
    
    if (theForm.jj.value == "" && theForm.mm.value == "" && theForm.aaaa.value == "") {
        alert("Vous devez saisir une date");
        theForm.jj.focus();
        return (false);
    }
    
    if (!validchiffres(theForm.jj, '', 'Le champ \"Date\"')) {
        theForm.jj.focus();
        return (false);
    }
    
    if (!validchiffres(theForm.mm, '', 'Le champ \"Date\"')) {
        theForm.mm.focus();
        return (false);
    }
    
    if (!validchiffres(theForm.aaaa, '', 'Le champ \"Date\"')) {
        theForm.aaaa.focus();
        return (false);
    }
    
    if (!testDate(theForm.jj, theForm.mm, theForm.aaaa)) {
        theForm.jj.focus();
        return (false);
    }
    
    if (!recherche_rapide(JoursFeries(theForm.aaaa.value), new Date(theForm.aaaa.value, Number(theForm.mm.value) - 1, theForm.jj.value))) {
        alert("Désolé nous ne livrons pas à cette date");
        theForm.jj.focus();
        return (false);
    }
    
    if (!verif_jour(new Date(theForm.aaaa.value, Number(theForm.mm.value) - 1, theForm.jj.value))) {
        alert("Désolé mais nous ne livrons pas le samedi et le dimanche");
        theForm.jj.focus();
        return (false);
        
    }
    
    return (true);
}
