function AbstractPolicyMemberVM(){var n=this;n.ExistingPolicies=ko.observableArray();n.hasExistingPolicies=ko.computed({read:function(){return n.ExistingPolicies().length>0},write:function(t){t==1&&n.ExistingPolicies().length==0?n.addExistingPolicy():t==0&&n.ExistingPolicies.removeAll()},deferEvaluation:!0});n.addExistingPolicy=function(){var t={ID:utilModule.createGuid(),PCMSPolicyID:0,IsAmendedPolicy:!0,IsReplacementPolicy:!1};n.ExistingPolicies.push(new ExistingPolicyVM(t))}}function BenefitDescriptorVM(n){var t=this;ko.mapping.fromJS(n,{},t);t.isAdditionalBenefit=function(){return t.BaseBenefitID}}function BenefitInfoVM(n,t){var i=this,r={Descriptor:{create:function(n){return new BenefitDescriptorVM(n.data)}}};ko.mapping.fromJS(t,r,i);i.insurancePurpose=n;i.isBenefitSelected=function(){if(i.Descriptor.isAggregateBenefit()){var t=[];return t=_.filter(n.Riders(),function(n){return n.Descriptor.BaseBenefitID()==i.Descriptor.ID()}),t.length>0}return i.IsSelected()}}function BenefitOptionDescriptorVM(n){var t=this;ko.mapping.fromJS(n,{},t);t.templateName=function(){return t.OptionType()+"-template"}}function BenefitOptionInfoVM(n,t){var i=this,r={Descriptor:{create:function(n){return new BenefitOptionDescriptorVM(n.data)}}};ko.mapping.fromJS(t,r,i);i.rider=n;i.setFocus=i.IsSelectable();i.isSumAssuredOption=function(){return i.Descriptor.OptionType()=="SumAssured"};i.isBFIOOption=function(){return i.Descriptor.OptionType()=="BFIO"};i.isAgreedValueOption=function(){return i.Descriptor.OptionType()=="AgreedValue"};i.isPrimaryOption=function(){return i.Descriptor.OptionType()=="CPI"||i.Descriptor.OptionType()=="Indexation"};i.isComplexOption=function(){return i.Descriptor.OptionType()=="SplitMonthlyBenefit"};i.isHealthSecondLineOption=function(){return i.Descriptor.OptionType()=="HealthGP"||i.Descriptor.OptionType()=="HealthDentalOptical"||i.Descriptor.OptionType()=="HealthProactive"||i.Descriptor.OptionType()=="HealthSpecialist"};i.isMmrSecondLineOption=function(){return i.rider.Descriptor.BenefitClass()=="MortgageRepayment"&&(i.Descriptor.OptionType()=="BoosterBenefit"||i.Descriptor.OptionType()=="ExtendedIPBenefit"||i.Descriptor.OptionType()=="ExtraBenefits"||i.Descriptor.OptionType()=="ClaimsEscalation")};i.isMmrAdditionalOption=function(){return i.rider.Descriptor.BenefitClass()=="MortgageRepayment"&&(i.Descriptor.OptionType()=="BackMentalDisorderLimitation"||i.Descriptor.OptionType()=="RedundancyOption")}}function BusinessFIODetailsVM(n,t){var i=this;ko.mapping.fromJS(t,{},i);i.policy=n;i.ID=ko.computed({read:function(){return i.policy.ID()},deferEvaluation:!0});i.dirtyFlag=new ko.dirtyFlag(i,"BusinessFIODetailsVM");i.clearDirtyFlag=function(){i.dirtyFlag.clear()}}function IllustrationVM(n){var t=this,i={Policy:{create:function(n){return new PolicyVM(t,n.data)}},Plan:{create:function(n){return new PlanDescriptorVM(n.data)}},UserGroup:{create:function(n){return new UserGroupVM(t,n.data)}},ReportOptions:{create:function(n){return new ReportOptionsOverridesVM(t,n.data)}}};ko.mapping.fromJS(n,i,t);t.dirtyFlag=new ko.dirtyFlag(t,"IllustrationVM",["Policy","Plan"]);t.preparedForComputed=ko.computed({read:function(){var n="";return _.each(t.Policy.LivesInsured(),function(t){n+=t.fullName()+", "}),$.trim(n.substring(0,n.length-2))},write:function(n){t.PreparedFor(n)}}).extend({throttle:50});t.clearDirtyFlag=function(){t.dirtyFlag.clear();t.Policy.clearDirtyFlag();t.UserGroup.clearDirtyFlag();t.ReportOptions.dirtyFlag.clear()};t.notesVisible=ko.observable(!1);t.staffOptionsVisible=ko.observable(!1)}function InsurancePurposeVM(n,t){function u(n,t,i){return{DisplayName:ko.observable(n),ID:ko.observable(t),Selected:ko.observable(i)}}var i=this,f={Riders:{create:function(n){return new RiderVM(i,n.data)},key:function(n){return ko.utils.unwrapObservable(n.ID)}},SelectableBenefits:{create:function(n){return new BenefitInfoVM(i,n.data)},key:function(n){return ko.utils.unwrapObservable(n.Descriptor.ID)}}},r;ko.mapping.fromJS(t,f,i);i.lifeInsured=n;i.dirtyFlag=new ko.dirtyFlag(i,"InsurancePurposeVM",["PremiumInstallment"]);i.clearDirtyFlag=function(){i.dirtyFlag.clear();_.each(i.Riders(),function(n){n.clearDirtyFlag()})};i.isVisible=ko.observable(!0);r=[new u("Risk",1,!0,!0),new u("nib Health",2,!1)];i.benefitSelectorTabs=ko.observableArray(r);i.selectedTabID=ko.observable(1);i.selectTab=function(){ko.utils.arrayForEach(i.benefitSelectorTabs(),function(n){n.Selected(!1)});i.selectedTabID(this.ID());this.Selected(!0)};i.isSelected=function(n){return i.healthSelectableBenefits().length==0?(i.selectedTabID(1),n()==1):n()==i.selectedTabID()};i.riskSelectableBenefits=function(){return _.filter(i.SelectableBenefits(),function(n){return n.Descriptor.isHealthBenefit()==!1})};i.healthSelectableBenefits=function(){return _.filter(i.SelectableBenefits(),function(n){return n.Descriptor.isHealthBenefit()==!0})}}function LifeInsuredVM(n,t){var i=this,r;AbstractPolicyMemberVM.apply(i);r={InsurancePurposes:{create:function(n){return new InsurancePurposeVM(i,n.data)},key:function(n){return ko.utils.unwrapObservable(n.ID)}}};ko.mapping.fromJS(t,r,i);i.policy=n;i.isSelected=ko.observable(!1);i.fullName=ko.computed(function(){return $.trim((i.Title()!=null?i.Title():"")+" "+(i.FirstNames()!=null?i.FirstNames():"")+" "+(i.LastName()!=null?i.LastName():""))}).extend({throttle:50});i.canAddInsurancePurpose=ko.computed({read:function(){return i.IsAdultLife()?i.InsurancePurposes().length<5:!1},deferEvaluation:!0}).extend({throttle:50});i.policyOwner=function(){var n=_.filter(i.policy.policyOwners(),function(n){return n.LifeInsuredID&&n.LifeInsuredID()===i.ID()});return n.length>0?n[0]:null};i.dirtyFlag=new ko.dirtyFlag(i,"LifeInsuredVM",["PremiumInstallment","isSelected","ExistingPolicies"]);i.clearDirtyFlag=function(){i.dirtyFlag.clear();_.each(i.InsurancePurposes(),function(n){n.clearDirtyFlag()})};i.basisOfCoverInvalid=function(){return i.IsFinancialRequirementBasedonBasisOfCoverAvailable()&&!i.IsBasisOfCoverForFinancialRequirementsSelected()};i.lifeHasRiders=function(){return i.LifeHasRiders()};i.formatFirstNames=ko.computed({read:function(){return i.FirstNames()},write:function(n){i.FirstNames(utilModule.toTitleCase(n))}});i.formatLastName=ko.computed({read:function(){return i.LastName()},write:function(n){i.LastName(utilModule.capitaliseFirstLetter(n))}});i.formatTitle=ko.computed({read:function(){return i.Title()==null?"":i.Title()},write:function(n){i.Title(n==null?"":n)}});i.hasInvalidResidencyStatus=function(){return i.ResidencyStatusID()==4||i.ResidencyStatusID()==3&&i.LifeHasRiskRiders()};i.hasOthersResidencyStatus=function(){return i.ResidencyStatusID()==4};i.ineligibleForHealthBenefits=function(){return i.hasOthersResidencyStatus()&&(i.TwoYearWorkVisa()==!1||i.TwelveMonthsOrMoreUntilWorkVisaExpiry()==!1)};i.ineligibleDueToCurrentlyNotLivingInNZ=function(){return i.CurrentlyLivingInNZ()==!1};i.ineligibleDueToHealthCondition=function(){return i.DiagnosedIllnessLeadingToDeathWithInTwelveMonths()==!0}}function LoadingsVM(n,t){var i=this;ko.mapping.fromJS(t,{},i);i.rider=n;i.ID=ko.computed({read:function(){return i.rider.ID()},deferEvaluation:!0});i.dirtyFlag=new ko.dirtyFlag(i,"LoadingsVM");i.clearDirtyFlag=function(){i.dirtyFlag.clear()};i.loadingsSet=ko.computed(function(){return!1}).extend({throttle:50});i.supportsPerMilleLoadings=function(){var n=illUIModule.getRulesForBenefitByID(this.rider.Descriptor.ID());return n!=null?n.SupportsPerMilleLoadings:!0}}function PlanDescriptorVM(n){var t=this;ko.mapping.fromJS(n,{},t)}function PlanRuleSetVM(n){var t=this;ko.mapping.fromJS(n,{},t)}function PolicyCommissionBasisVM(n,t){var i=this;ko.mapping.fromJS(t,{},i);i.policy=n;i.ID=ko.computed({read:function(){return i.policy.ID()},deferEvaluation:!0});i.dirtyFlag=new ko.dirtyFlag(i,"PolicyCommissionBasisVM");i.clearDirtyFlag=function(){i.dirtyFlag.clear()}}function PolicyVM(n,t){var i=this,r={RuleSet:{create:function(n){return new PlanRuleSetVM(n.data)}},LivesInsured:{create:function(n){return new LifeInsuredVM(i,n.data)},key:function(n){return ko.utils.unwrapObservable(n.ID)}},PolicyOwnerIndividuals:{create:function(n){return new PolicyOwnerIndividualVM(i,n.data)},key:function(n){return ko.utils.unwrapObservable(n.ID)}},PolicyOwnerOrganisations:{create:function(n){return new PolicyOwnerOrganisationVM(i,n.data)},key:function(n){return ko.utils.unwrapObservable(n.ID)}},CommissionBasis:{create:function(n){return new PolicyCommissionBasisVM(i,n.data)}},BusinessFIODetails:{create:function(n){return new BusinessFIODetailsVM(i,n.data)}}};ko.mapping.fromJS(t,r,i);i.illustration=n;i.dirtyFlag=new ko.dirtyFlag(i,"PolicyVM",["TotalPolicyInstallment","RuleSet","PolicyOwners"]);i.clearDirtyFlag=function(){i.dirtyFlag.clear();_.each(i.LivesInsured(),function(n){n.clearDirtyFlag()});i.CommissionBasis.dirtyFlag.clear();i.BusinessFIODetails.dirtyFlag.clear();_.each(i.PolicyOwnerIndividuals(),function(n){n.clearDirtyFlag()});_.each(i.PolicyOwnerOrganisations(),function(n){n.clearDirtyFlag()})};i.purposeOwnerOptions=ko.computed({read:function(){var n=[],t;return _.each(i.LivesInsured(),function(t){t.IsAdultLife()&&n.push(t.fullName())}),t=0,_.each(i.LivesInsured(),function(n){n.IsAdultLife()&&(t+=1)}),t>1&&n.push("Joint Ownership"),n},deferEvaluation:!0}).extend({throttle:50});i.policyOwners=function(){var n=[];return _.each(i.PolicyOwnerIndividuals(),function(t){n.push(t)}),_.each(i.PolicyOwnerOrganisations(),function(t){n.push(t)}),n};i.getLifeInsuredByID=function(n){var t=_.filter(i.LivesInsured(),function(t){return t.ID()==n});return t.length>0?t[0]:null};i.getPolicyOwnerByID=function(n){var t=_.filter(i.policyOwners(),function(t){return t.ID()==n});return t.length>0?t[0]:null};i.canGenerateReport=ko.computed(function(){return(i.MeetsMinimumPremium()||i.IsAdditionToPolicy())&&i.IsComplete()}).extend({throttle:50});i.noInvalidBasisOnLives=function(){var n=!0;return _.each(i.LivesInsured(),function(t){t.basisOfCoverInvalid()&&(n=!1)}),n};i.lifeHasRiders=function(){var n=!0;return _.each(i.LivesInsured(),function(t){if(!t.lifeHasRiders())return n=!1}),n};i.hasIneligibleLivesForCurrentlyLivingOrHealthCondition=function(){var n=[];return n=_.filter(i.LivesInsured(),function(n){return n.CurrentlyLivingInNZ()==!1||n.DiagnosedIllnessLeadingToDeathWithInTwelveMonths()==!0}),n.length>0};i.hasIneligibleLivesForCurrentlyLivingInNZ=function(){var n=[];return n=_.filter(i.LivesInsured(),function(n){return n.CurrentlyLivingInNZ()==!1}),n.length>0};i.hasIneligibleLivesForHealthCondition=function(){var n=[];return n=_.filter(i.LivesInsured(),function(n){return n.DiagnosedIllnessLeadingToDeathWithInTwelveMonths()==!0}),n.length>0};i.hasIneligibleLivesForHealth=function(){var n=[];return n=_.filter(i.LivesInsured(),function(n){return n.ineligibleForHealthBenefits()==!0&&n.LifeHasHealthRiders()==!0}),n.length>0};i.hasLivesWithInvalidResidency=function(){var n=[];return n=_.filter(i.LivesInsured(),function(n){return n.hasInvalidResidencyStatus()==!0}),n.length>0};i.businessFIODetailsVisible=ko.observable(!1);i.BusinessFIOOption.subscribe(function(n){i.businessFIODetailsVisible(n)});i.showHideBusinessFIODetails=function(){i.businessFIODetailsVisible()?i.businessFIODetailsVisible(!1):i.businessFIODetailsVisible(!0)};i.isFirstYearDiscountAvailable=function(){return i.illustration.UserGroup.CanOfferFirstYearDiscount()&&i.illustration.Plan.SupportsFirstYearDiscount()};i.isGMCDiscountAvailable=function(){return i.illustration.Policy.IsGMCDiscountAvailable()&&i.selectedFirstYearDiscountOption(),i.illustration.Policy.IsGMCDiscountAvailable()};i.discountOptions=function(){return _.map(i.AvailableDiscountOptions(),function(n){return n+"%"})};i.selectedFirstYearDiscountOption=ko.computed({read:function(){return i.FirstYearDiscountPercent()+"%"},write:function(n){i.FirstYearDiscountPercent(parseInt(n.replace("%","")))}})}function ReportOptionsOverridesVM(n,t){var i=this;ko.mapping.fromJS(t,{},i);i.illustration=n;i.ID=ko.computed({read:function(){return i.illustration.ID()},deferEvaluation:!0});i.dirtyFlag=new ko.dirtyFlag(i,"ReportOptionsOverridesVM");i.clearDirtyFlag=function(){i.dirtyFlag.clear()};i.canSetCommissionPreferences=function(){return i.illustration.UserGroup.CanSetCommissionPreferences()};i.setGraphsOption=function(){i.PrintIllustrationProjections()||i.PrintIllustrationGraphs(!1)};i.setPermanentNotesOption=function(){i.PrintIllustrationCoverPage()||i.HasStandardIllustrationNotes(!1)}}function RiderVM(n,t){var i=this,r={Descriptor:{create:function(n){return new BenefitDescriptorVM(n.data)}},SelectableOptions:{create:function(n){return new BenefitOptionInfoVM(i,n.data)},key:function(n){return ko.utils.unwrapObservable(n.Descriptor.ID)}},Loadings:{create:function(n){return new LoadingsVM(i,n.data)}},AlternateBenefits:{create:function(n){return new BenefitDescriptorVM(n.data)}}};ko.mapping.fromJS(t,r,i);i.insurancePurpose=n;i.dirtyFlag=new ko.dirtyFlag(i,"RiderVM",["PremiumInstallment"]);i.clearDirtyFlag=function(){i.dirtyFlag.clear();i.Loadings.clearDirtyFlag()};i.primaryOptions=function(){return _.filter(i.SelectableOptions(),function(n){return n.isPrimaryOption()})};i.secondaryOptions=function(){return _.filter(i.SelectableOptions(),function(n){return!n.isPrimaryOption()&&!n.isSumAssuredOption()&&!n.isBFIOOption()&&!n.isHealthSecondLineOption()})};i.complexOptions=function(){return _.filter(i.SelectableOptions(),function(n){return n.isComplexOption()})};i.healthSecondLineOptions=function(){return _.filter(i.SelectableOptions(),function(n){return n.isHealthSecondLineOption()})};i.mmrAdditionalOptions=function(){return _.filter(i.SelectableOptions(),function(n){return n.isMmrAdditionalOption()})};i.mmrSecondLineOptions=function(){return _.filter(i.SelectableOptions(),function(n){return n.isMmrSecondLineOption()})};i.secondaryNonComplexOptions=function(){var n=_.filter(i.SelectableOptions(),function(n){return!n.isPrimaryOption()&&!n.isSumAssuredOption()&&!n.isBFIOOption()&&!n.isComplexOption()&&!n.isHealthSecondLineOption()&&!n.isAgreedValueOption()&&!n.isMmrAdditionalOption()&&!n.isMmrSecondLineOption()});return i.insurancePurpose.IsLevelPremium()&&(n=_.filter(n,function(n){var t=n.Descriptor.OptionType();return t!="PolicyPeriod"&&t!="ContinuationOption"})),n};i.hasSecondaryOptions=function(){return i.bfioOption()?!0:i.secondaryOptions().length>0};i.hasComplexOptions=function(){return i.complexOptions().length>0};i.replacementRatioOption=function(){var n=_.filter(i.SelectableOptions(),function(n){return n.isAgreedValueOption()});return n.length>0?n[0]:null};i.sumAssuredOption=function(){var n=_.filter(i.SelectableOptions(),function(n){return n.isSumAssuredOption()});return n.length>0?n[0]:null};i.bfioOption=function(){var t=_.filter(i.SelectableOptions(),function(n){return n.isBFIOOption()});return t.length>0&&n.lifeInsured.policy.BusinessFIOOption()?t[0]:null};i.hasHealthSecondLineOptions=function(){return i.healthSecondLineOptions().length>0};i.hasMMRAdditionalOptions=function(){return i.mmrAdditionalOptions().length>0};i.hasMMRSecondLineOptions=function(){return i.mmrSecondLineOptions().length>0};i.levelPremiumFirstLineOptions=function(){return _.filter(i.SelectableOptions(),function(n){var t=n.Descriptor.OptionType();return t=="PolicyPeriod"||t=="ContinuationOption"})};i.secondaryOptionsVisible=ko.observable(!0);i.selectedAlternateBenefit=ko.observable(i.Descriptor.ID());i.loadingsVisible=ko.observable(!1);i.supportsLoadings=function(){var n=illUIModule.getRulesForBenefitByID(i.Descriptor.ID());return n!=null?n.SupportsLoadings&&!n.BenefitInheritsLoadings:!0};i.waitingPeriodOptions=function(){return _.map(i.AvailableWaitingPeriods(),function(n){return n+" weeks"})};i.selectedWaitingPeriod=ko.computed({read:function(){return i.WaitingPeriodWeeks()+" weeks"},write:function(n){i.WaitingPeriodWeeks(parseInt(n.replace(" weeks","")))}});i.splitWaitingPeriodOptions=function(){return _.map(i.AvailableSplitWaitingPeriods(),function(n){return n+" weeks"})};i.selectedSplitWaitingPeriod=ko.computed({read:function(){return i.SplitWaitingPeriod()+" weeks"},write:function(n){n?i.SplitWaitingPeriod(parseInt(n.replace(" weeks",""))):i.SplitWaitingPeriod(null)}});i.selectedHealthBaseCoverLoadingPercentage=ko.computed({read:function(){return i.HealthBaseCoverLoadingPercentage()+"%"},write:function(n){n?i.HealthBaseCoverLoadingPercentage(parseInt(n.replace("%",""))):i.HealthBaseCoverLoadingPercentage(null)}});i.formatedHealthRiderLoadings=function(){return _.map(referenceData.HealthRiderLoadings,function(n){return n+"%"})};i.formatedHealthExcess=function(){return _.map(i.AvailableHealthExcess(),function(n){return"$"+n})};i.selectedExcess=ko.computed({read:function(){return"$"+i.HealthExcess()},write:function(n){n?i.HealthExcess(parseInt(n.replace("$",""))):i.HealthExcess(null)}});i.formatedSeriousConditionLumpSumAmounts=function(){return _.map(i.AvailableSeriousConditionLumpSumAmounts(),function(n){return"$"+n})};i.selectedSeriousConditionLumpSum=ko.computed({read:function(){return"$"+i.SeriousConditionLumpSum()},write:function(n){n?i.SeriousConditionLumpSum(parseInt(n.replace("$",""))):i.SeriousConditionLumpSum(null)}});i.formatedSeriousConditionFinancialSupportAmounts=function(){return _.map(i.AvailableSeriousConditionCoverAmounts(),function(n){return"$"+n})};i.selectedSeriousConditionFinancialSupport=ko.computed({read:function(){return"$"+i.SeriousConditionFinancialSupport()},write:function(n){n?i.SeriousConditionFinancialSupport(parseInt(n.replace("$",""))):i.SeriousConditionFinancialSupport(null)}});i.cpiRatesOnClaim=function(){if(i.CPIOnClaimsOption())return _.map(i.AvailableIndexationRatesOnClaims(),function(n){return n+"%"})};i.selectedCPIRateOnClaims=ko.computed({read:function(){return i.CPIRateOnClaims()+"%"},write:function(n){i.CPIRateOnClaims(parseInt(n.replace("%","")))}});i.policyPeriod=ko.computed({read:function(){return i.PolicyPeriodYears()==1?i.PolicyPeriodYears()+" year":i.PolicyPeriodYears()>1?i.PolicyPeriodYears()+" years":i.PolicyPeriodYears()},write:function(n){var t=n.replace(" years",""),t=n.replace(" year","");i.PolicyPeriodYears(parseInt(t))}});i.benefitPeriodYears=ko.computed({read:function(){var n=i.BenefitPeriod(),t,r;return!n||n==""?null:(t=/\d+\syears/g,r=t.exec(n),r.toString().replace(" years",""))},deferEvaluation:!0});i.isAnnuityDetailsRequired=function(){if(i.AnnuityOption()&&(i.BeneficiaryCurrentAge()==null||i.BeneficiaryCurrentAge().length==0||i.BeneficiaryName()==null||i.BeneficiaryName().length==0||i.BeneficiaryGender()==0))return!0};i.formatBeneficiaryName=ko.computed({read:function(){return i.BeneficiaryName()},write:function(n){i.BeneficiaryName(utilModule.toTitleCase(n))}});i.buybackOptionComputed=ko.computed({read:function(){return i.BuybackOption()},write:function(){}});i.toggleBuybackOption=function(n,t){var u=$(t.target),r=u.is(":checked");i.Descriptor.DisplayName()=="Trauma - Accelerated"&&i.ReinstatementOption()&&!r?utilModule.confirm("The Life Cover Buy Back option was automatically selected with Trauma Reinstatement to ensure that the client would have enough Life cover in place to reinstate the full amount of the Accelerated Trauma option following a Trauma claim. By de-selecting the Life Cover Buy Back option, this client may not have enough Life Cover in place to reinstate the full value of the Accelerated Trauma Cover that was paid out. Do you wish to proceed?",function(){i.BuybackOption(r)}):i.BuybackOption(r)};i.hasAggregateBenefits=function(){return i.AlternateBenefits().length>0}}function UserGroupVM(n,t){var i=this;ko.mapping.fromJS(t,{},i);i.illustration=n;i.dirtyFlag=new ko.dirtyFlag(i,"UserGroupVM");i.clearDirtyFlag=function(){i.dirtyFlag.clear()}}function ProjectionParametersVM(n){var t=this;t.SelectedLifeInsuredID=ko.observable();t.ProjectionYears=ko.observable(n)}function ProjectionResultVM(n){var t=this;ko.mapping.fromJS(n,{},t)}function ExistingPolicyVM(n){var t=this;ko.mapping.fromJS(n,{},t)}function PolicyMemberRelationshipVM(n){var t=this;ko.mapping.fromJS(n,{},t);t.dirtyFlag=new ko.dirtyFlag(t,"PolicyMemberRelationshipVM");t.clearDirtyFlag=function(){t.dirtyFlag.clear()}}function PolicyMemberToVerifyVM(n,t){var i=this,r;i.policyMember=n;i.matches=t;i.PerOrgID=ko.observable(null);i.PerOrgRoleID=ko.observable(null);i.MatchesFound=ko.observable(!1);i.ExactMatchFound=ko.observable(!1);i.AdviserIndicatedAsExisting=ko.observable(!1);t.length==0&&(i.PerOrgID(0),i.PerOrgRoleID(0));i.MatchesFound(i.matches.length>0);r=_.filter(i.matches,function(n){return n.NeedsVerification==!1});i.ExactMatchFound(r.length>0);i.AdviserIndicatedAsExisting(n.ExistingPolicies().length>0);i.PerOrgID.subscribe(function(n){if(n==0)i.PerOrgRoleID(0);else{var t=_.filter(i.matches,function(t){return t.PerOrgID==n});t.length>0&&i.PerOrgRoleID(t[0].PerOrgRoleID)}});i.verified=function(){return i.PerOrgID()>0}}function PolicyOwnerBaseVM(n,t){var i=this,r;AbstractPolicyMemberVM.apply(i);r={RelationshipsToLives:{create:function(n){return new PolicyMemberRelationshipVM(n.data)},key:function(n){return ko.utils.unwrapObservable(n.LifeInsuredID)}}};ko.mapping.fromJS(t,r,i);i.policy=n;i.getLifeRelationship=function(n){return _.filter(i.RelationshipsToLives(),function(t){return t.LifeInsuredID()===n.ID()})[0]}}function PolicyOwnerIndividualVM(n,t){var i=this;PolicyOwnerBaseVM.apply(i,[n,t]);i.displayName=ko.computed({read:function(){return $.trim((i.Title()!=null?i.Title():"")+" "+(i.FirstNames()!=null?i.FirstNames():"")+" "+(i.LastName()!=null?i.LastName():""))},deferEvaluation:!0});i.availableRelationships=function(){return referenceData.RelationshipsToInsuredIndividual};i.isComplete=ko.computed({read:function(){return!utilModule.isNullOrEmpty(i.Title())&&!utilModule.isNullOrEmpty(i.FirstNames())&&$.trim(i.FirstNames()).toLowerCase()!="new"&&!utilModule.isNullOrEmpty(i.LastName())&&$.trim(i.LastName()).toLowerCase()!="owner"&&!utilModule.isNullOrEmpty(i.DateOfBirth())&&i.Gender()!=null},deferEvaluation:!0});i.dirtyFlag=new ko.dirtyFlag(i,"PolicyOwnerIndividualVM");i.clearDirtyFlag=function(){i.dirtyFlag.clear()}}function PolicyOwnerOrganisationVM(n,t){var i=this;PolicyOwnerBaseVM.apply(i,[n,t]);i.displayName=ko.computed({read:function(){return i.OrganisationName()!=null?$.trim(i.OrganisationName()):""},deferEvaluation:!0});i.availableRelationships=function(){return referenceData.RelationshipsToInsuredOrganisation};i.isComplete=ko.computed({read:function(){return!utilModule.isNullOrEmpty(i.OrganisationName())&&$.trim(i.OrganisationName()).toLowerCase()!="new owner"},deferEvaluation:!0});i.dirtyFlag=new ko.dirtyFlag(i,"PolicyOwnerOrganisationVM");i.clearDirtyFlag=function(){i.dirtyFlag.clear()}}function ResidencyStatusVM(n,t){var i=this;ko.mapping.fromJS(t,{},i);i.lifeInsured=n;i.dirtyFlag=new ko.dirtyFlag(i,"ResidencyStatusVM");i.clearDirtyFlag=function(){i.dirtyFlag.clear()}}function AbstractEAppWizardStepVM(){var n=this;n.init=function(){};n.getValidationMessages=function(){return[]}}function EAppWizardCustomerIdentificationVM(){var n=this;AbstractEAppWizardStepVM.apply(n);n.getCustomersToResolve=ko.computed({read:function(){var n=[];return _.each(illUIModule.illustration.Policy.LivesInsured(),function(t){n.push(t)}),_.each(illUIModule.illustration.Policy.PolicyOwnerIndividuals(),function(t){t.LifeInsuredID()==null&&n.push(t)}),n},deferEvaluation:!0})}function EAppWizardCustomerSelectionVM(){var n=this;AbstractEAppWizardStepVM.apply(n);n.isResolvingCustomers=ko.observable(!1);n.isBeginningEApp=ko.observable(!1);n.customerMatches=ko.observableArray();n.init=function(){var t=eappModule.urls.resolveCustomers+"?illustrationID="+illUIModule.illustration.ID(),i=ko.mapping.toJSON({LivesInsured:illUIModule.illustration.Policy.LivesInsured,PolicyOwnerIndividuals:illUIModule.illustration.Policy.PolicyOwnerIndividuals,PolicyOwnerOrganisations:illUIModule.illustration.Policy.PolicyOwnerOrganisations},{ignore:["InsurancePurposes","ValidationMessages","PremiumInstallment"]});n.isResolvingCustomers(!0);ajaxModule.postJson(t,i,function(t){n.isResolvingCustomers(!1);n.customerMatches.removeAll();t.ErrorMessage?eappModule.errorMessage(t.ErrorMessage):_.each(t.Data.ClientMatchSet,function(t){var r=illUIModule.illustration.Policy.getLifeInsuredByID(t.PolicyMemberID),i;r!=null?n.customerMatches.push(new PolicyMemberToVerifyVM(r,t.Matches)):(i=illUIModule.illustration.Policy.getPolicyOwnerByID(t.PolicyMemberID),i!=null&&i instanceof PolicyOwnerIndividualVM&&i.LifeInsuredID()==null&&n.customerMatches.push(new PolicyMemberToVerifyVM(i,t.Matches)))})})};n.getValidationMessages=function(){var t=[];return n.isResolvingCustomers()||_.each(n.customerMatches(),function(i){var u,f,e,r;i.PerOrgID()==null?(u=i.policyMember instanceof LifeInsuredVM?i.policyMember.fullName():i.policyMember.displayName(),t.push("Please specify whether "+u+" is a new or existing customer")):i.PerOrgID()>0&&(f=i.PerOrgID(),e=_.filter(n.customerMatches(),function(n){return n.PerOrgID()==f}),e.length>1&&(r="More than 1 life or policy owner has been identified as the same existing customer",_.contains(t,r)||t.push(r)))}),t};n.canBeginEApp=ko.computed({read:function(){return eappModule.errorMessage()==null&&eappModule.validationMessages().length==0&&!n.isBeginningEApp()&&!n.isResolvingCustomers()},deferEvaluation:!0});n.beginEApp=function(){var t=[];_.each(n.customerMatches(),function(n){t.push({PolicyMemberID:n.policyMember.ID(),PerOrgID:n.PerOrgID(),PerOrgRoleID:n.PerOrgRoleID(),MatchesFound:n.MatchesFound(),ExactMatchFound:n.ExactMatchFound(),AdviserIndicatedAsExisting:n.AdviserIndicatedAsExisting()})});var i={ResolvedCustomers:t},r=eappModule.urls.beginEApp+"?illustrationID="+illUIModule.illustration.ID(),u=ko.mapping.toJSON(i);n.isBeginningEApp(!0);$.ajax({type:"POST",url:r,data:u,contentType:"application/json; charset=utf-8",dataType:"json",success:function(t){if(n.isBeginningEApp(!1),t.Successful){var i=t.RedirectUrl;window.open(i,"_blank","resizable=yes, scrollbars=yes, titlebar=yes, width=960, height=720, top=10, left=10");setTimeout(function(){eappModule.dialogOpen(!1)},500)}else t.ErrorMessage&&eappModule.errorMessage(t.ErrorMessage)},error:function(){n.isBeginningEApp(!1);eappModule.errorMessage("We're sorry, something went wrong while initiating the e-App. Please contact Fidelity Life for support.")}})}}function EAppWizardMortgageDetailsVM(){var n=this;AbstractEAppWizardStepVM.apply(n);n.init=function(){};n.livesWithMMR=ko.computed({read:function(){return _.filter(illUIModule.illustration.Policy.LivesInsured(),function(n){var t=!1;return _.each(n.InsurancePurposes(),function(n){_.each(n.Riders(),function(n){n.Descriptor.DisplayName()=="Monthly Mortgage Repayment"&&(t=!0)})}),t})},deferEvaluation:!0});n.livesWithMMRAnd110PercentBasis=ko.computed({read:function(){return _.filter(illUIModule.illustration.Policy.LivesInsured(),function(n){var t=!1;return _.each(n.InsurancePurposes(),function(i){_.each(i.Riders(),function(i){i.Descriptor.DisplayName()=="Monthly Mortgage Repayment"&&n.MortgageProtectionBasis()==1&&(t=!0)})}),t})},deferEvaluation:!0});n.getValidationMessages=function(){var t=[];return n.livesWithMMRAnd110PercentBasis().length>0&&(illUIModule.illustration.Policy.MortgagePrincipal()>0||t.push("The principal of the mortgage must be entered"),illUIModule.illustration.Policy.MortgageMonthlyRepayment()>0||t.push("The monthly repayment amount of the mortgage must be entered"),illUIModule.illustration.Policy.MortgageTermInYears()>0||t.push("The term in years of the mortgage must be entered")),t};n.getRepaymentTermYears=function(n){var t=null;return _.each(n.InsurancePurposes(),function(n){_.each(n.Riders(),function(){_.each(n.Riders(),function(n){n.Descriptor.DisplayName()=="Monthly Mortgage Repayment"&&(t=n)})})}),t.benefitPeriodYears()+" years"};n.paymentFrequency=function(){var n=illUIModule.illustration.Policy,t=_.filter(n.PaymentFrequencies(),function(t){return t.ID()==n.PaymentFrequencyID()})[0];return t.Description};n.premium=function(){return utilModule.formatCurrency(illUIModule.illustration.Policy.TotalPolicyInstallment())}}function EAppWizardPolicyOwnersVM(){var n=this;AbstractEAppWizardStepVM.apply(n);n.relationshipsDialogOpen=ko.observable(!1);n.currentRelationshipsPolicyOwner=ko.observable(null);n.canAddPolicyOwnerIndividual=ko.computed({read:function(){return illUIModule.illustration.Policy.PolicyOwnerIndividuals().length<6},deferEvaluation:!0});n.addPolicyOwnerIndividual=function(){var n=eappModule.urls.addPolicyOwnerIndividual+"?illustrationID="+illUIModule.illustration.ID();illUIModule.postAndUpdate(n,null)};n.canAddPolicyOwnerOrganisation=ko.computed({read:function(){return illUIModule.illustration.Policy.PolicyOwnerOrganisations().length<1},deferEvaluation:!0});n.addPolicyOwnerOrganisation=function(){var n=eappModule.urls.addPolicyOwnerOrganisation+"?illustrationID="+illUIModule.illustration.ID();illUIModule.postAndUpdate(n,null)};n.removePolicyOwner=function(n){var t=eappModule.urls.removePolicyOwner+"?illustrationID="+illUIModule.illustration.ID()+"&policyOwnerID="+n.ID();illUIModule.postAndUpdate(t,null)};n.getNonLifePolicyOwnerIndividuals=function(){return _.filter(illUIModule.illustration.Policy.PolicyOwnerIndividuals(),function(n){return n.LifeInsuredID()==null})};n.toggleIsLifeOwner=function(n){var t;n.policyOwner()!=null?(t=eappModule.urls.removePolicyOwnerForLife+"?illustrationID="+illUIModule.illustration.ID()+"&lifeInsuredID="+n.ID(),illUIModule.postAndUpdate(t,null)):(t=eappModule.urls.addPolicyOwnerForLife+"?illustrationID="+illUIModule.illustration.ID()+"&lifeInsuredID="+n.ID(),illUIModule.postAndUpdate(t,null))};n.isLifeOwner=function(n){return n.policyOwner()!=null};n.toggleIsLifeMailRecipient=function(n){var t=n.policyOwner();t!=null&&t.MailRecipient(!t.MailRecipient())};n.isLifeMailRecipient=function(n){return n.policyOwner()!=null&&n.policyOwner().MailRecipient()===!0};n.editRelationships=function(t){var i=t instanceof LifeInsuredVM?t.policyOwner():t;n.currentRelationshipsPolicyOwner(i);n.relationshipsDialogOpen(!0)};n.getValidationMessages=function(){var n=[],t;return illUIModule.illustration.ValidForEApp()||n.push("This illustration is no longer valid for an e-App."),illUIModule.illustration.Policy.policyOwners().length==0&&n.push("At least one policy owner must be selected"),t=_.filter(illUIModule.illustration.Policy.policyOwners(),function(n){return n.MailRecipient()===!0}),t.length!=1&&n.push("One policy owner must be a mail recipient"),_.each(illUIModule.illustration.Policy.policyOwners(),function(t){t.isComplete()||n.push("Please complete all details for "+t.displayName());_.each(t.RelationshipsToLives(),function(i){var r=!0;i.RelationshipType()==0&&(r=!1);r||n.push(t.displayName()+" must have a relationship to each life insured set")});t instanceof PolicyOwnerIndividualVM&&(t.CurrentAgeResolved()!=null&&t.CurrentAgeResolved()<16&&n.push(t.displayName()+" is under 16 years of age and cannot be a policy owner"),t.Gender()==1&&(t.Title()=="Mrs"||t.Title()=="Miss"||t.Title()=="Ms")?n.push(t.displayName()+"'s title is not valid for a male"):t.Gender()==2&&t.Title()=="Mr"&&n.push(t.displayName()+"'s title is not valid for a female"))}),_.each(ajaxModule.validationMessages(),function(t){t.indexOf("acceptable title")==-1&&n.push(t)}),n}}function EAppWizardResidencyConfirmationVM(){var n=this;AbstractEAppWizardStepVM.apply(n);n.init=function(){};n.availableResidencyStatuses=function(){return illUIModule.illustration.Plan.CommissionPlanDescription()=="GoldenLifePlan"||illUIModule.illustration.Plan.CommissionPlanDescription()=="FuneralFund"?referenceData.AvailableResidencyStatuses:referenceData.ResidencyStatuses};n.showResidencyStatusText=function(){var n="";return n=illUIModule.illustration.Plan.CommissionPlanDescription()=="GoldenLifePlan"||illUIModule.illustration.Plan.CommissionPlanDescription()=="FuneralFund"?"Please complete the residency and health status for each of the following lives:":"Please complete the residency status for each of the following lives:",n.push,n};n.showResidencyStatusHeaderText=function(){var n="";return n=illUIModule.illustration.Plan.CommissionPlanDescription()=="GoldenLifePlan"||illUIModule.illustration.Plan.CommissionPlanDescription()=="FuneralFund"?"Residency and Health Status":"Residency Confirmation",n.push,n};n.getValidationMessages=function(){var n=[];return _.each(illUIModule.illustration.Policy.LivesInsured(),function(t){t.ResidencyStatusID()==0&&n.push("Please complete Residency for "+t.fullName());t.hasInvalidResidencyStatus()&&t.TwoYearWorkVisa()==null&&n.push("Please indicate if work visas add up to at least two consective years for "+t.fullName());t.hasInvalidResidencyStatus()&&t.TwelveMonthsOrMoreUntilWorkVisaExpiry()==null&&n.push("Please indicate if 12 months or more left until expiry on work visas for "+t.fullName());t.CurrentlyLivingInNZ()==null&&(illUIModule.illustration.Plan.CommissionPlanDescription()=="GoldenLifePlan"||illUIModule.illustration.Plan.CommissionPlanDescription()=="FuneralFund")&&n.push("Please provide living status for "+t.fullName());t.DiagnosedIllnessLeadingToDeathWithInTwelveMonths()==null&&(illUIModule.illustration.Plan.CommissionPlanDescription()=="GoldenLifePlan"||illUIModule.illustration.Plan.CommissionPlanDescription()=="FuneralFund")&&n.push("Please indicate health condition for "+t.fullName())}),n}}function LargeSumAssuredDiscountVM(n){var t=this,i;t.PaymentFrequencyDescription=ko.observable();t.LargeSumAssuredDiscountLifes=ko.observableArray();t.formattedNumber=function(n){var t=n.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g,",");return t[0]=="+"||t[0]=="-"?t.substring(0,1)+"$"+t.substring(1):"$"+t};t.enableThisDetail=function(n,t){if(n.RiderName().indexOf("Life Assurance")>-1)return!0;if(n.RiderName().indexOf("Survivor")>-1)for(var i in t.LargeSumAssuredDiscountDetails())return t.LargeSumAssuredDiscountDetails()[i].RiderName().indexOf("Life Assurance")>-1?!1:!0;return!1};i={LargeSumAssuredDiscountLifes:{create:function(n){return new LargeSumAssuredDiscountLifesModel(n.data)}}};ko.mapping.fromJS(n,i,t)}function LargeSumAssuredDiscountLifesModel(n){var t=this;ko.mapping.fromJS(n,{},this);t.isSelected=ko.observable(!1)}function LifeUnderwritingRequirementsVM(n){var t=this;ko.mapping.fromJS(n,{},t)}function PolicyUnderwritingRequirementsVM(){var n=this;n.LifeUnderwritingRequirements=ko.observableArray()}LifeInsuredVM.prototype=new AbstractPolicyMemberVM;PolicyOwnerBaseVM.prototype=new AbstractPolicyMemberVM;PolicyOwnerIndividualVM.prototype=new PolicyOwnerBaseVM;PolicyOwnerIndividualVM.prototype=new PolicyOwnerBaseVM;EAppWizardCustomerIdentificationVM.prototype=new AbstractEAppWizardStepVM;EAppWizardCustomerSelectionVM.prototype=new AbstractEAppWizardStepVM;EAppWizardMortgageDetailsVM.prototype=new AbstractEAppWizardStepVM;EAppWizardPolicyOwnersVM.prototype=new AbstractEAppWizardStepVM;EAppWizardResidencyConfirmationVM.prototype=new AbstractEAppWizardStepVM;var eappModule=function(){var r=ko.observable(!1),u,t={policyOwners:new EAppWizardPolicyOwnersVM,customerIdentification:new EAppWizardCustomerIdentificationVM,residencyConfirmation:new EAppWizardResidencyConfirmationVM,mortgageDetails:new EAppWizardMortgageDetailsVM,customerSelection:new EAppWizardCustomerSelectionVM},n=ko.observable(1),o=ko.observableArray(),i=ko.observable(),s=ko.observable(!1),h=ko.observable(!1),a=function(f){u=f;l.urls=u;n.subscribe(function(){var n=c();n.init()});r.subscribe(function(t){t&&(n(1),i(null))});i.subscribe(function(n){n!=null&&(t.customerSelection.isResolvingCustomers(!1),t.customerSelection.isBeginningEApp(!1))});n(1)},v=function(){illUIModule.displayLargeSumAssuredDiscount(null,y)},y=function(){var n=u.validateIllustrationForEApp+"?illustrationID="+illUIModule.illustration.ID();ajaxModule.postJson(n,null,function(n){n.Data.length>0?(ajaxModule.validationMessages.removeAll(),_.each(n.Data,function(n){ajaxModule.validationMessages.push(n)}),ajaxModule.showValidationMessages(!0)):r(!0)})},p=ko.computed(function(){return i()==null&&n()>1&&!t.customerSelection.isBeginningEApp()}),w=ko.computed({read:function(){return i()==null&&o().length==0&&!t.customerSelection.isBeginningEApp()},deferEvaluation:!0}),b=ko.computed({read:function(){return i()!=null||!t.customerSelection.isResolvingCustomers()&&!t.customerSelection.isBeginningEApp()},deferEvaluation:!0}),f=ko.computed({read:function(){return t.mortgageDetails.livesWithMMRAnd110PercentBasis().length>0},deferEvaluation:!0}),c=function(){switch(n()){case 1:return t.policyOwners;case 2:return t.residencyConfirmation;case 3:return t.customerIdentification;case 4:return t.mortgageDetails;case 5:return t.customerSelection;default:return null}},k=function(){n()!=5||f()?n(n()-1):n(n()-2)},d=function(){n()!=3||f()?n()==2?(illUIModule.illustration.Policy.hasIneligibleLivesForCurrentlyLivingOrHealthCondition()&&illUIModule.currentlyLivingInNZ()&&(h(!0),e()),illUIModule.illustration.Policy.HasHealthRiders()&&illUIModule.illustration.Policy.hasIneligibleLivesForHealth()?(s(!0),e()):n(n()+1)):n(n()+1):n(n()+2)},o=ko.computed({read:function(){var n=c();return n.getValidationMessages()},deferEvaluation:!0}),e=function(){r(!1)},l={init:a,showWizard:v,dialogOpen:r,urls:u,steps:t,currentStep:n,canMovePrevious:p,canMoveNext:w,movePrevious:k,moveNext:d,canCancel:b,hasMMR:f,cancel:e,validationMessages:o,errorMessage:i,invalidForHealthDialogOpen:s,invalidMessageDialogOpen:h};return l}(),illUIModule=function(){var n=null,u=null,w=ko.observableArray(),o=ko.observable(),et=ko.observable(!1),s=ko.observableArray(),h=ko.observableArray(),ot=ko.observable(),c=null,st=ko.observable(!1),f=ko.observable(),b=ko.observable(!1),ht=ko.observable(!1),k=ko.observable(!1),t,ct=ko.observable(!1),l=ko.observable(!0),d=!1,g=!1,e=null,nt=null,ri=ko.observable(!1),ui=ko.observable(),a=ko.observable(!0),lt=ko.observable(!1),tt=ko.observableArray(),at=ko.observable(),it=ko.observableArray(),vt=ko.observable(),v=ko.observableArray(),rt=ko.observable(),ut=ko.observable(),yt=ko.observable(),r=function(t,r){var u=r+"?illustrationID="+n.ID();ko.observable().subscribeTo(t).subscribe(function(n){if(!g){var t=u;eappModule.dialogOpen()&&(t+="&validateForEApp=true");i(t,n)}})},fi=function(i,e){t=i;try{n=new IllustrationVM(e);ii.illustration=n;n.Policy.LivesInsured()[0].isSelected(!0);u=new ProjectionParametersVM(n.DefaultProjectionYears());u.ProjectionYears.subscribe(function(t){(t<5||t>n.Policy.ProjectionYears())&&(t<5?u.ProjectionYears(5):u.ProjectionYears(n.Policy.ProjectionYears()),ajaxModule.validationMessages(["Please select a term between 5 and "+n.Policy.ProjectionYears()+" years"]),ajaxModule.showValidationMessages(!0))});c=new PolicyUnderwritingRequirementsVM;f(new LargeSumAssuredDiscountVM);ko.applyBindings(n,$("#content").get(0));ct(!0);r("DirtyIllustrationVM",t.updateIllustration);r("DirtyPolicyVM",t.updatePolicy);r("DirtyLifeInsuredVM",t.updateLifeInsured);r("DirtyInsurancePurposeVM",t.updateInsurancePurpose);r("DirtyRiderVM",t.updateRider);r("DirtyLoadingsVM",t.updateLoadings);r("DirtyPolicyCommissionBasisVM",t.updatePolicyCommissionBasis);r("DirtyPolicyOwnerIndividualVM",t.updatePolicyOwnerIndividual);r("DirtyPolicyOwnerOrganisationVM",t.updatePolicyOwnerOrganisation);r("DirtyPolicyMemberRelationshipVM",t.updatePolicyMemberRelationship);r("DirtyUserGroupVM",t.updateIllustrationUserGroup);r("DirtyBusinessFIODetailsVM",t.updatePolicyBFIODetails);r("DirtyReportOptionsOverridesVM",t.updateReportOptionsOverrides);n.clearDirtyFlag()}catch(o){ajaxModule.processException(o)}},i=function(t,i,r){ajaxModule.postJson(t,i,function(t){t.Data&&t.Data.Policy&&ft(t.Data);r&&r(t);n.clearDirtyFlag()})},ft=function(n){gt(n);var t=[];_.each(n.Policy.ValidationMessages,function(n){t.push(n)});_.each(n.Policy.LivesInsured,function(n){_.each(n.ValidationMessages,function(n){t.push(n)})});t.length>0&&(ajaxModule.validationMessages(t),eappModule.dialogOpen()||ajaxModule.showValidationMessages(!0))},ei=function(){var i=t.duplicateIllustration+"?illustrationID="+n.ID();illUIModule.messageText=ko.observable("Illustration is duplicated. Duplicate illustration will open");illUIModule.illustrationMessageDialogOpen(!0);ajaxModule.postJson(i,null,function(n){top.location=n.RedirectUrl})},oi=ko.computed({read:function(){return n.Policy.LivesInsured().length<n.Policy.RuleSet.MaximumLivesInsured()},deferEvaluation:!0}),si=function(){var r=t.addLifeInsured+"?illustrationID="+n.ID();i(r,null,function(t){if(t.Data.Policy)ft(t.Data);else{var i=new LifeInsuredVM(n.Policy,t.Data);n.Policy.LivesInsured.push(i);y(i)}})},hi=function(r){if(n.Policy.LivesInsured().length>1){var u="Are you sure you wish to remove "+r.fullName()+"?";utilModule.confirm(u,function(){var u=n.Policy.LivesInsured.indexOf(r),f=t.removeLifeInsured+"?illustrationID="+n.ID()+"&lifeInsuredID="+r.ID();i(f,null,function(){var t=r.policy.LivesInsured().length;u>t-1&&(u=t-1);y(n.Policy.LivesInsured()[u])})})}},ci=function(){var r=pt(),u=t.duplicateSelectedLifeInsured+"?illustrationID="+n.ID()+"&lifeInsuredID="+r.ID();i(u,null,function(t){if(t.Data.Policy&&t.Data.Policy.ValidationMessages.length>0)ft(t.Data);else{var i=_.filter(n.Policy.LivesInsured(),function(n){return n.DisplaySequence()==r.DisplaySequence()+1})[0];y(i)}})},y=function(t){_.each(n.Policy.LivesInsured(),function(n){n.isSelected(n.ID()===t.ID())})},pt=function(){var t=_.filter(n.Policy.LivesInsured(),function(n){return n.isSelected()});return t.length>0?t[0]:null},li=function(r){var u=t.addInsurancePurpose+"?illustrationID="+n.ID()+"&lifeInsuredID="+r.ID();i(u,null,function(n){r.InsurancePurposes.push(new InsurancePurposeVM(r,n.Data))})},ai=function(r){if(r.lifeInsured.InsurancePurposes().length>1)utilModule.confirm("Are you sure you wish to remove this purpose?",function(){var u=t.removeInsurancePurpose+"?illustrationID="+n.ID()+"&insurancePurposeID="+r.ID();i(u)})},vi=function(r,u){var e=r.insurancePurpose,f=r.Descriptor,h=_.filter(e.Riders(),function(n){return n.Descriptor.ID()===f.ID()}).length>0,c=_.filter(e.Riders(),function(n){return n.Descriptor.BaseBenefitID()===f.ID()}).length>0,o,s;if(h||c)s=f.DisplayName()=="Waiver of Premium"?"The Waiver of Premium Cover will be removed from all covers including any income protection type covers for this Life Insured. "+("\nAre you sure you wish to remove "+f.DisplayName()+"?"):"Are you sure you wish to remove "+f.DisplayName()+"?",utilModule.confirm(s,function(){var o=t.removeRider+"?illustrationID="+n.ID()+"&benefitDescriptorID="+f.ID()+"&insurancePurposeID="+e.ID(),r;i(o);r=$(u.target);r.removeAttr("checked")});else if(r.IsSelectable())return o=t.addRider+"?illustrationID="+n.ID()+"&benefitDescriptorID="+f.ID()+"&insurancePurposeID="+e.ID(),i(o,null,function(){var t=$("#purpose-"+e.ID()+" div.rider#desc-"+f.ID()),n=t.find("input.sum-assured");(!n.length||n.eq(0).is(":disabled"))&&(n=t.find(".secondary-benefit-options input.currency:first"));n.length&&(n.focus(),n.select())}),!0},yi=function(r){var e=r.insurancePurpose,u=r.Descriptor,f;f=u.DisplayName()=="Waiver of Premium"?"The Waiver of Premium Cover will be removed from all covers including any income protection type covers for this Life Insured. "+("\nAre you sure you wish to remove "+u.DisplayName()+"?"):"Are you sure you wish to remove "+u.DisplayName()+"?";utilModule.confirm(f,function(){var r=t.removeRider+"?illustrationID="+n.ID()+"&benefitDescriptorID="+u.ID()+"&insurancePurposeID="+e.ID();i(r)})},pi=function(r){var u=t.resetLoadings+"?illustrationID="+n.ID()+"&riderID="+r.ID();i(u)},wi=ko.computed({read:function(){return n.Plan.PlanFamilyID()},write:function(r){d=!0;var u=t.changePlanFamily+"?illustrationID="+n.ID()+"&planFamily="+r;i(u)},deferEvaluation:!0}),bi=function(n,r){if(d)d=!1;else{var u=$(r.target),f=u.val(),e=t.changePlan+"?illustrationID="+n.ID()+"&planDescriptorID="+f;i(e,null,function(){var t=!1;_.each(n.Policy.LivesInsured(),function(n){n.isSelected()&&(t=!0)});t||n.Policy.LivesInsured()[0].isSelected(!0)})}},ki=function(){p(null,gi)},di=function(){p(null,nr)},gi=function(){l(!0);et(!0);u.ProjectionYears(n.DefaultProjectionYears());wt()},nr=function(){a(!0);lt(!0);bt()},tr=function(){ht(!0)},ir=function(t){return t.indexOf(n.Plan.CommissionPlanDescription())>=0},rr=function(){return n.Plan.CommissionPlanDescription()=="GoldenLifePlan"||n.Plan.CommissionPlanDescription()=="FuneralFund"?!0:!1},ur=function(){var t="";return(n.Plan.CommissionPlanDescription()=="GoldenLifePlan"||n.Plan.CommissionPlanDescription()=="FuneralFund")&&(t="not eligible for "+n.Plan.DisplayName()),t},fr=ko.computed({read:function(){var t=[],i;return _.each(n.Policy.LivesInsured(),function(n){i=!1;_.each(n.InsurancePurposes(),function(t){t.Riders().length>0&&n.LifeHasRiskRiders()&&(i=!0)});i&&t.push({ID:n.ID(),DisplayName:n.fullName()})}),t.push({ID:null,DisplayName:"All Lives"}),t},deferEvaluation:!0}),wt=function(){l(!1);var i=t.projectPremiums+"?illustrationID="+n.ID(),r=ko.mapping.toJSON(u);u.ProjectionYears()>15?ut("Please be patient when calculating longer terms."):ut("");ajaxModule.postJson(i,r,function(t){rt(_.filter(n.Policy.PaymentFrequencies(),function(t){return t.ID()===n.Policy.PaymentFrequencyID()})[0].Description());w.removeAll();s.removeAll();h.removeAll();var r=ko.observableArray(),i=ko.observableArray(),f=0;r.push("Year","Annual Premiums");s.push(r());i.push("Year","Life Assurance","Income Protection");h.push(i());_.each(t.Data,function(e){var c=new ProjectionResultVM(e),l;r=ko.observableArray();i=ko.observableArray();r.push("Year "+c.YearToProject());r.push(c.AnnualPremium());i.push("Year "+c.YearToProject());i.push(c.TotalPotentialClaimLifeAssurance());i.push(c.TotalPotentialClaimIncomeProtection());s.push(r());h.push(i());f+=c.PremiumInstallment();ot(f/t.Data.length);w.push(c);l=null;u.SelectedLifeInsuredID()&&(l=_.filter(n.Policy.LivesInsured(),function(n){return n.ID()===u.SelectedLifeInsuredID()})[0].fullName());o(l)});wr();l(!0)})},bt=function(){a(!1);var i=t.compareYRTPremiums+"?IllustrationID="+n.ID();ajaxModule.postJson(i,null,function(t){var i,r,s,h;rt(_.filter(n.Policy.PaymentFrequencies(),function(t){return t.ID()===n.Policy.PaymentFrequencyID()})[0].Description());yt(t.Data[0].length);v.removeAll();i=ko.observableArray();i.push("Year","Level Term Premiums","YRT Premiums");v.push(i());tt.removeAll();it.removeAll();var u=ko.observableArray(),f=0,e=ko.observableArray(),o=0;for(_.each(t.Data[0],function(n){var i=new ProjectionResultVM(n);u.push(i.AnnualPremium());f+=i.PremiumInstallment();at(f/t.Data[0].length);tt.push(i)}),_.each(t.Data[1],function(n){var i=new ProjectionResultVM(n);e.push(i.AnnualPremium());o+=i.PremiumInstallment();vt(o/t.Data[1].length);it.push(i)}),r=0;r<u().length;r++)i=ko.observableArray(),s=u()[r],h=e()[r],i.push(r+1),i.push(s),i.push(h),v.push(i());br();a(!0)})},p=function(n,i){e=i;nt=n;var r=t.largeSumAssuredDiscountDisplay+"?illustrationID="+illUIModule.illustration.ID();$.ajax({type:"POST",url:r,data:null,contentType:"application/json; charset=utf-8",dataType:"json",global:!1,success:function(n){n.Data.DisplayLSAD?(f(new LargeSumAssuredDiscountVM(n.Data)),f().LargeSumAssuredDiscountLifes()[0].isSelected(!0),b(!0)):e!=null&&e(nt)}})},er=function(n){$.each(f().LargeSumAssuredDiscountLifes(),function(t,i){n==i?i.isSelected(!0):i.isSelected(!1)})},or=function(){cr();kt()},sr=function(){kt()},kt=function(){b(!1);e!=null&&e(nt)},hr=function(){return $.each(f().LargeSumAssuredDiscountLifes(),function(n,t){$.each(t.LargeSumAssuredDiscountDetails(),function(n,i){i.Apply(t.LargeSumAssuredDiscountDetails()[0].Apply())})}),!0},cr=function(){try{$.each(f().LargeSumAssuredDiscountLifes(),function(t,i){for(var r,u=0;u<i.LargeSumAssuredDiscountDetails().length;u++)r=i.LargeSumAssuredDiscountDetails()[u],r.Apply()&&(r.RiderName().indexOf("Survivor")>-1?n.Policy.LivesInsured()[t].InsurancePurposes()[0].Riders()[u].MonthlyBenefit(r.SurvivorIncomeMonthlyBenefitForNextSADiscountLevel()):n.Policy.LivesInsured()[t].InsurancePurposes()[0].Riders()[u].SumAssured(r.NextSADiscountLevel()))})}catch(t){}},lr=function(){ar()},ar=function(){st(!0);var i=t.getUnderwritingRequirements+"?illustrationID="+n.ID();ajaxModule.postJson(i,null,function(n){c.LifeUnderwritingRequirements.removeAll();_.each(n.Data.LifeUnderwritingRequirements,function(n){var t=new LifeUnderwritingRequirementsVM(n);c.LifeUnderwritingRequirements.push(t)})})},vr=function(n){n?p(n,dt):dt(n)},dt=function(i){if(i)dr();else{var r="Fidelity-Life-illustration-"+n.PreparedFor().replace(" ","-");window.open(t.getIllustrationReport+"/"+n.ID()+"/"+r.substr(0,100)+".pdf","_blank");ni()}},yr=function(){var i="Fidelity-Life-illustration-"+n.PreparedFor().replace(" ","-"),r=t.getIllustrationProjectionReport+"/"+n.ID()+"/"+u.ProjectionYears()+"/"+i.substr(0,100)+".pdf?selectedLifeInsuredID="+u.SelectedLifeInsuredID();window.open(r,"_blank")},pr=function(){var i="Fidelity-Life-illustration-"+n.PreparedFor().replace(" ","-"),r=t.getIllustrationComparatorReport+"/"+n.ID()+"/"+i.substr(0,100)+".pdf";window.open(r,"_blank")},gt=function(t){try{g=!0;ko.mapping.fromJS(t,n);g=!1}catch(i){ajaxModule.processException(i)}},wr=function(){var i=google.visualization.arrayToDataTable(s()),n=google.visualization.arrayToDataTable(h()),t=new google.visualization.NumberFormat({prefix:"$"});t.format(i,1);t.format(n,1);t.format(n,2);new google.visualization.ColumnChart(document.getElementById("premiums-graph")).draw(i,{title:"Annual Premiums - "+(o()||"All Lives"),width:800,height:400});new google.visualization.ColumnChart(document.getElementById("claims-graph")).draw(n,{title:"Total Potential Claims - "+(o()||"FIRST LIFE"),width:800,height:400})},br=function(){var n=google.visualization.arrayToDataTable(v()),r=new google.visualization.NumberFormat({prefix:"$"}),t,i;r.format(n,2);t={title:"Level Term and YRT Annual Premiums - All Lives",hAxis:{title:"Years"},vAxis:{title:"Premium"},width:800,height:400};i=new google.visualization.LineChart(document.getElementById("comparator-graph"));i.draw(n,t)},kr=function(t){var u=n.UserGroup.ID(),i=[],r=[],f=refDataModule.getRulesForBenefit(t);return u!=null&&(i=_.filter(f,function(n){return n.IsOverrideRuleSet===!0&&n.UserGroupID===u})),r=_.filter(f,function(n){return n.IsDefaultRuleSet===!0}),i.length>0?i[0]:r.length>0?r[0]:null},dr=function(){k(!0)},ni=function(){k(!1)},ti=function(t){return n.DisplayToolTips()?t:null},gr=function(t){var i=_.filter(n.Policy.PaymentFrequencies(),function(t){return t.ID()===n.Policy.PaymentFrequencyID()})[0].Description(),r=utilModule.formatCurrency(n.Policy.MinimumPremium());return t=t.replace("{0}",i.toLowerCase()),t=t.replace("{1}",r),n.Policy.MeetsMinimumPremium()?null:ti(t)},nu=function(r,u){var f=r.insurancePurpose,e=r.Descriptor,o=t.removeRider+"?illustrationID="+n.ID()+"&benefitDescriptorID="+e.ID()+"&insurancePurposeID="+f.ID();i(o,null,function(){var r=t.addRider+"?illustrationID="+n.ID()+"&benefitDescriptorID="+u+"&insurancePurposeID="+f.ID();ajaxModule.overrideRequestFlag();i(r,null,function(){var t=$("#purpose-"+f.ID()+" div.rider#desc-"+e.ID()),n=t.find("input.sum-assured");(!n.length||n.eq(0).is(":disabled"))&&(n=t.find(".secondary-benefit-options input.currency:first"));n.length&&(n.focus(),n.select())})})},tu=function(n){try{var t=new Date(parseInt(n.substr(6)));return t.getDate()+"/"+(t.getMonth()+1)+"/"+t.getFullYear()}catch(i){return""}},ii={init:fi,illustration:n,postAndUpdate:i,duplicateIllustration:ei,canAddLifeInsured:oi,addLifeInsured:si,removeLifeInsured:hi,duplicateSelectedLifeInsured:ci,selectLifeInsured:y,getSelectedLifeInsured:pt,addInsurancePurpose:li,removeInsurancePurpose:ai,toggleBenefit:vi,removeRider:yi,resetLoadings:pi,planFamily:wi,changePlan:bi,updateIllustrationViewModel:gt,showProjections:ki,showComparator:di,projectionsDialogOpen:et,getProjectionParameters:function(){return u},projectionLivesInsuredOptions:fr,projectPremiums:wt,projectionResults:w,averageProjectionPremium:ot,projectionSelectedLifeName:o,getPolicyUnderwritingRequirements:function(){return c},getUnderwritingRequirements:lr,underwritingDialogOpen:st,largeSumAssuredDiscountDialogOpen:b,selectLifeInLSAD:er,displayLargeSumAssuredDiscount:p,largeSumAssuredDiscountModuleYes:or,largeSumAssuredDiscountModuleNo:sr,clickApplyLSAD:hr,largeSumAssuredDiscount:f,getIllustrationReport:vr,getIllustrationProjectionReport:yr,showCommissionDialDown:tr,commissionDialDownDialogOpen:ht,loaded:ct,getRulesForBenefitByID:kr,projectingAvailable:l,commissionAvailable:ir,reportOptionsDialogOpen:k,cancelReportOptions:ni,setToolTipVisibility:ti,addAlternateBenefit:nu,setMinimumPremiumToolTip:gr,formatDate:tu,currentlyLivingInNZ:rr,ineligibledialogtitle:ur,illustrationMessageDialogOpen:ri,messageText:ui,compareYRTPremiums:bt,comparatorAvailable:a,comparatorDialogOpen:lt,ltComparatorResults:tt,averageComparatorLTProjectionPremium:at,yrtComparatorResults:it,averageComparatorYRTProjectionPremium:vt,getIllustrationComparatorReport:pr,projectionFrequency:rt,projectionWarning:ut,projectionTerm:yt};return ii}()