// CUSTOM METHODS
$.validator.addMethod("loginIsUnique", function(varlogin) {
    //Make sure that the requested login isn't already taken
    var isUnique = true;
    
    var getLogin = $.ajax({ 
        type: "POST", 
        url: "libs/jquery/validate/get.php", 
        data: {login: varlogin}, 
        dataType: "text", 
        async: false
    }).responseText;
    
    if ((getLogin.length-1) > 0) {
        isUnique = false;
    }
    
    return isUnique;
}, 'Unavailable login');

$.validator.addMethod("emailIsUnique", function(varemail) {
    //Make sure that the requested email isn't already taken
    var isUnique = true;
    
    var getEmail = $.ajax({ 
        type: "POST", 
        url: "libs/jquery/validate/get.php", 
        data: {email: varemail}, 
        dataType: "text", 
        async: false
    }).responseText;
    
    if ((getEmail.length-1) > 0) {
        isUnique = false;
    }
    
    return isUnique;
}, 'Unavailable email address');



// Call the validator
$().ready(function() {
    // validate signup form on keyup and submit
    $("#form_join").validate({
    
        rules: {
            login: {
                required: true,
                minlength: 2,
                maxlength: 10, 
                loginIsUnique: true
            },
            email: {
                required: true,
                email: true, 
                emailIsUnique: true
            },
            pass1: {
                required: true,
                minlength: 6,
                maxlength: 32
            },
            pass2: {
                required: true,
                minlength: 6,
                maxlength: 32, 
                equalTo: "#pass1"
            }, 
            
            lastname: {
                required: true,
                minlength: 3,
                maxlength: 100
            },
            firstname: {
                required: true,
                minlength: 3,
                maxlength: 100
            },
            birthdate: "required", 
            telephone: "number",
            
            team: "required", 
            id_team: {
                required: "#team_join:checked"
            }, 
            team_name: {
                required: "#team_new:checked", 
                minlength: 1 
            }, 
            team_url: {
                url: true
            }, 
            team_password: {
                maxlength: 32
            },
            team_join_password: {
                maxlength: 32
            },
            
            poll1: "required", 
            poll2: "required", 
            poll4: "required"
        }, 
        messages: {
            login: {
                required: "Entrez un login",
                minlength: "2 caractères minimum", 
                maxlength: "10 caractères maximum", 
                loginIsUnique: "Ce login est déjà pris"
            },
            email: {
                required: "Entrez un email",
                email: "L'email doit être valide", 
                emailIsUnique: "Cet email est déjà pris"
            },
            pass1: {
                required: "Entrez un mot de passe",
                minlength: "6 caractères minimum", 
                maxlength: "32 caractères maximum"
            },
            pass2: {
                required: "Entrez un mot de passe",
                minlength: "6 caractères minimum", 
                maxlength: "32 caractères maximum",
                equalTo: "Entrez à  nouveau la même valeur"
            },
            
            lastname: {
                required: "Entrez votre nom",
                minlength: "3 caractères minimum",
                maxlength: "100 caractères maximum"
            },
            firstname: {
                required: "Entrez votre prénom",
                minlength: "3 caractères minimum",
                maxlength: "100 caractères maximum"
            },
            birthdate: "Entre votre date de naissance",
            telephone: "Utilisez uniquement des numéros", 
            
            team: "Choisissez l'une des options",
            id_team: {
                required: "Sélectionnez une équipe"
            },
            team_name: {
                required: "Entrez un nom",
                minlength: "1 caractère minimum"
            }, 
            team_url: {
                url: "Entrez une url valide"
            }, 
            team_password: {
                maxlength: "32 caractères maximum"
            },
            team_join_password: {
                maxlength: "32 caractères maximum"
            },
            
            poll1: "Sélectionnez une réponse", 
            poll2: "Sélectionnez une réponse", 
            poll4: "Sélectionnez une réponse"
        }
    })
    
    $("#form_profile").validate({
    
        rules: {
            current_password: {
                required: "#pass1:filled",
                required: "#pass2:filled"
            },
            pass1: {
                minlength: 4,
                maxlength: 32
            },
            pass2: {
                minlength: 4,
                maxlength: 32,
                equalTo: "#pass1"
            }, 
            lastname: {
                required: true,
                minlength: 3,
                maxlength: 100
            },
            firstname: {
                required: true,
                minlength: 3,
                maxlength: 100
            },
            birthdate: "required", 
            telephone: "number",
            
            team: "required", 
            id_team: {
                required: "#team_join:checked"
            }, 
            team_name: {
                required: "#team_new:checked", 
                minlength: 1 
            }, 
            team_url: {
                url: true
            }
        }, 
        messages: {
            lastname: {
                required: "Entrez votre nom",
                minlength: "3 caractères minimum",
                maxlength: "100 caractères maximum"
            },
            firstname: {
                required: "Entrez votre prénom",
                minlength: "3 caractères minimum",
                maxlength: "100 caractères maximum"
            },
            birthdate: "Entre votre date de naissance",
            telephone: "Utilisez uniquement des numéros", 
            
            team: "Choisissez l'une des options",
            id_team: {
                required: "Sélectionnez une équipe"
            },
            team_name: {
                required: "Entrez un nom",
                minlength: "1 caractère minimum"
            }, 
            team_url: {
                url: "Entrez une url valide"
            }
        }
    })
    
    $("#form_login").validate({

        rules: {
            login: {
                required: true,
                minlength: 2,
                maxlength: 10
            },
            password: {
                required: true,
                minlength: 6,
                maxlength: 32
            }
        }, 
        messages: {
            login: {
                required: "Entrez un login",
                minlength: "2 caractères minimum",
                maxlength: "10 caractères maximum"
            },
            password: {
                required: "Entrez un mot de passe",
                minlength: "6 caractères minimum",
                maxlength: "32 caractères maximum"
            }
        }
    })
});