$(function(){ var delay = (function(){ var timer = 0; return function(callback, ms){ clearTimeout (timer); timer = setTimeout(callback, ms); }; })(); $('#terms').on('change',function(){totalValid();}); // Receive checkbox on change event $(".label_container input").on('change',function(){totalValid();}); // Confirm All Are Valid $('#register_email').on('keyup',function(){ var email = $(this).val(); delay(function(){checkEmail(email);}, 1000 ); }); $('#register_email').on('blur',function(){ var email = $(this).val(); checkEmail(email); }); $('#password').on('keyup',function(){ var pass = $(this).val(); var length = pass.length; delay(function(){checkMainPass(length);}, 1000 ); }); $('#password').on('blur',function(){ var pass = $(this).val(); var length = pass.length; checkMainPass(length); }); $('#rpassword').on('keyup',function(){ var pass = $('#password').val(); var rpass = $(this).val(); delay(function(){confirmPass(pass,rpass);}, 1000 ); }); $('#rpassword').on('keyup',function(){ var pass = $('#password').val(); var rpass = $(this).val(); confirmPass(pass,rpass); }); function totalValid(){ var terms = $('#terms').prop('checked'); var ev = $('#register_email').data('valid'); var pv = $('#password').data('valid'); var cv = $('#rpassword').data('valid'); if(ev == 'yes' && pv == 'yes' && cv == 'yes' && terms == true){$('#register_button').attr('disabled',false).css('cursor','pointer');}else{$('#register_button').attr('disabled','disabled').css('cursor','not-allowed');} } function confirmPass(pass,rpass){ if(pass == rpass){ $('#confirm_message').empty(); $('#confirm_mark').css('background','url(/images/site/icons/check-mark.png)'); $('#password').data('valid','yes'); } else { $('#confirm_message').text('Password does not match.'); $('#confirm_mark').css('background','url(/images/site/icons/x-mark.png)'); $('#password').data('valid','no'); } totalValid(); } function checkMainPass(length){ if(length > 4){ $('#password_message').empty(); $('#pass_mark').css('background','url(/images/site/icons/check-mark.png)'); $('#rpassword').data('valid','yes'); } else { $('#password_message').text('Password is too short. Must be 5 characters.'); $('#pass_mark').css('background','url(/images/site/icons/x-mark.png)'); $('#rpassword').data('valid','no'); } totalValid(); } function checkEmail(email){ var valid = validateEmail(email); if(valid == true){ $.ajax({ url: '/members/email-check/?email='+email, success: function(results){ if(results == 1){ $('#email_mark').css('background','url(/images/site/icons/x-mark.png)'); $('#register_email').css('border','1px solid #D1430A'); $('#email_message').text("Email Address Not Available"); $('#register_email').data('valid','no'); } else { $('#email_mark').css('background','url(/images/site/icons/check-mark.png)'); $('#register_email').css('border','1px solid #9bc98a'); $('#email_message').empty(); $('#register_email').data('valid','yes'); } } }); } else { $('#email_mark').css('background','url(/images/site/icons/x-mark.png)'); $('#register_email').css('border','1px solid #D1430A'); $('#email_message').text("Email Address Is Not Valid"); $('#register_email').data('valid','no'); } totalValid(); } function validateEmail(email) { var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(email); } })