// $(document).ready(function(){

$("#registration").validate({
    errorClass: "error",
    errorElement : "div",
    groups: {
        birthday: "day month year"  ,
        phone: "TPL_phone1 TPL_phone2 TPL_phone3",
        cellphone: "TPL_cellphone1 TPL_cellphone2 TPL_cellphone3",
        address:"building_number floor_number"
    },

    errorPlacement: function(error, element) {
        if (element.attr("name") == "day"
            || element.attr("name") == "month" || element.attr("name") == "year")
            error.appendTo( element.next("sup") );
        else if(element.attr("name") =="TPL_password"
            || element.attr("name") =="TPL_nick"
            || element.attr("name") =="TPL_name"
            || element.attr("name") =="addresstype")
            error.appendTo( element.next("sup") )
        else if(element.attr("name") =="TPL_phone1"
            || element.attr("name") =="TPL_phone2"
            || element.attr("name") =="TPL_phone3" )
            error.appendTo($("#telephone_hint"));
        else if(element.attr("name") =="TPL_cellphone1"
            || element.attr("name") =="TPL_cellphone2"
            || element.attr("name") =="TPL_cellphone3" )
            error.appendTo($("#cellphone_hint"));
        else if(element.attr("name")=="building_number" ||  element.attr("name")=="floor_number")
            error.appendTo($("#address_hint"));
        else
            error.appendTo( element.next("sup") );
    //error.appendTo( element.next("tr").next("td") );
    //error.insertAfter(element).next('sup');
    },
    rules: {
        TPL_nick: {
            onfocusout: false,
            required: true,
            minlength: 4,
            remote: {
                url: "../includes/checkuserid.inc.php",
                type: "post",
                data: {
                    TPL_nick: function() {
                        return $("#TPL_nick").val();
                    }
                }
            }
        },
        TPL_password: {
            required: true,
            minlength: 6
        },
        TPL_repeat_password: {
            equalTo: "#password"
        },
        TPL_email: {
            required: true,
            email: true
        },
        company_TPL_email: {
            required: true,
            email: true
        },
        TPL_repeat_email: {
            required: true,
            equalTo: "#TPL_email"
        },
        
        TPL_name: {
            required: true
        },
        year: {
            required: true
        },
        month: {
            required: true
        },
        day: {
            required: true
        },
        sex: {
            required: true
              
        },
        nationality: {
            required: true
        },
        addresstype: {
            required:true
        },
        TPL_country: {
            required: true
        },
        child_cities: {
            required: true
        },
        TPL_zip:{
            //required: true,
            digits: true
       },
        TPL_phone1:{
            required: true,
            digits: true
        },
        TPL_phone2:{
            required: true,
            digits: true
        },
        TPL_phone3:{
            required: true,
            digits: true
        },
        
        TPL_cellphone1:{
            required: true,
            digits: true
        },
        TPL_cellphone2:{
            required: true,
            digits: true
        },
        TPL_cellphone3:{
            required: true,
            digits: true
        }
    },
    messages: {
        TPL_nick: {
            required: " Please choose a username.",
            minlength: " Your username must consist of at least 4 characters.",
            remote: " Sorry, this Username is already taken, try different one."
        },
        TPL_password: {
            required: " Please provide a password.",
            minlength: " Your password must be at least 6 characters long."
        },
        TPL_repeat_password: {
            equalTo: " Please enter the same password as above."
        },
        TPL_email: " Please provide a valid email address.",
        company_TPL_email: " Please provide a valid email address.",
        TPL_repeat_email: " Please enter the same email as above.",
        TPL_zip:{
            //required: " This field is required.",
            digits: " Please provide a valid ZIP Code/P.O. Box."
        },
        TPL_phone1:{
            required: " Please provide a valid telephone number.",
            digits: " Please provide a valid telephone number."
        },
        TPL_phone2:{
            required: " Please provide a valid telephone number.",
            digits: " Please provide a valid telephone number."
        },
        TPL_phone3:{
            required: " Please provide a valid telephone number.",
            digits: " Please provide a valid telephone number."
        },
        TPL_cellphone1:{
            required: " Please provide a valid mobile number.",
            digits: " Please provide a valid mobile number."
        },
        TPL_cellphone2:{
            required: " Please provide a valid mobile number.",
            digits: " Please provide a valid mobile number."
        },
        TPL_cellphone3:{
            required: " Please provide a valid mobile number.",
            digits: " Please provide a valid mobile number."
        }
    }
});


//Adding custom functions

//This function will make sure that password field contains numbers and characters
jQuery.validator.addMethod("password", function(value, element) {
    return this.optional(element) || value.length >= 6 && /\d/.test(value) && /[a-z]/i.test(value);
},
" Your password must be at least 6 characters long and contain at least one number and one character.");
/*
jQuery.validator.addMethod("noSelect", function(value, element) {
    return this.optional(element) == /- Select -/i.test(value);
},
" Please select from list.");
*/

jQuery.validator.addMethod("noDD", function(value, element) {
    return this.optional(element) == /dd/i.test(value);
},
" Please select from list.");

jQuery.validator.addMethod("noMM", function(value, element) {
    return this.optional(element) == /mm/i.test(value);
},
" Please select from list.");

jQuery.validator.addMethod("noYYYY", function(value, element) {
    return this.optional(element) == /yyyy/i.test(value);
},
" Please select from list.");

jQuery.validator.addMethod("notlikeusername", function(value, element) {
    return this.optional(element) || value != eval('$(\'#TPL_nick\').val()');
},
" Password Should not be like username.");

jQuery.validator.addMethod("nosouq", function(value, element) {
    return this.optional(element) == /souq/i.test(value);
},
" Your Username cannot contain the word Souq.");

jQuery.validator.addMethod("nospace", function(value, element) {
    return this.optional(element) == / /i.test(value);
},
" Your Username cannot contain spaces.");

jQuery.validator.addMethod("nourl", function(value, element) {
    return this.optional(element) == /http:\/\/|www\.|[a-zA-Z0-9._%+-][a-zA-Z0-9._%+-]+\.com|\.net|\.org/i.test(value);
},
" Your Username cannot be a URL.");

jQuery.validator.addMethod("nonumber", function(value, element) {
    return this.optional(element) != /[a-z]/i.test(value);
},
" Your username cannot be only numbers or special characters.");

jQuery.validator.addMethod("noArabic", function(value, element) {
    return this.optional(element) == /[Ã-í]/i.test(value);
},
" Your username cannot contain arabic characters.");

jQuery.validator.addMethod("noemail", function(value, element) {
    return this.optional(element) == /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/.test(value);
},
" Your username cannot be an email ID.");
//});