diff --git a/public/src/forum/register.js b/public/src/forum/register.js
index 674f53af6e..6d189cdad3 100644
--- a/public/src/forum/register.js
+++ b/public/src/forum/register.js
@@ -1,151 +1,162 @@
-define(function() {
- var Register = {};
+'use strict';
- Register.init = function() {
- var username = $('#username'),
- password = $('#password'),
- password_confirm = $('#password-confirm'),
- register = $('#register'),
- emailEl = $('#email'),
- username_notify = $('#username-notify'),
- email_notify = $('#email-notify'),
- password_notify = $('#password-notify'),
- password_confirm_notify = $('#password-confirm-notify'),
- agreeTerms = $('#agree-terms'),
- validationError = false,
- successIcon = '';
+/* globals define, app, utils, socket, config */
- $('#referrer').val(app.previousUrl);
- function showError(element, msg) {
- element.html(msg);
- element.parent()
- .removeClass('alert-success')
- .addClass('alert-danger');
- element.show();
+define(function() {
+ var Register = {},
+ validationError = false,
+ successIcon = '';
+
+ function showError(element, msg) {
+ element.html(msg);
+ element.parent()
+ .removeClass('alert-success')
+ .addClass('alert-danger');
+ element.show();
+ validationError = true;
+ }
+
+ function showSuccess(element, msg) {
+ element.html(msg);
+ element.parent()
+ .removeClass('alert-danger')
+ .addClass('alert-success');
+ element.show();
+ }
+
+ function validateEmail(email) {
+ var email_notify = $('#email-notify');
+
+ if (!email) {
validationError = true;
+ return;
}
- function showSuccess(element, msg) {
- element.html(msg);
- element.parent()
- .removeClass('alert-danger')
- .addClass('alert-success');
- element.show();
+ if (!utils.isEmailValid(email)) {
+ showError(email_notify, 'Invalid email address.');
+ return;
}
- function validateEmail() {
- if (!emailEl.val()) {
- validationError = true;
- return;
+ socket.emit('user.emailExists', {
+ email: email
+ }, function(err, exists) {
+ if(err) {
+ return app.alertError(err.message);
}
- if (!utils.isEmailValid(emailEl.val())) {
- showError(email_notify, 'Invalid email address.');
+ if (exists) {
+ showError(email_notify, 'Email address already taken!');
} else {
- socket.emit('user.emailExists', {
- email: emailEl.val()
- }, function(err, exists) {
- if(err) {
- return app.alertError(err.message);
- }
-
- if (exists) {
- showError(email_notify, 'Email address already taken!');
- } else {
- showSuccess(email_notify, successIcon);
- }
- });
+ showSuccess(email_notify, successIcon);
}
- }
-
- emailEl.on('blur', function() {
- validateEmail();
});
+ }
- function validateUsername() {
- if (!username.val()) {
- validationError = true;
- return;
- }
+ function validateUsername(username) {
+ var username_notify = $('#username-notify');
- if (username.val().length < config.minimumUsernameLength) {
- showError(username_notify, 'Username too short!');
- } else if (username.val().length > config.maximumUsernameLength) {
- showError(username_notify, 'Username too long!');
- } else if (!utils.isUserNameValid(username.val()) || !utils.slugify(username.val())) {
- showError(username_notify, 'Invalid username!');
- } else {
- socket.emit('user.exists', {
- username: username.val()
- }, function(err, exists) {
- if(err) {
- return app.alertError(err.message);
- }
-
- if (exists) {
- showError(username_notify, 'Username already taken!');
- } else {
- showSuccess(username_notify, successIcon);
- }
- });
- }
+ if (!username) {
+ validationError = true;
+ return;
}
- username.on('keyup', function() {
- $('#yourUsername').html(this.value.length > 0 ? this.value : 'username');
- });
+ if (username.length < config.minimumUsernameLength) {
+ showError(username_notify, 'Username too short!');
+ } else if (username.length > config.maximumUsernameLength) {
+ showError(username_notify, 'Username too long!');
+ } else if (!utils.isUserNameValid(username) || !utils.slugify(username)) {
+ showError(username_notify, 'Invalid username!');
+ } else {
+ socket.emit('user.exists', {
+ username: username
+ }, function(err, exists) {
+ if(err) {
+ return app.alertError(err.message);
+ }
- username.on('blur', function() {
- validateUsername();
- });
+ if (exists) {
+ showError(username_notify, 'Username already taken!');
+ } else {
+ showSuccess(username_notify, successIcon);
+ }
+ });
+ }
+ }
- function validatePassword() {
- if (!password.val()) {
- validationError = true;
- return;
- }
+ function validatePassword(password, password_confirm) {
+ if (!password) {
+ validationError = true;
+ return;
+ }
+ var password_notify = $('#password-notify'),
+ password_confirm_notify = $('#password-confirm-notify');
+
+ if (password.length < config.minimumPasswordLength) {
+ showError(password_notify, 'Password too short!');
+ } else if (!utils.isPasswordValid(password)) {
+ showError(password_notify, 'Invalid password!');
+ } else {
+ showSuccess(password_notify, successIcon);
+ }
- if (password.val().length < config.minimumPasswordLength) {
- showError(password_notify, 'Password too short!');
- } else if (!utils.isPasswordValid(password.val())) {
- showError(password_notify, 'Invalid password!');
- } else {
- showSuccess(password_notify, successIcon);
- }
+ if (password !== password_confirm && password_confirm !== '') {
+ showError(password_confirm_notify, 'Passwords must match!');
+ }
+ }
- if (password.val() !== password_confirm.val() && password_confirm.val() !== '') {
- showError(password_confirm_notify, 'Passwords must match!');
- }
+ function validatePasswordConfirm(password, password_confirm) {
+ var password_notify = $('#password-notify'),
+ password_confirm_notify = $('#password-confirm-notify');
+
+ if (!password || password_notify.hasClass('alert-error')) {
+ return;
}
- $(password).on('blur', function() {
- validatePassword();
+ if (password !== password_confirm) {
+ showError(password_confirm_notify, 'Passwords must match!');
+ } else {
+ showSuccess(password_confirm_notify, successIcon);
+ }
+ }
+
+ Register.init = function() {
+ var email = $('#email'),
+ username = $('#username'),
+ password = $('#password'),
+ password_confirm = $('#password-confirm'),
+ register = $('#register'),
+ agreeTerms = $('#agree-terms');
+
+ $('#referrer').val(app.previousUrl);
+
+ email.on('blur', function() {
+ validateEmail(email.val());
});
- function validatePasswordConfirm() {
- if (!password.val() || password_notify.hasClass('alert-error')) {
- return;
- }
+ username.on('keyup', function() {
+ $('#yourUsername').html(this.value.length > 0 ? this.value : 'username');
+ });
- if (password.val() !== password_confirm.val()) {
- showError(password_confirm_notify, 'Passwords must match!');
- } else {
- showSuccess(password_confirm_notify, successIcon);
- }
- }
+ username.on('blur', function() {
+ validateUsername(username.val());
+ });
+
+ password.on('blur', function() {
+ validatePassword(password.val(), password_confirm.val());
+ });
- $(password_confirm).on('blur', function() {
- validatePasswordConfirm();
+ password_confirm.on('blur', function() {
+ validatePasswordConfirm(password.val(), password_confirm.val());
});
function validateForm() {
validationError = false;
- validateEmail();
- validateUsername();
- validatePassword();
- validatePasswordConfirm();
+ validateEmail(email.val());
+ validateUsername(username.val());
+ validatePassword(password.val(), password_confirm.val());
+ validatePasswordConfirm(password.val(), password_confirm.val());
return validationError;
}