var VALIDATEUR = {

    _REGEX_EMAIL : /^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/,
    _REGEX_TELEPHONE : /^(\([2-9]|[2-9])(\d{2}|\d{2}\))(-|.|\s)?\d{3}(-|.|\s)?\d{4}$/,
    _REGEX_CODE_POSTAL : /^[abceghjklmnprstvxyABCEGHJKLMNPRSTVXY][0-9][abceghjklmnprstvwxyzABCEGHJKLMNPRSTVWXYZ]{0,1}[0-9][abceghjklmnprstvwxyzABCEGHJKLMNPRSTVWXYZ][0-9]$/,
    
    Prenom : function(_prenom, _id){
        if (_prenom.length == 0)
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "Erreur : Vous devez entrez votre prénom!";
        }
        else
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "";
        }
    },

    Nom : function(_nom, _id){
        if (_nom.length == 0)
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "Erreur : Vous devez entrer votre nom!";
        }
        else
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "";
        }
    },

    Telephone : function(_telephone, _id, _obligatoire){
        if (_obligatoire != undefined)
        {
            var exp = new RegExp(this._REGEX_TELEPHONE);
            if (_obligatoire)
            {
                if (!exp.test(_telephone))
                {
                    YAHOO.util.Dom.get(_id + "Valid").innerHTML = "Le numéro de téléphone entré n'a pas un format valide.";
                }
                else
                {
                    YAHOO.util.Dom.get(_id + "Valid").innerHTML = "";
                }
            }
            else
            {
                if (_telephone.length > 0)
                {
                    if (!exp.test(_telephone))
                    {
                        YAHOO.util.Dom.get(_id + "Valid").innerHTML = "Le numéro de téléphone entré n'a pas un format valide.";
                    }
                    else
                    {
                        YAHOO.util.Dom.get(_id + "Valid").innerHTML = "";
                    }
                }
                else
                {
                    YAHOO.util.Dom.get(_id + "Valid").innerHTML = "";
                }
            }
        }
    },

    Email : function(_email, _id){
        var exp = new RegExp(this._REGEX_EMAIL);
        if (!exp.test(_email))
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "L'adresse de courriel n'a pas un format valide.";
        }
        else
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "";
        }
    },

    CodePostal : function(_codepostal, _id){
        var exp = new RegExp(this._REGEX_CODE_POSTAL);
        if (!exp.test(_codepostal))
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "Le code-postal n'a pas un format valide.";
        }
        else
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "";
        }
    },

    Adresse : function(_adresse, _id){
        if (_adresse.length == 0)
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "Vous devez entrer votre adresse.";
        }
        else
        {
            YAHOO.util.Dom.get(_id + "Valid").innerHTML = "";
        }
    },

    PersonneReference : function(_pr){
        var pr = _pr[0];
        if (pr.nom.value == "" && pr.lien.value != "" || pr.tel.value != "")
        {
            YAHOO.util.Dom.get(pr.nom.id + "Valid").innerHTML = "En entrant un lien ou un numéro de téléphone d'une personne référence, vous devez entrer le nom de la personne référence.";
        }
        else
        {
            YAHOO.util.Dom.get(pr.nom.id + "Valid").innerHTML = "";
        }
    },

    Valider : function(_champ, _donnee, _obligatoire, _id){
        switch (_champ)
        {
            case "Prenom":
                this.Prenom(_donnee, _id);
                break;
            case "Nom":
                this.Nom(_donnee, _id);
                break;
            case "Telephone":
                this.Telephone(_donnee, _id, _obligatoire);
                break;
            case "Email":
                this.Email(_donnee, _id);
                break;
            case "CodePostal":
                this.CodePostal(_donnee, _id);
                break;
            case "Adresse":
                this.Adresse(_donnee, _id);
                break;
        }
    }
}
