$(document).ready(function() { signupForm = $('form.signup'); if(signupForm.length){ var formAuthCheckTimer; // auto load if(signupForm.find('input[name=email]').val().length > 0) { processSignupAuthCheck(); } signupForm.on('keyup', 'fieldset.creds input', function(e){ if(e.which != 9 && e.which != 16 && e.which != 91 && e.which != 91) { clearTimeout(formAuthCheckTimer); formAuthCheckTimer = setTimeout(processSignupAuthCheck, 500); } }); signupForm.on('change', 'fieldset.creds input', function() { clearTimeout(formAuthCheckTimer); processSignupAuthCheck(); }); signupForm.on('click', 'p.exists a', function(){ $.ajax({ url: '/signup/reset_password', type: 'post', data: $('form').serialize(), dataType:'json', success: function(data) { if(data.status == 'sent') { signupForm.find('p.exists').html('An email has been sent to ' + signupForm.find('input[name=email]').val() + ' which contains a new password. You can copy this password into the password field above to continue your signup.'); } else { alert('The address you entered could not be found. Please contact support if need further assistance.'); } } }); return false; }); processSignupAuthCheck = function(){ $.ajax({ url: '/signup/validate_user', type: 'post', data: signupForm.serialize(), dataType:'json', success: function(data) { if(data.email_check.status == 'available') { signupForm.find('li.password p.label label').text('Choose a password'); signupForm.find('p.exists').hide(); signupForm.find('input[name=password]').removeClass('ok').removeClass('error'); signupForm.find('input[name=first_name]').attr('disabled', false); signupForm.find('input[name=last_name]').attr('disabled', false); } else { signupForm.find('li.password p.label label').text('Enter your password'); signupForm.find('p.exists b').text(data.email_check.email); if(data.authentication) { if(data.authentication.status == 'valid') { signupForm.find('input[name=first_name]').attr('value', data.authentication.first_name).attr('disabled', true); signupForm.find('input[name=last_name]').attr('value', data.authentication.last_name).attr('disabled', true); signupForm.find('input[name=password]').addClass('ok').removeClass('error'); signupForm.find('input[name=account_name]').focus(); signupForm.find('p.exists').hide('fast'); } else { signupForm.find('input[name=password]').removeClass('ok').addClass('error'); signupForm.find('input[name=first_name]').attr('disabled', false); signupForm.find('input[name=last_name]').attr('disabled', false); signupForm.find('p.exists').show('fast'); } } else { signupForm.find('p.exists').show('fast'); } } } }); }; } });