/*
 *  @Version 1.0
 *  @Autor David GRAFFAGNINO
 */

/*
 * Cette page permet de faire de verification de formulaire en javascript grace a jquery.
 * L'appel de jquery est indispensable pour faire foncftion ces fonction
 */

/*
 * verification_formulaire() permet la verification total du formulaire
 */

/*
 * Liste des differente verification
 * notNull => verrifie si un champs est vide
 * vEmail => verrifie la bonne constitution d'un email
 * vNumeroFr = > verrifie si un numero es bien au format français 01.02.03.04.05 ou +033.6.01.02.03.04
 * vConf => verrifie que le champs id = x est bien egale au champs id = xConf
 */

/*
 *  verification_formulaire(idFormulaire)
 *  @param idFormulaire
 *  @return rien 
 *  Cette fonction permet l'appel des autres
 */

function verrification_formulaire(idFormulaire)
{
    var message = "";

    //verification des champs de type input
    $("form#" + idFormulaire + " input").each(
        function()
        {
            //lister les elements du formulaire

            //Récuperation de la class de lélément si elle exite
            var classElement = $(this).attr("class");

            if(classElement == "notNull")
                message = message + "" + notNull($(this));

            if(classElement == "vEmail")
                message = message + "" + vEmail($(this));

            if(classElement == "vNumeroFr")
                message = message + "" + vNumeroFr($(this));

            if(classElement == "vConf")
                message = message + "" + vConf($(this), idFormulaire);
        }
    );

    if(message == "")
        return true;
    else
    {
        alert(message);
        return false;
    }
}

/*
 * notNull(champs)
 * @param champ
 * @return message d'erreur si le champs est vide
 */

function notNull(champ)
{ 
    var message = ""

    if(champ.attr("value") == "" || champ.attr("value") == null)
        message = "Le champ " + champ.attr("id") + " est obligatoire.\n";

    return message;
}

/*
 * vEmail(champs)
 * @param champ
 * @return message d'erreur si le champs est vide
 */

function vEmail(champ)
{
    var message = notNull(champ);
    var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

    if(message == "")
    {
        if((reg.test(champ.attr("value"))) == false)
            message = "Vous devez saisir un adresse email valide dans le champ " + champ.attr("id");
    }

    return message;
}

/*
 * vNumeroFr(champs)
 * @param champ
 * @return message d'erreur si le champs est vide
 */

function vNumeroFr(champ)
{
    var message = notNull(champ);
    var regTelNormal = new RegExp('^(01|02|03|04|05|06|08)[0-9]{8}$');

    if(message == "")
    {
        valeurVerrif = regTelNormal.test(champ.attr("value"));

        if(valeurVerrif == false)
            message = "Vous devez saisir un numero de téléphone valide";
    }

    return message;
}

/*
 * vConf(champ)
 * @param champ
 * @param idFormulaire
 * @retun message d'erreur si le champs est vide
 */
function vConf(champ, idFormulaire)
{
    var message = notNull(champ);
    
    var id = champ.attr('id');
    var validVerrif = $("#"+id+"-confirmation").attr("value");
    
    if(message == "")
    {
        if(champ.attr("value") != validVerrif)
            {
                message = "Vous devez saisir les meme valeur pour les champs \"" + champ.attr("id") + "\" et \"" + champ.attr("id")+" confirmation\"";
            }
    }

    return message;
}
