this.ClickView=this.ClickView||{};this.ClickView.UserProfileSettings=this.ClickView.UserProfileSettings||{};this.ClickView.UserProfileSettings.Templates=this.ClickView.UserProfileSettings.Templates||{};this.ClickView.UserProfileSettings.Templates.PartialLoading=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="form-group">\r\n    <label for="user-email">Email Address<\/label>\r\n    <p class="info-text">Notifications from ClickView will be sent to the below email address.<\/p>\r\n    <div class="partial-loading-item email-partial"><\/div>\r\n    <div class="partial-loading-item buttons-partial"><\/div>\r\n<\/div>\r\n<span class="note">Note: Updating this email address will not change how you sign in to ClickView.<\/span>\r\n'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.UserProfileSettings=this.ClickView.UserProfileSettings||{};this.ClickView.UserProfileSettings.Templates=this.ClickView.UserProfileSettings.Templates||{};this.ClickView.UserProfileSettings.Templates.SubjectRecommendation=Handlebars.template({"1":function(){return"        <h2>2. Which subjects are you interested in?<\/h2>\r\n"},"3":function(){return'        <label>Which subjects are you interested in?<\/label>\r\n        <p class="info-text">Content recommendations will be based on the subjects listed below.<\/p>\r\n'},compiler:[7,">= 4.0.0"],main:function(n,t,i,r,u){var f;return'<div id="subject-recommendation-form">\r\n    <div class="form-body">\r\n'+((f=i["if"].call(t!=null?t:n.nullContext||{},t!=null?t.isFirstTime:t,{name:"if",hash:{},fn:n.program(1,u,0),inverse:n.program(3,u,0),data:u}))!=null?f:"")+'        <div id="subject-recommendation-list-container">\r\n            <div id="subject-input-container">\r\n                <input id="subject-input" class="typeahead" />\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.UserProfileSettings=this.ClickView.UserProfileSettings||{};this.ClickView.UserProfileSettings.Templates=this.ClickView.UserProfileSettings.Templates||{};this.ClickView.UserProfileSettings.Templates.UserEmail=Handlebars.template({"1":function(n,t,i,r,u){var f;return(f=i["if"].call(t!=null?t:n.nullContext||{},t!=null?t.unconfirmedEmail:t,{name:"if",hash:{},fn:n.program(2,u,0),inverse:n.program(4,u,0),data:u}))!=null?f:""},"2":function(){return'    <input type="email" class="email" id="user-email" placeholder="Enter your email your address here" name="emailAddress"/>\r\n    <span class="help-block hidden"><\/span>\r\n'},"4":function(n,t,i,r,u){var e,f,o=t!=null?t:n.nullContext||{};return'    <div class="email-address"><span>'+n.escapeExpression((f=(f=i.emailAddress||(t!=null?t.emailAddress:t))!=null?f:i.helperMissing,typeof f=="function"?f.call(o,{name:"emailAddress",hash:{},data:u}):f))+'<\/span><\/div>\r\n    <div class="verified-text '+((e=i.unless.call(o,t!=null?t.isVerified:t,{name:"unless",hash:{},fn:n.program(5,u,0),inverse:n.noop,data:u}))!=null?e:"")+'">\r\n'+((e=i["if"].call(o,t!=null?t.isVerified:t,{name:"if",hash:{},fn:n.program(7,u,0),inverse:n.program(9,u,0),data:u}))!=null?e:"")+'        <svg class="verified-icon">\r\n            <use xlink:href="#verified"><\/use>\r\n        <\/svg>\r\n    <\/div>\r\n'},"5":function(){return"unverified"},"7":function(){return"        <span>Verified<\/span>\r\n"},"9":function(){return"        <span>Not yet verified<\/span>\r\n"},"11":function(){return'        <button class="btn cancel" type="reset">Cancel<\/button>\r\n        <button class="btn verify-email orange" type="submit">Verify Email<\/button>\r\n'},"13":function(n,t,i,r,u){var f;return"        "+((f=i["if"].call(t!=null?t:n.nullContext||{},t!=null?t.isVerified:t,{name:"if",hash:{},fn:n.program(14,u,0),inverse:n.program(16,u,0),data:u}))!=null?f:"")},"14":function(){return' <button class="btn update-email orange" type="submit">Update Email<\/button>\r\n'},"16":function(n,t,i,r,u){var f;return'        <button class="btn update-email orange" type="submit">Update Email<\/button>\r\n'+((f=i.unless.call(t!=null?t:n.nullContext||{},t!=null?t.emptyEmail:t,{name:"unless",hash:{},fn:n.program(17,u,0),inverse:n.noop,data:u}))!=null?f:"")},"17":function(){return'        <button class="btn resend-email" type="button">Resend Verification Email<\/button>\r\n'},"19":function(n,t,i,r,u){var f;return'        <div class="confirmation">'+n.escapeExpression((f=(f=i.confirmation||(t!=null?t.confirmation:t))!=null?f:i.helperMissing,typeof f=="function"?f.call(t!=null?t:n.nullContext||{},{name:"confirmation",hash:{},data:u}):f))+"<\/div>\r\n"},compiler:[7,">= 4.0.0"],main:function(n,t,i,r,u){var f,e=t!=null?t:n.nullContext||{};return'<div class="form-group">\r\n    <label for="user-email">Email Address<\/label>\r\n    <p class="info-text">Notifications from ClickView will be sent to the below email address.<\/p>\r\n'+((f=i.unless.call(e,t!=null?t.emptyEmail:t,{name:"unless",hash:{},fn:n.program(1,u,0),inverse:n.noop,data:u}))!=null?f:"")+'    <div class="buttons">\r\n'+((f=i["if"].call(e,t!=null?t.isEditing:t,{name:"if",hash:{},fn:n.program(11,u,0),inverse:n.program(13,u,0),data:u}))!=null?f:"")+'        <div class="spinner-viewpart"><\/div>\r\n'+((f=i["if"].call(e,t!=null?t.confirmation:t,{name:"if",hash:{},fn:n.program(19,u,0),inverse:n.noop,data:u}))!=null?f:"")+'    <\/div>\r\n<\/div>\r\n<span class="note">Note: Updating this email address will not change how you sign in to ClickView.<\/span>\r\n'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.UserProfileSettings=this.ClickView.UserProfileSettings||{};this.ClickView.UserProfileSettings.Templates=this.ClickView.UserProfileSettings.Templates||{};this.ClickView.UserProfileSettings.Templates.UserSetting=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div id="user-settings-container">\r\n    <div class="settings-body">\r\n        <h1>Profile Settings<\/h1>\r\n        <div class="divider"><\/div>\r\n        <div class="setting-container" id="email-container"><\/div>\r\n        <div class="setting-container" id="user-year-type-container"><\/div>\r\n        <div class="setting-container" id="subjects-container"><\/div>\r\n    <\/div>\r\n    <div id="setting-footer"><\/div>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.UserProfileSettings=this.ClickView.UserProfileSettings||{};this.ClickView.UserProfileSettings.Templates=this.ClickView.UserProfileSettings.Templates||{};this.ClickView.UserProfileSettings.Templates.UserYearType=Handlebars.template({"1":function(){return"            <h2>1. Select your teaching level<\/h2>\r\n"},"3":function(){return'           <label>Teaching level<\/label>\r\n            <p class="info-text">Your current recommendations are based on the teaching level highlighted below. Changing your teaching level will change these recommendations.<\/p>\r\n'},compiler:[7,">= 4.0.0"],main:function(n,t,i,r,u){var f;return'<div id="user-year-type-form">\r\n    <div class="form-body">\r\n'+((f=i["if"].call(t!=null?t:n.nullContext||{},t!=null?t.isFirstTime:t,{name:"if",hash:{},fn:n.program(1,u,0),inverse:n.program(3,u,0),data:u}))!=null?f:"")+'        <div id="year-group-recommendation-container" class="row"><\/div>\r\n    <\/div>\r\n<\/div>'},useData:!0});!function(n){"use strict";var t=n.SignIn2,i=n.Shared;t.Utils.Helpers={RedirectToProvider:function(t){var u;t||(t={});var r=n.Shared.Helpers.GetQueryString(),i={};return i.ssoUrl=t.ssoUrl,t.adminLogin&&(i.adminLogin=t.adminLogin),r.returnUrl&&(i.redirectUrl=r.returnUrl),u=n.Shared.Helpers.UrlBuilder("/sso/redirect-to-provider",i),window.location.replace(u)}}}(ClickView,EasyMoney),function(n,t,i){var r=ClickView.Shared;n.Controllers.SignInController=ClickView.Shared.Controllers.SharedController.extend({id:"SignIn",routePrefix:"",user:null,changePasswordModel:null,routes:{"SignIn(/)":"renderAppView","signin(/)":"renderAppView","forgot-password(/)":"renderForgotPassword","change-password(/)":"renderChangePassword","manager(/)":"renderAppView","Manager(/)":"renderAppView"},initialize:function(){this.user=new ClickView.SignIn2.Models.User;this.changePasswordModel=new ClickView.SignIn2.Models.ChangePasswordModel},renderForgotPassword:function(){this.user.set({forgotPassword:!0,backButtonVisible:!1});var n=new ClickView.SignIn2.Views.AppView({model:this.user});return{view:n}},renderAppView:function(){var n=r.Helpers.GetQueryString(),t;return this.user.set(i.pick(n,"username","returnUrl")),this.user.set({queryString:!!n.username}),this.user.unset({forgotPassword:!1}),t=new ClickView.SignIn2.Views.AppView({model:this.user}),{view:t}},renderChangePassword:function(){this.user.set({changePassword:!0,backButtonVisisble:!1});var n=new ClickView.SignIn2.Views.AppView({model:this.user});return{view:n}}})}(ClickView.SignIn2,EasyMoney,_);this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.App=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="form-row first">\r\n    <div class="cv-logo-img center-logo top-bar" id="top-bar">\r\n    <\/div>\r\n<\/div>\r\n<div class="child">\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.BackButton=Handlebars.template({"1":function(){return'    <a href="" id="back-btn" class="back-btn"><span class="backarrow"><\/span><\/a>\r\n'},compiler:[7,">= 4.0.0"],main:function(n,t,i,r,u){var f;return(f=i["if"].call(t!=null?t:n.nullContext||{},t!=null?t.backButtonVisible:t,{name:"if",hash:{},fn:n.program(1,u,0),inverse:n.noop,data:u}))!=null?f:""},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.ChangePassword=Handlebars.template({"1":function(){return'    <p class="text">As this is your first time here, you need to create a new password.<\/p>\r\n'},"3":function(){return'    <p class="text">Please create a new password to secure your ClickView Online account.<\/p>\r\n'},compiler:[7,">= 4.0.0"],main:function(n,t,i,r,u){var f;return'<div class="change-password">\r\n    <div class="cv-logo-img center-logo" id="top-bar"><\/div>\r\n'+((f=i["if"].call(t!=null?t:n.nullContext||{},t!=null?t.isFirstTime:t,{name:"if",hash:{},fn:n.program(1,u,0),inverse:n.program(3,u,0),data:u}))!=null?f:"")+'    <form method="post" id="change-password-form" class="change-password-form">\r\n        <div class="input-fields">\r\n            <div class="form-row">\r\n                <input type="text" placeholder="Email address" id="username" name="username" disabled class="large" />\r\n                <div class="email-viewpart"><\/div>\r\n            <\/div>\r\n            <div class="form-row">\r\n                <input type="password" placeholder="New password" id="password" name="password" tabindex="1" novalidate autofocus class="large" />\r\n            <\/div>\r\n            <div class="form-row">\r\n                <input type="password" placeholder="Confirm password" id="confirmpassword" name="confirmpassword" tabindex="2" novalidate class="large" />\r\n            <\/div>\r\n            <div class="form-row error-msg">\r\n                <p id="message"><\/p>\r\n            <\/div>\r\n            <div class="form-row last">\r\n                <button class="btn orange large btnWithSpinner" id="signin-btn" tabindex="3">\r\n                    <span id="btnContent" class="btnContent">Update<\/span>\r\n                <\/button>\r\n            <\/div>\r\n            <div class="right-link">\r\n                <a href="/sign-out" class="sign-out-link" id="change-password-signout-btn">Not you? Sign Out<\/a>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.ChangePasswordNew=Handlebars.template({"1":function(){return'    <p class="text">As this is your first time here, you need to create a new password.<\/p>\r\n'},"3":function(){return'    <p class="text">Please create a new password to secure your ClickView Online account.<\/p>\r\n'},compiler:[7,">= 4.0.0"],main:function(n,t,i,r,u){var f;return'<div class="change-password">\r\n'+((f=i["if"].call(t!=null?t:n.nullContext||{},t!=null?t.isFirstTime:t,{name:"if",hash:{},fn:n.program(1,u,0),inverse:n.program(3,u,0),data:u}))!=null?f:"")+'    <form method="post" id="change-password-form" class="change-password-form">\r\n        <div class="input-fields">\r\n            <div class="form-row">\r\n                <input type="text" placeholder="Email address" id="username" name="username" disabled class="large" />\r\n                <div class="email-viewpart"><\/div>\r\n            <\/div>\r\n            <div class="form-row">\r\n                <input type="password" placeholder="New password" id="password" name="password" tabindex="1" novalidate autofocus class="large" />\r\n            <\/div>\r\n            <div class="form-row">\r\n                <input type="password" placeholder="Confirm password" id="confirmpassword" name="confirmpassword" tabindex="2" novalidate class="large" />\r\n            <\/div>\r\n            <div class="form-row error-msg">\r\n                <p id="message"><\/p>\r\n            <\/div>\r\n            <div class="form-row last">\r\n                <button class="btn orange large btnWithSpinner" id="signin-btn" tabindex="3">\r\n                    <span id="btnContent" class="btnContent">Update<\/span>\r\n                <\/button>\r\n            <\/div>\r\n            <div class="right-link">\r\n                <a href="/sign-out" class="sign-out-link" id="change-password-signout-btn">Not you? Sign Out<\/a>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.ForgotPassword=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="forgot-password-form">\r\n    <div class="form-row">\r\n        <p>Please enter your email address and we will send you instructions on how to reset your password.<\/p>\r\n    <\/div>\r\n    <div class="form-row">\r\n        <p>Single Sign On customers should contact their network administrator to reset their password.<\/p>\r\n    <\/div>\r\n    <form method="post" id="forgot-password-form">\r\n        <div class="input-fields">\r\n            <div class="form-row">\r\n                <input type="text" id="username" class="large" novalidate placeholder="Email Address" tabindex="1"/>\r\n            <\/div>\r\n            <div class="form-row error-msg">\r\n                <p id="message"><\/p>\r\n            <\/div>\r\n            <div class="form-row last">\r\n                <button class="btn orange large btnWithSpinner" id="signin-btn" tabindex="2">\r\n                    <span id="btnContent-forgot" class="btnContent">Submit<\/span>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.ForgotPasswordSuccess=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="forgot-password-form">\r\n    <div class="form-row">\r\n        <p class="centered-message">An email has been sent to <span class="username-span"><\/span><\/p>\r\n    <\/div>\r\n    <div class="form-row last">\r\n        <button class="btn orange large btnWithSpinner" id="back" tabindex="1">\r\n            <span id="btnContent-back" class="btnContent">Back to Sign in page<\/span>\r\n        <\/button>\r\n    <\/div>\r\n<\/div>\r\n'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.Password=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="password-form">\r\n    <form method="post" id="password-form">\r\n        <div class="input-fields">\r\n            <div class="form-row special">\r\n                <input type="text" id="username" disabled class="large"/>          \r\n                <a href="" id="xBtn" class="xBtn"><span class="icon-remove"><\/span><\/a>\r\n            <\/div>\r\n            <div class="form-row">\r\n                <input type="password" placeholder="Password" id="password" name="password" tabindex="1" novalidate class="large" />\r\n                <div class="password-viewpart"><\/div>\r\n            <\/div>\r\n            <div class="form-row error-msg ">\r\n                <p id="message"><\/p>\r\n            <\/div>\r\n            <div class="form-row last">\r\n                <button class="btn orange large btnWithSpinner" id="signin-btn" tabindex="2">\r\n                    <span id="btnContent-password" class="btnContent">Sign in<\/span>\r\n                <\/button>\r\n            <\/div>\r\n            <div class="right-link">\r\n                <a href="" class="forgot-password" tabindex="3">Forgot your password?<\/a>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.Redirect=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="username-form">\r\n    <p>You\'re about to be redirected to your institution\'s sign-in page:<\/p>\r\n    <div class="spinner" />\r\n    <button class="btn grey large btnWithSpinner cancel" tabindex="1">\r\n        <span class="btnContent">Cancel<\/span>\r\n    <\/button>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.Sso=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="sso-form">\r\n    <p>Please select a SSO Provider from the list below<\/p>\r\n    <form method="post" id="sso-form">\r\n        <div class="input-fields">\r\n            <div class="form-row special">\r\n                <input type="text" id="username" disabled class="large" />\r\n                <a href="" id="xBtn" class="xBtn"><span class="icon-remove"><\/span><\/a>\r\n            <\/div>\r\n            <div class="form-row">\r\n                <select id="sso-providers" name="sso-providers" class="large" tabindex="1"><\/select>\r\n            <\/div>\r\n            <div class="form-row error-msg">\r\n                <p id="message"><\/p>\r\n            <\/div>\r\n            <div class="form-row last">\r\n                <button class="btn orange large btnWithSpinner" id="signin-btn" tabindex="2">\r\n                    <span id="btnContent-sso" class="btnContent">Proceed<\/span>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.TwoFactorAuthList=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="tfa-list-form">\r\n    <p class="tfa-message">To verify your identity using Two-Step authentication.<\/p>\r\n    <p class="tfa-message">Please select your phone number from below<\/p>\r\n    <form method="post" id="tfa-list-form">\r\n        <div class="input-fields">\r\n            <div class="form-row special">\r\n                <input type="text" id="username" disabled class="large" />\r\n                <a href="" id="xBtn" class="xBtn"><span class="icon-remove"><\/span><\/a>\r\n            <\/div>\r\n            <div class="form-row">\r\n                <select id="tfa-user-providers" name="tfa-user-providers" class="large" tabindex="1"><\/select>\r\n            <\/div>\r\n            <div class="form-row error-msg">\r\n                <p id="message"><\/p>\r\n            <\/div>\r\n            <div class="form-row last">\r\n                <button class="btn orange large btnWithSpinner" id="next-btn" tabindex="2">\r\n                    <span id="btnContent-tfaListForm" class="btnContent">Next<\/span>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.Username=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'    <div class="username-form">\r\n        <p>Enter your email address to sign in to your ClickView account<\/p>\r\n    <form method="post" id="sign-in-form">\r\n        <div class="input-fields">\r\n            <div class="form-row">\r\n                <input type="text" placeholder="Email address" id="username" name="username" tabindex="1" autofocus novalidate class="large" />\r\n                <div class="email-viewpart"><\/div>\r\n            <\/div>\r\n            <div class="form-row error-msg">\r\n                <p id="message"><\/p>\r\n            <\/div>\r\n            <div class="form-row last">\r\n                <button class="btn orange large btnWithSpinner" id="signin-btn" tabindex="2">                \r\n                    <span id="btnContent-username" class="btnContent">Next<\/span>\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.UserSubjects=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="password-form">\r\n    <div id="user-year-type-viewpart"><\/div>\r\n    <div id="user-subects-viewpart"><\/div>\r\n    <div id="user-settings-footer"><\/div>\r\n<\/div>'},useData:!0});this.ClickView=this.ClickView||{};this.ClickView.SignIn2=this.ClickView.SignIn2||{};this.ClickView.SignIn2.Templates=this.ClickView.SignIn2.Templates||{};this.ClickView.SignIn2.Templates.VerifyTwoFactorAuthToken=Handlebars.template({compiler:[7,">= 4.0.0"],main:function(){return'<div class="tfa-verify-form">\r\n    <form method="post" id="tfa-verify-form">\r\n        <div class="input-fields">\r\n            <div class="form-row">\r\n                <span>Security code has been sent to number below.<\/span>\r\n            <\/div>\r\n            <div class="form-row special">\r\n                <input type="text" id="contactNum" disabled class="large"/>          \r\n                <a href="" id="xBtn" class="xBtn"><span class="icon-remove"><\/span><\/a>\r\n            <\/div>\r\n            <div class="form-row">\r\n                <input placeholder="Enter security code" autocomplete="off" id="tfaCode" name="tfaCode" tabindex="1" novalidate class="large" />\r\n                <div class="tfaCode-viewpart"><\/div>\r\n            <\/div>\r\n            <div class="form-row error-msg ">\r\n                <p id="message"><\/p>\r\n            <\/div>\r\n            <div class="form-row last">\r\n                <button class="btn orange large btnWithSpinner" id="verify-code-btn" tabindex="2">\r\n                    <span id="btnContent-verifyTFAToken" class="btnContent">Verify Code<\/span>\r\n                <\/button>\r\n            <\/div>\r\n            <div class="right-link">\r\n                <span>You have not received code yet?<\/span>\r\n                <span class="forgot-password resend-code" tabindex="3">Resend Code<\/span>\r\n            <\/div>\r\n        <\/div>\r\n    <\/form>\r\n<\/div>'},useData:!0}),function(n,t){n.Models.ChangePasswordModel=t.Model.extend({defaults:{username:"",password:"",confirmpassword:"",message:"",isFirstTime:!1},isValid:function(){var n="",t=!!this.get("password")&&!!this.get("confirmpassword"),i=this.get("password")===this.get("confirmpassword"),r=this.get("password").length>=6;return r||(n="Passwords must be at least 6 characters."),i||(n="Passwords must match."),t||(n="Passwords cannot be blank."),{valid:i&&t&&r,message:n}}})}(ClickView.SignIn2,EasyMoney),function(n,t){n.Models.SsoUrl=t.Model.extend({defaults:{ssoDomain:"",loginUrl:"",schoolId:"",name:"",selected:!1}})}(ClickView.SignIn2,EasyMoney),function(n,t){n.Models.TFAUser=t.Model.extend({defaults:{providerId:"",contactNumber:"",username:"",selected:!1}})}(ClickView.SignIn2,EasyMoney),function(n,t){n.Models.User=t.NestedModel.extend({defaults:{username:"",password:"",returnUrl:"",message:"",redirectURL:"",contactNum:"",authyId:"",backButtonVisible:!1,success:!1,failed:!1,userExists:!1,tried:!1,queryString:!1,goneBack:!1,forgotPassword:!1,multipleTFAUsers:!1,adminLogin:!1},associations:{ssoUrls:function(t,i){return new n.Collections.SsoRedirectUrls(t,i)}},urlRoot:function(){return"/api/account/signin"},initialize:function(){this.on("sync",this.onSync)},onSync:function(){this._loaded=!0},isLoaded:function(){return this._loaded},isValid:function(){var n="",t=!!this.get("username")&&!!this.get("password");return t&&(n="Username and password cannot be blank."),{valid:t,message:n}},isValidChangePassword:function(){var n="",t=!!this.get("password")&&!!this.get("confirmpassword"),i=this.get("password")===this.get("confirmpassword"),r=this.get("password").length>=6;return r||(n="Passwords must be at least 6 characters."),i||(n="Passwords must match."),t||(n="Passwords cannot be blank."),{valid:i&&t&&r,message:n}},trim:function(n){return $.trim(n)},isNotNullOrWhiteSpace:function(){var n="",t=this.get("username");return t?/\S/.test(t)?!0:(n="Please provide your email address.",this.set({message:n}),!1):(n="Please provide your email address.",this.set({message:n}),!1)},validateUsername:function(){var n="",i=this.get("username"),t;return i?(t=ClickView.Shared.Helpers.IsValidEmail(this.get("username")),!t)?(n="Please provide your email address.",this.set({message:n}),!1):!0:(n="Please provide your email address.",this.set({message:n}),!1)}})}(ClickView.SignIn2,EasyMoney),function(n,t){"use strict";var i=n.UserProfileSettings,r=n.Shared;i.Models.UserEmail=r.Models.UserEmail.extend({defaults:{userId:"",emailAddress:"",dateExpires:"",key:""},validation:{emailAddress:{required:!0,pattern:"email",msg:"Please provide a valid email address"}}});i.Models.SubjectRecommendation=t.Model.extend({defaults:{id:"",name:"",username:""}});i.Models.UserYearType=t.Model.extend({defaults:{id:"",name:"",selected:!1}})}(ClickView,EasyMoney),function(n,t){n.Collections.SsoRedirectUrls=t.Collection.extend({url:"/api/sso/user-redirects",model:n.Models.SsoUrl,fetchBy:function(n,t,i){this.fetch({data:{username:n},success:t,error:i})}})}(ClickView.SignIn2,EasyMoney),function(n,t){n.Collections.TFAUsers=t.Collection.extend({model:n.Models.TFAUser})}(ClickView.SignIn2,EasyMoney),function(n,t){"use strict";var i=n.UserProfileSettings;i.Collections.SubjectRecommendationCollection=t.Collection.extend({model:i.Models.SubjectRecommendation,url:function(){return"/api/profile/subject-recommendation?username="+n.Data.User.username}});i.Collections.UserYearTypeCollection=t.Collection.extend({model:i.Models.UserYearType,url:function(){return"/api/profile/year-types"}})}(ClickView,EasyMoney),function(n,t){var i=ClickView.Shared;n.Views.AppView=t.View.extend({template:n.Templates.App,className:"app-view",defaults:{transitionDelay:250,slideOutLeft:"slideOutLeft",slideOutRight:"slideOutRight",slideInLeft:"slideInLeft",slideInRight:"slideInRight"},viewIndex:{username:0,password:1,sso:2,forgot:3,forgotSuccess:4,change:5,userSubjects:6,tfaUserList:7,verifyTFAToken:8,redirect:9},initialize:function(){this.listenTo(this.model,"startSpinner",this.renderSpinner);this.listenTo(this.model,"change:currentView",this.onChangeStep);this.views=[n.Views.UsernameView,n.Views.PasswordView,n.Views.SsoView,n.Views.ForgotPasswordView,n.Views.ForgotPasswordSuccessView,n.Views.ChangePasswordView,n.Views.UserSubjects,n.Views.TwoFactorAuthListView,n.Views.VerifyTwoFactorAuthTokenView,n.Views.RedirectView]},ui:{child:".child",left:".left-view",right:".right-view",topBar:".top-bar",backBtn:".back-btn"},events:{"click  .back-btn":"goBack"},onChangeStep:function(){this.model.set("currentStep",this.viewIndex[this.model.get("currentView")]);var n=this.model._previousAttributes.currentStep,t=this.model.get("currentStep");if(this.model.get("currentStep")===0||this.model.get("forgotPassword")?this.model.set({backButtonVisible:!1}):this.model.set({backButtonVisible:!0}),n===undefined)return this.renderStep();if(n>t)return this.renderStep(this.options.slideOutRight,this.options.slideInLeft,this.options.transitionDelay);this.renderStep(this.options.slideOutLeft,this.options.slideInRight,this.options.transitionDelay)},goBack:function(n){return n.preventDefault(),t.Events.trigger("navigate","",{trigger:!1}),this.model.set("currentView","username"),this.model.unset("message"),!1},onRender:function(){if(this.renderBackButtonView(),this.model.get("forgotPassword")){this.model.set("currentView","forgot");return}if(this.model.get("changePassword")){this.model.set("currentView","change");return}if(this.model.get("redirectView")){this.model.set({currentView:"redirect",cancelView:"username"});return}this.model.set("currentView","username")},renderBackButtonView:function(){var n=new ClickView.SignIn2.Views.BackButtonView({model:this.model});this.renderView(this.ui.topBar,n)},renderSpinner:function(){var n=new i.Views.SpinJsView({spinColor:"#FFF"}),t=$("#btnContent-"+this.model.get("currentView"));this.renderView(t,n)},renderStep:function(n,t,i){var u,r;i=i||0;u=this.views[this.model.get("currentStep")];this.currentView&&this.currentView.$el.addClass(n);r=this;window.setTimeout(function(){r.currentView=new u({model:r.model});r.currentView.$el.addClass(t);r.renderView(r.ui.child,r.currentView)},i);window.setTimeout(function(){r.currentView.focusUiElement()},i*3)}})}(ClickView.SignIn2,EasyMoney,_),function(n,t){n.Views.BackButtonView=t.View.extend({template:n.Templates.BackButton,initialize:function(){this.listenTo(this.model,"change:backButtonVisible",this.render)}})}(ClickView.SignIn2,EasyMoney,_),function(n,t,i){var u=ClickView.Shared,r=ClickView.Shared.Utils.AnalyticsService;n.Views.ChangePasswordView=t.View.extend({className:"change-password-view",template:n.Templates.ChangePasswordNew,ajaxHelper:ClickView.Shared.Utils.AjaxHelper,bindings:{"#username":"username","#password":"password","#confirmpassword":"confirmpassword","#message":"message"},ui:{username:"#username",password:"#password",confirmpassword:"#confirmpassword"},events:{"submit .change-password-form":"onSubmit"},initialize:function(){this.model.set({username:ClickView.Data.ChangePasswordUsername});this.model.set({isFirstTime:ClickView.Data.ChangePasswordIsFirstTime})},onSubmit:function(n){n.preventDefault();var t=this.model.isValidChangePassword();return t.valid?this.submitData():(this.model.set("message",t.message),this.focusUiElement()),!1},submitData:function(){var n={Username:this.model.get("username"),Password:this.model.get("password"),Password2:this.model.get("password"),EncodedInfo:window.location.search?window.location.search.split("?sk=")[1]:""};this.ajaxHelper.post("/api/account/change-password",n).done(i.bind(this.onServerResponse,this));this.startSpinner()},onServerResponse:function(n){n.success?(this.logChangePassword(n.redirectURL),ClickView.Data.ChangePasswordIsFirstTime&&ClickView.Data.User.role==2?(this.model.set("redirectURL",n.redirectURL),this.model.set("currentView","userSubjects")):window.location.href=decodeURIComponent(n.redirectURL)):(this.model.set("message",n.message),this.focusUiElement(),this.stopSpinner())},focusUiElement:function(){this.model.get("message")?(this.ui.password.addClass("error-border"),this.ui.confirmpassword.addClass("error-border")):(this.ui.password.removeClass("error-border"),this.ui.confirmpassword.removeClass("error-border"));this.ui.password.focus()},onRender:function(){this.stickit()},startSpinner:function(){var n=new u.Views.SpinJsView({spinColor:"#FFF"}),t=$("#btnContent");this.renderView(t,n)},stopSpinner:function(){$(".spin-js-loader").remove();var n=$("#btnContent");n.text("Update")},logChangePassword:function(n){r.logLogin({RedirectURL:n,sso:!1,From:"home:main"});r.logChangePassword({RedirectURL:n,activation:ClickView.Data.ChangePasswordIsFirstTime})}})}(ClickView.SignIn2,EasyMoney,_),function(n,t){n.Views.ForgotPasswordSuccessView=t.View.extend({className:function(){return"forgot-password-success-view animated"},template:n.Templates.ForgotPasswordSuccess,bindings:{".username-span":"username"},events:{"click #back":"goBack"},onRender:function(){this.stickit()},goBack:function(){t.Events.trigger("navigate","/SignIn",{trigger:!1});this.model.set("currentView","username")},focusUiElement:function(){}})}(ClickView.SignIn2,EasyMoney,_),function(n,t,i){var u=ClickView.Shared,r=ClickView.Shared.Utils.AnalyticsService;n.Views.ForgotPasswordView=t.View.extend({className:function(){return"forgot-password-view animated"},template:n.Templates.ForgotPassword,bindings:{"#username":{observe:"username",getVal:function(n){return $.trim(n.val())}},"#message":"message"},ui:{username:"#username",topRow:"#top-bar"},events:{"submit .forgot-password-form":"submit"},ajaxHelper:ClickView.Shared.Utils.AjaxHelper,helper:ClickView.Shared.Utils.Helpers,initialize:function(){},submit:function(n){return n.preventDefault(),this.model.validateUsername()?(this.postUsername(),this.model.trigger("startSpinner")):this.focusUiElement(),!1},focusUiElement:function(){this.model.get("message")?this.ui.username.addClass("error-border"):this.ui.username.removeClass("error-border");this.ui.username.focus()},postUsername:function(){this.ajaxHelper.post("/api/account/recover-password",this.model.toJSON()).done(i.bind(this.onServerResponse,this))},onServerResponse:function(n){if(this.logForgottenPassword(n.success),n.success){this.model.set("currentView","forgotSuccess");return}this.model.set({message:n.message});this.stopSpinner();this.focusUiElement()},onRender:function(){this.stickit()},stopSpinner:function(){$(".spin-js-loader").remove();var n=$("#btnContent-forgot");n.text("Submit")},logForgottenPassword:function(n){var t={success:n,username:this.model.get("username")};r.logRequestPassword(t)}})}(ClickView.SignIn2,EasyMoney,_),function(n,t){var r=ClickView.Shared,i=ClickView.Shared.Utils.AnalyticsService;n.Views.PasswordView=t.View.extend({className:function(){return"password-view animated"},template:n.Templates.Password,bindings:{"#username":"username","#password":"password","#message":"message"},ui:{username:"#username",password:"#password",message:"#message",submit:"#signin-btn"},events:{"submit .password-form":"onSubmit","click  .xBtn":"onCrossIconPressed","click  .forgot-password":"onForgotPassword"},initialize:function(){this.listenTo(this.model,"sync",this.onServerResponse)},onCrossIconPressed:function(n){return n.preventDefault(),this.model.unset("username"),this.model.unset("password"),this.model.unset("message"),this.model.set("currentView","username"),!1},onForgotPassword:function(n){return n.preventDefault(),this.model.unset("message"),t.Events.trigger("navigate","/forgot-password",{trigger:!1}),this.model.set("currentView","forgot"),!1},onServerResponse:function(){if(this.model.get("success")===!0){if(this.logLogin(!0),this.model.get("redirectToTFA")){if(this.model.get("tfaUsers").length===1){var t=this.model.get("tfaUsers")[0];this.model.set({currentTFAUser:t,contactNum:t.contactNumber,providerId:t.providerId,multipleTFAUsers:!1,currentView:"verifyTFAToken"});return}if(this.model.get("tfaUsers").length>1){this.model.tfaUsers=new n.Collections.TFAUsers(this.model.get("tfaUsers"));this.model.set("multipleTFAUsers",!0);this.model.set("currentView","tfaUserList");return}}window.location=decodeURIComponent(this.model.get("redirectURL"));return}this.logLogin(!1);this.model.set({wrongPassword:!0});this.focusUiElement();this.stopSpinner()},focusUiElement:function(){this.model.get("message")?this.ui.password.addClass("error-border"):this.ui.password.removeClass("error-border");this.ui.password.focus()},getReturnUrl:function(){return this.model.get("returnUrl")||""},onSubmit:function(n){return n.preventDefault(),this.model.get("password")?(this.model.set({returnUrl:this.getReturnUrl()}),this.model.save(),this.model.trigger("startSpinner")):(this.model.set({message:"Please provide a password."}),this.model.set({wrongPassword:!0}),this.focusUiElement(),this.stopSpinner()),!1},onRendered:function(){this.stickit()},stopSpinner:function(){$(".spin-js-loader").remove();var n=$("#btnContent-password");n.text("Sign in")},logLogin:function(n){var t={RedirectUrl:this.model.get("returnUrl"),sso:!1,From:"home:main"};if(n){i.logLogin(t);return}t.username=this.model.get("username");i.logLoginFail(t)}})}(ClickView.SignIn2,EasyMoney,_);!function(n,t){"use strict";var r=n.Shared.Utils.AnalyticsService,i=n.SignIn2,u=n.Shared;i.Views.RedirectView=t.View.extend({name:"RedirectView.js",className:function(){return"redirect-view animated"},template:i.Templates.Redirect,defaults:{redirectTimeout:2500},ui:{spinner:".spinner"},events:{"click .cancel":"cancelRedirect"},initialize:function(){this.onKeyDown=_.bind(this.onKeyDown,this);$(document).on("keydown",this.onKeyDown);this.listenTo(this.model,"change:currentView",this.cancelRedirect)},focusUiElement:function(){},onKeyDown:function(n){(n.which==27||n.which==8)&&this.cancelRedirect()},startTimeout:function(){this._timeout=setTimeout(_.bind(this.redirect,this),this.options.redirectTimeout)},cancelRedirect:function(){this._cancelled||(this._cancelled=!0,r.logCancelRedirect(this.getAnalyticsData()),clearTimeout(this._timeout),$(document).off("keydown",this.onKeyDown),this.model.set("currentView",this.model.get("cancelView")))},redirect:function(){this._cancelled||(this.model.get("adminLogin")&&n.Shared.Utils.LocalStorageHelper.cacheSet("adm:migration:attempt",!0,300),r.logSsoRedirect(this.getAnalyticsData()),i.Utils.Helpers.RedirectToProvider({ssoUrl:this.model.get("redirectSsoModel").get("loginUrl"),adminLogin:!!this.model.get("adminLogin")}))},getAnalyticsData:function(){var n=this.model.get("redirectSsoModel");return{From:"home:sso",sso:!0,ssoUrl:n.loginUrl,name:n.name,schoolId:n.schoolId,username:this.model.get("username"),ssoDomain:n.ssoDomain}},renderSpinner:function(){var n=new u.Views.SpinJsView({spinColor:"#f8981d"});this.renderView(this.ui.spinner,n)},onRendered:function(){this.renderSpinner();this.startTimeout()}})}(ClickView,EasyMoney),function(n,t){var i=ClickView.Shared.Utils.AnalyticsService;n.Views.SsoView=t.View.extend({className:"sso-view animated",template:n.Templates.Sso,bindings:function(){return{"#username":"username","#message":"message","[name=sso-providers]":{observe:"ssoProviders",selectOptions:{collection:this.model.ssoUrls,labelPath:"name",valuePath:"loginUrl",defaultOption:{label:"Select your school",value:null}},setOptions:{validate:!0}}}},ui:{username:"#username",message:"#message",signInBtn:"#signin-btn",ssoProviders:"#sso-providers"},events:{"submit .sso-form":"onSubmit","click  .xBtn":"goBack","change #sso-providers":"removeMessage"},initialize:function(){},removeMessage:function(){this.ui.ssoProviders.val()&&this.model.unset("message")},getUrlCollection:function(){return this.model.get("ssoProviders")},goBack:function(n){return n.preventDefault(),this.model.unset("username"),this.model.unset("message"),this.model.set("currentView","username"),!1},onSubmit:function(n){var t,i;return(n.preventDefault(),t=this.ui.ssoProviders.val(),t==="NoSSO")?(this.model.set("currentView","password"),!1):t?(i=this.model.ssoUrls.find(function(n){return n.get("loginUrl")===t}),this.model.set({redirectSsoModel:i,cancelView:"password",currentView:"redirect"}),!1):(this.model.set({message:"Please select your SSO provider."}),this.focusUiElement(),this.stopSpinner(),!1)},onRender:function(){this.stickit()},focusUiElement:function(){this.model.get("message")?this.ui.ssoProviders.addClass("error-border"):this.ui.ssoProviders.removeClass("error-border");this.ui.ssoProviders.focus()},stopSpinner:function(){$(".spin-js-loader").remove();$("#btnContent-password").text("Sign in")}})}(ClickView.SignIn2,EasyMoney,_),function(n,t,i){"use strict";n.Views.TwoFactorAuthListView=t.View.extend({template:n.Templates.TwoFactorAuthList,bindings:function(){return{"#username":"username","#message":"message","[name=tfa-user-providers]":{observe:"tfaUserProviders",selectOptions:{collection:this.model.tfaUsers,labelPath:"contactNumber",valuePath:"providerId",defaultOption:{label:"Select your contact number",value:null}},setOptions:{validate:!0}}}},ui:{username:"#username",message:"#message",nextBtn:"#next-btn",tfaUserProviders:"#tfa-user-providers"},events:{"submit .tfa-list-form":"onSubmit","change #tfa-user-providers":"removeMessage"},initialize:function(){},getUserCollection:function(){return this.model.get("tfaUsers")},onRender:function(){this.stickit()},focusUiElement:function(){this.model.get("message")?this.ui.tfaUserProviders.addClass("error-border"):this.ui.tfaUserProviders.removeClass("error-border");this.ui.tfaUserProviders.focus()},removeMessage:function(){this.ui.tfaUserProviders.val()&&this.model.unset("message")},onSubmit:function(n){var r,t;if(n.preventDefault(),r=this.ui.tfaUserProviders.val(),!r)return this.model.set({message:"Please select a contact number."}),this.focusUiElement(),this.stopSpinner(),!1;t=i.find(this.model.get("tfaUsers"),function(n){return n.providerId===r});this.model.set("currentTFAUser",t);this.model.set("contactNum",t.contactNumber);this.model.set("providerId",t.providerId);this.model.set("currentView","verifyTFAToken");return},stopSpinner:function(){$(".spin-js-loader").remove();var n=$("#btnContent-tfaListForm");n.text("Next")}})}(ClickView.SignIn2,EasyMoney,_),function(n,t){var i=ClickView.Shared.Utils.AnalyticsService,r=ClickView.Shared;n.Views.UsernameView=t.View.extend({className:function(){return"signin-view animated"},template:n.Templates.Username,bindings:{"#username":{observe:"username",getVal:function(n){return $.trim(n.val())}},"#message":"message"},ui:{username:"#username",errorMessage:"#message"},events:{"submit .username-form":"onSubmit"},initialize:function(){this.model.ssoUrls=new ClickView.SignIn2.Collections.SsoRedirectUrls;this.listenTo(this.model.ssoUrls,"sync",this.onSsoSuccess);this.listenTo(this.model.ssoUrls,"error",this.onSsoError)},onRender:function(){this.isQueryString()&&this.model.ssoUrls.fetchBy(this.model.get("username"))},onRendered:function(){this.isQueryString()&&this.model.trigger("startSpinner");this.stickit()},isQueryString:function(){return this.model.get("username")&&!this.model.get("userExists")&&!this.model.get("tried")&&this.model.get("queryString")},focusUiElement:function(){this.model.get("message")?this.ui.username.addClass("error-border"):this.ui.username.removeClass("error-border");this.ui.username.focus()},onSubmit:function(n){return n.preventDefault(),this.model.isNotNullOrWhiteSpace()?(this.model.ssoUrls.fetchBy(this.model.get("username")),this.model.trigger("startSpinner")):this.focusUiElement(),!1},onSsoSuccess:function(){this.model.get("adminLogin")&&(this.model.ssoUrls=new n.Collections.SsoRedirectUrls(this.model.ssoUrls.filter(function(n){return n.get("schoolId")===ClickView.Data.User.customerId})));var i=new n.Models.SsoUrl({ssoDomain:null,loginUrl:"NoSSO",name:"My school doesn't use Single Sign On",schoolId:null});if(this.model.ssoUrls.add(i,{at:0}),this.model.unset("message"),t.Events.trigger("navigate","",{trigger:!1}),this.model.ssoUrls.length<=1){this.model.set({userExists:!0});this.model.set("currentView","password");return}if(this.model.ssoUrls.length===2){this.model.set({redirectSsoModel:this.model.ssoUrls.last(),cancelView:"password",currentView:"redirect"});return}this.model.set({userExists:!0});this.model.set("currentView","sso")},onSsoError:function(n,t){this.model.set({userExists:!1,tried:!0});t&&t.responseJSON&&t.responseJSON.message?this.model.set({message:t.responseJSON.message}):this.model.set({message:"Sorry, we don't recognise that username."});this.focusUiElement();this.stopSpinner()},stopSpinner:function(){$(".spin-js-loader").remove();$("#btnContent-username").text("Next")}})}(ClickView.SignIn2,EasyMoney,_),function(n,t){var i=ClickView.Shared;n.Views.UserSubjects=t.View.extend({className:"user-subject-view",template:n.Templates.UserSubjects,initialize:function(){this.confirmYear=!1;this.confirmSubjects=!1;this.isUpdating=!1;this.model.set("backButtonVisible",!1);this.listenTo(t.Events,"userprofilesettings:subject-recommendation-completed",this.onSubjectCompleted);this.listenTo(t.Events,"userprofilesettings:user-year-type-completed",this.onYearTypeCompleted)},ui:{userYearType:"#user-year-type-viewpart",userSubjects:"#user-subects-viewpart",footer:"#user-settings-footer"},events:{"click #close-btn":"skipUserSetting","click #update-btn":"UpdateUserSetting"},onRender:function(){$(".app-container").addClass("wide");this.onRenderYearTypeView();this.onRenderSubjectRecommendationView();this.onRenderButtons()},onRenderYearTypeView:function(){var n=new ClickView.UserProfileSettings.Collections.UserYearTypeCollection,t=new ClickView.UserProfileSettings.Views.UserYearTypeView({collection:n,isFirstTime:this.model.get("isFirstTime")});this.renderView(this.ui.userYearType,t)},onRenderSubjectRecommendationView:function(){var n=new ClickView.UserProfileSettings.Collections.SubjectRecommendationCollection,t=new ClickView.UserProfileSettings.Views.SubjectRecommendationView({collection:n,isFirstTime:this.model.get("isFirstTime")});this.renderView(this.ui.userSubjects,t)},skipUserSetting:function(){window.location=decodeURIComponent(this.model.get("redirectURL"))},UpdateUserSetting:function(){this.isUpdating=!0;t.Events.trigger("userprofilesettings:update-subject-tags");t.Events.trigger("userprofilesettings:save-user-year-type");this.onRenderButtons()},onSaveComplete:function(){this.confirmSubjects&&this.confirmYear&&(window.location=decodeURIComponent(this.model.get("redirectURL")))},onSubjectCompleted:function(){this.confirmSubjects=!0;this.onSaveComplete()},onYearTypeCompleted:function(){this.confirmYear=!0;this.onSaveComplete()},onRenderButtons:function(){this.renderView(this.ui.footer,new n.Views.UserSubectsButtonView({isUpdating:this.isUpdating}))},focusUiElement:function(){return}});n.Views.UserSubectsButtonView=t.View.extend({template:'<button id="close-btn" class="setting-btn btn grey" {{#if isUpdating}}disabled{{/if}}>Close<\/button><button id="update-btn" class="setting-btn cv-btn" {{#if isUpdating}}disabled{{/if}}>Save changes<\/button>',initialize:function(){this.isUpdating=this.options.isUpdating},ui:{updateButton:"#update-btn"},viewOptions:function(){return{isUpdating:this.isUpdating}},onRender:function(){if(this.isUpdating){var n=new ClickView.Shared.Views.SpinJsView({spinColor:"#fff"});this.renderView(this.ui.updateButton,n)}}})}(ClickView.SignIn2,EasyMoney,_),function(n,t,i){"use strict";n.Views.VerifyTwoFactorAuthTokenView=t.View.extend({template:n.Templates.VerifyTwoFactorAuthToken,ajaxHelper:ClickView.Shared.Utils.AjaxHelper,bindings:{"#contactNum":"contactNum","#tfaCode":"tfaCode","#message":"message"},ui:{contactNum:"#contactNum",tfaCode:"#tfaCode",message:"#message",submit:"#verify-code-btn"},events:{"submit .tfa-verify-form":"onSubmit","click .resend-code":"resendCode","click .xBtn":"goBack"},initialize:function(){this.onSendVerificationCode()},onRendered:function(){this.stickit()},onSubmit:function(n){n.preventDefault();this.model.get("tfaCode")?(this.onVerifyCode(),this.model.trigger("startSpinner")):(this.model.set({message:"Please provide a code"}),this.focusUiElement(),this.stopSpinner())},resendCode:function(){this.model.unset("message");this.onSendVerificationCode()},onSendVerificationCode:function(){var n={username:this.model.get("username"),password:this.model.get("password")};this.ajaxHelper.post("/api/account/users/"+this.model.get("providerId")+"/send-code",n).done(i.bind(this.onSentCodeResponse,this))},onVerifyCode:function(){var n=this.model.get("tfaCode"),t={username:this.model.get("username"),password:this.model.get("password")};this.ajaxHelper.post("/api/account/users/"+this.model.get("providerId")+"/verify-code?code="+n+"&makeAdmin="+this.model.get("adminLogin"),t).done(i.bind(this.onVerifyResponse,this))},onVerifyResponse:function(n){if(n!=200)this.model.set({message:"Security code is not valid"}),this.focusUiElement(),this.stopSpinner();else{window.location=decodeURIComponent(this.model.get("redirectURL"));return}},onSentCodeResponse:function(n){n||this.model.set({message:"Oh no! Something went wrong. Please click resend code."})},goBack:function(n){if(n.preventDefault(),this.model.get("multipleTFAUsers")){this.model.set("currentView","tfaUserList");return}this.model.unset("username");this.model.unset("password");this.model.unset("message");this.model.set("currentView","username")},focusUiElement:function(){this.model.get("message")?this.ui.tfaCode.addClass("error-border"):this.ui.tfaCode.removeClass("error-border");this.ui.tfaCode.focus()},stopSpinner:function(){$(".spin-js-loader").remove();var n=$("#btnContent-verifyTFAToken");n.text("Verify Code")}})}(ClickView.SignIn2,EasyMoney,_),function(n){n.Router=ClickView.Shared.Router.BaseRouter.extend({container:$(".signin-form"),history:!0})}(ClickView.SignIn2,EasyMoney,_),function(n,t){"use strict";var i=n.UserProfileSettings;i.Views.UserYearTypeItemView=t.View.extend({template:'<div id="{{name}}" class="col-xs-4 col-sm-4"><div class="year-group-container {{#if selected}}selected{{/if}}">{{#if selected}}<div class="year-group-checked"><img class="year-group-check-img" src="/assets/images/user-profile-setting/select-year-tick.png" /><\/div>{{/if}}{{#if selected}}<img class="year-group-img" src="/Assets/images/user-profile-setting/select-{{name}}-group-graphic.png" alt="primary-group-graphic" />{{else}}<img class="year-group-img" src="/Assets/images/user-profile-setting/{{name}}-group-graphic.png" alt="primary-group-graphic" />{{/if}}<p>{{name}}<\/p><\/div><\/div>',events:{"click .year-group-container":"selectYearType"},selectYearType:function(){this.model.set("selected",!this.model.get("selected"));this.render()}});i.Views.UserYearTypeListView=t.ListView.extend({name:"UserYearTypeListView",template:!1,className:"user-year-type-list",childView:i.Views.UserYearTypeItemView,initialize:function(){this.loaded=!1;this.listenTo(this.collection,"sync",this.onSync)},onBeforeRender:function(){return this.loaded?!0:(this.collection.fetch(),this.renderView(this.$el,new n.Shared.Views.LoaderView),!1)},onRender:function(){},onSync:function(){this.onUserYearType()},onUserYearType:function(){var t=this;n.Shared.Utils.AjaxHelper.get("/api/profile/users/year-types?username="+n.Data.User.username).done(function(n){n!=null&&t.updateUserYearType(n)})},updateUserYearType:function(n){var i=_.pluck(n,"yearTypeId");this.collection.each(function(n){n.set("selected",_.contains(i,n.get("id")))});t.Events.trigger("userprofilesettings:update-current-year-type",i);this.loaded=!0;this.render()}});i.Views.UserYearTypeView=t.View.extend({id:"user-year-type-widget",name:"UserYearTYpeView",model:i.Models.UserYearType,template:i.Templates.UserYearType,initialize:function(){this.isFirstTime=this.options.isFirstTime;this.currentYearTypes=[];this.listenTo(t.Events,"userprofilesettings:save-user-year-type",this.onUpdateUserYearTypes);this.listenTo(t.Events,"userprofilesettings:update-current-year-type",this.updateCurrentYearIds)},viewOptions:function(){return{isFirstTime:this.isFirstTime}},ui:{yearRecommendation:"#year-group-recommendation-container"},onRender:function(){this.renderView(this.ui.yearRecommendation,new i.Views.UserYearTypeListView({collection:this.collection}),{empty:!1})},updateCurrentYearIds:function(n){this.currentYearTypes=n},onUpdateUserYearTypes:function(){var i=_.pluck(this.collection.where({selected:!0}),"id"),r="/api/profile/year-types?username="+n.Data.User.username;n.Shared.Utils.AjaxHelper.post(r,{yearTypeIds:i}).done(function(){t.Events.trigger("userprofilesettings:user-year-type-completed")})}})}(ClickView,EasyMoney),function(n,t){"use strict";var i=n.UserProfileSettings;i.Views.SubjectRecommendationView=t.View.extend({id:"subject-recommend-widget",name:"subjectRecommendationView",model:i.Models.SubjectRecommendation,template:i.Templates.SubjectRecommendation,initialize:function(){this.loaded=!1;this.listenTo(this.collection,"sync",this.onModelChange);this.subjectList=[];this.maxTags=7;this.isFirstTime=this.options.isFirstTime;this.options.isFirstTime&&(this.maxTags=5);this.listenTo(t.Events,"userprofilesettings:update-subject-tags",this.updateSubjectsTags);this.collection.fetch()},ui:{subjectInput:"#subject-input"},events:{"click #close-btn":"onClose","click #confirm-btn":"onConfirm","click .year-group-container":"onSelect"},onSelect:function(){$(".year-group-container").addClass("selected")},wideAppContainer:function(){$(".app-container").addClass("wide")},onModelChange:function(){this.loaded||(this.loaded=!0,this.render())},getModel:function(){return{isFirstTime:this.options.isFirstTime}},onBeforeRender:function(){return this.loaded?!0:(this.renderView(this.$el,new n.Shared.Views.LoaderView),!1)},onRender:function(){this.getSubjectList();var n=this.options.isFirstTime?"Type the subjects you're interested in":"Type another subject here";this.ui.subjectInput.attr("placeholder",n)},onRendered:function(){this.$el.on("itemAdded",_.bind(this.addSubject,this));this.$el.on("itemRemoved",_.bind(this.removeSubject,this))},getSubjectList:function(){var t=this;n.Shared.Utils.AjaxHelper.get("/api/profile/subject-recommendation/subjects").done(function(n){t.subjectList=n;t.onTagInput();t.updateTagInputVisibility()})},onTagInput:function(){var t=this,i=this.ui.subjectInput,r=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("name"),queryTokenizer:Bloodhound.tokenizers.whitespace,local:t.subjectList}),n;r.initialize();i.tagsinput({itemValue:"id",itemText:"name",maxTags:t.maxTags,typeaheadjs:{name:"userRecommendation",displayKey:"name",source:r.ttAdapter()}});n=_.sortBy(this.collection.toJSON(),function(n){return n.name.length});!n||_.each(n,function(n){i.tagsinput("add",n)})},addSubject:function(n){var t=n.item,i=this;n.options&&n.options.preventPost||t.username||($("#subject-input").tagsinput("add",t,{preventPost:!0}),i.updateTagInputVisibility())},removeSubject:function(n){var t=n.item;this.updateTagInputVisibility()},updateTagInputVisibility:function(){var t=$(".tag").length,n=$(".twitter-typeahead");t>=this.maxTags?n.css("display","none"):n.css("display","inline-block")},updateSubjectsTags:function(){var i=_.pluck(this.ui.subjectInput.tagsinput("items"),"id"),r="/api/profile/subject-recommendation?username="+n.Data.User.username;n.Shared.Utils.AjaxHelper.post(r,{subjectIds:i}).done(function(){t.Events.trigger("userprofilesettings:subject-recommendation-completed")})}})}(ClickView,EasyMoney)