window.addEvent("domready", function(e){ $('sign_up_form').addEvent('submit', function(e){ disable_els(); if(validate_signup_fields()){ validate_availability(); } return false; }); function disable_els(){ var els = $('sign_up_form').getElements('input, select'); els.each(function(el){ el.disabled = true; }); } function enable_els(){ var els = $('sign_up_form').getElements('input, select'); els.each(function(el){ el.disabled = false; }); } function validate_signup_fields(){ var er_els = $('sign_up_form').getElements('.error'); er_els.each(function(el){ el.innerHTML = ''; }); var failed = false; //Values var username_val = $('username').value; var email_val = $('email').value; var pass_val = $('pass').value; var pass2_val = $('pass_confirm').value; var refferal_val = $('referral').value; var fname_val = $('fname').value; var lname_val = $('lname').value; var city_val = $('city').value; var zip_val = $('zip').value; //Username if(username_val.length < 6){ failed = true; $('username').getParent().getParent().getElement('.error').innerHTML = 'Required. Must be at least 6 characters'; } var regex=/^[0-9A-Za-z_]+$/; if(!regex.test(username_val)){ failed = true; $('username').getParent().getParent().getElement('.error').innerHTML = 'Required. Only alphanumeric characters and underscores allowed'; } //Email var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if(!regex.test(email_val)){ failed = true; $('email').getParent().getParent().getElement('.error').innerHTML = 'Required. Please enter a valid email address'; } //Pass if(pass_val != pass2_val){ failed = true; $('pass').getParent().getParent().getElement('.error').innerHTML = 'Passwords do not match'; } var regex = /^(?=.*[A-Z])(?=.*[a-z])[a-zA-Z\d#$%&]{6,}$|^(?=.*[A-Z])(?=.*\d)[a-zA-Z\d#$%&]{6,}$|^(?=.*[a-z])(?=.*\d)[a-zA-Z\d#$%&]{6,}$|^(?=.*[A-Z])(?=.*[#$%&])[a-zA-Z\d#$%&]{6,}$|^(?=.*[#$%&])(?=.*\d)[a-zA-Z\d#$%&]{6,}$|^(?=.*[a-z])(?=.*[#$%&])[a-zA-Z\d#$%&]{6,}$/; if(!regex.test(pass_val)){ failed = true; $('pass').getParent().getParent().getElement('.error').innerHTML = 'Required. At least 6 characters. Must contain at least one number or symbol.'; } //Fname var regex=/^[A-Za-z]+$/; if(!regex.test(fname_val)){ failed = true; $('fname').getParent().getParent().getElement('.error').innerHTML = 'Required. Only alphabetical characters allowed'; } //Lname var regex=/^[A-Za-z]+$/; if(!regex.test(lname_val)){ failed = true; $('lname').getParent().getParent().getElement('.error').innerHTML = 'Required. Only alphabetical characters allowed'; } //Zip if(zip_val != ''){ var regex=/^[0-9]{5,}$/; if(!regex.test(zip_val)){ failed = true; $('zip').getParent().getParent().getElement('.error').innerHTML = 'Optional. 5 digit numeric value only (or leave blank)'; } } if(failed){ enable_els(); return false; } return true; } function validate_availability(){ var username_val = $('username').value; var email_val = $('email').value; var user_ajax_result = new Request({ url:'http://sugarandbruno.com/remote/users.php', method: 'post', onComplete: function(response){ if(response == '0'){ $('username').getParent().getParent().getElement('.error').innerHTML = 'Sorry, username already in use! Please choose a different one'; enable_els(); }else if(response == '1'){ var user_ajax_result = new Request({ url:'http://sugarandbruno.com/remote/users.php', method: 'post', onComplete: function(response){ if(response == '0'){ $('email').getParent().getParent().getElement('.error').innerHTML = 'Email address is already registered by another user.'; enable_els(); }else if(response == '1'){ submit_registration(); }else{ alert('Unknown error.'); enable_els(); } } }).send('mode=manage&action=validate_registration_email&email=' + $('email').value + random_time_qs()); }else{ alert('Unknown error.'); enable_els(); } } }).send('mode=manage&action=validate_registration_handle&handle=' + $('username').value + random_time_qs()); } function submit_registration(){ enable_els(); var ajax_result = new Request({ url:'http://sugarandbruno.com/remote/users.php', method: 'post', onComplete: function(response){ if(response == '0'){ alert('Error processing registration.'); enable_els(); }else if(response == '1'){ var ajax_result = new Request({ url:'http://sugarandbruno.com/remote/users.php', method: 'post', onComplete: function(response){ if(response == '1'){ //alert('Unknown error.'); location.href = 'http://sugarandbruno.com/'; }else{ location.href = 'http://sugarandbruno.com/'; return false; } } }).send('mode=session&action=login&login_user=' + $('username').value + '&login_pass=' + $('pass').value); $('sign_up_form').destroy(); }else{ alert('Unknown error.'); enable_els(); } } }).send('mode=manage&action=add&' + $('sign_up_form').toQueryString() + random_time_qs()); } });