﻿function validate_form_acct_create($, sender) {
    var t = sender;
    if ($('#accountform').length === 1) {
        console.log('CreateFormValidation'); // TODO: Remove for production
        $('form').validate({
            rules: {
                phonetype: {
                    required: true
                },
                zip: {
                    required: true,
                    digits: true,
                    rangelength: [5, 5]
                },
                firstname: {
                    required: true,
                    maxlength: 16
                },
                lastname: {
                    maxlength: 50
                },
//                phone1: {
//                    required: true,
//                    phone: true                            
//                },
                acctemail: {
                    required: true,
                    email: true,
                    maxlength: 254,
                    remote: t._hostPath + t._emailCheckPath 
                },
//                acctemail2: {
//                    required: true,
//                    equalTo: "#acctemail",
//                    email: true,
//                    maxlength: 254
//                },
                acctpassword: {
                    required: true,
                    nowhitespace: true,
                    minlength: 6,
                    maxlength: 16
                },
//                acctpassword2: {
//                    required: true,
//                    equalTo: "#acctpassword",
//                    nowhitespace: true,
//                    minlength: 6,
//                    maxlength: 16
//                },
                captcha: {
                    required: true,                    
                    remote: t._hostPath + "functions_ajax/CheckCaptcha.aspx"
                },
                agreeterms: {
                    required: true
                }
            },
            messages: {
                phonetype: {
                    required: "Please select phone."
                },
                zip: {
                    required: "Enter valid zip.",
                    rangelength: "Enter valid zip.",
                    digits: "Enter valid zip."
                },
                firstname: {
                    required: "Please enter your first name.",
                    maxlength: $.validator.format("First Name cannot be longer than than {0} characters.")
                },
                lastname: {
                    maxlength: $.validator.format("Last Name cannot be longer than than {0} characters.")
                },
//                phone1: {
//                    required: "Please enter a valid, 10-digit mobile phone number.",
//                    phone: "Please enter a valid, 10-digit mobile phone number."
//                    //remote: "Account with this number already exists."
//                },
                acctemail: {
                    required: "Please enter a valid email address.",
                    email: "Please enter a valid email address.",
                    maxlength: $.validator.format("Email address cannot be longer than {0} characters."),
                    remote: "Account with this email address already exists."
                },
//                acctemail2: {
//                    required: "Please enter a valid email address.",
//                    equalTo: "Email Addresses do not match.",
//                    email: "Please enter a valid email address.",
//                    maxlength: $.validator.format("Email address cannot be longer than {0} characters.")
//                },
                acctpassword: {
                    required: "Please create a password.",
                    nowhitespace: "Password may not contain spaces.",
                    minlength: "Password must be at least six characters.",
                    maxlength: $.validator.format("Password cannot be longer than {0} characters")
                },
//                acctpassword2: {
//                    required: "Please re-enter the password.",
//                    nowhitespace: "Password may not contain spaces.",
//                    minlength: "Password must be at least six characters.",
//                    maxlength: $.validator.format("Password cannot be longer than {0} characters"),
//                    equalTo: "Passwords do not match."
//                },
                captcha: {
                    required: "Entry not correct. Please try again.",                    
                    remote: "Entry not correct. Please try again."
                },
                agreeterms: {
                    required: "Please read and agree with the Terms of Use and Privacy Policy."
                }
            },
            onkeyup: false,
            focusCleanup: true,
            focusInvalid: false,
            errorPlacement: function(e, el) {
                if (el.attr('type') === 'checkbox') e.appendTo(el.parent());
                else e.insertAfter(el);
            },
            success: function(el) {
                if (/phonetype|carrier|agreeterms|keepinloop|zip/.test(el.attr('for'))) el.remove();
                else el.addClass('validation valid').text('Okay!');
            }
        });
    }
}

function validate_form_acct_edit_email($, sender) {
    var t = sender;
    if ($('#acct_edit_email_form').length === 1) {
        $('form').validate({
            rules: {
                ctl00$ContentPlaceHolder1$txtEmail1: {
                    required: true,
                    email: true,
                    maxlength: 254,
                    remote: t._hostPath + t._emailCheckPath
                },
                ctl00$ContentPlaceHolder1$txtEmail2: {
                    required: true,
                    equalTo: "#ctl00_ContentPlaceHolder1_txtEmail1",
                    email: true,
                    maxlength: 254
                    
                }
            },
            messages: {
                ctl00$ContentPlaceHolder1$txtEmail1: {
                    required: "Enter valid email.",
                    email: "Enter valid email.",
                    maxlength: $.validator.format("Max {0} characters."),
                    remote: "Account with this email address already exists."
                },
                ctl00$ContentPlaceHolder1$txtEmail2: {
                    required: "Enter valid email.",
                    equalTo: "Email Addresses do not match.",
                    email: "Enter valid email.",
                    maxlength: $.validator.format("Max {0} characters.")
                }
            },
            onkeyup: false,
            focusCleanup: true,
            focusInvalid: false,
            errorPlacement: function(e, el) {
                if (el.attr('type') === 'checkbox') return;
                else e.insertAfter(el);
            },
            success: function(el) {
                el.addClass('validation valid').text('Okay!');
            }
        });
    }
}

function validate_form_acct_edit_password($, sender) {
    var t = sender;
    if ($('#acct_edit_password_form').length === 1) {
        $('form').validate({
        rules: {

                ctl00$ContentPlaceHolder1$txtCurrentPwd: {
                    required: true,                
                    remote: t._hostPath + 'functions_ajax/CheckPassword.aspx'
                },                        
                ctl00$ContentPlaceHolder1$txtNewPwd1: {
                    required: true,                    
                    nowhitespace: true,
                    minlength: 6,                    
                    maxlength: 16                    
                },
                ctl00$ContentPlaceHolder1$txtNewPwd2: {
                    required: true,
                    equalTo: "#ctl00_ContentPlaceHolder1_txtNewPwd1", 
                    nowhitespace: true,
                    minlength: 6,                   
                    maxlength: 16
                }
            },
            messages: {   
                ctl00$ContentPlaceHolder1$txtCurrentPwd: {
                    required: "Enter a password.",
                    maxlength: $.validator.format("Max {0} characters."),
                    remote: "Current password is not correct."
                },
                ctl00$ContentPlaceHolder1$txtNewPwd1: {                    
                    required: "Please create a password.",
                    nowhitespace: "Password may not contain spaces.",
                    minlength: "Password must be at least six characters.",
                    maxlength: $.validator.format("Password cannot be longer than {0} characters")
                },
                ctl00$ContentPlaceHolder1$txtNewPwd2: {
                    required: "Please re-enter the password.",
                    nowhitespace: "Password may not contain spaces.",
                    minlength: "Password must be at least six characters.",
                    maxlength: $.validator.format("Password cannot be longer than {0} characters"),
                    equalTo: "Passwords do not match."
                }
            },
            onkeyup: false,
            focusCleanup: true,
            focusInvalid: false,
            errorPlacement: function(e, el) {
                if (el.attr('type') === 'checkbox') return;
                else e.insertAfter(el);
            },
            success: function(el) {
                el.addClass('validation valid').text('Okay!');
            }
        });
    }
}

function validate_form_reset_password($, sender) {
    var t = sender;
    if ($('#resetpasswordform').length === 1) {
        $('form').validate({
            rules: {
                new_password: {
                    required: true,
                    nowhitespace: true,
                    minlength: 6,
                    maxlength: 16
                },
                confirm_password: {
                    required: true,
                    equalTo: "#new_password",
                    nowhitespace: true,
                    minlength: 6,
                    maxlength: 16
                }
            },
            messages: {
                new_password: {
                    required: "Please create a password.",
                    nowhitespace: "Password may not contain spaces.",
                    minlength: "Password must be at least six characters.",
                    maxlength: $.validator.format("Password cannot be longer than {0} characters")
                },
                confirm_password: {
                    required: "Please re-enter the password.",
                    nowhitespace: "Password may not contain spaces.",
                    minlength: "Password must be at least six characters.",
                    maxlength: $.validator.format("Password cannot be longer than {0} characters"),
                    equalTo: "Passwords do not match."
                }
            },
            onkeyup: false,
            focusCleanup: true,
            focusInvalid: false,
            errorPlacement: function(e, el) {
                if (el.attr('type') === 'checkbox') return;
                else e.insertAfter(el);
            },
            success: function(el) {
                el.addClass('validation valid').text('Okay!');
            }
        });
    }
}

function validate_form_acct_edit_profile($, sender) {
    var t = sender;
    if ($('#acctedit_form').length === 1) {
        $('form').validate({
            rules: {
                        ctl00$ContentPlaceHolder1$firstname: {
                            required: true,                    
                            maxlength: 16                    
                        },
                        ctl00$ContentPlaceHolder1$lastname: {
                            maxlength: 50
                        },
//                        ctl00$ContentPlaceHolder1$phone: {
//                            required: true,
//                            phone: true,
//                            remote: t._hostPath + t._phoneCheckPath
//                        },                        
                        ctl00$ContentPlaceHolder1$address1: {
                            maxlength: 50
                        },
                        ctl00$ContentPlaceHolder1$address2: {
                            maxlength: 50
                        },
                        ctl00$ContentPlaceHolder1$city: {
                            maxlength: 50
                        },                        
                        ctl00$ContentPlaceHolder1$zip: {
                            required: true,
                            digits: true,
                            rangelength: [5, 5]
                        }                                                                  
                    },
                    messages: {
                    ctl00$ContentPlaceHolder1$firstname: {
                            required: "Please enter first name.",
                            maxlength: $.validator.format("First Name cannot be longer than than {0} characters.")
                        },
                        ctl00$ContentPlaceHolder1$lastname: {
                            maxlength: $.validator.format("Last Name cannot be longer than than {0} characters.")
                        },
//                        ctl00$ContentPlaceHolder1$phone: {
//                            required: "Please enter a valid, 10-digit mobile phone number.",
//                            phone: "Please enter a valid, 10-digit mobile phone number. ###-###-####",
//                            remote: "Account with this number already exists."
//                        },                        
                        ctl00$ContentPlaceHolder1$address1: {
                            maxlength: $.validator.format("Street Address 1 cannot be longer than than {0} characters.")
                        },
                        ctl00$ContentPlaceHolder1$address2: {
                            maxlength: $.validator.format("Street Address 2 cannot be longer than than {0} characters.")
                        },
                        ctl00$ContentPlaceHolder1$city: {
                            maxlength: $.validator.format("City cannot be longer than than {0} characters.")
                        },                        
                        ctl00$ContentPlaceHolder1$zip: {
                            required: "Please enter a valid zip code.",
                            digits: "Please enter a valid zip code.",
                            rangelength: "Please enter a valid zip code."
                        }
                    },               
            onkeyup: false,
            focusCleanup: true,
            focusInvalid: false,
            errorPlacement: function(e, el) {
                if (el.attr('type') === 'checkbox') return;
                else e.insertAfter(el);
            },
            success: function(el) {
                el.addClass('validation valid').text('Okay!');
            }
        });
    }
}

function validate_form_invite_friend($, sender) {
    var t = sender;
    if ($('#friend_form').length === 1) {
        $('form').validate({
            rules: {
                ctl00$ContentPlaceHolder1$txtContactName: {
                    required: true,                    
                    maxlength: 33,                    
                },
                ctl00$ContentPlaceHolder1$txtContactEmail: {
                    required: true,                    
                    email: true,
                    maxlength: 254

                },
                ctl00$ContentPlaceHolder1$txtFriendEmail: {
                    required: true,                    
                    email: true,
                    maxlength: 254
                }
            },
            messages: {
                ctl00$ContentPlaceHolder1$txtContactName: {
                    required: "Enter your name.",                    
                    maxlength: $.validator.format("Max {0} characters."),                    
                },
                ctl00$ContentPlaceHolder1$txtContactEmail: {
                    required: "Enter valid email.",
                    email: "Enter valid email.",
                    maxlength: $.validator.format("Max {0} characters."),                    
                },
                ctl00$ContentPlaceHolder1$txtFriendEmail: {
                    required: "Enter valid email.",
                    email: "Enter valid email.",
                    maxlength: $.validator.format("Max {0} characters.")
                }
            },
            onkeyup: false,
            focusCleanup: true,
            focusInvalid: false,
            errorPlacement: function(e, el) {
                if (el.attr('type') === 'checkbox') return;
                else e.insertAfter(el);
            },
            success: function(el) {
                el.addClass('validation valid').text('Okay!');
            }
        });
    }
}

function validate_form_send_to_friend($, sender) {
    var t = sender;
    if ($('#sendtofriend_form').length === 1) {
        $('form').validate({
            rules: {
                ctl00$ContentPlaceHolder1$txtUserName: {
                    required: true,                    
                    maxlength: 33,                    
                },
                ctl00$ContentPlaceHolder1$txtUserEmail: {
                    required: true,                    
                    email: true,
                    maxlength: 254

                },
                ctl00$ContentPlaceHolder1$txtFriendEmail: {
                    required: true,                    
                    email: true,
                    maxlength: 254
                }
            },
            messages: {
                ctl00$ContentPlaceHolder1$txtUserName: {
                    required: "Enter your name.",                    
                    maxlength: $.validator.format("Max {0} characters."),                    
                },
                ctl00$ContentPlaceHolder1$txtUserEmail: {
                    required: "Enter email.",
                    email: "Enter valid email.",
                    maxlength: $.validator.format("Max {0} characters."),                    
                },
                ctl00$ContentPlaceHolder1$txtFriendEmail: {
                    required: "Enter email.",
                    email: "Enter valid email.",
                    maxlength: $.validator.format("Max {0} characters.")
                }
            },
            onkeyup: false,
            focusCleanup: true,
            focusInvalid: false,
            errorPlacement: function(e, el) {
                if (el.attr('type') === 'checkbox') return;
                else e.insertAfter(el);
            },
            success: function(el) {
                el.addClass('validation valid').text('Okay!');
            }
        });
    }
}
