var AICD=AICD||{};AICD.Security=function(n){function t(t,i){var r={url:"/user/checkmembership",type:"POST",data:{userName:t},success:function(n){if(n.success&&n.data)i.call(this,n.data.isMember);else throw"There was an error validating the user account.";}};n.ajax(r)}n(function(){n("#Email").focus()});return{checkMembershipSvc:t}}(jQuery);AICD=AICD||{};AICD.Password={rules:{minLength:{validate:function(n){return n.length>=8},text:"8 characters minimum"},minAlpha:{validate:function(n){return n.replace(/[^a-zA-Z]/g,"").length>=6},text:"At least 6 alphabetical characters"},minLower:{validate:function(n){return n.replace(/[^a-z]/g,"").length>=1},text:"At least 1 lower case alphabetical character (a - z)"},minUpper:{validate:function(n){return n.replace(/[^A-Z]/g,"").length>=1},text:"At least 1 upper case alphabetical character (A - Z)"},minNumeric:{validate:function(n){return n.replace(/\D/g,"").length>=2},text:"At least 2 numbers (0 - 9)"}},validatePassword:function(n){var t=AICD.Password.rules;for(var i in t)if(!t[i].validate(n))return!1;return!0},registerPasswordValidator:function(){$.validator&&$.validator.addMethod("passwordrule",AICD.Password.validatePassword,"Your password does not meet the AICD minimum password strength requirements")}};$(function(){AICD.Password.registerPasswordValidator()}),function(n){function e(t,i){if(i){f(i);i.next(".password-status").remove();var r=n('<div class="password-status"><\/div>');i.after(r);i.on("resetConfirm",u);i.add(t).off(".pwstrength").one("focus.pwstrength",function(){i.on("keyup.pwstrength",function(){var f=t.val(),u=i.val(),n;r.removeClass("match no-match").removeAttr("title");u!=""&&(n=f==u?"match":"no-match",r.addClass(n).attr("title",n=="match"?"Passwords match":"Passwords do not match"))})});function u(){i.val("");r.empty();r.removeClass("match").removeClass("no-match")}}}function u(i){i=n(i);var u=n("#"+i.data("confirm"));e(i,u);i.parent().find(".password-status").remove(),function(){function c(n){function l(n){return e=t[n]||t[t.length-1],i.data("strengthWidth",o),i.data("strengthText",e.text),u.removeClass(t.map(function(n){return n.className}).join(" ")),u.addClass(e.className),u.find(".strength-text").text(e.text),'<span class="strength-icon" title="Password is '+e.text+'"><\/span>'}var s=0,f=0,h=0,r,c,o;for(r in AICD.Password.rules)h++,c=AICD.Password.rules[r],c.validate(n)?(s++,u.addClass(r+"-valid")):(f++,u.removeClass(r+"-valid"));return f>0?u.removeClass("strong-password").addClass("weak-password"):u.removeClass("weak-password").addClass("strong-password"),o=100-f*100/h,u.find(".bar").css("width",o+"%"),l(s)}function l(){i.val("");i.trigger("keyup.pwstrength");o.empty()}var e=t[0],u,o,s,h;i.data("strengthWidth",0);i.data("strengthText",e.text);u=f(i);o=n('<div class="password-status"><\/div>');i.after(o);s=AICD.Common.useMobileTooltips();h={placement:function(){return AICD.Common.useMobileTooltips()?"inline":"right"},html:!0,trigger:s?"manual":"focus",content:function(){return'<div class="strength-wrapper"><div class="strength-text-wrapper"><strong>Password strength: <\/strong><span class="strength-text">'+i.data("strengthText")+'<\/span><i class="rules-btn" title="show rules"><\/i><\/div><div class="strength-bar"><div class="bar" style="width:'+i.data("strengthWidth")+'%;"><\/div><\/div><div class="criteria"><strong>Password must meet these rules:<\/strong><ul>'+r+"<\/ul><\/div><\/div>"}};i.popover(h);i.off(".pwstrength").on("keyup.pwstrength",function(){o.html(c(i.val()))}).on("focus.pwstrength",function(){u.addClass("pw-focus")}).on("blur.pwstrength",function(){u.removeClass("pw-focus")});u.off(".pwstrength").on("click.pwstrength",".rules-btn",function(n){n.preventDefault();n.stopPropagation();u.toggleClass("mobile-show-rules")});s&&i.popover("show");i.on("resetPasswordStrength",l)}()}function i(t){t.each(function(){var i=n(this);i.addInputIcon("password-show-icon","Show password").click(i,function(n){n.preventDefault();var i=n.data.attr("type")=="password"?"text":"password";t.attr("type",i)})})}function f(n){var t=n.parent(".password-container");return t.length?t:n.wrap('<div class="password-container"><\/div>').parent()}function o(t){var i=n(t),r;i.removeClass("password-strength").parent().find(".password-status").remove();i.parent().is(".password-container")&&i.unwrap();i.off(".pwstrength");i.popover("destroy");r=n("#"+i.data("confirm"));s(r)}function s(n){if(n.length){n.off(".pwstrength");var t=n.closest(".password-container");t.find(".password-status").remove()}}n.fn.passwordStrength=function(){u(this)};n.fn.passwordStrengthRemove=function(){o(this)};n.fn.passwordShow=function(){i(this)};n.fn.passwordStrengthReset=function(){var t=n(this),i;t.trigger("resetPasswordStrength");i=n("#"+t.data("confirm"));i.trigger("resetConfirm")};var r="",t=[{text:"Does not meet requirements",className:"level-0"},{text:"Does not meet requirements",className:"level-1"},{text:"Does not meet requirements",className:"level-2"},{text:"Does not meet requirements",className:"level-3"},{text:"Does not meet requirements",className:"level-4"},{text:"Meets requirements",className:"level-5"}];n(function(){for(var t in AICD.Password.rules)r+='<li id="rule_{0}">{1}<\/li>'.format(t,AICD.Password.rules[t].text);n(".password-strength").each(function(){var r=n("#"+n(this).data("confirm")),t=n(this);i(t);i(r);u(t)})})}(jQuery);$(function(){"use strict";function w(n){if(n.which==AICD.Common.keyCodes.enter)return n.preventDefault(),!1}function b(t){t.preventDefault();var i=e(f,n);i&&o();r=AICD.Common.updateBreadcrumbs(".breadcrumb-container",s);AICD.Common.panelSwapper(u,h,function(){n.select()})}function k(t){t.preventDefault();e(n,f);n.val("");AICD.Common.updateBreadcrumbs(".breadcrumb-container",r);AICD.Common.panelSwapper(".password-panel:visible",u,function(){y.focus()})}function d(i){var r,u;i.preventDefault();r=t.valid();r&&(u=n.val(),g(u))}function e(n,t){var i=n.val(),r=!1;return AICD.Common.isValid("email",i)?(t.val(i),r=!0):t.val(""),r}function o(){var u=t.valid(),r;u&&(r=n.val(),n.removeInputIcon(),n.setLoading(),AICD.Security.checkMembershipSvc(r,function(r){if(n.removeLoading(),r)i.removeAttr("disabled"),AICD.Common.clearValidationErrors(t),n.addInputIcon("tick-icon","Your email is valid");else{var u="The email address you have entered is not registered with AICD";i.attr("disabled","disabled");AICD.Common.addSummaryError(t,u);n.addInputIcon("error-icon",u).select()}}))}function g(n){p.text(n);var i={url:"/user/emailverification",type:"POST",data:t.serialize(),success:function(n){AICD.Common.unblockUI();n.success?AICD.Common.panelSwapper(".password-panel:visible",c):AICD.Common.addSummaryError(t,"There was an error trying to reset the password.")},beforeSend:function(){AICD.Common.blockUI();AICD.Common.clearValidationErrors(t)},complete:AICD.Common.unblockUI};$.ajax(i)}var r,s={label:"Reset Password",iconClass:"reset-password",isActive:!0},t=$("#formEmailVerification"),u=$("#MainContent"),h=$("#ResetPasswordPanel"),c=$("#EmailConfirmationPanel"),l=$("#ForgotPasswordBtn"),a=$('[data-action="backToLogin"]'),i=$("#SendEmailBtn"),v=$("#ResendEmailBtn"),n=$("#EmailForVerification"),y=$("#Password"),f=$("#Email"),p=$("#EmailText");l.click(b);a.click(k);i.add(v).click(d);n.keyup(w).change(o)})