function checkGenericForm(formname,lg){
    
    var emptyError = false;
    var emailError = false;
    var phoneError = false;
    
    var hi_color = "#FFA800";
    var lo_color = "#FFFFFF";
    var form_color = "none";
    
    //Expressions régulieres
    var facultatif   = /facultatif/;
    var emailName    = /courriel/; // i signifie insensible à la case
    var phoneName    = /telephone/;
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/ ;
    var phonePattern = /^\(\d\d\d\)[- ]\d\d\d[- ]\d\d\d\d$/ ;
    
    // Premierement, on s'assure que le formulaire va appeler genericFormController.php
    document.forms[formname].action = 'genericFormController.php';
    
    for(var i=0; i< document.forms[formname].elements.length; i++) {
        //textbox
        if (document[formname].elements[i].type == "text") {
            //Si le champs est vide, on le surligne
            if ((document[formname].elements[i].value == "") && (facultatif.test(document[formname].elements[i].name) == false)) {
                emptyError = true;
                document[formname].elements[i].style.background=hi_color;
            // Le champs n'est pas vide
            } else if(document[formname].elements[i].value != "") {
                // Si le champs est un courriel, la validation email doit etre faite
                if(emailName.test(document[formname].elements[i].name)){
                    if(emailPattern.test(document[formname].elements[i].value) == false){
                        emailError = true;
                        document[formname].elements[i].style.background=hi_color;
                    }else{
                        document[formname].elements[i].style.background=lo_color;
                    }
                }
                // Si un numéro de téléphone, la validation phone doit etre faite
                else if(phoneName.test(document[formname].elements[i].name)){
                    if(phonePattern.test(document[formname].elements[i].value) == false){
                        phoneError = true;
                        document[formname].elements[i].style.background=hi_color;
                    }else{
                        document[formname].elements[i].style.background=lo_color;
                    }
                }
                else{
                    // tous les tests passent, la couleur du champs est remis à l'original
                    document[formname].elements[i].style.background=lo_color;
                }
            }
        }
        //else if (document[formname].elements[i].type == "radio") {
        //    btn = document[formname].elements[i];
        //    if(!radio_btns[btn.name]) { radio_btns[btn.name] = 0; } //si le groupe de bouton n'est pas encore dans le tableau, mettre 0
        //    if(btn.checked) { radio_btns[btn.name] = 1; } // Si ce bouton est cocher, mettre 1  
        //}
    }        
    /*
    if(typeof(radio_btns) != "undefined"){                 
        for(var k in radio_btns)
        {
            if(!radio_btns[k]) {
                showError = true;
                //ce group de bouton sera surligné.
                document.getElementById(k).style.background=hi_color;
            } else {
                document.getElementById(k).style.background=form_color;
            }
        }
    }
             */
    // Affichage de l'erreur
    if (emptyError) {
        if(lg == 'en'){
            alert("Required information missing. The missing fields have been highlighted.");
        }
        else{
            alert("Le formulaire n'a pas été correctement remplis. Les champs manquants ont été surligné.");
        }
        return false;
    }
    else if (emailError){
        if(lg == 'en'){
            alert("Email format is incorrect.");
        }
        else{
            alert("Le format de l'adresse de courriel est invalide. Les champs fautifs ont été surligné.");
        }
        return false;
    }
    else if (phoneError){
        if(lg == 'en'){
            alert("Phone number is incorrect.");
        }
        else{
            alert("Le format du numéro de téléphone est invalide. Les champs fautifs ont été surligné.");
        }
        return false;
    }
    else{
        return true;
    }
}
