(function(n){"use strict";typeof n.Conservatives=="undefined"&&(n.Conservatives={});n.Conservatives.Module="membershipApp";angular.module(n.Conservatives.Module,["ngRoute","ngSanitize","ngAnimate","ui.bootstrap","directives.customvalidation.customValidationTypes"]).constant("baseUrl",$("#baseUrl").val()).constant("successUrl",$("#successUrl").val())})(window),function(n){function t(n){return{link:function(t,i){i.addClass("ng-hide");var r=n.$on("$routeChangeStart",function(){$("div[ng-view]").html("");i.removeClass("ng-hide")});t.$on("$destroy",r)}}}function i(n){var t=$("#baseUrl").val();return{restrict:"E",replace:!0,template:'<div class="col-md-12 text-center" show-during-resolve><div align="center"><img src="'+t+'Content/Images/Loading.gif" alt="Loading..."><\/div><\/div>',link:function(t,i){n.$on("$routeChangeStart",function(n,t,i){i});n.$on("$routeChangeSuccess",function(){i.addClass("ng-hide")})}}}angular.module(n.Module).directive("showDuringResolve",["$rootScope",t]).directive("resolveLoader",["$rootScope","$timeout",i])}(Conservatives),function(n){"use strict";function t(n,t){function i(i){return(i.status==503&&$route.routes["/Maintenance"]&&t.path("/Maintenance"),i.data.errorMessages)?n.reject(i.data):!angular.isObject(i.data)||!i.data.Message?n.reject("There have been some issues with your request, please try again."):n.reject(i.data.Message)}function r(n){if(typeof n.data=="string"&&n.data.indexOf('<form method="post" action="./Login')!=-1){var t=document.getElementById("baseUrlText").value;window.location=t+"Account/Login?message=SessionExpired";return}return n.data}return{handleError:i,handleSuccess:r}}angular.module(n.Module).factory("serviceResponseHandler",["$q","$location","$route",t])}(window.Conservatives),function(n){"use strict";function t(n,t){function r(n){if(i)return null;n.path("/")}function u(n){return n.getAvailableLevels().then(function(n){return{levels:n}}).catch(function(){$location.path("/Maintenance")})}var i=!1;n.when("/",{templateUrl:t+"Renew/RenewDetails",controller:"renewCtrl as renew",resolve:{viewBag:["membership.svc","$location",u]}}).when("/Maintenance",{templateUrl:t+"Home/Offline",resolve:{viewBag:["$location",r]}}).when("/Error",{templateUrl:t+"Home/Error"}).when("/Success",{templateUrl:t+"Renew/Success"}).otherwise({redirectTo:"/"})}angular.module(n.Module).config(["$routeProvider","baseUrl",t])}(Conservatives),function(n){"use strict";function t(n,t,i,r){function u(){var r=t.get(n+"Membership/AvailableLevels");return r.then(i.handleSuccess,i.handleError)}function f(r,u){var f={Content:r,Membership:u},e=t.post(n+"Membership/RegisterBraintreeCardError",f);return e.then(i.handleSuccess,i.handleError)}function e(r){var u=t.get(n+"Membership/AvailableTitlesLevelCountriesStatements?level="+r);return u.then(i.handleSuccess,i.handleError)}function o(r){var u=t.get(n+"Membership/GetPaymentType?method="+r);return u.then(i.handleSuccess,i.handleError)}function s(r,u,f){var e="level="+r+"&donation="+u+"&paymentType="+f,o=t.post(n+"Membership/GetMonthlyAmounts?"+e);return o.then(i.handleSuccess,i.handleError)}function h(){var r=t.get(n+"Membership/AvailableInstitutions");return r.then(i.handleSuccess,i.handleError)}function c(r){var u=t.post(n+"Membership/FindAddress?postcode="+r);return u.then(i.handleSuccess,i.handleError)}function l(r,u,f){var e=t.get(n+"Membership/GetMonthlyRenewalAmounts?renewalId="+r+"&paymentType="+u+"&donationAmount="+f);return e.then(i.handleSuccess,i.handleError)}function a(r){var r=t.post(n+"Membership/RenewalDetails",r);return r.then(i.handleSuccess,i.handleError)}function v(r){var r=t.post(n+"Membership/FirstRenewalDetails",r);return r.then(i.handleSuccess,i.handleError)}function y(r){var r=t.post(n+"Membership/FindAddConstituent",r);return r.then(i.handleSuccess,i.handleError)}function p(){var r=t.post(n+"Membership/BrainTreeGetSecurity");return r.then(i.handleSuccess,i.handleError)}function w(u,f){var e="ProcessBraintreePaymentFoRenewal?donationAmount="+f,o;return r.config.paymentSetup.IsNewMembership&&(e="ProcessBraintreePayment"),o=t.post(n+"Membership/"+e,u),o.then(i.handleSuccess,i.handleError)}function b(u,f){var e="ProcessGoCardlessPaymentFoRenewal?donationAmount="+f,o;return r.config.paymentSetup.IsNewMembership&&(e="ProcessGoCardlessPayment"),o=t.post(n+"Membership/"+e,u),o.then(i.handleSuccess,i.handleError)}function k(u,f){var e="RedirectFlowFoRenewal&donationAmount="+f,o;return r.config.paymentSetup.IsNewMembership&&(e="RedirectFlow"),o=t.post(n+"Membership/"+e,u),o.then(i.handleSuccess,i.handleError)}function d(r){var u=t.post(n+"Membership/ValidateNewMembership",r);return u.then(i.handleSuccess,i.handleError)}function g(r){var u=t.post(n+"Membership/RecoverRenewDetails",r);return u.then(i.handleSuccess,i.handleError)}function nt(r){var u=t.post(n+"Membership/ValidateRenewalRequest",r);return u.then(i.handleSuccess,i.handleError)}return{loadRenewalDetails:a,loadFirstRenewalDetails:v,getAvailableLevels:u,getMonthlyAmountsForRenewal:l,brainTreeGetSecurity:p,submitBraintreePayment:w,submitGoCardlessPayment:b,startRedirectFlow:k,getAvailableTitlesLevelCountriesStatements:e,findAddress:c,searchAddConstituent:y,loadInstitutions:h,getPaymentType:o,getMonthlyAmounts:s,validateMembership:d,validateRenewalRequest:nt,recoverRenewDetails:g,registerBraintreeCardError:f}}angular.module(n.Module).service("membership.svc",["baseUrl","$http","serviceResponseHandler","global",t])}(Conservatives),function(n){function t(n,t){var o,e,r,h,i;if(isNaN(n))return n;o="";(""+n).substring(0,1)=="-"&&(o="-",n=(""+n).substring(1));var s="1"+Array(+(t>0&&t+1)).join("0"),u=Math.round(n*s)/s+"",f=u.length;if(u.indexOf(".")!=-1)f=u.indexOf(".");else for(u+=".",i=0;i<t;i++)u+="0";for(e=0,r=u.substring(f),i=f;i>0;i--)(f-i)%3==0&&f-i!=0?(r=u[i-1]+","+r,e++):r=u[i-1]+r;if(r.length-f-e<t+1)for(h=t+1-(r.length-f-e),i=0;i<h;i++)r+="0";return o+r}angular.module(n.Module).filter("setDecimal",function(){return t}).factory("decimalCountFormatter",function(){return{maxDecimals:t}})}(window.Conservatives),function(n){"use strict";function t(){function t(){var i,r,t;if(!n.paymentSetup.basketDetails)return null;for(i=0,r=!1,t=0;t<n.paymentSetup.basketDetails.Basket.length;t++)n.paymentSetup.basketDetails.Basket[t].TotalDonation&&(i+=n.paymentSetup.basketDetails.Basket[t].TotalDonation,r=!0);return i}function i(){for(var i=[],t=0;t<n.paymentSetup.basketDetails.Basket.length;t++)n.paymentSetup.basketDetails.Basket[t].update&&i.push(n.paymentSetup.basketDetails.Basket[t].update);return i}var n={selectedEnvironment:"development",selectedOrganisation:$("#selectedOrg").val()?$("#selectedOrg").val():"",availableOrganisations:[],paymentSetup:{},donationAmount:t,productUpdates:i,onCancelPayment:function(){console.error("Please populate this")}};return{config:n}}angular.module(n.Module).factory("global",[t])}(Conservatives),function(n){"use strict";function t(){return{restrict:"A",scope:{fadeShow:"="},transclude:!0,template:'<div ng-show="fadeShow" class="fade-in-ng ng-hide" ng-class="{\'cancel-animation\': !fadeShow}" ng-transclude><\/div>'}}angular.module(n.Module).config(["$qProvider",function(n){n.errorOnUnhandledRejections(!1)}]).directive("fadeShow",[t])}(Conservatives),function(n){"use strict";function t(n,t,i,r,u,f){function o(){window.onbeforeunload=undefined;f?window.location.replace(f):u.path("/Success")}function h(){i.config.onCancelPayment()}function c(){return i.config.paymentSetup.IsNewMembership?i.config.paymentSetup.newMembership.PaymentAmount:i.config.paymentSetup.paymentFrequency=="1"?i.config.paymentSetup.monthlyAmounts[0].Amount:i.config.paymentSetup.basketDetails.Total}function l(n){n||(n=100);setTimeout(function(){window.scrollTo({top:$(window).scrollTop()+n,behavior:"smooth"})},300)}function a(){var u;if(!e.flags.ready)if(u=e.securityToken,i.config.paymentSetup.paymentMethod=="Paypal (Paid Nationally)")braintree.client.create({authorization:u},function(n,i){if(n){console.error("Error creating client:",n);return}braintree.paypalCheckout.create({client:i},function(n,i){i.loadPayPalSDK({vault:!0},function(){paypal.Buttons({fundingSource:paypal.FUNDING.PAYPAL,style:{color:"blue",label:"pay"},createBillingAgreement:function(){return i.createPayment({flow:"vault"})},onApprove:function(n){return i.tokenizePayment(n,function(n,t){s(t.nonce)})},onCancel:function(n){console.log("PayPal payment cancelled",JSON.stringify(n,0,2))},onError:w}).render("#paypal-button").then(function(){e.flags.ready=!0;t.$apply();context.scrollDown(400)})})})});else{var n=i.config.paymentSetup.basketDetails.Basket[0],r=v(n.Address),f={amount:e.paymentAmount,email:n.EmailAddress,billingAddress:{givenName:y(n.ConstituentFullName),surname:p(n.ConstituentFullName),phoneNumber:n.PhoneNumber,streetAddress:r.streetAddress,extendedAddress:r.extendedAddress,locality:r.locality,postalCode:r.postalCode,countryCodeAlpha2:r.countryCodeAlpha2}};braintree.dropin.create({authorization:u,container:"#braintree-payment-form",threeDSecure:!0},function(n,i){if(n){console.error(n);return}e.flags.ready=!0;t.$apply();l(400);e.pay=function(){i.requestPaymentMethod({threeDSecure:f},function(n,i){e.showSecurity=!1;t.$apply();n?(e.paymentError="Your card details could not be validated",console.log(n),t.$apply()):s(i.nonce)})}})}}function v(n){if(n){var t=n.split(","),i={streetAddress:null,extendedAddress:null,locality:null,postalCode:null,countryCodeAlpha2:"GB"};return!t||t.length<2?i:(i.locality=t[t.lengt-2],i.postalCode=t[t.lengt-1],t.length>2&&(i.streetAddress=t[0]),t.length>3&&(i.extendedAddress=t[1]),i)}return null}function y(n){return n&&n.split(" ").length>=0?n.split(" ")[0]:""}function p(n){if(n){var t=n.split(" ");if(t.length>1)return t[t.length-1]}return""}function w(t){if(t.type=="SERVER"){var r={error:t.message+"; DETAILS: "+JSON.stringify(t.details)};n.registerBraintreeCardError(r,i.config.paymentSetup.newMembership)}console.log(t.message+"; DETAILS: "+JSON.stringify(t.details));e.paymentError=t.message}function s(t){var r={};r=i.config.paymentSetup.IsNewMembership?{Membership:i.config.paymentSetup.newMembership,SecurityNonce:t,FrequencyChoice:i.config.paymentSetup.paymentFrequency}:{RenewCode:i.config.paymentSetup.renewalDetails.renewCode,MembershipNumber:i.config.paymentSetup.renewalDetails.membershipNumber,SecurityNonce:t,FrequencyChoice:i.config.paymentSetup.paymentFrequency,PaymentMethod:i.config.paymentSetup.paymentMethod,ProductUpdates:i.config.productUpdates()};e.flags.loading++;n.submitBraintreePayment(r,i.config.donationAmount()).then(function(){o()}).catch(function(n){e.flags.loading--;e.flags.transactionFailed=!0;console.log(n);e.error=n.errorMessage?n.errorMessage:n})}function b(){e.cardDetails={};e.flags.loading++;n.brainTreeGetSecurity().then(function(n){e.flags.loading--;e.securityToken=n.SecurityToken;a()}).catch(function(n){console.log(n);e.flags.loading--;n.errorMessage?e.error=n.errorMessage:e.flags.error=n})}var e=this;e.flags={loading:0,ready:!1,showSecurity:!1};e.paymentAmount=c();e.cardDetails={};e.error="";e.finish=o;e.cancel=h;e.payWithPaypal=function(){};e.isPaypal=i.config.paymentSetup.paymentMethod=="Paypal (Paid Nationally)";b()}angular.module(n.Module).controller("braintreeCtrl",["membership.svc","$scope","global","$route","$location","successUrl",t])}(Conservatives),function(n){"use strict";function t(n,t,i,r){function o(){u.account.sortCode.length>2&&u.account.sortCode[2]!="-"&&(u.account.sortCode=u.account.sortCode.substring(0,2)+"-"+u.account.sortCode.substring(2));u.account.sortCode.length>5&&u.account.sortCode[5]!="-"&&(u.account.sortCode=u.account.sortCode.substring(0,5)+"-"+u.account.sortCode.substring(5))}function s(){f||(f=!0,c()&&h(),f=!1)}function h(){var i={},r={AccountName:u.account.name.trim(),AccountNumber:u.account.number.trim(),AccountSortCode:u.account.sortCode.trim().replace(/-/g,""),AccountHolderConfirmation:u.account.holderConfirmation};i=t.config.paymentSetup.IsNewMembership?{Membership:t.config.paymentSetup.newMembership,BankDetails:r,FrequencyChoice:t.config.paymentSetup.paymentFrequency}:{RenewCode:t.config.paymentSetup.renewalDetails.renewCode,MembershipNumber:t.config.paymentSetup.renewalDetails.membershipNumber,BankDetails:r,FrequencyChoice:t.config.paymentSetup.paymentFrequency,PaymentMethod:t.config.paymentSetup.paymentMethod,ProductUpdates:t.config.productUpdates()};u.flags.loading++;n.submitGoCardlessPayment(i,t.config.donationAmount()).then(function(){e()}).catch(function(n){u.flags.loading--;u.flags.transactionFailed=!0;console.log(n);u.error=n.errorMessage?n.errorMessage:n})}function c(){return(u.accountError="",!u.account.name||u.account.name.trim().length<3)?(u.accountError="Please provide a valid Account Name",!1):!u.account.number||!/^\d{8}$/.test(u.account.number.trim())?(u.accountError="Please provide a valid bank account (8 digits)",!1):!u.account.sortCode||!/^\d{6}$/.test(u.account.sortCode.trim().replace(/-/g,""))?(u.accountError="Please provide a valid sort code (6 digits)",!1):u.account.holderConfirmation?(u.multipleAccountHolders=!1,!0):(u.accountError="A paper version of the Direct Debit mandate application is required (did you forget to tick the box above?)",u.multipleAccountHolders=!0,!1)}function l(){return t.config.paymentSetup.IsNewMembership?t.config.paymentSetup.newMembership.PaymentAmount:t.config.paymentSetup.paymentFrequency=="1"?t.config.paymentSetup.monthlyAmounts[0].Amount:t.config.paymentSetup.basketDetails.Total}function e(){window.onbeforeunload=undefined;i?window.location.replace(i):r.path("/Success")}function a(){t.config.onCancelPayment()}var u=this,f;u.flags={loading:0,ready:!0};u.paymentFrequencySelected=t.config.paymentSetup.paymentFrequency;u.paymentAmount=l();u.account={holderConfirmation:!0};u.error="";u.autofillSortCode=o;u.finish=e;u.cancel=a;u.pay=s;f=!1;setTimeout(function(){window.scrollTo({top:$(window).scrollTop()+400,behavior:"smooth"})},300)}angular.module(n.Module).controller("goCardlessCtrl",["membership.svc","global","successUrl","$location",t])}(Conservatives),function(n){"use strict";function t(n,t,i,r,u){function h(){f.error="";for(var n=0;n<f.basketDetails.Basket.length;n++)if(!f.basketDetails.Basket[n].Address){f.error="Please first provide any missing contact details!";return}if(!f.basketDetails.Payment.HasAcceptedTerms){f.error="Please accept the terms above first";return}e("paymentFrequencyStep")}function c(){for(var r,i=0;i<f.basketDetails.Basket.length;i++)f.basketDetails.Basket[i].TotalDonation&&s(f.basketDetails.Basket[i],0);o(f.basketDetails.Basket[0].NewDonation)&&(s(f.basketDetails.Basket[0],l(f.basketDetails.Basket[0].NewDonation)),f.donationError="",f.submitting=!0,r={RenewCode:t.config.paymentSetup.renewalDetails.renewCode,MembershipNumber:t.config.paymentSetup.renewalDetails.membershipNumber,FrequencyChoice:t.config.paymentSetup.paymentFrequency,PaymentMethod:f.paymentMethods.card,Total:t.config.paymentSetup.basketDetails.Total,ProductUpdates:t.config.productUpdates()},n.validateRenewalRequest(r).then(function(n){f.submitting=!1;n.Status==1?e("paymentMethod"):f.donationError=n.ValidationMessage}).catch(function(n){console.log(n);f.loading=!1;f.donationError=n.errorMessage?n.errorMessage:n}))}function l(n){return n&&o()?f.paymentFrequencySelected==1?Math.round(n*1200)/100:n:0}function a(){f.frequencySet=!0;f.selectedPaymentMthd=f.paymentMethods.directDebit;f.pMethod=f.paymentMethods.directDebit;f.paymentFrequencySelected==1&&(f.basketDetails.Payment.Frequency=2,f.basketDetails.Payment.RenewAgreed=!0);f.paymentFrequencySelected==2&&(f.basketDetails.Payment.Frequency=1,f.basketDetails.Payment.RenewAgreed=!0);f.paymentFrequencySelected==3&&(f.basketDetails.Payment.Frequency=1,f.basketDetails.Payment.RenewAgreed=!1,f.selectedPaymentMthd=f.paymentMethods.card,f.pMethod=f.paymentMethods.card);e("donationStep")}function v(n){for(var t=0;t<u.levels.length;t++)if(u.levels[t].Identity==n)return u.levels[t]}function y(){if(f.error="",f.renewalDetails.renewCode.trim()==""){f.error="Please provide the renewal code.";return}if(f.renewalDetails.membershipNumber.trim()==""){f.error="Please provide your membership number.";return}f.submitting=!0;f.renewalDetails.Idepotency=t.config.Idepotency;f.renewalDetails.QueryParams=t.config.QueryParams;f.renewalDetails.AdditionalParams=t.config.AdditionalParams;f.renewalDetails.IsAdministrator=t.config.IsAdministrator;f.renewalDetails.QueryMode=f.avoidInputServerValidation;n.loadRenewalDetails(f.renewalDetails).then(function(n){var t,i;if(n.Status==1&&n.Basket)for(f.AnnualAmount=0,f.MonthlyAmount=0,t=0;t<n.Basket.length;t++)i=v(n.Basket[t].LevelIdentity),n.Basket[t].AnnualAmount=i.AnnualAmount,n.Basket[t].MonthlyAmount=i.MonthlyAmount,n.Basket[t].Terms=i.Terms,f.AnnualAmount+=i.AnnualAmount,f.MonthlyAmount+=i.MonthlyAmount;if(p("details-header"),f.submitting=!1,f.basketDetails=n,f.paymentSetup.renewalDetails=f.renewalDetails,f.paymentSetup.basketDetails=n,n.Status==1&&e("basketDetails"),n.Status==2){f.renewalStateMessage="Our records indicate that this membership has already been renewed. If that is not so please contact our support team for further details.";e("cannotRenew");return}if(n.Status==3&&(f.renewalStateMessage="Your renewal is no longer valid. You can register for a new membership or feel free to contact our support team for further information.",e("cannotRenew")),n.Status==4){f.renewalStateMessage="Provided the information you entered, we could not find any active renewal. This could be due to an error entering your details or there is no pending renewal.";e("cannotRenew");return}}).catch(function(n){console.log(n);f.submitting=!1;f.error=n.errorMessage?n.errorMessage:n})}function p(n){setTimeout(function(){document.getElementById(n).scrollIntoView({block:"start",behavior:"smooth"})},300)}function w(){if(f.recoverDetailsError="",!f.constituentDetails.FirstName||f.constituentDetails.FirstName.length<3){f.recoverDetailsError="Please provide a valid first name.";return}if(!f.constituentDetails.LastName||f.constituentDetails.LastName.length<3){f.recoverDetailsError="Please provide a valid last name.";return}if(!f.constituentDetails.Postcode||f.constituentDetails.Postcode.length<3){f.recoverDetailsError="Please provide a valid address.";return}if(!f.constituentDetails.AddressIdentity||f.constituentDetails.AddressIdentity==""){f.recoverDetailsError="Please provide a valid address.";return}f.submitting=!0;n.recoverRenewDetails(f.constituentDetails).then(function(n){f.submitting=!1;n==1&&(f.renewRecoveryState="Sorry we could not find your renewal details. This could be because of wrong personal data provided or there is no pending renewal for you",f.renewRecoveryFailed=!0);n==2&&(f.renewRecoveryState="An email containing your renewal information should arrive shortly on the email address provided for the membership",f.renewRecoveryFailed=!1);n==3&&(f.renewRecoveryState="A letter with your renewal information will arrive within a few days. Please use that information to renew your membership",f.renewRecoveryFailed=!1);f.stepInto("renewRecoveryResult")}).catch(function(n){console.log(n);f.submitting=!1;f.error=n.errorMessage?n.errorMessage:n})}function b(){(f.error="",f.constituentDetails.Postcode)&&(f.submitting=!0,n.findAddress(f.constituentDetails.Postcode).then(function(n){f.submitting=!1;f.addressOptions.options=n;f.addressOptions.loaded=!0}).catch(function(n){console.log(n);f.submitting=!1;f.error=n.errorMessage?n.errorMessage:n}))}function k(i){f.error="";f.selectedPaymentMthd=i;f.submitting=!0;n.getMonthlyAmountsForRenewal(f.basketDetails.Identity,i,t.config.donationAmount()).then(function(n){f.submitting=!1;f.monthlyAmounts=n;f.paymentSetup.monthlyAmounts=n;f.paymentSetup.paymentMethod=i;d()}).catch(function(n){console.log(n);f.submitting=!1;f.error=n.errorMessage?n.errorMessage:n})}function e(n){n=="paymentFrequencyStep"&&(f.basketDetails.Basket[0].NewDonation=null);f.step={};f.step[n]=!0}function d(){f.paymentSetup.paymentFrequency=f.paymentFrequencySelected;t.config.onCancelPayment=function(){e("paymentMethod")};e("processPayment")}function g(){if(f.paymentSetup.paymentMethod==f.paymentMethods.card||f.paymentSetup.paymentMethod==f.paymentMethods.payPall)return i+"Home/BraintreePayment";if(f.paymentSetup.paymentMethod==f.paymentMethods.directDebit)return i+"Home/GoCardlesspPayment";console.error("Unknown payment type "+f.paymentSetup.paymentMethod)}function nt(n){r.open({animation:!0,size:"lg",templateUrl:i+"Renew/ChangeContactDetails",controller:"changeContactDlg as dlgCtrl",resolve:{viewBag:{data:n,titles:f.basketDetails.Titles,statements:f.basketDetails.Statements,onComplete:tt}}})}function tt(n,t){for(var i=0;i<f.basketDetails.Basket.length;i++)f.basketDetails.Basket[i].ConstituentIdentiy==n.ConstituentIdentiy&&(f.basketDetails.Basket[i].update||(f.basketDetails.Basket[i].update={}),f.basketDetails.Basket[i].update.Identity=f.basketDetails.Basket[i].Identity,f.basketDetails.Basket[i].update.NewTitleId=t.NewTitleId,f.basketDetails.Basket[i].update.NewCustomTitle=t.NewCustomTitle,f.basketDetails.Basket[i].update.NewAddressId=t.NewAddressId,f.basketDetails.Basket[i].update.NewEmail=t.NewEmail,f.basketDetails.Basket[i].update.NewPhoneNumber=t.NewPhoneNumber,f.basketDetails.Basket[i].update.NewInstitutionId=t.NewInstitutionId,f.basketDetails.Basket[i].update.DataStatementId=t.DataStatementId,f.basketDetails.Basket[i].update.EmailOptIn=t.EmailOptIn,f.basketDetails.Basket[i].update.PhoneOptIn=t.PhoneOptIn,f.basketDetails.Basket[i].Address=t.selectedAddress)}function o(n){return(f.donationError="",!n)?!0:n<1&&f.paymentFrequencySelected!=1?(f.donationError="The minimum donation amount can not be less than £1 (unless you set it to 0 which will not add any donation).",!1):n<.5&&f.paymentFrequencySelected==1?(f.donationError="The minimum monthly donation amount can not be less than £0.50 (unless you set it to 0 which will not add any donation).",!1):n>1e3&&f.paymentFrequencySelected!=1?(f.donationError="The maximum donation you can make here is £1000. If you would like to donate more please contact our team via email at membership@conservatives.com or call 020 7222 9000.",f.showContactDetails=!0,!1):n>100&&f.paymentFrequencySelected==1?(f.donationError="The maximum monthly donation you can make here is £100. If you would like to donate more  our team via email at membership@conservatives.com or call 020 7222 9000.",f.showContactDetails=!0,!1):!0}function s(n,t){n.update?(n.update.Identity=n.Identity,n.update.UpdatedDonationAmount=t):n.update={UpdatedDonationAmount:t,Identity:n.Identity};n.TotalDonation=t;it()}function it(){for(var n=0,t=0;t<f.basketDetails.Basket.length;t++)n+=f.basketDetails.Basket[t].Total,f.basketDetails.Basket[t].TotalDonation&&(n+=f.basketDetails.Basket[t].TotalDonation);f.paymentSetup.basketDetails.Payment.Amount=n;f.paymentSetup.basketDetails.Total=n;f.basketDetails.Payment.Amount=n;f.basketDetails.Total=n}var f=this;f.searchByConstituentId=!1;f.renewalDetails={renewCode:$("#renewalCode").val(),membershipNumber:$("#membershipNumber").val()};f.addressOptions={};f.step={renewDetails:!0,basketDetails:!1,paymentChoice:!1,paymentFrequency:!1,processPayment:!1,cannotRenew:!1,forgotRenewalDetails:!1,renewRecoveryResult:!1};f.frequencySet=!1;f.paymentFrequencySelected=2;f.AnnualAmount=0;f.MonthlyAmount=0;f.selectedPaymentMthd="Direct Debit (Paid National)";f.paymentMethods={card:"Card Mastercard",directDebit:"Direct Debit (Paid National)",payPall:"Paypal (Paid Nationally)"};f.constituentDetails={};t.config.paymentSetup.IsNewMembership=!1;f.paymentSetup=t.config.paymentSetup;f.basketDetails={};f.loadRenewDetails=y;f.validateDetails=h;f.setPaymentFrequency=a;f.donate=c;f.setPaymentMethod=k;f.stepInto=e;f.paymentProcessingUrl=g;f.changeContactDetails=nt;f.findAddress=b;f.recoverDetails=w}angular.module(n.Module).controller("renewCtrl",["membership.svc","global","baseUrl","$uibModal","viewBag",t])}(Conservatives),function(n){"use strict";function t(n,t,i){function u(){r.error="";var n={Identity:t.data.Identity,NewTitleId:r.update.TitleId,NewCustomTitle:r.update.CustomTitle,NewAddressId:r.update.AddressId,NewEmail:r.update.Email,NewPhoneNumber:r.update.Phone,NewInstitutionId:r.update.InstitutionId,UpdatedDonationAmount:t.data.update?t.data.update.UpdatedDonationAmount:null,DataStatementId:r.update.DataStatementId,EmailOptIn:r.update.EmailOptIn,PhoneOptIn:r.update.PhoneOptIn,selectedAddress:f()};if(r.update.TitleId||r.update.CustomTitle||(r.error="Please select a title"),n.NewEmail||(r.error="Please provide a valid email"),n.NewAddressId||(r.error="Please select a valid address"),!r.error){t.onComplete(t.data,n);i.close()}}function f(){for(var n=0;n<r.addressOptions.length;n++)if(r.addressOptions[n].Identity==r.update.AddressId)return r.addressOptions[n].FullAddress;return""}function e(){r.loading=!0;n.findAddress(r.Postcode).then(function(n){r.loading=!1;r.update.AddressId="";r.addressOptions=n}).catch(function(n){console.log(n);r.loading=!1;r.error=n.errorMessage?n.errorMessage:n})}function o(){n.loadInstitutions().then(function(n){r.availableInstitutions=n}).catch(function(n){console.log(n);r.error=n.errorMessage?n.errorMessage:n})}var r=this;r.product=t.data;r.titles=t.titles;r.statements=t.statements;r.addressOptions=[{Identity:t.data.update&&t.data.update.NewAddressId?""+t.data.update.NewAddressId:""+t.data.AddressIdentiy,FullAddress:t.data.Address}];r.update={TitleId:t.data.update&&t.data.update.NewTitleId?""+t.data.update.NewTitleId:""+t.data.TitleIdentity,CustomTitle:t.data.update&&t.data.update.NewCustomTitle?t.data.update.NewCustomTitle:t.data.CustomTitle,AddressId:t.data.update&&t.data.update.NewAddressId?""+t.data.update.NewAddressId:""+t.data.AddressIdentiy,InstitutionId:t.data.update&&t.data.update.NewInstitutionId?t.data.update.NewInstitutionId:"",Email:t.data.update&&t.data.update.NewEmail?t.data.update.NewEmail:t.data.EMailAddress,Phone:t.data.update&&t.data.update.NewPhoneNumber?t.data.update.NewPhoneNumber:t.data.PhoneNumber,DataStatementId:t.data.update&&t.data.update.DataStatementId?t.data.update.DataStatementId:"",EmailOptIn:!0,PhoneOptIn:!0};r.findAddress=e;r.loadInstitutions=o;r.submit=u;r.cancel=i.close}angular.module(n.Module).controller("changeContactDlg",["membership.svc","viewBag","$uibModalInstance",t])}(Conservatives),function(n){angular.module(n.Module).directive("ngEnter",function(){return function(n,t,i){t.bind("keydown keypress",function(t){t.which===13&&(n.$apply(function(){n.$eval(i.ngEnter)}),t.preventDefault())})}})}(window.Conservatives),function(n){"use strict";function t(){return{restrict:"EA",scope:{datePicked:"="},template:'<div class="row col-sm-12"><select id="date-picker-day" class="form-control pull-left"style="max-width:80px;" validation-field-required="{message:\'Please select a valid day\', value: true}" validation-attach-to="dob-validation-error" ng-model="Dob.SelectedDay" ng-change="DateChanged()"><option value="" selected="selected">Day<\/option><option ng-repeat="day in Dob.Days" value="{{day}}">{{day}}<\/option><\/select><select id="date-picker-month" class="form-control pull-left margin-left"style="max-width:120px;" validation-field-required="{message:\'Please select a valid month\', value: true}" validation-attach-to="dob-validation-error" ng-model="Dob.SelectedMonth" ng-change="DateChanged()"><option value="" selected="selected">Month<\/option><option ng-repeat="month in Dob.Months" value="{{$index}}">{{month}}<\/option><\/select><select id="date-picker-year" class="form-control margin-left pull-left" style="max-width:80px;" validation-field-required="{message:\'Please select a valid year\', value: true}" validation-attach-to="dob-validation-error" ng-model="Dob.SelectedYear" ng-change="DateChanged()"><option value="" selected="selected">Year<\/option><option ng-repeat="year in Dob.Years" value="{{year}}">{{year}}<\/option><\/select><\/div><div class="row col-sm-12"><div id="dob-validation-error"><\/div> <\/div>',controller:["$scope",function(n){function i(n,t,i){for(var u=[],r=i?n:t;i?r<=t:r>=n;r=i?r+1:r-1)u.push(r);return u}function o(){if(Number.parseInt===undefined&&(Number.parseInt=window.parseInt),r!=t.Dob.SelectedMonth+t.Dob.SelectedYear){var n=s(t.Dob.SelectedYear,t.Dob.SelectedMonth);t.Dob.SelectedDay&&Number.parseInt(t.Dob.SelectedDay)>n&&(t.Dob.SelectedDay="");t.Dob.Days=i(1,n,1)}t.datePicked=t.Dob.SelectedYear&&t.Dob.SelectedMonth&&t.Dob.SelectedDay?new Date(Number.parseInt(t.Dob.SelectedYear),Number.parseInt(t.Dob.SelectedMonth),Number.parseInt(t.Dob.SelectedDay)):null}function s(n,t){return n==""&&(n="1990"),new Date(n,Number.parseInt(t)+1,0).getDate()}var t=n,r="",u=t.datePicked?(t.datePicked.getDate()||"")+"":"",f=t.datePicked?(t.datePicked.getMonth()||"")+"":"",e=t.datePicked?(t.datePicked.getFullYear()||"")+"":"";t.Dob={SelectedDay:u,Days:i(1,31,!0),SelectedMonth:f,Years:i(1900,(new Date).getFullYear(),!1),Months:["January","February","March","April","May","June","July","August","September","October","November","December"],SelectedYear:e};t.DateChanged=o}]}}angular.module(n.Module).directive("dateChoice",[t])}(Conservatives),function(n){function t(n){return function(t,i,r){r.cchqNgXsrfToken&&(n.defaults.headers.common["X-XSRF-Token"]=r.cchqNgXsrfToken,n.defaults.headers.common["X-Requested-With"]="XMLHttpRequest")}}function i(n){return function(t,i,r){r.nbtIdptc&&(n.config.Idepotency=r.nbtIdptc);r.nbtQp&&(n.config.QueryParams=r.nbtQp);r.nbtAp&&(n.config.AdditionalParams=r.nbtAp);r.nbtIa&&(n.config.IsAdministrator=r.nbtIa)}}angular.module(n.Module).directive("cchqNgXsrfToken",["$http",t]).directive("nbtParams",["global",i])}(Conservatives)