From 437379413e0303a652b7a0dc3ec0cecd53167a98 Mon Sep 17 00:00:00 2001
From: Baris Soner Usakli <barisusakli@gmail.com>
Date: Sun, 1 Dec 2013 18:06:01 -0500
Subject: [PATCH] closes #592

---
 public/src/forum/accountedit.js  | 55 ++++++++++++++++----------------
 public/templates/accountedit.tpl | 12 ++++---
 2 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/public/src/forum/accountedit.js b/public/src/forum/accountedit.js
index 912bb29b37..5e4eb0fcc3 100644
--- a/public/src/forum/accountedit.js
+++ b/public/src/forum/accountedit.js
@@ -99,6 +99,22 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) {
 			return false;
 		});
 
+		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 handlePasswordChange() {
 			var currentPassword = $('#inputCurrentPassword');
@@ -108,42 +124,29 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) {
 			var password_confirm = $('#inputNewPasswordAgain');
 			var passwordvalid = false;
 			var passwordsmatch = false;
+			var successIcon = '<i class="fa fa-check"></i>';
 
 
 			function onPasswordChanged() {
 				passwordvalid = utils.isPasswordValid(password.val());
 				if (password.val().length < config.minimumPasswordLength) {
-					password_notify.html('Password too short');
-					password_notify.attr('class', 'alert alert-danger');
-					password_notify.removeClass('hide');
+					showError(password_notify, 'Password too short!');
 				} else if (!passwordvalid) {
-					password_notify.html('Invalid password');
-					password_notify.attr('class', 'alert alert-danger');
-					password_notify.removeClass('hide');
+					showError(password_notify, 'Invalid password!');
 				} else {
-					password_notify.html('OK!');
-					password_notify.attr('class', 'alert alert-success');
-					password_notify.removeClass('hide');
+					showSuccess(password_notify, successIcon);
 				}
-
-				onPasswordConfirmChanged();
 			}
 
 			function onPasswordConfirmChanged() {
-				if (password_notify.hasClass('alert-danger') || !password_confirm.val()) {
-					password_confirm_notify.addClass('hide');
-					return;
-				}
-				if (password.val() !== password_confirm.val()) {
-					password_confirm_notify.html('Passwords must match!');
-					password_confirm_notify.attr('class', 'alert alert-danger');
-					password_confirm_notify.removeClass('hide');
-					passwordsmatch = false;
-				} else {
-					password_confirm_notify.html('OK!');
-					password_confirm_notify.attr('class', 'alert alert-success');
-					password_confirm_notify.removeClass('hide');
-					passwordsmatch = true;
+				if(password.val()) {
+					if (password.val() !== password_confirm.val()) {
+						showError(password_confirm_notify, 'Passwords must match!')
+						passwordsmatch = false;
+					} else {
+						showSuccess(password_confirm_notify, successIcon);
+						passwordsmatch = true;
+					}
 				}
 			}
 
@@ -161,8 +164,6 @@ define(['forum/accountheader', 'uploader'], function(header, uploader) {
 						currentPassword.val('');
 						password.val('');
 						password_confirm.val('');
-						password_notify.addClass('hide');
-						password_confirm_notify.addClass('hide');
 						passwordsmatch = false;
 						passwordvalid = false;
 
diff --git a/public/templates/accountedit.tpl b/public/templates/accountedit.tpl
index ebff456b22..c6594343db 100644
--- a/public/templates/accountedit.tpl
+++ b/public/templates/accountedit.tpl
@@ -115,17 +115,21 @@
 
 					<div class="control-group">
 						<label class="control-label" for="inputNewPassword">Password</label>
-						<div class="controls">
+						<div class="input-group">
 							<input class="form-control" type="password" id="inputNewPassword" placeholder="New Password" value="">
-							<div id="password-notify" class="alert alert-danger hide"></div>
+							<span class="input-group-addon">
+								<span id="password-notify"><i class="fa fa-circle-o"></i></span>
+							</span>
 						</div>
 					</div>
 
 					<div class="control-group">
 						<label class="control-label" for="inputNewPasswordAgain">Confirm Password</label>
-						<div class="controls">
+						<div class="input-group">
 							<input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="Confirm Password" value="">
-							<div id="password-confirm-notify" class="alert alert-danger hide"></div>
+							<span class="input-group-addon">
+								<span id="password-confirm-notify"><i class="fa fa-circle-o"></i></span>
+							</span>
 						</div>
 					</div>
 					<br/>