function dateDiff(n,t,i){var r=0,f,u;return n!=null&&t!=null&&(i&&(i=i.replace(/s$/,"")),i==="year"?(r=t.getFullYear()-n.getFullYear(),f=new Date(t.getTime()).setFullYear(n.getFullYear()),f<n&&--r):i==="month"?(r=(t.getFullYear()-n.getFullYear())*12,r-=n.getMonth()-1,r+=t.getMonth()):(u=t-n,r=i==="second"?u/1e3:i==="minute"?u/6e4:i==="hour"?u/36e5:i==="day"?u/864e5:i==="week"?u/6048e5:u)),Math.floor(r)}var PrismApi=PrismApi||{},oldPrismApi;window.console||(console={log:function(){}}),window.console=function(){var n=window.console;return{log:function(){if(n.log(arguments[0]),PrismApi.Utils.getQueryString("console")=="page"){var t=$("#prism-logs");t.length==0&&$("body").append('<div id="prism-logs" style="width: 100%; background:#000;color:#FFF;">'),$("#prism-logs").append("<p>==========<br />"+arguments[0].replace(/\n/g,"<br />&nbsp; &nbsp; &nbsp; ")+"<\/p>")}}}}(),window.isoDateRegExp=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,String.prototype.format=function(){var n=arguments;return this.replace(/{(\d+)}/g,function(t,i){return typeof n[i]!="undefined"?n[i]:t})},String.prototype.fromISOString=function(){if(this&&this.length==10)return new Date(this.substr(0,4),this.substr(5,2)-1,this.substr(8,2));var n=new Date(Date.parse(this));return!window.isoDateRegExp.exec(this)||isNaN(n.getFullYear())?undefined:n},String.prototype.toYesNo=function(){return this=="true"?"Yes":"No"},Date.prototype.age=function(){var n=(new Date).getDateOnly(),t=new Date(this.getTime()).getDateOnly(),i=n.getFullYear()-t.getFullYear();return t.setFullYear(n.getFullYear()),n<t&&--i,i},Date.prototype.getDateOnly=function(){return new Date(this.setHours(0,0,0,0))},Date.prototype.toFormattedString=function(n){if(!n)throw new Error("no date format provided.");return $.mobiscroll.formatDate(n,this)},function(n){n.prototype.getISOTimeZoneOffset||(n.prototype.getISOTimeZoneOffset=function(){var n=(this.getTimezoneOffset()/60+"").split("."),t;return n.length==0&&n.push(0),n.length==1&&n.push(0),n[0]*=-1,t=n[0]<0,t&&(n[0]*=-1),(t?"-":"+")+(n[0]<10?"0":"")+n[0]+":"+n[1]+(n[1]<10?"0":"")}),n.prototype.toISOString||(n.prototype.toISOString=function(){function n(n){return n<10?"0"+n:n}return this.getFullYear()+"-"+n(this.getMonth()+1)+"-"+n(this.getDate())+"T"+n(this.getHours())+":"+n(this.getMinutes())+":"+n(this.getSeconds())+this.getISOTimeZoneOffset()})}(Date),function(n){var t=n.parse,i=[1,4,5,6,7,10,11];n.parse=function(r){var e,u,f=0,o,s;if(u=window.isoDateRegExp.exec(r)){for(o=0;s=i[o];++o)u[s]=+u[s]||0;u[2]=(+u[2]||1)-1,u[3]=+u[3]||1,u[8]!=="Z"&&u[9]!=="undefined"&&(f=u[10]*60+u[11],u[9]==="+"&&(f=0-f)),e=n.UTC(u[1],u[2],u[3],u[4],u[5]+f,u[6],u[7])}else e=t?t(r):NaN;return e}}(Date),Boolean.prototype.toYesNo=function(){return this==!0?"Yes":"No"},ko.bindingHandlers.htmlWithKnockout={init:function(){return{controlsDescendantBindings:!1}},update:function(n,t){var i=t(),r=ko.utils.unwrapObservable(i),u=r.replace(/<script(?=(\s|>))/i,'<script type="text/xml" ');ko.utils.setHtml(n,u)}},ko.bindingHandlers.htmlSanitised={init:function(){return{controlsDescendantBindings:!0}},update:function(n,t){var i=t(),r=ko.utils.unwrapObservable(i),u=r.replace(/<script(?=(\s|>))/i,'<script type="text/xml" ');ko.utils.setHtml(n,u)}},ko.bindingHandlers.prompt={init:function(n,t,i,r,u){var f=ko.utils.unwrapObservable(t()),e=function(){return function(){if(f.allowOverride){var n=confirm(f.message);n==!0?f.acceptFunc.call(this):f.cancelFunc.call(this)}else f.acceptFunc.call(this)}};ko.bindingHandlers.click.init(n,e,i,r,u)}},ko.bindingHandlers.creditCard={init:function(n,t){var i=t(),r;$(n).blur(function(){var t=$(n).val();i((t||"").replace(/\D/g,""))}),r=ko.computed({read:function(){return $$.payment.formatCardNumber(i())},write:function(n){var t=i(),r=(n+"").replace(/\D/g,"");r!==t?i(r):n!==t.toString()&&i.valueHasMutated()}}),ko.applyBindingsToNode(n,{value:r},null)}},ko.validation.makeBindingHandlerValidatable("creditCard"),ko.validation.utils.showAllMessages=function(n){var t=[];return ko.validation.utils.isArray(n)?ko.utils.arrayForEach(n,function(n){t.concat(ko.validation.utils.showAllMessages(n))}):ko.utils.arrayForEach(ko.validation.utils.values(n),function(n){ko.validation.utils.isValidatable(n)&&(n.isModified(!0),n.isValid()||t.push(n.error))}),t},ko.validation.rules.moreThan={validator:function(n,t){var i=ko.validation.utils.getValue(t),r;return(typeof i=="function"&&(i=i()),i&&i.fromISOString&&(r=i.fromISOString(),r&&(i=new Date(r))),i&&i.getDate)?ko.validation.utils.isEmptyVal(n)||PrismApi.Utils.formattedStringToDate(n)!=null&&PrismApi.Utils.formattedStringToDate(n)>=i:ko.validation.utils.isEmptyVal(n)||n>=i},message:"End Date must be greater than Start Date"},ko.validation.rules.maxDuration={validator:function(n,t){var i=t[0],e=t[1],f="day",r,u;return(t.length>2&&(f=t[2]),i=ko.validation.utils.getValue(i),typeof i=="function"&&(i=i()),n=PrismApi.Utils.formattedStringToDate(n),i&&i.fromISOString&&(r=i.fromISOString(),r&&(i=new Date(r))),u=dateDiff(i,n,f),u<0)?!0:Math.abs(u)<=e},message:"The duration is too long."},ko.validation.rules.minDuration={validator:function(n,t){var i=t[0],e=t[1],f="day",r,u;return(t.length>2&&(f=t[2]),i=ko.validation.utils.getValue(i),typeof i=="function"&&(i=i()),n=PrismApi.Utils.formattedStringToDate(n),i&&i.fromISOString&&(r=i.fromISOString(),r&&(i=new Date(r))),u=dateDiff(i,n,f),u<0)?!0:Math.abs(u)>e},message:"The duration is too short."},ko.validation.rules.requiredAll={getValue:function(n){return typeof n=="function"?n():n},validator:function(n,t){var i=this,r=ko.utils.arrayFilter(t,function(n){var r,t=i.getValue(n);return t===undefined||t===null?!1:(r=t,typeof t=="string"&&(r=t.replace(/^\s+|\s+$/g,"")),(r+"").length>0)});return r.length==t.length},message:"All of these fields are required."},ko.validation.rules.requiresOneOf={getValue:function(n){return typeof n=="function"?n():n},validator:function(n,t){var i=this,r=ko.utils.arrayFirst(t,function(n){var r,t=i.getValue(n);return t===undefined||t===null?!1:(r=t,typeof t=="string"&&(r=t.replace(/^\s+|\s+$/g,"")),(r+"").length>0)});return r!=null},message:"One of these fields is required"},ko.validation.rules.allOrNone={getValue:function(n){return typeof n=="function"?n():n},validator:function(n,t){var i=this,r=ko.utils.arrayFilter(t,function(n){var r,t=i.getValue(n);return t===undefined||t===null?!0:(r=t,typeof t=="string"&&(r=t.replace(/^\s+|\s+$/g,"")),(r+"").length===0)}),u=ko.utils.arrayFilter(t,function(n){var r,t=i.getValue(n);return t===undefined||t===null?!1:(r=t,typeof t=="string"&&(r=t.replace(/^\s+|\s+$/g,"")),(r+"").length>0)});return r.length==t.length||u.length==t.length},message:"Either all or none of these fields are required"},ko.validation.rules.checkSumOfCollection_LessThan={validator:function(n,t){var r=ko.validation.utils.getValue(t.collection),u=ko.validation.utils.getValue(t.value),i;return!n||!r?!0:(i=0,ko.utils.arrayForEach(ko.utils.unwrapObservable(r),function(n){var r=parseFloat(t.valueAccessor?t.valueAccessor(n):n);isNaN(r)||(i+=r)}),i<u)},message:"Please make sure the total value for all items is less than {0}."},ko.validation.rules.checkSumOfCollection_LessThanOrEqual={validator:function(n,t){var r=ko.validation.utils.getValue(t.collection),u=ko.validation.utils.getValue(t.value),i;return!n||!r?!0:(i=0,ko.utils.arrayForEach(ko.utils.unwrapObservable(r),function(n){var r=parseFloat(t.valueAccessor?t.valueAccessor(n):n);isNaN(r)||(i+=r)}),i<=u)},message:"Please make sure the total value for all items is less than or equal to {0}."},ko.validation.rules.checkSumOfCollection_Equal={validator:function(n,t){var r=ko.validation.utils.getValue(t.collection),u=ko.validation.utils.getValue(t.value),i;return!n||!r?!0:(i=0,ko.utils.arrayForEach(ko.utils.unwrapObservable(r),function(n){var r=parseFloat(t.valueAccessor?t.valueAccessor(n):n);isNaN(r)||(i+=r)}),i===u)},message:"Please make sure the total value for all items is equal to {0}."},ko.validation.rules.checkSumOfCollection_GreaterThan={validator:function(n,t){var r=ko.validation.utils.getValue(t.collection),u=ko.validation.utils.getValue(t.value),i;return!n||!r?!0:(i=0,ko.utils.arrayForEach(ko.utils.unwrapObservable(r),function(n){var r=parseFloat(t.valueAccessor?t.valueAccessor(n):n);isNaN(r)||(i+=r)}),i>u)},message:"Please make sure the total value for all items is greater than {0}."},ko.validation.rules.checkSumOfCollection_GreaterThanOrEqual={validator:function(n,t){var r=ko.validation.utils.getValue(t.collection),u=ko.validation.utils.getValue(t.value),i;return!n||!r?!0:(i=0,ko.utils.arrayForEach(ko.utils.unwrapObservable(r),function(n){var r=parseFloat(t.valueAccessor?t.valueAccessor(n):n);isNaN(r)||(i+=r)}),i>=u)},message:"Please make sure the total value for all items is greater than or equal to {0}."},ko.validation.rules.creditCard={getValue:function(n){return typeof n=="function"?n():n},validator:function(n,t){var e=this,r,u,i,f;if(!n)return!0;if(r=e.getValue(t),$$.payment)return t===!0&&(r=null),$$.payment.validateCardNumber(n,r);if(!r||(r=r.toLowerCase(),n.length<15)||(u=r.match(/[a-zA-Z]{2}/),!u)||(i=n,u=i.match(/[^0-9]/),u))return!1;f=function(n){for(var u=[],r,i,f,t=n.length-2;t>=0;t=t-2)u.push(2*n[t]);for(r=0,t=n.length%2==0?1:0;t<n.length;t=t+2)r+=parseInt(n[t]);for(t=0;t<u.length;t++)for(i=u[t];i!=0;)f=i%10,i=parseInt((i/10).toString()),r+=f;return r%10==0?!0:!1};switch(r){case"vc":case"mc":case"ae":if(!f(i))return!1}switch(r){case"vc":if(i[0]!="4"||i.length!=13&&i.length!=16)return!1;break;case"mc":if(i[0]!="5"||i.length!=16)return!1;break;case"ae":if(i[0]!="3"||i.length!=15)return!1;break;default:return!1}return!0},message:"Card number not valid."},ko.validation.rules.creditCardCVV={getValue:function(n){return typeof n=="function"?n():n},validator:function(n,t){var e=this,i,f,r,u;if(!n)return!0;if(i=e.getValue(t),!i)return!1;if(PrismApi.payment)return PrismApi.payment.validateCardCVC(n,i);if((i=i.toLowerCase(),n.length<3)||(f=n,r=f.match(/[^0-9]/),r)||(r=i.match(/[a-zA-Z]{2}/),!r))return!1;u=3;switch(i){case"vc":case"mc":u=3;break;case"ae":u=4}return n.length==u},message:"Card CVV number is not valid."},ko.validation.rules.date={validator:function(n,t){return t?PrismApi.Utils.formattedStringToDate(n)?!0:!1:!0},message:"Please enter a valid date"},ko.validation.rules.min={validator:function(n,t){return(typeof t=="function"&&(t=t()),t&&t.getDate)?ko.validation.utils.isEmptyVal(n)||PrismApi.Utils.formattedStringToDate(n)!=null&&PrismApi.Utils.formattedStringToDate(n)>=t:ko.validation.utils.isEmptyVal(n)||n>=t},message:"Please enter a value greater than or equal to {0}."},ko.validation.rules.max={validator:function(n,t){return(typeof t=="function"&&(t=t()),t&&t.getDate)?ko.validation.utils.isEmptyVal(n)||PrismApi.Utils.formattedStringToDate(n)!=null&&PrismApi.Utils.formattedStringToDate(n)<=t:ko.validation.utils.isEmptyVal(n)||n<=t},message:"Please enter a value less than or equal to {0}."},function(){ko.validation.registerExtenders()}(),function(){var n=ko.validation.group;ko.validation.group=function(t,i){var r=n(t,i),u=ko.validation.utils.getConfigOptions(t);return r.visibleMessages=function(){r();var n=[];return $("."+u.errorElementClass+":visible").each(function(){n.push(new PrismApi.Data.ErrorMessage($(this).attr("name"),$(this).attr("title")))}),n},r.visibleNotValidMessages=function(){var n=[];return $("."+u.notValidClass+":visible").each(function(){n.push(new PrismApi.Data.ErrorMessage($(this).attr("name"),$(this).attr("title")))}),n},r}}(),oldPrismApi=PrismApi,PrismApi={baseUrl:"/",quickQuoteOptions:ko.observable(),productBenefits:[],bulkQuickQuote:null,fullQuoteOptions:null,travellerOptions:ko.observable(),paymentOptions:ko.observable(),policy:null,search:null,workflow:null,instance:null,peOptions:null,nonMedical:null},oldPrismApi&&(PrismApi=$.extend(PrismApi,oldPrismApi)),delete oldPrismApi,window.PrismApi=window.$$=PrismApi,PrismApi=PrismApi||{},PrismApi.Utils={_getObjectType:function(n){var t=/function (.{1,})\(/.exec(n.constructor.toString());return t&&t.length>1?t[1]:""},formattedStringToDate:function(n){var t,u;if(n==null||PrismApi.Utils._getObjectType(n)!="String")return null;try{if(t=null,n&&n.length==8&&n.indexOf("/")<0){var i=n.substring(0,2),r=n.substring(2,4),f=n.substring(4,8);if(i>31||r>12||i<1||r<1)return null;u=i+"/"+r+"/"+f,t=Date.create(u,"au")}else t=Date.create(n,"au");return PrismApi.Utils._getObjectType(t)=="Date"&&t.isValid()?t:null}catch(e){return null}},getQueryString:function(n){n=n.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var i="[\\?&]"+n+"=([^&#]*)",r=new RegExp(i,"i"),t=r.exec(window.location.search);return t==null?"":decodeURIComponent(t[1].replace(/\+/g," "))},ajaxCall:function(n,t,i,r){n=($$.baseUrl+n).replace(/\/\//,"/"),r===undefined&&(r=!0);var u={"X-Hit-Timestamp":Date.create().format(Date.ISO8601_DATETIME)};return $.ajax({url:n,data:t,type:i?i:"GET",contentType:"application/json, charset=utf-8",dataType:"json",cache:r,headers:u})},logError:function(n,t){var i="";n.Messages&&ko.utils.arrayForEach(n.Messages,function(n){n.Message&&(i+=n.Message+"\n\r        ")}),console.log(t+"\n\r    Message: "+i+"\n\r    StatusCode: "+n.StatusCode+"\n\r    ExceptionMessage: "+n.ExceptionMessage)},updateDatepickers:function(){function n(n,t){$(n).hasClass("hasDatepicker")&&($(n).datepicker("option","yearRange",PrismApi.Utils.getDatepickerYearRange(t)),$(n).datepicker("widget").is(":visible")&&$(n).datepicker("show"))}var t=PrismApi.Client.datepicker,i=t.getType("_dobAdults"),r=t.getType("_dobDependants");i.options.yearRange=PrismApi.Utils.getDatepickerYearRange("adult"),r.options.yearRange=PrismApi.Utils.getDatepickerYearRange("dependant"),$(i.key).each(function(){n(this,"adult")}),$(r.key).each(function(){n(this,"dependant")})},getDatepickerYearRange:function(n){var r=(new Date).getFullYear()+1,t=120,i=0;if(PrismApi.quickQuoteOptions()!=undefined)if(n=="adult")t=PrismApi.quickQuoteOptions().MaxAdultAge,i=PrismApi.quickQuoteOptions().MinAdultAge;else if(n=="dependant")t=PrismApi.quickQuoteOptions().MaxDependantAge,i=PrismApi.quickQuoteOptions().MinDependantAge;else throw"travellerType: "+n+" has not been implemented.";return"{0}:{1}".format(r-(t+1),r-i)},arrayFirstBriefCode:function(n,t){return ko.utils.arrayFirst(n,function(n){var i=n.BriefCode instanceof Function?n.BriefCode():n.BriefCode;return i==t})},resolveUrl:function(n){var t=PrismApi.baseUrl;return t!="/"&&(t=t+"/"),t+n}},PrismApi=PrismApi||{},PrismApi.Validation={koValidationConfiguration:{decorateElement:!0,insertMessages:!0,registerExtenders:!0},validatePolicyAgainstQuickQuoteOptions:function(n,t){var i=[],r=PrismApi.Data,u=PrismApi.Validation.messages,e,o,f,s;if(!n)return i.push(new r.ErrorMessage("policy",u.missingPolicy)),i;if(!t)return i.push(new r.ErrorMessage("quickQuoteOptions",u.invalidQuickQuoteOptions)),i;for(n.Region||i.push(new r.ErrorMessage("policy.Region",u.invalidRegion)),e=n.MetaData.TripDuration(),(isNaN(e)||e<=0||e>t.MaxDurationDays)&&i.push(new r.ErrorMessage("policy.TripDuration",u.invalidTripDuration)),n.PolicyHolders().length<t.MinAdults&&i.push(new r.ErrorMessage("policy.Adults",u.travellers.invalidMinAdults.format(t.MinAdults))),n.PolicyHolders().length>t.MaxAdults&&i.push(new r.ErrorMessage("policy.Adults",u.travellers.invalidMaxAdults.format(t.MaxAdults))),n.PolicyDependants().length<t.MinDependants&&i.push(new r.ErrorMessage("policy.Adults",u.travellers.invalidMinDependants.format(t.MinDependants))),n.PolicyDependants().length>t.MaxDependants&&i.push(new r.ErrorMessage("policy.Adults",u.travellers.invalidMaxDependants.format(t.MaxDependants))),o=n.PolicyHolders(),f=0;f<o.length;f++)s=o[f].DateOfBirth()?o[f].DateOfBirth().fromISOString():null,s?s.age()>t.MaxAge&&i.push(new r.ErrorMessage("policy.PolicyHolder[{0}]".format(f),u.travellers.invalidAdultDob.format(f+1,t.MaxAge))):i.push(new r.ErrorMessage("policy.PolicyHolder[{0}]".format(f),u.travellers.requiredAdultDob.format(f+1)));return i},validatePolicyAgainstFullQuoteOptions:function(n,t){var i=[],r=PrismApi.Data,u=PrismApi.Validation.messages;return n?t?i:(i.push(new r.ErrorMessage("fullQuoteOptions",u.invalidFullQuoteOptions)),i):(i.push(new r.ErrorMessage("policy",u.missingPolicy)),i)},validatePolicyAgainstPaymentOptions:function(n,t){var i=[],r=PrismApi.Data,u=PrismApi.Validation.messages;return n?t?i:(i.push(new r.ErrorMessage("paymentOptions",u.invalidPaymentOptions)),i):(i.push(new r.ErrorMessage("policy",u.missingPolicy)),i)},validatePolicyAgainstPage:function(n){var t=[],i;return n.fn.isPolicyPageValid()||(i=n.MetaData.errors.visibleMessages(),t=ko.utils.arrayPushAll(t,i)),t},validateSearchAgainstPage:function(n){var t,i;return n.MetaData.errors.showAllMessages(),t=[],n.MetaData.errors.visibleMessages().length>0&&(i=n.MetaData.errors.visibleMessages(),t=ko.utils.arrayPushAll(t,i)),t},validateCustomerAgainstPage:function(n){var t=[],i=ko.validation.utils.showAllMessages(n);return n.DateOfBirth.enteredDOB!==undefined&&(n.DateOfBirth.enteredDOB.isModified(!0),n.DateOfBirth.enteredDOB.isValid()||i.push(n.DateOfBirth.enteredDOB.error)),i.length>0&&(t=ko.utils.arrayPushAll(t,i)),t},patterns:{postCode:/^[0-9]{4}$/,bsb:/^[0-9]{6}$/,accountNumber:/^[0-9]{6,10}$/,personName:/^([A-Za-z]+)([ \'\-\.]?[A-Za-z]+)*(\.)?$/,address:/^[0-9A-Za-z\.\-\'\ \,\#\:\/]+$/,suburb:/^[A-Za-z\.\-\'\ ]+$/,number:/[0-9]*/,date:/(((0[0-9])|([12])([0-9]?)|(3[01]?))(\/)(0?[13578]|10|12)(\/)((\d{4})|(\d{2}))|((0[0-9])|([12])([0-9]?)|(3[0]?))(\/)(0?[2469]|11)(\/)((\d{4}|\d{2})))/}},PrismApi=PrismApi||{},PrismApi.Validation=PrismApi.Validation||{},PrismApi.Validation.messages={fieldMinLength:"The minimum number of characters for field '{1}' is {0}",fieldMaxLength:"The maximum number of characters for field '{1}' is {0}",fieldNumber:"Please enter a number for '{1}'",fieldMin:"Please enter a number of at least {0} for '{1}'",fieldMax:"Please enter a number of at most {0} for '{1}'",fieldInvalidCharacters:"Please enter valid characters for {1}.",missingPolicy:"policy has not been provided.",invalidQuickQuoteOptions:"quick quote options is not defined.",invalidFullQuoteOptions:"full quote options is not defined.",invalidPaymentOptions:"payment options is not defined.",invalidRegion:"The destination is invalid.",invalidTripDuration:"The trip duration is invalid.",requiredStartDate:"The start date is required.",requiredEndDate:"The end date is required.",invalidEndDate:"The end date is invalid.",dateShouldBeAfterToday:"Please make sure that the {1} that is at least today's date.",invalidStartDate:"Please check that the {1} is up to a year in the future.",startDateIsAfterEndDate:"The Returning date must be after the Departing date",travellers:{invalidMinAdults:"The minimum number of adult travellers is {0}.",invalidMaxAdults:"The maximum number of adult travellers is {0}.",invalidMinDependants:"The minimum number of dependants is {0}.",invalidMaxDependants:"The maximum number of dependants is {0}.",requiredAdultDob:"The date of birth for adult #{0} is required.",invalidAdultDob:"The date of birth for adult #{0} is invalid. The maximum age for an adult traveller is {1}.",invalidMinAge:"The minimum age for {1} traveller is {0} years old.",invalidMaxAge:"The maximum age for {1} traveller is {0} years old.",invalidDobRange:"Please check and correct the {1} as it differs from the age shown on the quote page.",invalidDobDate:"Please enter a valid date of birth.",invalidGender:"Please select a gender.",requiredTitleGroup:"Please select a title group.",requiredTitle:"Please select a title.",requiredFirstName:"Please enter a first name.",requiredSurname:"Please enter a last name.",requiredDob:"Please enter a date of birth.",requiredGender:"Please select a gender.",requiredPreExisting:"Please advise if you have a pre-existing medical condition.",requiredPreExistingOffer:"Please select if you accept the pre-existing medical assessment offer for {1}.",requiredPreExistingExcessPremium:"Please select the pre-existing medical excess for {1}."},adjustments:{missingRequiredAmount:"Amount for {0} is required.",missingRequiredValue:"Value for {0} is required."},address:{requiredAddressLine1:"Please enter an address.",requiredSuburb:"Please enter a suburb.",requiredState:"Please select your state.",requiredPostCode:"Please enter a postcode.",invalidPostCode:"Please enter a valid postcode. Field must be 4 numeric digits in length.",requiredEmail:"Please enter an email address.",invalidEmail:"Please enter a valid email address."},benefits:{requiredDescription:"Please enter a short description of the item covered.",requiredValue:"Please enter the amount of cover required.",invalidMinimumTotal:"Your total sum insured must be at least ${0}.",invalidMinimum:"Please Check {1} - Your sum insured must be at least ${0} for each item.",invalidMaximumTotal:"Your total sum insured must be less than ${0}.",invalidMaximum:"Please Check {1} - Your sum insured must be less than ${0} for each item.",invalidDuplicate:"Please make sure that each item name is unique.",requiredCoverAmount:"Please enter a cover amount",minSumRequiredCoverAmount:"Please ensure that the combined {0} {1}is at least ${2}",maxSumExceededCoverAmount:"Please ensure that the combined {0} {1}is less than or equal to ${2}",coverAmountMinRequiredPerPerson:"per person ",requiredCustomerForBenefit:"The option has no traveller assigned",maxLengthName:"The maximum number of characters for field 'Name' is {0}",requiredName:"Please enter a Name"},payment:{requiredCardType:"Please choose the credit card type.",requiredCardNumber:"Please enter the credit card number.",requiredCardHolderName:"Please enter the card holder's name.",requiredCardMonth:"Please choose the month that the credit card is valid until.",requiredCardYear:"Please choose the year that the credit card is valid until.",requiredCVV:"Please enter the CVV security code.",CVVLength:"Please check the credit card CVV - 4 characters for AMEX and 3 characters for all others.",CVVNumber:"Please check the credit card CVV - only numbers are allowed.",creditCardNotValid:"The credit card number entered is not valid"},search:{minLengthReferenceNumber:"The maximum number of characters for field 'Reference Number' {0}",requiresOneOf:"One of the search fields are required"},question:{selectAnswer:"Please select a {1}.",enterValue:"Please enter a value for {1}."},bankAccount:{requiredAccountHolder:"Please enter your account holder name.",requiredBsb:"Please enter your account bsb.",requiredAccountNumber:"Please enter your account number.",invalidBsb:"Please enter a valid bsb. Field must be 6 numeric digits in length.",invalidAccountNumber:"Please enter a valid account number. Field must be between 6-10 digits in length."}},PrismApi=PrismApi||{},PrismApi.Client={startEndDateDefaultEmpty:!1,dateOfBirthDefaultEmpty:!0,todayDateString:"today",spinner:"",extendViewModel:function(){},extendViewModelSearch:function(){},showHealixAssessment:function(){},datepicker:{regional:"en-AU",types:[{key:"_common",selector:null,options:{closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:"",showOtherMonths:!0,selectOtherMonths:!0,constrainInput:!1}},{key:"_startDate",selector:".startDate",options:{minDate:0,onSelect:function(n){$(this).change(),PrismApi.Client.startEndDateDefaultEmpty||$(PrismApi.Client.datepicker.getType("_endDate").selector).datepicker("option","minDate",n).change()}}},{key:"_endDate",selector:".endDate",options:{minDate:0,onSelect:function(){$(this).change()}}},{key:"_dobAdults",selector:".dobAdults",options:{changeMonth:!0,changeYear:!0,yearRange:PrismApi.Utils.getDatepickerYearRange("adult")}},{key:"_dobDependants",selector:".dobDependants",options:{changeMonth:!0,changeYear:!0,yearRange:PrismApi.Utils.getDatepickerYearRange("dependant")}}],getType:function(n){var t=ko.utils.arrayFirst(PrismApi.Client.datepicker.types,function(t){return t.key==n});if(t)return t;throw"Could not find datepicker type with key: "+n;},getTypeByClassName:function(n){var t=ko.utils.arrayFirst(PrismApi.Client.datepicker.types,function(t){return t.selector&&n.search(t.selector.replace(".",""))>-1});if(t)return t;throw"Could not find datepicker type with key: "+n;},addType:function(n,t,i){PrismApi.Client.datepicker.types.push({key:n,selector:t,options:i})},getDateFormat:function(){return PrismApi.Client.datepicker.getType("_common").options.dateFormat},setDateFormat:function(n){PrismApi.Client.datepicker.getType("_common").options.dateFormat=n},apply_jQueryUIDatepickers:function(){var n=PrismApi.Client.datepicker,t;for($.datepicker.regional[n.regional]=n.getType("_common").options,$.datepicker.setDefaults($.datepicker.regional[n.regional]),t=0;t<n.types.length;t++)if(n.types[t].selector)$("body").on("focus",n.types[t].selector,function(){if($(this).attr("disabled")!=="disabled"&&$(this).attr("readonly")!=="readonly"){var t=arguments[0].target.className,n=PrismApi.Client.datepicker.getTypeByClassName(t);$(this).datepicker(n.options instanceof Function?n.options(this):n.options)}})}},serviceUrls:{QuickQuoteOptions:"/Api/QuickQuote/Options",Countries:"/Api/QuickQuote/Countries?region={0}",Destinations:"/Api/QuickQuote/Options/Destinations",Benefits:"/Api/Product/Benefits",ProductDescriptions:"/Api/Product/Descriptions",CalculateMultiTripEndDate:"/Api/QuickQuote/CalculateMultiTripEndDate",QuickQuote:"/Api/QuickQuote",Persist:"/Api/QuickQuote/Persist",FullQuoteOptions:"/Api/FullQuote/Options",FullQuote:"/Api/FullQuote",FullQuoteCancel:"/Api/FullQuote/Cancel",FullQuoteDocument:"/Api/FullQuote/{0}/Document",OptionBenefits:"/Api/Product/OptionBenefits",TravellerOptions:"/Api/Product/TravellerOptions",PaymentOptions:"/Api/Product/PaymentOptions",PremiumExtraInfo:"/Api/Product/PremiumExtraInfo",CardEligibleCoverLevels:"/Api/Product/CardEligibleCoverLevels",PlanDescriptions:"/Api/Product/PlanDescriptions",Purchase:"/Api/Policy/Purchase",Endorse:"/Api/Policy/Endorse",Cancel:"/Api/Policy/Cancel",ListPolicies:"/Api/Search/ListUserPolicies",ListQuotes:"/Api/Search/ListUserQuotes",PolicyDocument:"/Api/Policy/{0}/Document",Search:"/Api/Search",SearchQuotes:"/Api/Search/SearchQuotes",SearchPolicies:"/Api/Search/SearchPolicies",RetrieveFullQuote:"/Api/FullQuote?id={0}",RetrievePolicyById:"/Api/Policy?id={0}",RetrievePolicyByClientRefNo:"/Api/Policy/Retrieve?clientRefNo={0}",Workflow:"/Api/WorkflowInstance/{0}",RetrieveInstance:"/Api/WorkflowInstance/GetInstance?instanceId={0}",HealixAssessment:"/Api/Healix/ScreeningUrl",HealixAssessResult:"/Api/Healix/PePremium",HealixFatalQuestions:"/Api/Healix/HealixFatalQuestions",HealixPersistFatalQuestions:"/Api/Healix/HealixPersistFatalQuestions",HealixPersistScreening:"/Api/Healix/PersistScreening",SaveNonMedicalQuote:"/Api/FullQuote/SaveNonMedicalQuote",SavePEAssessment:"/Api/FullQuote/SavePEAssessment",GetPolicyHistory:"/Api/Policy/History?policyId={0}",GetFullQuoteHistory:"/Api/FullQuote/History?quoteId={0}",Agencies:"/Api/Security/Agencies?brand={0}&agency={1}&provisioned={2}",ProvisionedDefault:"/Api/Security/ProvisionedDefault",Default:"/Api/Security/Default",SaveAccount:"/Api/Policy/SaveAccount"}},PrismApi=PrismApi||{},PrismApi.Data={Address:function(n){var i=this,t=$.extend(!0,{},_session.dataTransferObjects.Address);n&&(t=$.extend(!0,t,n)),ko.mapping.fromJS(t,{Country:{create:function(n){return n.data==null?PrismApi.Data.StdCode():new PrismApi.Data.StdCode(n.data)}},State:{create:function(n){return n.data==null?ko.observable():ko.observable(n.data)}},AddressType:{create:function(n){return n.data==null?ko.observable("HOME"):ko.observable(n.data)}}},i),this.AddressLine1.extend({required:{params:!0,message:PrismApi.Validation.messages.address.requiredAddressLine1},maxLength:{params:30,message:PrismApi.Validation.messages.fieldMaxLength},pattern:{params:PrismApi.Validation.patterns.address,message:PrismApi.Validation.messages.fieldInvalidCharacters}}),this.AddressLine2.extend({maxLength:{params:30,message:PrismApi.Validation.messages.fieldMaxLength},pattern:{params:PrismApi.Validation.patterns.address,message:PrismApi.Validation.messages.fieldInvalidCharacters}}),this.Suburb.extend({required:{params:!0,message:PrismApi.Validation.messages.address.requiredSuburb},maxLength:{params:30,message:PrismApi.Validation.messages.fieldMaxLength},pattern:{params:PrismApi.Validation.patterns.suburb,message:PrismApi.Validation.messages.fieldInvalidCharacters}}),this.State.extend({required:{params:!0,message:PrismApi.Validation.messages.address.requiredState},maxLength:{params:30,message:PrismApi.Validation.messages.fieldMaxLength}}),this.Postcode.extend({required:{params:!0,message:PrismApi.Validation.messages.address.requiredPostCode},pattern:{params:PrismApi.Validation.patterns.postCode,message:PrismApi.Validation.messages.address.invalidPostCode}})},Adjustment:function(n){var t=this,i=$.extend(!0,{},_session.dataTransferObjects.Adjustments[0]);n&&$.extend(!0,i,n),ko.mapping.fromJS(i,{include:["Value","Question"]},this),t.Question&&t.Question.Answers&&t.Question.Answers()&&ko.utils.unwrapObservable(t.Question.Answer)?t.Question.Answer=ko.observable(ko.utils.arrayFirst(t.Question.Answers(),function(n){return n.BriefCode()==ko.utils.unwrapObservable(t.Question.Answer).BriefCode()})):(t.Question.Answer||(t.Question.Answer=ko.observable()),t.MetaData&&ko.unwrap(t.MetaData.InputBriefCode)&&t.BriefCode(t.MetaData.InputBriefCode()))},PeOptions:function(n){var i=this,t=$.extend(!0,{},_session.dataTransferObjects.PeOptions);n&&$.extend(!0,t,n),ko.mapping.fromJS(t,{},i)},ApiError:function(n,t,i,r,u,f,e){var o=this;o.Messages=t,o.StatusCode=n,o.ExceptionMessage=i,o.ModelState=r,o.StackTrace=u,o.MessageCode=f,o.RedirectUrl=e},Benefit:function(n,t){var i=this,r=$.extend(!0,{},_session.dataTransferObjects.Benefits[0],{BenefitItems:null}),u;n&&(r=$.extend(!0,r,n)),u={BenefitItems:{create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.BenefitItem(i,n.data)}},MetaData:{create:function(n){return n.data!=null&&n.data.CoverAmounts==null&&(n.data.CoverAmounts=[]),n.data}}},ko.mapping.fromJS(r,u,this),i.MetaData=i.MetaData||{},i.fn={},i.MetaData.IsEnabled=ko.observable(i.BenefitItems().length>0),i.MetaData.IsEnabled.forEditing=ko.computed({read:function(){return i.MetaData.IsEnabled().toString()},write:function(n){i.MetaData.IsEnabled(n==="true")},owner:i}),i.MetaData.BenefitItemsTotalAmount=ko.computed(function(){var n=0,t,r;for(t in i.BenefitItems())i.BenefitItems()[t].Value&&(r=parseFloat(i.BenefitItems()[t].Value()),n+=isNaN(r)?0:r);return n==0?undefined:n.toFixed(2)},i),i.MetaData.CoverAmountMin&&i.MetaData.BenefitItemsTotalAmount.extend({min:{params:i.MetaData.CoverAmountMin,message:PrismApi.Validation.messages.benefits.invalidMinimumTotal}}),i.MetaData.CoverAmountMax&&i.MetaData.BenefitItemsTotalAmount.extend({max:{params:i.MetaData.CoverAmountMax,message:PrismApi.Validation.messages.benefits.invalidMaximumTotal}}),i.MetaData.BenefitItemsTotalAmountText=ko.computed(function(){var r=0,n,t;for(n in i.BenefitItems())i.BenefitItems()[n].ValueText&&(t=parseFloat(i.BenefitItems()[n].ValueText()),r+=isNaN(t)?0:t);return r.toFixed(2)},i),i.MetaData.IsEnabled.subscribe(function(n){var t,r;n==!0?i.MetaData.IsPerPerson&&i.MetaData.IsValueRequired||(i.MetaData.IsMultipleItemsAllowed||i.MetaData.IsNameRequired||i.MetaData.IsPerPersonRequired||!i.MetaData.IsValueRequired||!i.MetaData.Names)&&(t=new PrismApi.Data.BenefitItem(i),i.MetaData.CoverAmounts!==undefined&&(r=ko.utils.arrayFirst(i.MetaData.CoverAmounts,function(n){return n.IsDefault==!0}),r&&t.ValueText(r.Amount)),i.MetaData.IsValueRequired||t.ValueText(undefined),i.BenefitItems.push(t)):(i.BenefitItems.removeAll(),i.Premium(undefined))}),i.MetaData.IsMandatory=ko.computed(function(){return t=="QUICK"&&i.MetaData.CoverAmounts!==undefined&&i.MetaData.CoverAmounts.length>0}),i.MetaData.IsMandatory()&&i.MetaData.IsEnabled(!0),i.fn.hasBenefitItems=ko.computed(function(){return this.BenefitItems().length>0},this),i.fn.addBenefitItem=function(){var n=new PrismApi.Data.BenefitItem(i),t=i.BenefitItems();return t.push(n),n},i.fn.removeBenefitItem=function(n){i.BenefitItems.splice(n,1)}},BenefitItem:function(n,t){var r=this,i=$.extend(!0,{},_session.dataTransferObjects.Benefits[0].BenefitItems[0],{MetaData:{}});t&&(i=$.extend(!0,i,t)),ko.mapping.fromJS(i,{CustomerIndex:{create:function(n){return n.data==null?ko.observable():ko.observable(n.data)}}},this),this.CustomerIndex.extend({required:{params:!0,message:PrismApi.Validation.messages.benefits.requiredCustomerForBenefit}}),this.Name.extend({required:{params:!0,message:PrismApi.Validation.messages.benefits.requiredName},maxLength:{params:30,message:PrismApi.Validation.messages.benefits.maxLengthName},unique:{params:{collection:n.BenefitItems,valueAccessor:function(n){return n.Name()}},message:PrismApi.Validation.messages.benefits.invalidDuplicate}}),n.MetaData&&n.MetaData.CoverAmountMin&&this.Value.extend({required:{params:!0,message:PrismApi.Validation.messages.benefits.requiredCoverAmount},checkSumOfCollection_GreaterThanOrEqual:{params:{value:n.MetaData.CoverAmountMin,collection:function(){return n.BenefitItems?ko.utils.arrayFilter(n.BenefitItems(),function(n){return n.CustomerIndex()==r.CustomerIndex()}):[]},valueAccessor:function(n){return n.Value()}},message:PrismApi.Validation.messages.benefits.minSumRequiredCoverAmount.format(n.MetaData.ValueTitle,n.MetaData.IsPerPerson?PrismApi.Validation.messages.benefits.coverAmountMinRequiredPerPerson:"",n.MetaData.CoverAmountMin)}}),n.MetaData&&n.MetaData.CoverAmountMax&&this.Value.extend({required:{params:!0,message:PrismApi.Validation.messages.benefits.requiredCoverAmount},checkSumOfCollection_LessThanOrEqual:{params:{value:n.MetaData.CoverAmountMax,collection:function(){return n.BenefitItems?ko.utils.arrayFilter(n.BenefitItems(),function(n){return n.CustomerIndex()==r.CustomerIndex()}):[]},valueAccessor:function(n){return n.Value()}},message:PrismApi.Validation.messages.benefits.maxSumExceededCoverAmount.format(n.MetaData.ValueTitle,n.MetaData.IsPerPerson?PrismApi.Validation.messages.benefits.coverAmountRequiredPerPerson:"",n.MetaData.CoverAmountMin)}}),n.MetaData&&n.MetaData.PerItemAmountMin&&this.Value.extend({min:{params:n.MetaData.PerItemAmountMin,message:PrismApi.Validation.messages.benefits.invalidMinimum}}),n.MetaData&&n.MetaData.PerItemAmountMax&&this.Value.extend({max:{params:n.MetaData.PerItemAmountMax,message:PrismApi.Validation.messages.benefits.invalidMaximum}})},BulkPremium:function(n){var t=this,i={Benefits:{key:function(n){if(n)return ko.utils.unwrapObservable(n.BriefCode)},create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Benefit(n.data,"QUICK")}}};ko.mapping.fromJS(n,i,this),t.MetaData={},t.MetaData.MaxTripDuration=ko.observable(),t.MetaData.CancellationAmount=ko.observable(),t.MetaData.Excess=ko.observable(),t.MetaData.ProductBenefits=null,t.MetaData.ProductBenefitsReady=ko.observable(),t.MetaData.DiscountFlag=ko.observable(),this.fn={},this.fn.getQuickQuote=function(n,i){if(i.originalEvent){window.setSpinner&&clearInterval(window.setSpinner);var r=[".","..","..."];t.Premium.SellingGross(r[0]),window.setSpinner=setInterval(function(){var n=t.Premium.SellingGross();t.Premium.SellingGross(n.length<3?r[n.length]:r[0])},200),PrismApi.fn.getQuickQuote(t).done(function(n){t.Premium.SellingGross(n.Premium.SellingGross)}).fail(PrismApi.Client.displayError).always(function(){window.setSpinner&&clearInterval(window.setSpinner)})}},t.fn.getSelectedValue=function(n){return n=="CANX"?ko.utils.arrayFirst(t.Plan.CancellationAmounts(),function(n){return n.Amount()==t.MetaData.CancellationAmount()}):ko.observable()},t.fn.getBenefit=function(n){return t.Benefits?PrismApi.Utils.arrayFirstBriefCode(t.Benefits(),n):null}},CreditCard:function(n){n||(n=_session.dataTransferObjects.CreditCard),ko.mapping.fromJS(n,{CardType:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},CardExpiryMonth:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},CardExpiryYear:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}}},this),this.MetaData={},this.MetaData.Months=ko.utils.arrayMap(ko.utils.range(1,12),function(n){return n<10?"0"+n:n+""});var t=(new Date).getFullYear();this.MetaData.Years=ko.utils.range(t,t+10),this.CardType.extend({required:{params:!0,message:PrismApi.Validation.messages.payment.requiredCardType}}),this.CardNumber.extend({required:{params:!0,message:PrismApi.Validation.messages.payment.requiredCardNumber},creditCard:{params:this.CardType,message:PrismApi.Validation.messages.payment.creditCardNotValid}}),this.CardHolder.extend({required:{params:!0,message:PrismApi.Validation.messages.payment.requiredCardHolderName},pattern:{params:PrismApi.Validation.patterns.personName,message:PrismApi.Validation.messages.fieldInvalidCharacters}}),this.CardExpiryMonth.extend({required:{params:!0,message:PrismApi.Validation.messages.payment.requiredCardMonth}}),this.CardExpiryYear.extend({required:{params:!0,message:PrismApi.Validation.messages.payment.requiredCardYear}}),this.CardSecurityCode.extend({required:{params:!0,message:PrismApi.Validation.messages.payment.requiredCVV},number:{params:!0,message:PrismApi.Validation.messages.payment.CVVNumber},creditCardCVV:{params:this.CardType,message:PrismApi.Validation.messages.payment.CVVLength}})},CalculationOption:function(n){var i=this,t=$.extend(!0,{},_session.dataTransferObjects.PolicyHolders[0].HealixAssessment.CalculationOption,{AcceptOffer:null});n&&(t=$.extend(!0,t,n)),ko.mapping.fromJS(t,{AcceptOffer:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}}},i)},HealixAssessment:function(n){var t=this,i=$.extend(!0,{},_session.dataTransferObjects.PolicyHolders[0].HealixAssessment);n&&(i=$.extend(!0,i,n)),ko.mapping.fromJS(i,{CalculationOption:{create:function(n){return new PrismApi.Data.CalculationOption(n.data)}}},this),t.WebsiteBaseUrl=ko.observable($$.fn.getBaseUrl()),t.MetaData=t.MetaData||{},t.fn={},t.MetaData.IsEnabled=ko.computed({read:function(){return t.CalculationOption.AcceptOffer()},write:function(n){n===undefined||n===null?(t.CalculationOption.AcceptOffer(undefined),t.MetaData.SelectPremium(undefined)):(t.CalculationOption.AcceptOffer(n===!0),n===!1&&(t.ScreeningResult.ScreeningStatus()=="APPPP"||t.ScreeningResult.ScreeningStatus()=="APPPC")?(t.ScreeningResult.ScreeningStatus("DECOO"),t.MetaData.SelectPremium(undefined)):n===!0&&t.ScreeningResult.ScreeningStatus()=="DECOO"&&t.ScreeningResult.ScreeningStatus("APPPP"))},owner:t}),t.MetaData.IsEnabled.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredPreExistingOffer}}),t.MetaData.SelectPremium=ko.observable(ko.utils.unwrapObservable(t.CalculationOption.SelectedExcessPremium)),t.MetaData.SelectPremium.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredPreExistingExcessPremium}}),t.MetaData.SelectPremium.subscribe(function(n){return(t.CalculationOption.SelectedExcessPremium(n),n==undefined)?(t.CalculationOption.SelectedExcessPremiumIndex(-1),!1):($.each(t.CalculationOption.ExcessOptions(),function(i,r){if(r.Premium()==n)return t.CalculationOption.SelectedExcessPremiumIndex(r.Index()),!1}),!0)}),t.MetaData.ScreeningOption=function(){return t.ScreeningResult&&t.PeId?t.PeId()>0?!0:!1:!1},t.MetaData.showDetail=ko.observable(!1),t.MetaData.toggleDetail=function(){this.MetaData.showDetail(!this.MetaData.showDetail())}},Customer:function(n,t){var i=this,r=$.extend(!0,{},_session.dataTransferObjects.PolicyHolders[0],{TitleGroup:null});n&&(r=$.extend(!0,r,n)),ko.mapping.fromJS(r,{Gender:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},TitleGroup:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},Title:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},HealixAssessment:{create:function(n){return ko.observable(new PrismApi.Data.HealixAssessment(n.data))}},HasPeCondition:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},HasMedicalCover:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}}},i),i.MetaData={},i.MetaData.HasPeCondition=ko.observable(i.HasPeCondition()!==undefined?i.HasPeCondition().toString():undefined),i.MetaData.HasPeCondition.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredPreExisting}}),i.MetaData.PEAssessmentOutcomeHasChanged=ko.observable(),i.MetaData.PeAssess=ko.computed(function(){return ko.unwrap(i.HasPeCondition)===!0}),i.MetaData.ReAssessment=ko.observable(i.HealixAssessment().ScreeningId()>0?"false":"true"),i.MetaData.ReAssessment.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredPreExisting}}),i.MetaData.HasPeConditionChangedValidation=function(){var n=$$.Validation.validateCustomerAgainstPage(i);n.length!=0?(i.MetaData.HasPeCondition(undefined),$$.Client.displayError(new PrismApi.Data.ApiError(null,n,null))):i.DateOfBirth()&&i.MetaData.age()>=$$.policy.PeOptions.MetaData.MandatoryAssessmentAge()?$$.Client.showHealixAssessment(i,undefined):$$.Client.showHealixAssessment(i,"false")},i.MetaData.HasPeConditionChanged=function(n){if(n===undefined)return!1;if(i.HasPeCondition("true"===n||n===!0),n==="true"&&$$.policy.PeOptions!=null&&$$.policy.PeOptions.PESystem()==="HEALX"){var t=$.grep(PrismApi.policy.MetaData.AllTravellers(),function(n){return n.HealixAssessment()&&n.HealixAssessment().ScreeningId()>0}),r=$$.policy.PolicyHolders().length+$$.policy.PolicyDependants().length;$$.policy.PeOptions.FirstHolderFlag(t.length!==0||r===1),$.each(PrismApi.policy.MetaData.AllTravellers(),function(n,t){t.HealixAssessment().PeId(0)}),i.HealixAssessment().PeId(1),i.MetaData.HasPeConditionChangedValidation()}return n!=="true"&&(i.MetaData.ReAssessment("true"),i.HealixAssessment(new PrismApi.Data.HealixAssessment(null))),!0},i.MetaData.HasPeCondition.subscribe(function(n){i.MetaData.HasPeConditionChanged(n)}),i.DateOfBirth.extend({isoDate:"",blankDOB:PrismApi.Client.dateOfBirthDefaultEmpty}),i.MetaData.Type=ko.observable(t),i.MetaData.age=ko.computed({read:function(){var n=new Date(Date.parse(this.DateOfBirth()));return isNaN(n)?"":n.age()},write:function(n){n===""||typeof n=="undefined"?i.DateOfBirth(undefined):n>=0&&n<=999?i.DateOfBirth.formattedDate("1/1/"+((new Date).getFullYear()-n)):i.DateOfBirth(null)},owner:i}),i.MetaData.MaxAge=function(){if(PrismApi.quickQuoteOptions()){if(i.MetaData.Type()=="adult")return PrismApi.quickQuoteOptions().MaxAdultAge;if(i.MetaData.Type()=="dependant")return PrismApi.quickQuoteOptions().MaxDependantAge;throw"travellerType: "+ko.unwrap(i.MetaData.Type)+" has not been implemented.";}return 120},i.MetaData.MinAge=function(){if(PrismApi.quickQuoteOptions()){if(i.MetaData.Type()=="adult")return PrismApi.quickQuoteOptions().MinAdultAge;if(i.MetaData.Type()=="dependant")return PrismApi.quickQuoteOptions().MinDependantAge;throw"travellerType: "+ko.unwrap(i.MetaData.Type)+" has not been implemented.";}return 0},i.MetaData.Genders=ko.computed({read:function(){var t=[],n;return i.Gender()&&t.push({BriefCode:i.Gender()}),n=PrismApi.travellerOptions(),n&&n.Genders&&(t=ko.utils.arrayMap(n.Genders,function(n){return{BriefCode:n.BriefCode,Description:n.Description!==undefined?n.Description:n.BriefCode}})),t}}),i.MetaData.TitleGroups=ko.computed({read:function(){var n=PrismApi.travellerOptions();return n&&n.TitleGroups&&n.TitleGroups.length>1?ko.utils.arrayMap(n.TitleGroups,function(n){return{BriefCode:n.BriefCode,Description:n.Description!==undefined?n.Description:n.BriefCode,Titles:n.Titles}}):null}}),i.MetaData.Titles=ko.computed({read:function(){var t=[],n;return i.Title()&&t.push({BriefCode:i.Title()}),i.TitleGroup()?t=i.TitleGroup().Titles:(n=PrismApi.travellerOptions(),n&&n.TitleGroups&&n.TitleGroups.length==1&&(t=n.TitleGroups[0].Titles)),ko.utils.arrayMap(t,function(n){return{BriefCode:n.BriefCode,Description:n.Description!==undefined?n.Description:n.BriefCode}})}}),i.TitleGroup.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredTitleGroup}}),i.Title.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredTitle}}),i.FirstName.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredFirstName},maxLength:{params:30,message:PrismApi.Validation.messages.fieldMaxLength},pattern:{params:PrismApi.Validation.patterns.personName,message:PrismApi.Validation.messages.fieldInvalidCharacters}}),i.LastName.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredSurname},maxLength:{params:30,message:PrismApi.Validation.messages.fieldMaxLength},pattern:{params:PrismApi.Validation.patterns.personName,message:PrismApi.Validation.messages.fieldInvalidCharacters}}),i.Gender.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredGender}}),i.DateOfBirth.formattedDate.extend({required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredDob},date:{params:!0,message:PrismApi.Validation.messages.travellers.invalidDobDate},min:{params:function(){var n=new Date;return n.setDate((new Date).getDate()-1),n.setFullYear((new Date).getFullYear()-i.MetaData.MaxAge()-1),n},message:function(){return PrismApi.Validation.messages.travellers.invalidMaxAge.format(i.MetaData.MaxAge(),i.MetaData.Type()=="adult"?"an adult":"a dependant")}},max:{params:function(){var n=new Date;return n.setDate((new Date).getDate()),n.setFullYear((new Date).getFullYear()-i.MetaData.MinAge()),n},message:function(){return PrismApi.Validation.messages.travellers.invalidMinAge.format(i.MetaData.MinAge(),i.MetaData.Type()=="adult"?"an adult":"a dependant")}}}),i.MetaData.age.extend({min:{params:function(){return i.MetaData.MinAge()},message:function(){return PrismApi.Validation.messages.travellers.invalidMinAge.format(i.MetaData.MinAge(),i.MetaData.Type()=="adult"?"an adult":"a dependant")}},max:{params:function(){return i.MetaData.MaxAge()},message:function(){return PrismApi.Validation.messages.travellers.invalidMaxAge.format(i.MetaData.MaxAge(),i.MetaData.Type()=="adult"?"an adult":"a dependant")}}})},Email:function(n){n&&n.EmailAddress||(n=_session.dataTransferObjects.Email),ko.mapping.fromJS(n,{EmailType:{create:function(n){return n.data==null?ko.observable("HOME"):ko.observable(n.data)}}},this),this.EmailAddress.extend({required:{params:!0,message:PrismApi.Validation.messages.address.requiredEmail},email:{params:!0,message:PrismApi.Validation.messages.address.invalidEmail}})},ErrorMessage:function(n,t){var i=this;i.Property=n,i.Message=t},Phone:function(n){var i=this,t=$.extend(!0,{},_session.dataTransferObjects.Phones[0]);n&&$.extend(!0,t,n),ko.mapping.fromJS(t,{include:["AreaCode","CountryCode","PhoneNumber","PhoneType"]},i)},Premium:function(n){n||(n=_session.dataTransferObjects.Premium),ko.mapping.fromJS(n,{include:["NetBase"]},this)},ProductDescription:function(n){ko.mapping.fromJS(n,{include:["BriefCode","Name","Description"]},this)},PlanDescription:function(n){ko.mapping.fromJS(n,{include:["BriefCode","Name","Summary","Description"]},this)},Question:function(n){var t=this,i=$.extend(!0,{},_session.dataTransferObjects.Questions[0]);i.Answer=null,i.Answers=null,n&&$.extend(!0,i,n),ko.mapping.fromJS(i,{Answer:{create:function(n){return n.data?ko.observable(new PrismApi.Data.Answer(n.data)):ko.observable()}},Questions:{key:function(n){return ko.utils.unwrapObservable(n)},create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Question(n.data)}},Value:{create:function(n){return ko.observable(n.data)}}},this),t.Answer.extend({required:{params:!0,message:PrismApi.Validation.messages.question.selectAnswer,fieldName:t.Description(),onlyIf:function(){return t.IsRequired&&ko.utils.unwrapObservable(t.IsRequired)}}}),t.Value.extend({required:{params:!0,message:PrismApi.Validation.messages.question.enterValue,fieldName:t.Description(),onlyIf:function(){return t.IsRequired&&ko.utils.unwrapObservable(t.IsRequired)}}}),t.Answers&&t.Answers()&&t.Answer()&&t.Answer(ko.utils.arrayFirst(t.Answers(),function(n){return n.BriefCode()==t.Answer().BriefCode()})),t.Answers()==null?t.Answers=t.Answer()==null?ko.observableArray():ko.observableArray([t.Answer()]):t.Answer()&&t.Answers().length==0&&t.Answers().push(t.Answer())},Answer:function(n){var t=this,i=$.extend(!0,{},_session.dataTransferObjects.Questions[0].Answers[0]);n&&$.extend(!0,i,n),ko.mapping.fromJS(n,{},t)},Region:function(n){var t=this,i=$.extend(!0,{},_session.dataTransferObjects.Region);n&&$.extend(!0,i,n),ko.mapping.fromJS(i,{Country:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}}},this),t.Countries?t.Countries()&&t.Country()&&t.Country(ko.utils.arrayFirst(t.Countries(),function(n){return n.BriefCode()==t.Country().BriefCode})):t.Countries=ko.observableArray()},ProductBenefit:function(n){var t=this;ko.mapping.fromJS(n,{},this),t.fn={},t.fn.getLimit=function(n,i){return ko.utils.arrayFirst(t.Limits(),function(t){return t.CoverLevel()==n&&t.CoverType()==i})},t.fn.getLimitValue=function(n,i){var r=ko.utils.arrayFirst(t.Limits(),function(t){return t.CoverLevel()==n&&t.CoverType()==i});return r&&r.Value?r.Value():""}},ProductBenefitGroup:function(n){var t=this;ko.mapping.fromJS(n,{Benefits:{create:function(n){return n.data==null?new PrismApi.Data.ProductBenefit(undefined):new PrismApi.Data.ProductBenefit(n.data)}}},this),t.fn={}},Destination:function(n){var t=$.extend(!0,{},_session.dataTransferObjects.Destinations[0]);n&&$.extend(!0,t,n),ko.mapping.fromJS(t,{},this)},StdCode:function(n){n||(n={BriefCode:"",Description:""}),ko.mapping.fromJS(n,{},this)},Search:function(){var i=$.extend(!0,{},{criteria:_session.searchDto},{results:[]}),n,t;ko.mapping.fromJS(i,{},this),n=this,n.criteria.MetaData={Options:ko.observableArray([{Description:"Quotes and Policies",Type:""},{Description:"Quotes Only",Type:"Quote"},{Description:"Policies Only",Type:"Policy"}]),SearchHasBeenPerformed:ko.observable(!1)},n.fn={},n.fn.clearCriteria=function(){n.criteria.MetaData.SearchHasBeenPerformed(!1),n.criteria.DateOfBirth(null),n.criteria.EffectiveDate(null),n.criteria.FirstName(null),n.criteria.IssueDate(null),n.criteria.LastName(null),n.criteria.ReferenceNumber(null),n.criteria.StartDate(null),n.criteria.Type("")},n.fn.clearResults=function(){n.criteria.MetaData.SearchHasBeenPerformed(!1),n.results([])},n.criteria.MetaData.errors=ko.validation.group(n.criteria,{deep:!0,observable:!1}),n.criteria.ReferenceNumber.extend({minLength:{params:2,message:PrismApi.Validation.messages.search.minLengthReferenceNumber}}),t=[n.criteria.EffectiveDate,n.criteria.IssueDate,n.criteria.LastName,n.criteria.ReferenceNumber,n.criteria.StartDate],n.criteria.EffectiveDate.extend({requiresOneOf:{params:t,message:PrismApi.Validation.messages.search.requiresOneOf}}),n.criteria.IssueDate.extend({requiresOneOf:{params:t,message:PrismApi.Validation.messages.search.requiresOneOf}}),n.criteria.LastName.extend({requiresOneOf:{params:t,message:PrismApi.Validation.messages.search.requiresOneOf}}),n.criteria.ReferenceNumber.extend({requiresOneOf:{params:t,message:PrismApi.Validation.messages.search.requiresOneOf}}),n.criteria.StartDate.extend({requiresOneOf:{params:t,message:PrismApi.Validation.messages.search.requiresOneOf}})},SearchResult:function(n){var i=$.extend(!0,{},_session.searchDto),t;n&&(i=$.extend(!0,i,n)),ko.mapping.fromJS(i,{},this),t=this,t.MetaData={},t.DateOfBirth.extend({isoDate:""}),t.EffectiveDate.extend({isoDate:""}),t.StartDate.extend({isoDate:""}),t.EndDate.extend({isoDate:""}),t.IssueDate.extend({isoDate:""}),t.QuoteExpiryDate.extend({isoDate:""}),t.MetaData.FullName=ko.computed(function(){var n="";return this.Title()&&(n=this.Title()),this.FirstName()&&(n=""===n?this.FirstName():n+" "+this.FirstName()),this.LastName()&&(n=""===n?this.LastName():n+" "+this.LastName()),n},t)},Workflow:function(){var t=$.extend(!0,{},{criteria:_session.workflowDto},{results:[]}),n;ko.mapping.fromJS(t,{},this),n=this,n.criteria.MetaData={SearchHasBeenPerformed:ko.observable(!1)},n.fn={},n.fn.clearCriteria=function(){n.criteria.MetaData.SearchHasBeenPerformed(!1),n.criteria.Instance.InstanceId(null)},n.fn.clearResults=function(){n.criteria.MetaData.SearchHasBeenPerformed(!1),n.results([])}},WorkflowResult:function(n){var t=$.extend(!0,{},_session.workflowDto),i;n&&(t=$.extend(!0,t,n)),ko.mapping.fromJS(t,{},this),i=this,i.MetaData={}},Instance:function(n){var i=$.extend(!0,{},_session.instance),t;n&&(n.Data.PolicyRef==undefined&&(n.Data.PolicyRef=null),n.Data.PolicyId==undefined&&(n.Data.PolicyId=null),n.Data.DoNotEmailPolicy==undefined&&(n.Data.DoNotEmailPolicy=null),n.Data.QuoteRef==undefined&&(n.Data.QuoteRef=null),i=$.extend(!0,i,n)),ko.mapping.fromJS(i,{},this),t=this,t.MetaData={},t.Data.StartDate.extend({isoDate:""}),t.Data.EndDate.extend({isoDate:""})},Violation:function(n){var i=this,t=$.extend(!0,{},_session.dataTransferObjects.Violations[0]);n&&(t=$.extend(!0,t,n)),ko.mapping.fromJS(t,{AuthPrompt:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},Authorised:{create:function(n){return n.data==null?ko.observable(!1):ko.observable(n.data)}},CheckName:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},FailureMessage:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}}},i)},History:function(n){var t=this,i=$.extend(!0,{},_session.dataTransferObjects.Histories[0]);n&&(i=$.extend(!0,i,n)),ko.mapping.fromJS(i,{},t),t.CombinedName=ko.computed(function(){var t=this.AgentName(),n=this.AgencyName(),i="";return null!=t?i=null!=n?t+", "+n:t:null!=n&&(i=n),i},t)},Owner:function(n){var i=this,t=$.extend(!0,{},_session.dataTransferObjects.Owner);n&&(t=$.extend(!0,t,n)),ko.mapping.fromJS(t,{},i)},Agency:function(n){ko.mapping.fromJS(n,{include:["AgencyGroup","Code","Default","DisplayName","State"]},this)},BrandAgency:function(n){var t=this;t.brandCode=ko.observable(n&&n.brandCode?n.brandCode:null),t.brandLogo=ko.observable(n&&n.brandLogo?n.brandLogo:null),t.brandName=ko.observable(n&&n.brandName?n.brandName:null),t.brandLink=ko.observable(n&&n.brandLink?n.brandLink:null),t.MetaData=n?n.MetaData||{}:{},t.fn=this.fn||{},t.fn.initProvisionedAgenciesBrand=function(n,i){var r=[];$$.fn.getProvisionedAgenciesByBrand(t.brandCode()).done(function(n){ko.utils.arrayForEach(n,function(n){r.push($.extend(n,{id:n.Code,text:n.DisplayName+" ["+n.Code+"]"}))}),r=r.sort(function(n,t){var i=n.text.toUpperCase(),r=t.text.toUpperCase();return i<r?-1:i>r?1:0})}),i(r)},t.fn.findAgencies=function(n){var i=[];n.term.length>0?$$.fn.getAgenciesByBrandAgency(t.brandCode(),n.term).done(function(t){ko.utils.arrayForEach(t,function(n){i.push($.extend(n,{id:n.Code,text:n.DisplayName+" ["+n.Code+"]"}))}),i=i.sort(function(n,t){var i=n.text.toUpperCase(),r=t.text.toUpperCase();return i<r?-1:i>r?1:0}),n.callback({results:i})}):n.callback({results:i})},t.MetaData.isBusy=ko.observable(!1),t.fn.setDefaultAgency=function(){t.MetaData.isBusy(!0),$$.fn.setDefaultAgency(t.brandCode(),t.MetaData.SelectedAgency()).done(function(){window.location.href="/User/SelectAgency?brandCode="+t.brandCode()+"&agencyCode="+t.MetaData.SelectedAgency()}).fail(function(n){$$.Client.displayError(n)}).always(function(){t.MetaData.isBusy(!1)})},t.fn.initChangeAgencyProvisionedAgencies=function(n,t){var i=[];ko.utils.arrayForEach($$.brand.MetaData.ProvisionedAgenciesForUser(),function(n){i.push($.extend(n,{id:n.Code,text:n.DisplayName+" ["+n.Code+"]"}))}),i=i.sort(function(n,t){var i=n.text.toUpperCase(),r=t.text.toUpperCase();return i<r?-1:i>r?1:0}),t(i)},t.fn.findChangeAgencyAgencies=function(n){var t=[],i;n.term.length==0?($$.brand.MetaData.ProvisionedAgenciesForUser()!=null&&ko.utils.arrayForEach($$.brand.MetaData.ProvisionedAgenciesForUser(),function(n){t.push($.extend(n,{id:n.Code,text:n.DisplayName+" ["+n.Code+"]"}))}),t=t.sort(function(n,t){var i=n.text.toUpperCase(),r=t.text.toUpperCase();return i<r?-1:i>r?1:0}),t.splice(0,0,{text:"Select from your previously selected agencies"}),n.callback({results:t})):(i=$$.brand.MetaData.SelectedChangeBrand().split("-_-")[0],$$.fn.getAgenciesByBrandAgency(i,n.term).done(function(i){ko.utils.arrayForEach(i,function(n){t.push($.extend(n,{id:n.Code,text:n.DisplayName+" ["+n.Code+"]"}))}),t=t.sort(function(n,t){var i=n.text.toUpperCase(),r=t.text.toUpperCase();return i<r?-1:i>r?1:0}),n.callback({results:t})}))},t.MetaData.SelectedChangeBrand=ko.observable(),t.MetaData.SelectedBrandName=ko.observable(),t.MetaData.ProvisionedAgenciesForUser=ko.observableArray(),t.MetaData.AllAgenciesForBrand=ko.observableArray(),t.MetaData.AllDefaultAgenciesForBrands=ko.observableArray(),t.MetaData.BrandList=ko.observableArray(),t.MetaData.ShowAgency=ko.observable(!1),t.MetaData.SortedAgenciesForBrand=ko.computed(function(){return t.MetaData.AllAgenciesForBrand()==null?null:t.MetaData.AllAgenciesForBrand().sort(function(n,t){function i(n,t){return n==null?1:t==null?-1:n>t?1:n<t?-1:0}var r=i(n.State,t.State);return r!=0?r:i(n.DisplayName.toLowerCase(),t.DisplayName.toLowerCase())})}),t.MetaData.SelectedAgency=ko.observable(),t.MetaData.SelectedAgencyCopy=ko.computed({read:function(){return t.MetaData.SelectedAgency()},write:function(n){t.MetaData.SelectedAgency(n)}}),t.MetaData.ProvisionedAgencies=ko.observableArray(),t.MetaData.HasDefaultAgency=ko.computed(function(){var n=ko.utils.arrayFilter(t.MetaData.ProvisionedAgencies()||[],function(n){return n.Default});return n.length==1}),t.fn.GetProvisionedAgencies=function(n){t.MetaData.ProvisionedAgencies(null),$$.fn.getProvisionedAgenciesByBrand(t.brandCode()).done(function(i){var r=[];ko.utils.arrayForEach(i,function(n){r.push($.extend(n,{id:n.Code,text:n.DisplayName+" ["+n.Code+"]"}))}),r=r.sort(function(n,t){var i=n.text.toUpperCase(),r=t.text.toUpperCase();return i<r?-1:i>r?1:0}),t.MetaData.ProvisionedAgencies(r),n()})},t.fn.GetBrandImageUrl=function(n){var i=ko.utils.arrayFirst(t.MetaData.BrandList(),function(t){return n===t.BrandCode});return i==null?null:i.ImageUrl},t.MetaData.SelectedChangeBrand.subscribe(function(n){t.MetaData.SelectedBrandName(n.split("-_-")[1]),t.fn.GetAgencyDataForBrand(n)}),t.fn.agencySortCategory=function(n){var i=t.MetaData.SortedAgenciesForBrand();return n==0||i[n-1].State!=i[n].State},t.MetaData.SelectedBrandAgencyStates=ko.computed({read:function(){var i,n;if(t.MetaData.AllAgenciesForBrand()==null)return null;for(i=[],n=0;n<t.MetaData.AllAgenciesForBrand().length;n++)t.MetaData.AllAgenciesForBrand()[n].State!=null&&i.indexOf(t.MetaData.AllAgenciesForBrand()[n].State)<0&&i.push(t.MetaData.AllAgenciesForBrand()[n].State);return i}})},BankAccount:function(n){var t=this,i=$.extend(!0,{},null);n&&(i=$.extend(!0,i,n)),ko.mapping.fromJS(i,{AccountHolderName:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},Bsb:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},AccountNumber:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}}},t),t.AccountHolderName.extend({required:{params:!0,message:PrismApi.Validation.messages.bankAccount.requiredAccountHolder}}),t.Bsb.extend({required:{params:!0,message:PrismApi.Validation.messages.bankAccount.requiredBsb},pattern:{params:PrismApi.Validation.patterns.bsb,message:PrismApi.Validation.messages.bankAccount.invalidBsb}}),t.AccountNumber.extend({required:{params:!0,message:PrismApi.Validation.messages.bankAccount.requiredAccountNumber},pattern:{params:PrismApi.Validation.patterns.accountNumber,message:PrismApi.Validation.messages.bankAccount.invalidAccountNumber}}),t.MetaData={}},RefundException:function(n){var i=this,r=$.extend(!0,{},_session.dataTransferObjects.RefundException),t;n&&(r=$.extend(!0,r,n)),ko.mapping.fromJS(r,{BankAccount:{create:function(n){return new PrismApi.Data.BankAccount(n.data)}}},i),t=$.extend(!0,{},_session.dataTransferObjects.RefundException),n&&(t=$.extend(!0,t,n)),ko.mapping.fromJS(t,{Status:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},Datetime:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}},Amount:{create:function(n){return n.data==null?ko.observable(undefined):ko.observable(n.data)}}},i),i.MetaData={}},PremiumTransaction:function(n){var i=this,t=$.extend(!0,{},_session.dataTransferObjects.PremiumTransaction);n&&(t=$.extend(!0,t,n)),i.MetaData={}}},PrismApi=PrismApi||{},PrismApi.Data=PrismApi.Data||{},PrismApi.Data.Policy=function(n){var t=this,i,e,u,r,f;if(t.MetaData=n?n.MetaData||{}:{},t.fn=this.fn||{},t.MetaData.customViewModelMapping={PartnerCode:{create:function(n){return ko.observable(n.data||undefined)}},Address:{create:function(n){return new PrismApi.Data.Address(n.data)}},Adjustments:{key:function(n){return ko.utils.unwrapObservable(n.BriefCode)},create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Adjustment(n.data)}},Questions:{key:function(n){return ko.utils.unwrapObservable(n)},create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Question(n.data)}},Benefits:{key:function(n){if(n)return ko.utils.unwrapObservable(n.BriefCode)},create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Benefit(n.data)}},Email:{create:function(n){return new PrismApi.Data.Email(n.data)}},CreditCard:{create:function(n){return new PrismApi.Data.CreditCard(n.data)}},Plan:{create:function(n){return n.data==null?ko.observable():ko.observable(n.data)}},PolicyHolders:{create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Customer(n.data,"adult")}},PolicyDependants:{create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Customer(n.data,"dependant")}},PremiumExtraInfo:{key:function(n){return ko.utils.unwrapObservable(n)},create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Question(n.data)}},ProductDescription:{key:function(n){return ko.utils.unwrapObservable(n)},create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.ProductDescription(n.data)}},PlanDescription:{key:function(n){return ko.utils.unwrapObservable(n)},create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.PlanDescription(n.data)}},Phones:{create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Phone(n.data)}},Premium:{create:function(n){return n.data==null?ko.observable():ko.observable(n.data)}},Region:{create:function(n){return n.data==null||!n.data.BriefCode?ko.observable():ko.observable(new PrismApi.Data.Region(n.data))}},PurchaseAmount:{create:function(n){return n.data==null?ko.observable():ko.observable(n.data)}},Violations:{create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.Violation(n.data)}},Histories:{create:function(n){return n.data==null?ko.observableArray():new PrismApi.Data.History(n.data)}},Owner:{create:function(n){return new PrismApi.Data.Owner(n.data)}},include:["MaxTripDuration","PaymentType","Address","CreditCard","Phones","PolicyDependants","IsRefund","IsCancelled"],copy:["MetaData"]},t.fn.applyQuickQuoteOptionsToViewModel=function(){var n=PrismApi.quickQuoteOptions(),f,e,u;if(n){var i=ko.unwrap(t.Region),o=ko.utils.arrayMap(n.Regions,function(n){return new PrismApi.Data.Region(n)}),r=i?ko.utils.unwrapObservable(i.Country):undefined;r===undefined&&_session.policy&&_session.policy.Region&&(r=_session.policy.Region.Country),r&&ko.unwrap(i.Countries)&&(f=ko.utils.unwrapObservable(r.BriefCode),r=ko.utils.arrayFirst(ko.unwrap(i.Countries),function(n){return ko.utils.unwrapObservable(n.BriefCode)==f})),i&&ko.unwrap(i.BriefCode)&&(e=ko.utils.unwrapObservable(i.BriefCode),u=ko.utils.arrayFirst(o,function(n){return ko.utils.unwrapObservable(n.BriefCode)===e}),u&&(u.Countries(ko.unwrap(i.Countries)),u.Country(r),t.Region(u))),t.MetaData.Regions(o),t.MetaData.MinAdults(n.MinAdults),t.MetaData.MinDependants(n.MinDependants),t.MetaData.MaxAdults(n.MaxAdults),t.MetaData.MaxDependants(n.MaxDependants),t.MetaData.MinAdultAge(n.MinAdultAge),t.MetaData.MaxAdultAge(n.MaxAdultAge),t.MetaData.MinDependantAge(n.MinDependantAge),t.MetaData.MaxDependantAge(n.MaxDependantAge),t.MetaData.DefaultPeMandatoryAge(n.DefaultPeMandatoryAge),t.MetaData.DefaultUnaccompaniedAge(n.DefaultUnaccompaniedAge),t.MetaData.IsFileReferenceRequired(n.IsFileReferenceRequired),t.fn.synchAdjustments(n.Adjustments),ko.utils.arrayForEach(t.Adjustments(),function(n){if(n.Question!=undefined&&n.Question.Answer()&&n.Question.Answers&&n.Question.Answers()){var t=ko.utils.arrayFirst(n.Question.Answers(),function(t){return t.BriefCode()==n.Question.Answer().BriefCode()});t&&n.Question.Answer(t)}}),t.fn.synchQuestions(n.Questions),ko.utils.arrayForEach(t.Questions(),function(n){if(n.Answer()&&n.Answers()){var t=ko.utils.arrayFirst(n.Answers(),function(t){return t.BriefCode()==n.Answer().BriefCode()});t&&n.Answer(t)}}),PrismApi.Utils.updateDatepickers()}},t.fn.applyProductBenefitsToViewModel=function(){var s=PrismApi.productBenefits,n,f,i,e,r,o,u;if(s){for(n=ko.utils.arrayMap(s,function(n){return new PrismApi.Data.ProductBenefitGroup(n)}),f=[],i=0;i<n.length;i++)for(e=n[i],r=0;r<e.Benefits().length;r++)for(o=e.Benefits()[r],u=0;u<o.Limits().length;u++)f.push(o.Limits()[u].CoverType());t.MetaData.ProductBenefitCoverTypes(ko.utils.arrayGetDistinctValues(f)),t.MetaData.ProductBenefits=n,t.MetaData.ProductBenefitsReady(!0)}},t.fn.applyOptionBenefitsToViewModel=function(){var n=PrismApi.optionBenefits;n&&ko.utils.arrayForEach(t.Benefits(),function(t){var i=ko.utils.arrayFirst(n,function(n){return n.Option.BriefCode==t.BriefCode()});i&&(ko.isObservable(t.Option)?t.Option(i.Option):t.Option=i.Option,t.Benefits=i.Benefits)})},t.fn.applyBulkPremiumsToViewModel=function(){var n=PrismApi.bulkQuickQuote,a=[],v=!1,y=!1,o=!1,p=!1,w=!1,s,i,r,u,f,h,c,l,e;if(n&&n.BulkPremiums){for(s=ko.utils.arrayMap(n.BulkPremiums,function(n){return new PrismApi.Data.BulkPremium(n)}),i=0;i<n.BulkPremiums.length;i++){if(r=n.BulkPremiums[i].Plan,u=s[i],n.BulkPremiums[i].Benefits)for(f=0;f<n.BulkPremiums[i].Benefits.length;f++)a.push(new PrismApi.Data.StdCode({BriefCode:n.BulkPremiums[i].Benefits[f].BriefCode,Description:n.BulkPremiums[i].Benefits[f].Description}));r.MaxTripDurations&&(v=!0,h=ko.utils.arrayFirst(r.MaxTripDurations,function(n){return n.IsDefault}),h&&u.MetaData.MaxTripDuration(h.BriefCode)),r.CancellationAmounts&&(y=!0,c=ko.utils.arrayFirst(r.CancellationAmounts,function(n){return n.IsDefault}),c&&u.MetaData.CancellationAmount(c.Amount)),n.BulkPremiums[i].Excesses&&n.BulkPremiums[i].Excesses.length>1&&(o=!0),r.Excesses&&(l=ko.utils.arrayFirst(r.Excesses,function(n){return n.IsDefault}),l&&u.MetaData.Excess(l.Amount)),r.Excesses.length>0&&(o=!0),r.Adjustments&&r.Adjustments.length>0&&(p=!0,e=ko.utils.arrayFilter(r.Adjustments,function(n){return n.IsDiscount&&n.MetaData&&n.MetaData.InputBriefCode&&n.BriefCode!==n.MetaData.InputBriefCode}),e&&e.length==1&&u.MetaData.DiscountFlag(e[0].Description)),ko.unwrap(u.Premium.PeDiscountNotAllowed)===!0&&(w=!0)}t.MetaData.BulkPremiums(s),t.MetaData.AllBulkPremiumBenefits(a),t.MetaData.AnyBulkPremiumHasMaxTripDuration(v),t.MetaData.AnyBulkPremiumHasCancellation(y),t.MetaData.AnyBulkPremiumHasExcess(o),t.MetaData.AnyBulkPremiumHasAdjustment(p),t.MetaData.AnyBulkPremiumHasPeDiscountNotAllowed(w)}else t.MetaData.BulkPremiums([]),t.MetaData.AllBulkPremiumBenefits([]),t.MetaData.AnyBulkPremiumHasMaxTripDuration(!1),t.MetaData.AnyBulkPremiumHasCancellation(!1),t.MetaData.AnyBulkPremiumHasExcess(!1),t.MetaData.AnyBulkPremiumHasAdjustment(!1),t.MetaData.AnyBulkPremiumHasPeDiscountNotAllowed(!1)},t.fn.applyBulkPremiumValuesToViewModel=function(n){var i,r,u;if(n==null){for(t.Plan(undefined),t.Premium(undefined),t.Excess(undefined),t.MaxTripDuration(undefined),t.CancellationAmount(undefined);t.MetaData.hasBenefits();)t.Benefits.pop();return}t.Plan(n.Plan),t.Premium(n.Premium),n.MetaData.Excess()!=undefined?t.Excess(n.MetaData.Excess()):(i=ko.utils.arrayFilter(n.Plan.Excesses(),function(n){return n.IsDefault()}),i.length>0&&t.Excess(i[0].Amount())),n.Plan.MaxTripDurations?n.MetaData.MaxTripDuration()!=undefined?t.MaxTripDuration(n.MetaData.MaxTripDuration()):(r=ko.utils.arrayFirst(n.Plan.MaxTripDurations(),function(n){return n.IsDefault()}),r?t.MaxTripDuration(r.BriefCode()):t.MaxTripDuration(undefined)):t.MaxTripDuration(undefined),n.Plan.CancellationAmounts?n.MetaData.CancellationAmount()!=undefined?t.CancellationAmount(n.MetaData.CancellationAmount()):(u=ko.utils.arrayFirst(n.Plan.CancellationAmounts(),function(n){return n.IsDefault()}),u?t.CancellationAmount(u.Amount()):t.CancellationAmount(undefined)):t.CancellationAmount(undefined),function(){while(t.MetaData.hasBenefits())t.Benefits.pop();n.Benefits&&t.fn.synchBenefits(ko.mapping.toJS(n.Benefits()),!0)}()},t.fn.applyFullQuoteOptionsToViewModel=function(){PrismApi.fullQuoteOptions?(t.fn.synchAdjustments(PrismApi.fullQuoteOptions.Adjustments),t.fn.synchQuestions(PrismApi.fullQuoteOptions.Questions),t.fn.synchBenefits(PrismApi.fullQuoteOptions.Benefits),PrismApi.fullQuoteOptions.PeOptions&&PrismApi.fullQuoteOptions.PeOptions.PESystem&&t.fn.synchPeOptions(PrismApi.fullQuoteOptions.PeOptions)):PrismApi.peOptions&&t.fn.synchPeOptions(PrismApi.fullQuoteOptions.PeOptions)},t.fn.applyPremiumExtraInfoToViewModel=function(){if(PrismApi.premiumExtraInfo){var n=PrismApi.premiumExtraInfo,i=t.PremiumExtraInfo()||[],r=ko.utils.arrayMap(n,function(n){return new PrismApi.Data.Question(n)});ko.utils.arrayForEach(r,function(n){var r=PrismApi.Utils.arrayFirstBriefCode(i,n.BriefCode()),u;r==null?t.PremiumExtraInfo.push(n):(r.Answer()&&(u=ko.utils.arrayFirst(n.Answers(),function(n){return n.BriefCode()==r.Answer().BriefCode()})),r.Description(n.Description()),r.InputSourceBrief&&n.InputSourceBrief()&&r.InputSourceBrief(n.InputSourceBrief()),r.Answers(n.Answers()),r.Answer(u),r.IsRequired==null?r.IsRequired=ko.observable(n.IsRequired()):r.IsRequired(n.IsRequired()))})}},t.fn.applyCardEligibleCoverLevelsToViewModel=function(n){if(n){var i=ko.unwrap(ko.mapping.fromJS(n));t.MetaData.CardEligibleCoverLevels==null?t.MetaData.CardEligibleCoverLevels=ko.observable(i):t.MetaData.CardEligibleCoverLevels(i)}},t.fn.applyProductDescriptionsToViewModel=function(){if(PrismApi.productDescriptions){var n=ko.utils.arrayMap(PrismApi.productDescriptions,function(n){return new PrismApi.Data.ProductDescription(n)});t.MetaData.ProductDescriptions(n)}},t.fn.applyPlanDescriptionsToViewModel=function(){if(PrismApi.planDescriptions){var n=ko.utils.arrayMap(PrismApi.planDescriptions,function(n){return new PrismApi.Data.PlanDescription(n)});t.MetaData.PlanDescriptions(n)}},t.fn.applyFullQuotePeOptionsToViewModel=function(){PrismApi.fullQuoteOptions!=null&&PrismApi.fullQuoteOptions.PeOptions!=null&&t.fn.synchPeOptions(PrismApi.fullQuoteOptions.PeOptions)},t.fn.synchPeOptions=function(n){t.PeOptions=new PrismApi.Data.PeOptions(n),t.PeOptions.PESystem()||ko.utils.arrayForEach(t.PolicyHolders().concat(t.PolicyDependants()),function(n){n.HasPeCondition(undefined)})},t.fn.applyPaymentOptionsToViewModel=function(){var n=PrismApi.paymentOptions(),i,r,u;if(n){for(i=0;i<n.length;i++)n[i].takesCreditCard=n[i].CreditCardTypes!=undefined;r=ko.utils.arrayFirst(n,function(n){return n.IsDefault}),r&&(t.PaymentType(r.BriefCode),u=ko.utils.arrayFirst(r.CreditCardTypes,function(n){return n.IsDefault}),u&&t.CreditCard.CardType(u.BriefCode))}PrismApi.payment.fn.updateCardTypes()},t.fn.applyPurchaseToViewModel=function(n){n&&(t.Premium(n.Premium),t.PolicyId(n.PolicyId),t.ClientReference(n.ClientReference),t.ReceiptNo(n.ReceiptNo),t.DocumentStored(n.DocumentStored),t.RefundException(n.RefundException))},t.fn.applyViolationsToViewModel=function(n,i){t.Violations().length=0,i===undefined&&n.responseText&&(i=JSON.parse(n.responseText)),i&&i.Violations&&ko.utils.arrayForEach(i.Violations,function(n){t.Violations.push(new PrismApi.Data.Violation(n))})},t.fn.applyHistoriesToViewModel=function(n){t.Histories([]),t.Histories(ko.utils.arrayMap(n,function(n){return new PrismApi.Data.History(n)}))},t.fn.applyOwnerToViewModel=function(n){n&&n.Owner&&ko.mapping.fromJS(n.Owner,PrismApi.Data.Owner,t.Owner)},t.fn.clearData=function(){t.PolicyId(undefined),t.ClientReference(undefined),t.ReceiptNo(undefined),t.DocumentStored(undefined),t.Address.AddressLine1(undefined),t.Address.AddressLine2(undefined),t.Address.State(undefined),t.Address.Postcode(undefined),t.WorkflowTransactionId(undefined)},t.fn.toJSONForContext=function(n){var r,u,l,f,h,e,o,s,i,c;(function(){if(n==="getBulkQuickQuote"||n==="getBulkMultiQuickQuote"){if(t.Excess(undefined),t.MaxTripDuration(undefined),!PrismApi.quickQuoteOptions().Benefits)while(t.MetaData.hasBenefits())t.Benefits.pop();(t.PolicyId()||t.ClientReference()||t.ReceiptNo())&&t.fn.clearData()}else ko.utils.arrayForEach(t.Benefits(),function(n){n.MetaData.IsEnabled()&&n.MetaData.IsPerPerson&&!n.MetaData.IsPerPersonChoice&&n.MetaData.IsValueRequired&&n.MetaData.Values&&(ko.utils.arrayForEach(n.MetaData.IsPerAdultOnly?t.PolicyHolders():t.MetaData.AllTravellers(),function(t){var r=ko.utils.arrayFirst(n.MetaData.Values,function(n){return n.MetaData.MinAge!==undefined&&n.MetaData.MaxAge!==undefined&&n.MetaData.MinAge<=t.MetaData.age()&&n.MetaData.MaxAge>=t.MetaData.age()}),i;r&&(i=ko.utils.arrayFirst(n.BenefitItems(),function(n){return n.CustomerIndex()==t.MetaData.TravellerIndex}),i||(i=n.fn.addBenefitItem()),i.CustomerIndex(t.MetaData.TravellerIndex),i.ValueText(r.Value))}),n.BenefitItems.valueHasMutated())})})(),t.DoNotEmailPolicy()==null&&t.DoNotEmailPolicy(!0),t.fn.getPaymentOption()==null||t.fn.getPaymentOption().takesCreditCard||(t.CreditCard=null),r={};try{for(u=Object.keys(t),i=0,l=u.length;i<l;i++)f=u[i][0],f!=="_"&&f!==f.toLowerCase()&&(r[u[i]]=ko.mapping.toJS(t[u[i]]))}catch(a){PrismApi.Utils.logError(a,"PrismApi.policy.fn.toJSONForContext - toJS processing")}if(ko.utils.arrayForEach(r.Benefits,function(n){var i,t,r,u;if(n!=undefined&&n.BenefitItems)for(i=n.BenefitItems,t=i.length-1;t>=0;t--)r=i[t],n.BriefCode!="ITEM"&&r.BriefCode&&(r.BriefCode=undefined),u=ko.mapping.toJS(i[t]),!n.MetaData.IsValueRequired||i[t].Value||i[t].ValueText||n.BenefitItems.removeAt(t)}),r.Adjustments)for(i=r.Adjustments.length-1;i>=0;i--)r.Adjustments[i].Question&&r.Adjustments[i].Question.Answers&&(r.Adjustments[i].Question.Answer==null||r.Adjustments[i].Question.Answer.BriefCode=="")?r.Adjustments.splice(i,1):r.Adjustments[i].Value==null&&r.Adjustments.splice(i,1);if(h=function(n){var i,t;if(n)for(i=n.length-1;i>=0;i--)t=n[i],t.Answer==null||t.Answer.BriefCode==""?n.splice(i,1):t.Answers&&ko.utils.arrayForEach(t.Answers,function(n){n.Questions&&(t.Answer&&n.BriefCode==t.Answer.BriefCode?h(n.Questions):n.Questions=null)})},h(r.Questions),e=r.PremiumExtraInfo,e)for(i=0;i<e.length;i++)e[i].Answers=null;for(o=r.PolicyHolders,i=0;i<o.length;i++)o[i].DateOfBirth||(o.pop(i),i-=1);for(s=r.PolicyDependants,i=0;i<s.length;i++)s[i].DateOfBirth||(s.pop(i),i-=1);return function(){r=$.extend(r,{MetaData:null,fn:null}),n=="getBulkQuickQuote"&&(r=$.extend(r,{Plan:null})),n!="purchase"&&n!="endorsement"&&(r=$.extend(r,{CreditCard:null}))}(),c=function(n){var r=function(n){return n<10?"0"+n:n},t,i;for(t in n)n.hasOwnProperty(t)&&(typeof n[t]=="object"&&c(n[t]),["StartDate","EndDate","DateOfBirth","CoverStartDate","CoverEndDate"].indexOf(t)>=0&&n[t]&&n[t].length>10&&(i=new Date(Date.parse(n[t])),n[t]=i.getFullYear()+"-"+r(i.getMonth()+1)+"-"+r(i.getDate())))},c(r),window._policyRequest=r,JSON.stringify(r)},t.fn.getAdjustment=function(n){return PrismApi.Utils.arrayFirstBriefCode(t.Adjustments(),n)},t.fn.getBenefit=function(n){return PrismApi.Utils.arrayFirstBriefCode(t.Benefits(),n)},t.fn.getQuestion=function(n){return PrismApi.Utils.arrayFirstBriefCode(t.Questions(),n)},t.fn.getRegion=function(n){return PrismApi.Utils.arrayFirstBriefCode(t.MetaData.Regions(),n)},t.fn.getPaymentOption=function(){return PrismApi.paymentOptions()?PrismApi.Utils.arrayFirstBriefCode(PrismApi.paymentOptions(),t.PaymentType()):null},t.fn.updateHolderScreening=function(n,i){var r=$.Deferred(),u=[];return $.each(t.MetaData.AllTravellers(),function(r,f){u.push(t.fn.updateScreeningResult(f,n,i))}),$.when.apply(null,u).then(function(){r.resolve()}),r.promise()},t.fn.updateScreeningCancelledPe=function(n,t,i){n.HealixAssessment()&&n.HealixAssessment().PeId()==1&&(n.HasPeCondition(!1),n.HealixAssessment().ScreeningId(undefined),$$.fn.persistAssessment().done(function(){window.location.href=$$.baseUrl+i}).fail(function(n){$(t).hide(),$$.Client.displayError(n)}))},t.fn.updatePeFatalNonMedicalPlan=function(n){t.PolicyHolders(ko.utils.arrayFilter(t.PolicyHolders(),function(n){return n.HealixAssessment()&&n.HealixAssessment().PeId()==1&&n.HasPeCondition(!1),n.HealixAssessment()&&n.HealixAssessment().PeId()==1})),t.PolicyDependants(ko.utils.arrayFilter(t.PolicyDependants(),function(n){return n.HealixAssessment()&&n.HealixAssessment().PeId()==1&&n.HasPeCondition(!1),n.HealixAssessment()&&n.HealixAssessment().PeId()==1})),t.PeOptions.FatalFlag(!0),$$.fn.getBulkQuickQuote(!1,!1).done(function(){var i=t.MetaData.BulkPremiums(),r=i[0];t.fn.applyBulkPremiumValuesToViewModel(r),t.PeOptions.FatalFlag(!1),$$.fn.persistAssessment().done(function(){$$.fn.getFullQuoteOptions().done(function(){n&&(window.location.href=$$.baseUrl+n)}).fail(function(){$$.Client.displayError()})}).fail(function(){$$.Client.displayError()})})},t.fn.updateScreeningResult=function(n,i,r){var u=$.Deferred();return n.HealixAssessment()&&n.HealixAssessment().PeId()==1?PrismApi.Utils.ajaxCall(r,i,"POST").done(function(n){t.fn.applyPeOptionToViewModel(n),u.resolve(),window.console.log("data loaded for PrismApi.HealixAssessResult")}).fail(function(){$$.Client.displayError(),u.reject()}):u.resolve(),u.promise()},t.fn.updateScreeningSessionResult=function(n,i,r,u){n.HealixAssessment()&&n.HealixAssessment().PeId()==1&&(n.HealixAssessment().ScreeningResult.ScreeningStatus==undefined&&(window.location.href=$$.baseUrl),r==="b2b"&&n.HealixAssessment().CalculationOption.AcceptOffer()===!0&&n.HealixAssessment().ScreeningResult.ScreeningStatus()==="DECNM"||r!=="b2b"&&n.HealixAssessment().ScreeningResult.ScreeningStatus()==="DECNM"||r!=="b2b"&&n.HealixAssessment().CalculationOption.AcceptOffer()===!1&&n.HealixAssessment().MetaData.IsEnabled()!==""&&n.HealixAssessment().ScreeningResult.ScreeningStatus()==="DECNP"?((r==="b2b"||n.HealixAssessment().ScreeningResult.FatalMentalHealthCondition.Condition()!==!0)&&t.PeOptions.FatalFlag(!0),t.PeOptions.FirstHolderFlag(!1),PrismApi.nonMedical=null,t.fn.ResetPolicyAssessment().done(function(){$$.fn.persistAssessment().done(function(){r=="b2b"?t.fn.updatePeFatalNonMedicalPlan(u):window.location.href=$$.baseUrl}).fail(function(n){$(i).hide(),$$.Client.displayError(n)})})):$$.fn.validateHealixAssesment(n.HealixAssessment(),r).done(function(){t.fn.ResetPolicyAssessment().done(function(){$$.fn.persistAssessment().done(function(){window.location.href=$$.baseUrl+u}).fail($$.Client.displayError)})}).fail(function(n){$(i).hide(),$$.Client.displayError(n)}))},t.fn.ResetPolicyAssessment=function(){var n=$.Deferred();return $.each(t.PolicyHolders(),function(i,r){t.fn.ResetAssessment(r),n.resolve()}),$.each(t.PolicyDependants(),function(i,r){t.fn.ResetAssessment(r),n.resolve()}),n.promise()},t.fn.ResetAssessment=function(n){$(n).removeProp("fn").removeProp("__ko_mapping__"),$(n.HealixAssessment()).removeProp("fn").removeProp("__ko_mapping__"),$(n.HealixAssessment().CalculationOption).removeProp("__ko_mapping__")},t.fn.updateScreening=function(n,t){n.HealixAssessment()&&n.HealixAssessment().PeId()==1&&n.HealixAssessment(new PrismApi.Data.HealixAssessment(t))},t.fn.updateQuickQuoteAssessment=function(){$.each(t.PolicyHolders(),function(n,i){t.fn.updateQuotePeCondition(i)}),$.each(t.PolicyDependants(),function(n,i){t.fn.updateQuotePeCondition(i)})},t.fn.updateQuotePeCondition=function(n){n.HasPeCondition()===!0&&(n.HasPeCondition(!1),n.HealixAssessment()&&n.HealixAssessment().ScreeningId()!==null&&n.HealixAssessment().ScreeningId(undefined))},t.fn.applyPeOptionToViewModel=function(n){ko.utils.arrayForEach(t.PolicyHolders(),function(i){t.fn.updateScreening(i,n)}),ko.utils.arrayForEach(t.PolicyDependants(),function(i){t.fn.updateScreening(i,n)})},t.fn.applyPeAssessmentToViewModel=function(n){$.each($.merge(n.PolicyHolders||[],n.PolicyDependants||[]),function(n,i){var r=i.HealixAssessment,u=ko.utils.arrayFirst(t.MetaData.AllTravellers(),function(n){return n.HealixAssessment()&&n.HealixAssessment().ScreeningId()>0&&r!==undefined&&n.HealixAssessment().ScreeningId()===r.ScreeningId});u&&(r.ScreeningRev===u.HealixAssessment().ScreeningRev()&&r.CalculationOption&&ko.unwrap(r.CalculationOption.BaseExcess)?(u.HealixAssessment().CalculationOption.SelectedExcessGrossPremium(r.CalculationOption.SelectedExcessGrossPremium),u.HealixAssessment().CalculationOption.TotalMedicalCoverPremium(r.CalculationOption.TotalMedicalCoverPremium),u.HealixAssessment().CalculationOption.DefaultGrossPremium(r.CalculationOption.DefaultGrossPremium),u.HealixAssessment().CalculationOption.SelectedExcessPremium(r.CalculationOption.SelectedExcessPremium),u.HealixAssessment().CalculationOption.BaseExcess(r.CalculationOption.BaseExcess),u.HealixAssessment().ScreeningResult.ScreeningStatusDescription(r.ScreeningResult.ScreeningStatusDescription)):u.HealixAssessment(new PrismApi.Data.HealixAssessment(r)))})},t.fn.applyPeFatalToViewModel=function(n){t.PeOptions.PeFatalQuestion(n)},t.fn.addBenefitItem=function(n,i){var r=t.fn.getBenefit(n),u;return i==undefined&&(i=new PrismApi.Data.BenefitItem(r)),u=r.BenefitItems(),u.push(i),i},t.fn.synchAdjustments=function(n){n=n||[];var i=t.Adjustments(),r=ko.utils.arrayFilter(n,function(n){return PrismApi.Utils.arrayFirstBriefCode(i,n.BriefCode)==null}),u=ko.utils.arrayMap(r,function(n){return new PrismApi.Data.Adjustment(n)});ko.utils.arrayForEach(u,function(n){t.Adjustments.push(n)}),ko.utils.arrayForEach(t.Adjustments(),function(t){var i=ko.utils.arrayFirst(n,function(n){return n.BriefCode==t.BriefCode()}),u,r;i&&(u=ko.utils.unwrapObservable(t.Question),u==null||ko.utils.unwrapObservable(u.BriefCode)||i&&i.Question&&(r=new PrismApi.Data.Question(i.Question),r.Answer(ko.utils.arrayFirst(r.Answers(),function(n){return typeof t.Question.Answer=="function"?n.BriefCode()==t.Question.Answer().BriefCode():n.BriefCode()==t.Question.Answer.BriefCode()})),t.Question=r))})},t.fn.synchQuestions=function(n){var u,i,r;n=n||[],u=t.Questions(),i=ko.utils.arrayMap(n,function(n){return new PrismApi.Data.Question(n)}),ko.utils.arrayForEach(i,function(n){PrismApi.Utils.arrayFirstBriefCode(u,n.BriefCode())==null&&t.Questions.push(n)}),r=function(n){var u,f;n&&(u=ko.utils.arrayFirst(i,function(t){return t.BriefCode()==n.BriefCode()}),u&&n.Answer()&&(ko.utils.unwrapObservable(n.Answers)&&ko.utils.unwrapObservable(n.Answers).length!=0||n.Answers(u.Answers()),n.Answer(ko.utils.arrayFirst(ko.utils.unwrapObservable(n.Answers),function(t){return ko.utils.unwrapObservable(t.BriefCode)==ko.utils.unwrapObservable(n.Answer).BriefCode()})),n.Description(u.Description())),f=ko.utils.unwrapObservable(n.Answers),f&&ko.utils.arrayForEach(f,function(n){var i=ko.utils.unwrapObservable(n.Questions);i&&ko.utils.arrayForEach(i,function(n){var i=ko.utils.arrayFirst(ko.utils.unwrapObservable(t.Questions),function(t){return ko.utils.unwrapObservable(t.BriefCode)==ko.utils.unwrapObservable(n.BriefCode)});i&&(n.Answer(ko.utils.arrayFirst(ko.utils.unwrapObservable(n.Answers),function(n){return ko.utils.unwrapObservable(n.BriefCode)==ko.utils.unwrapObservable(i.Answer).BriefCode()})),n.MetaData=i.MetaData,ko.utils.unwrapObservable(t.Questions).removeAt($.inArray(i,ko.utils.unwrapObservable(t.Questions)))),r(n)})}))},ko.utils.arrayForEach(ko.utils.unwrapObservable(t.Questions),function(n){r(n)})},t.fn.synchBenefits=function(n,i){n&&ko.utils.arrayForEach(n,function(n){var i=PrismApi.Utils.arrayFirstBriefCode(t.Benefits(),n.BriefCode);i&&(i.MetaData.Values=n.MetaData.Values)});var r=ko.utils.arrayFilter(n,function(n){return i,PrismApi.Utils.arrayFirstBriefCode(t.Benefits(),n.BriefCode)==null}),u=ko.utils.arrayMap(r,function(n){return new PrismApi.Data.Benefit(n)});ko.utils.arrayForEach(u,function(i){var r=PrismApi.Utils.arrayFirstBriefCode(n,i.BriefCode());t.Benefits().splice($.inArray(r,n),0,i)})},t.fn.isPolicyPageValid=function(){return t.MetaData.errors.showAllMessages(),t.MetaData.errors.visibleMessages()==0},t.fn.extendViewModel=function(){function i(n,t){var i=1;ko.utils.arrayForEach(n,function(n){n.MetaData.Index=i++}),ko.utils.arrayForEach(t,function(n){n.MetaData.Index=i++})}function u(n,t,i){var u,r;if(n()==null&&(n=ko.observableArray()),u=n().length,t==u)return n;if(t>u)for(r=u;r<t;r++)n.push(new PrismApi.Data.Customer(null,i));if(t<u)for(r=u;r>t;r--)n.splice(r-1,1);return n}var n=t,r,f;n.MetaData||(n.MetaData={}),n.MetaData.MinAdults=ko.observable(undefined),n.MetaData.MinDependants=ko.observable(undefined),n.MetaData.MaxAdults=ko.observable(undefined),n.MetaData.MaxDependants=ko.observable(undefined),n.MetaData.MinAdultAge=ko.observable(undefined),n.MetaData.MaxAdultAge=ko.observable(undefined),n.MetaData.MinDependantAge=ko.observable(undefined),n.MetaData.MaxDependantAge=ko.observable(undefined),n.MetaData.SelectedScreening=ko.observable(0),n.MetaData.DefaultPeMandatoryAge=ko.observable(undefined),n.MetaData.DefaultUnaccompaniedAge=ko.observable(undefined),n.MetaData.IsFileReferenceRequired=ko.observable(!1),n.MetaData.Regions=ko.observableArray(),n.MetaData.BulkPremiums=ko.observableArray(),n.MetaData.AllBulkPremiumBenefits=ko.observableArray(),n.MetaData.AnyBulkPremiumHasCancellation=ko.observable(!1),n.MetaData.AnyBulkPremiumHasMaxTripDuration=ko.observable(!1),n.MetaData.AnyBulkPremiumHasExcess=ko.observable(!1),n.MetaData.AnyBulkPremiumHasAdjustment=ko.observable(!1),n.MetaData.AnyBulkPremiumHasPeDiscountNotAllowed=ko.observable(!1),n.MetaData.ProductBenefitCoverTypes=ko.observableArray(),n.MetaData.ProductDescriptions=ko.observableArray(),n.MetaData.PlanDescriptions=ko.observableArray(),n.Violations||(n.Violations=ko.observableArray()),n.Destinations||(n.Destinations=ko.observableArray()),n.Address||(n.Address=ko.observable(new PrismApi.Data.Address)),n.Adjustments||(n.Adjustments=ko.observableArray()),n.CreditCard||(n.CreditCard=new PrismApi.Data.CreditCard),n.RefundException||(n.RefundException=new PrismApi.Data.RefundException),n.PremiumTranaction||(n.PremiumTransaction=new PrismApi.Data.PremiumTransaction),n.PaymentType||(n.PaymentType=ko.observable(undefined)),n.Phones||(n.Phones=ko.observableArray()),n.PolicyDependants||(n.PolicyDependants=ko.observableArray()),n.MaxTripDuration||(n.MaxTripDuration=ko.observable()),n.MetaData.ProductBenefits||(n.MetaData.ProductBenefitsReady=ko.observable(),n.MetaData.ProductBenefits=null),n.PolicyId||(n.PolicyId=ko.observable(undefined)),n.ClientReference||(n.ClientReference=ko.observable(undefined)),n.ReceiptNo||(n.ReceiptNo=ko.observable(undefined)),n.DocumentStored||(n.DocumentStored=ko.observable(undefined)),n.IsCancelled||(n.IsCancelled=ko.observable(!1)),n.IsRefund||(n.IsRefund=ko.observable(!1)),n.PurchaseAmount||(n.PurchaseAmount=ko.observable("0.00")),n.FileReference||(n.FileReference=ko.observable(undefined)),n.Notes||(n.Notes=ko.observable(undefined)),n.Histories||(n.Histories=ko.observableArray()),PrismApi.quickQuoteOptions()&&n.fn.applyQuickQuoteOptionsToViewModel(),PrismApi.fullQuoteOptions?n.fn.applyFullQuoteOptionsToViewModel():PrismApi.peOptions&&n.fn.applyFullQuotePeOptionsToViewModel(),PrismApi.optionBenefits&&n.fn.applyOptionBenefitsToViewModel(),PrismApi.paymentOptions()&&n.fn.applyPaymentOptionsToViewModel(),n.WorkflowTransactionId||(n.WorkflowTransactionId=ko.observable(undefined)),n.StartDate.extend({isoDate:""}),n.EndDate.extend({isoDate:""}),r=Date.create(PrismApi.Client.todayDateString).getDateOnly(),f=Date.create(PrismApi.Client.todayDateString).advance({day:-1,year:1}).getDateOnly(),n.StartDate.formattedDate.extend({required:{params:!0,message:PrismApi.Validation.messages.requiredStartDate},date:{params:!0,message:PrismApi.Validation.messages.invalidStartDate},min:{params:r,message:PrismApi.Validation.messages.dateShouldBeAfterToday},max:{params:f,message:PrismApi.Validation.messages.invalidStartDate}}),n.EndDate.formattedDate.extend({required:{params:!0,message:PrismApi.Validation.messages.requiredEndDate},date:{params:!0,message:PrismApi.Validation.messages.invalidEndDate},min:{params:r,message:PrismApi.Validation.messages.dateShouldBeAfterToday},moreThan:{params:n.StartDate,message:PrismApi.Validation.messages.startDateIsAfterEndDate}}),n.FileReference.extend({required:{onlyIf:function(){return n.MetaData.IsFileReferenceRequired()},message:PrismApi.Validation.messages.requiredFileRef},maxLength:{params:30,message:PrismApi.Validation.messages.fieldMaxLength}}),n.Notes.extend({maxLength:{params:200,message:PrismApi.Validation.messages.fieldMaxLength}}),function(){var r=n.PolicyHolders(),t;n.MetaData.Adults=ko.observable(r!=null?r.length:0),t=n.PolicyDependants(),n.MetaData.Dependants=ko.observable(t!=null?t.length:0),i(n.PolicyHolders(),n.PolicyDependants()),n.MetaData.Adults.subscribe(function(n){u(this.PolicyHolders,n,"adult"),i(this.PolicyHolders,this.PolicyDependants)},n),n.MetaData.Dependants.subscribe(function(n){u(this.PolicyDependants,n,"dependant"),i(this.PolicyHolders,this.PolicyDependants)},n)}(),n.MetaData.TripDuration=ko.computed(function(){var n=this.StartDate()!==null?this.StartDate().fromISOString():null,t=this.EndDate()!==null?this.EndDate().fromISOString():null;if(n&&t){var i=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()),r=Date.UTC(t.getFullYear(),t.getMonth(),t.getDate()),u=Math.abs(i-r);return Math.floor(u/864e5)+1+""}return"-"},n),n.MetaData.hasBenefits=ko.computed(function(){return n.Benefits().length>0},this),n.MetaData.anyPESelected=ko.computed(function(){return ko.utils.arrayFirst(n.PolicyHolders(),function(n){return n.HasPeCondition()})!=null?!0:ko.utils.arrayFirst(n.PolicyDependants(),function(n){return n.HasPeCondition()})!=null?!0:!1},this),n.MetaData.EmailPolicy=ko.observable(n.DoNotEmailPolicy()==null?!1:n.DoNotEmailPolicy()),n.MetaData.EmailPolicy.subscribe(function(t){typeof t=="undefined"&&(t=!0,n.MetaData.EmailPolicy(!0)),n.DoNotEmailPolicy(!t)}),n.MetaData.canEdit=ko.computed(function(){return!n.QuoteReference()&&typeof n.CanEdit=="function"?n.CanEdit():!n.Status()||$.inArray(n.Status(),["Quote","Paid","Issued"])>=0},this),n.MetaData.errors=ko.validation.group(n,{deep:!0,observable:!1}),n.MetaData.AllTravellers=ko.computed(function(){var t=n.PolicyHolders().concat(n.PolicyDependants()),i=1;return ko.utils.arrayForEach(t,function(n){$.extend(n.MetaData,{TravellerIndex:i++})}),t}),$$.ApiVersion&&$$.ApiVersion<=2.1&&n.Region.subscribe(function(n){n!=null&&$$.fn.getCountries(n).done(function(t){n.Countries(t.length==1?t[0].Countries:[]),n.Country()&&n.Country().BriefCode&&n.Country(ko.utils.arrayFirst(n.Countries(),function(t){return t.BriefCode===ko.utils.unwrapObservable(n.Country().BriefCode)}))})},n)},!_session.dataTransferObjects)throw new Error("_session.dataTransferObjects could not be found.");if(i=$.extend(!0,{},_session.dataTransferObjects,{Adjustments:null,Benefits:null,Excess:undefined,MetaData:{},Phones:[],PricingRegion:null,PremiumExtraInfo:null,Questions:null,PolicyHolders:null,PolicyDependants:null,Destinations:[],PartnerCode:undefined,Violations:null,Histories:null}),n&&n.PolicyHolders!=null&&(i=$.extend(!0,i,n)),PrismApi.fullQuoteOptions){if(i.Benefits!=null&&PrismApi.fullQuoteOptions.Benefits)for(r=0;r<i.Benefits.length;r++)e=PrismApi.Utils.arrayFirstBriefCode(PrismApi.fullQuoteOptions.Benefits,i.Benefits[r].BriefCode),$.extend(!0,i.Benefits[r],e);if(i.Adjustments!=null&&PrismApi.fullQuoteOptions.Adjustments)for(r=0;r<i.Adjustments.length;r++)u=PrismApi.Utils.arrayFirstBriefCode(PrismApi.fullQuoteOptions.Adjustments,i.Adjustments[r].BriefCode),$.extend(!0,i.Adjustments[r],u);if(i.Questions!=null&&PrismApi.fullQuoteOptions.Questions)for(r=0;r<i.Questions.length;r++)f=PrismApi.Utils.arrayFirstBriefCode(PrismApi.fullQuoteOptions.Questions,i.Questions[r].BriefCode),$.extend(!0,i.Questions[r],f);i.PeOptions!=null&&PrismApi.fullQuoteOptions.PeOptions&&$.extend(!0,i.peOptions,PrismApi.fullQuoteOptions.PeOptions)}else PrismApi.peOptions&&i.PeOptions!=null&&PrismApi.peOptions&&$.extend(!0,i.peOptions,PrismApi.peOptions);if(PrismApi.quickQuoteOptions()&&!PrismApi.fullQuoteOptions){if(i.Adjustments!=null)for(r=0;r<i.Adjustments.length;r++)u=PrismApi.Utils.arrayFirstBriefCode(PrismApi.quickQuoteOptions().Adjustments,i.Adjustments[r].BriefCode),$.extend(!0,i.Adjustments[r],u);if(i.Questions!=null)for(r=0;r<i.Questions.length;r++)f=PrismApi.Utils.arrayFirstBriefCode(PrismApi.quickQuoteOptions().Questions,i.Questions[r].BriefCode),$.extend(!0,i.Questions[r],f)}ko.mapping.fromJS(i,t.MetaData.customViewModelMapping,this),t.fn.extendViewModel()},PrismApi=PrismApi||{},PrismApi.Events={},PrismApi.EventNames={beforeViewModelBind:"beforeViewModelBind",afterViewModelBind:"afterViewModelBind"},PrismApi=PrismApi||{},PrismApi.Settings={AjaxSettings:{headers:{OmitSessionPersistance:!1},type:"GET",contentType:"application/json, charset=utf-8",dataType:"json"}},function(){var n,r,e,o,s,h,c,l,t,a,i,u,v,y,p,w,f,k=[].slice,b=[].indexOf||function(n){for(var t=0,i=this.length;t<i;t++)if(t in this&&this[t]===n)return t;return-1};PrismApi.payment={},PrismApi.payment.fn={},$.fn.payment=function(){var n,t;return t=arguments[0],n=2<=arguments.length?k.call(arguments,1):[],PrismApi.payment.fn[t].apply(this,n)},PrismApi.payment.fn.updateCardTypes=function(){var n=/(\d{1,4})/g,t=[{type:"VC",pattern:/^4/,format:n,length:[13,16],cvcLength:[3],luhn:!0},{type:"MC",pattern:/^5[0-5]/,format:n,length:[16],cvcLength:[3],luhn:!0},{type:"AE",pattern:/^3[47]/,format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,length:[15],cvcLength:[4],luhn:!0}];PrismApi.policy.MetaData.CreditCardTypes==null?PrismApi.policy.MetaData.CreditCardTypes=ko.observableArray():PrismApi.policy.MetaData.CreditCardTypes.removeAll(),ko.utils.arrayForEach($$.paymentOptions()[0].CreditCardTypes,function(i){var r=i,s,f,e,o,u;r.DetectionRegex?(s=RegExp.apply(undefined,/^\/(.*)\/(.*)/.exec(r.DetectionRegex).slice(1)),f=RegExp.apply(undefined,/^\/(.*)\/(.*)/.exec(r.DisplayFormatRegex).slice(1)),e=r.Length.split(",").map(function(n){return+n}),o=r.CCVLength.split(",").map(function(n){return+n})):(u=ko.utils.arrayFirst(t,function(n){return n.type.toUpperCase()==r.BriefCode.toUpperCase()}),u?(s=u.pattern,f=u.format,e=u.length,o=u.cvcLength):(f=n,e=[16],o=[3,4])),PrismApi.policy.MetaData.CreditCardTypes.push({type:r.BriefCode,parentType:r.ParentCreditCardBriefCode,IsDefault:r.IsDefault,pattern:s,format:f,length:e,cvcLength:o,luhn:!0})})},n=function(n){var i,r,f,t,u;if(!PrismApi.policy.MetaData.CreditCardTypes)return null;for(n=(n+"").replace(/\D/g,""),t=[],r=0,f=PrismApi.policy.MetaData.CreditCardTypes().length;r<f;r++)i=PrismApi.policy.MetaData.CreditCardTypes()[r],i.pattern&&i.pattern.test(n)&&t.push(i);return t.length==0?null:t.length==1?t[0]:(u=ko.utils.arrayFilter(t,function(n){return n.parentType}),u.length==1?u[0]:void 0)},r=function(n){if(!(PrismApi.policy&&PrismApi.policy.MetaData&&PrismApi.policy.MetaData.CreditCardTypes))return null;for(var t,i=0,r=PrismApi.policy.MetaData.CreditCardTypes().length;i<r;i++)if(t=PrismApi.policy.MetaData.CreditCardTypes()[i],t.type===n)return t},a=function(n){var t,r,u,f,i,e;for(u=!0,f=0,r=(n+"").split("").reverse(),i=0,e=r.length;i<e;i++)t=r[i],t=parseInt(t,10),(u=!u)&&(t*=2),t>9&&(t-=9),f+=t;return f%10==0},t=function(n){var t;return n.prop("selectionStart")!=null&&n.prop("selectionStart")!==n.prop("selectionEnd")?!0:(typeof document!="undefined"&&document!==null?(t=document.selection)!=null?typeof t.createRange=="function"?t.createRange().text:void 0:void 0:void 0)?!0:!1},i=function(n){return setTimeout(function(){var i,t;return i=$(n.currentTarget),t=i.val(),t=PrismApi.payment.formatCardNumber(t),i.val(t)})},s=function(t){var u,f,r,s,e,o,i;if(r=String.fromCharCode(t.which),/^\d+$/.test(r))return(u=$(t.currentTarget),i=u.val(),f=n(i+r),s=(i.replace(/\D/g,"")+r).length,o=16,f&&(o=f.length[f.length.length-1]),s>=o)?void 0:u.prop("selectionStart")!=null&&u.prop("selectionStart")!==i.length?void 0:(e=f&&f.type==="amex"?/^(\d{4}|\d{4}\s\d{6})$/:/(?:^|\s)(\d{4})$/,e.test(i))?(t.preventDefault(),setTimeout(function(){return u.val(i+" "+r)})):e.test(i+r)?(t.preventDefault(),setTimeout(function(){return u.val(i+r+" ")})):void 0},e=function(n){var t,i;if(t=$(n.currentTarget),i=t.val(),n.which===8)return t.prop("selectionStart")!=null&&t.prop("selectionStart")!==i.length?void 0:/\d\s$/.test(i)?(n.preventDefault(),setTimeout(function(){return t.val(i.replace(/\d\s$/,""))})):/\s\d?$/.test(i)?(n.preventDefault(),setTimeout(function(){return t.val(i.replace(/\s\d?$/,""))})):void 0},u=function(n){return setTimeout(function(){var i,t;return i=$(n.currentTarget),t=i.val(),t=PrismApi.payment.formatExpiry(t),i.val(t)})},h=function(n){var i,r,t;if(r=String.fromCharCode(n.which),/^\d+$/.test(r))return(i=$(n.currentTarget),t=i.val()+r,/^\d$/.test(t)&&t!=="0"&&t!=="1")?(n.preventDefault(),setTimeout(function(){return i.val("0"+t+" / ")})):/^\d\d$/.test(t)?(n.preventDefault(),setTimeout(function(){return i.val(""+t+" / ")})):void 0},c=function(n){var t,r,i;if(r=String.fromCharCode(n.which),/^\d+$/.test(r))return t=$(n.currentTarget),i=t.val(),/^\d\d$/.test(i)?t.val(""+i+" / "):void 0},l=function(n){var i,t,r;if(r=String.fromCharCode(n.which),r==="/"||r===" ")return i=$(n.currentTarget),t=i.val(),/^\d$/.test(t)&&t!=="0"?i.val("0"+t+" / "):void 0},o=function(n){var t,i;if(t=$(n.currentTarget),i=t.val(),n.which===8)return t.prop("selectionStart")!=null&&t.prop("selectionStart")!==i.length?void 0:/\s\/\s\d?$/.test(i)?(n.preventDefault(),setTimeout(function(){return t.val(i.replace(/\s\/\s\d?$/,""))})):void 0},w=function(n){var t;return n.metaKey||n.ctrlKey?!0:n.which===32?!1:n.which===0?!0:n.which<33?!0:(t=String.fromCharCode(n.which),!!/[\d\s]/.test(t))},y=function(i){var f,r,e,u;if(f=$(i.currentTarget),e=String.fromCharCode(i.which),/^\d+$/.test(e))return t(f)?void 0:(u=(f.val()+e).replace(/\D/g,""),r=n(u),r?u.length<=r.length[r.length.length-1]:u.length<=16)},p=function(n){var r,u,i;if(r=$(n.currentTarget),u=String.fromCharCode(n.which),/^\d+$/.test(u))return t(r)?void 0:(i=r.val()+u,i=i.replace(/\D/g,""),i.length>6?!1:void 0)},v=function(n){var i,r,u;if(i=$(n.currentTarget),r=String.fromCharCode(n.which),/^\d+$/.test(r))return t(i)?void 0:(u=i.val()+r,u.length<=4)},f=function(n){if(PrismApi.policy.MetaData.CreditCardTypes){var t,r,u,i,f;return t=$(n.currentTarget),f=t.val(),i=PrismApi.payment.cardType(f)||"unknown",t.hasClass(i)?void 0:(r=function(){var n,i,t;for(t=[],n=0,i=PrismApi.policy.MetaData.CreditCardTypes().length;n<i;n++)u=PrismApi.policy.MetaData.CreditCardTypes()[n],t.push(u.type);return t}(),t.removeClass("unknown"),t.removeClass(r.join(" ")),t.addClass(i),t.toggleClass("identified",i!=="unknown"),t.trigger("payment.cardType",i))}},PrismApi.payment.fn.formatCardCVC=function(){this.payment("restrictNumeric");this.on("keypress",v);return this},PrismApi.payment.fn.formatCardExpiry=function(){this.payment("restrictNumeric");this.on("keypress",p);this.on("keypress",h);this.on("keypress",l);this.on("keypress",c);this.on("keydown",o);this.on("change",u);this.on("input",u);return this},PrismApi.payment.fn.formatCardNumber=function(){this.payment("restrictNumeric");this.on("keypress",y);this.on("keypress",s);this.on("keydown",e);this.on("keyup",f);this.on("paste",i);this.on("change",i);this.on("input",i);this.on("input",f);return this},PrismApi.payment.fn.restrictNumeric=function(){this.on("keypress",w);return this},PrismApi.payment.fn.cardExpiryVal=function(){return PrismApi.payment.cardExpiryVal($(this).val())},PrismApi.payment.cardExpiryVal=function(n){var i,r,t,u;return n=n.replace(/\s/g,""),u=n.split("/",2),i=u[0],t=u[1],(t!=null?t.length:void 0)===2&&/^\d+$/.test(t)&&(r=(new Date).getFullYear(),r=r.toString().slice(0,2),t=r+t),i=parseInt(i,10),t=parseInt(t,10),{month:i,year:t}},PrismApi.payment.validateCardNumber=function(t,i){var u,f;return(t=(t+"").replace(/\s+|-/g,""),!/^\d+$/.test(t))?!1:(u=i?r(i):n(t),!u)?!1:(u.pattern||/^\d+$/).test(t)?(f=t.length,b.call(u.length,f)>=0)&&(u.luhn===!1||a(t)):!1},PrismApi.payment.validateCardExpiry=function(n,t){var u,i,r;return(typeof n=="object"&&"month"in n&&(r=n,n=r.month,t=r.year),!(n&&t))?!1:(n=$.trim(n),t=$.trim(t),!/^\d+$/.test(n))?!1:/^\d+$/.test(t)?1<=n&&n<=12?(t.length===2&&(t=t<70?"20"+t:"19"+t),t.length!==4)?!1:(i=new Date(t,n),u=new Date,i.setMonth(i.getMonth()-1),i.setMonth(i.getMonth()+1,1),i>u):!1:!1},PrismApi.payment.validateCardCVC=function(n,t){var i,u;return(n=$.trim(n),!/^\d+$/.test(n))?!1:(i=r(t),i!=null?(u=n.length,b.call(i.cvcLength,u)>=0):n.length>=3&&n.length<=4)},PrismApi.payment.cardType=function(t){var i;return t?((i=n(t))!=null?i.type:void 0)||null:null},PrismApi.payment.formatCardNumber=function(t){var i,r,u,f;return(i=n(t),!i||!i.format)?t:(u=i.length[i.length.length-1],t=t.replace(/\D/g,""),t=t.slice(0,u),i.format.global?(f=t.match(i.format))!=null?f.join(" "):void 0:(r=i.format.exec(t),r==null)?void 0:(r.shift(),r=$.grep(r,function(n){return n!=null&&n!=undefined&&n!=""}),r.join(" ")))},PrismApi.payment.formatExpiry=function(n){var t,r,i,u;return(r=n.match(/^\D*(\d{1,2})(\D+)?(\d{1,4})?/),!r)?"":(t=r[1]||"",i=r[2]||"",u=r[3]||"",(u.length>0||i.length>0&&!/\ \/?\ ?/.test(i))&&(i=" / "),t.length===1&&t!=="0"&&t!=="1"&&(t="0"+t,i=" / "),t+i+u)}}(),PrismApi=PrismApi||{},PrismApi.fn={_init:function(){ko.extenders.isoDate=function(n){return n.formattedDate=ko.computed({read:function(){if(n()==null)return"";var t=Date.create(n());return t?t.toFormattedString(PrismApi.Client.datepicker.getDateFormat()):""},write:function(t){var i=PrismApi.Utils.formattedStringToDate(t);i?n(i.getDateOnly().format(Date.ISO8601_DATE)):n(null)}}),n()&&n.formattedDate()!=""&&n.formattedDate(n().split("T")[0]),n},ko.extenders.blankDOB=function(n,t){return t&&(n.hasEntered=ko.observable(!1),n.enteredText=ko.observable(),n.enteredDOB=ko.computed({read:function(){if(n()==null)return"";var t=Date.create(n());return t?n.hasEntered()?t.toFormattedString(PrismApi.Client.datepicker.getDateFormat()):n.enteredText():n.enteredText()},write:function(t){n.enteredText(t);var i=PrismApi.Utils.formattedStringToDate(t),r=new Date(Date.parse(n())).age();isNaN(i)||i==null||i.age()!==r?(i=PrismApi.Utils.formattedStringToDate("1/1/"+((new Date).getFullYear()-r)),n.hasEntered(!1)):n.hasEntered(!0),n(i.getDateOnly().format(Date.ISO8601_DATE))}}),n.enteredDOB.extend({isoDate:"",min:{params:function(){var t=new Date,i=new Date(Date.parse(n())).age(),r=t.getFullYear()-i;return new Date(r-1,t.getMonth(),t.getDate()+1)},message:PrismApi.Validation.messages.travellers.invalidDobRange},max:{params:function(){var t=new Date,i=new Date(Date.parse(n())).age(),r=t.getFullYear()-i;return new Date(r,t.getMonth(),t.getDate())},message:PrismApi.Validation.messages.travellers.invalidDobRange},date:{params:!0,message:PrismApi.Validation.messages.travellers.invalidDobDate},pattern:{params:PrismApi.Validation.patterns.date,message:PrismApi.Validation.messages.travellers.invalidDobDate},required:{params:!0,message:PrismApi.Validation.messages.travellers.requiredDob}})),n},PrismApi.baseUrl||(PrismApi.baseUrl=_session.baseUrl)},_getApiError:function(n){var t,i;return n&&n.responseText&&n.getResponseHeader("Content-Type")&&n.getResponseHeader("Content-Type").indexOf("application/json")>-1?(t=JSON.parse(n.responseText),new PrismApi.Data.ApiError(n.status,t.Errors,t.ExceptionMessage,t.ModelState,t.StackTrace,t.MessageCode,t.RedirectUrl)):(i="Service unavailable. Please try again later.",new PrismApi.Data.ApiError(n.status,[],i))},_validatePolicy:function(){var n=[],u=PrismApi.Validation.validatePolicyAgainstPage(PrismApi.policy),t,i,r;return n=ko.utils.arrayPushAll(n,u),t=PrismApi.Validation.validatePolicyAgainstQuickQuoteOptions(PrismApi.policy,PrismApi.quickQuoteOptions()),n=ko.utils.arrayPushAll(n,t),i=PrismApi.Validation.validatePolicyAgainstFullQuoteOptions(PrismApi.policy,PrismApi.fullQuoteOptions),n=ko.utils.arrayPushAll(n,i),r=PrismApi.Validation.validatePolicyAgainstPaymentOptions(PrismApi.policy,PrismApi.paymentOptions()),ko.utils.arrayPushAll(n,r)},setContext:function(n,t,i,r){_session=_session||{},_session.context=_session.context||{},_session.context.Type=n,_session.context.EntityId=t,_session.context.IncludeHistory=r?r:!1,_session.context.ClientRefNo=i?i:undefined},getQuickQuoteOptions:function(){var n=$.Deferred(),t;return($($$.Client.spinner).show(),_session.quickQuoteOptions)?(PrismApi.quickQuoteOptions(_session.quickQuoteOptions),PrismApi.policy.fn.applyQuickQuoteOptionsToViewModel(),n.resolve(_session.quickQuoteOptions),window.console.log("data previously loaded for PrismApi.quickQuoteOptions. No service call is required."),n.promise()):(t=ko.unwrap(PrismApi.policy.QuoteId),t==null&&(t=ko.unwrap(PrismApi.policy.PreviousQuoteId)),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.QuickQuoteOptions+(t!==undefined?"?id="+t:"")).done(function(t){PrismApi.quickQuoteOptions(t),PrismApi.policy.fn.applyQuickQuoteOptionsToViewModel(),n.resolve(t),window.console.log("data loaded for PrismApi.quickQuoteOptions")}).fail(function(t){PrismApi.quickQuoteOptions(undefined),PrismApi.policy.fn.applyQuickQuoteOptionsToViewModel();var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail to load quickQuoteOptions")}).always(function(){$($$.Client.spinner).hide()}),n.promise())},getCountries:function(n){var t=$.Deferred(),i;return($($$.Client.spinner).show(),_session.regionCountries&&(i=ko.utils.arrayFirst(_session.regionCountries,function(t){return t.Region.BriefCode===n.BriefCode()}),i))?(PrismApi.regionCountries=_session.regionCountries,t.resolve(_session.regionCountries),window.console.log("data previously loaded for PrismApi.regionCountries of region '{0}'. No service call is required.".format(n.Description())),t.promise()):(PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Countries.format(n.BriefCode())).done(function(i){PrismApi.regionCountries=i,t.resolve(i),window.console.log("data loaded for PrismApi.regionCountries of region '{0}'".format(n.Description()))}).fail(function(i){PrismApi.regionCountries=undefined;var r=PrismApi.fn._getApiError(i);t.reject(r),PrismApi.Utils.logError(r,"fail to load PrismApi.regionCountries of region '{0}'".format(n.Description()))}).always(function(){$($$.Client.spinner).hide()}),t.promise())},getDestinations:function(){var n=$.Deferred(),i,t;return($($$.Client.spinner).show(),i=function(n){ko.utils.arrayForEach(n,function(n){var t=ko.utils.arrayFirst($$.policy.MetaData.Regions(),function(t){return ko.utils.unwrapObservable(t.BriefCode)==ko.utils.unwrapObservable(n.BriefCode)});t?(t.Countries.length=0,t.Countries=ko.observableArray(),ko.utils.arrayPushAll(t.Countries,n.Countries)):($$.policy.MetaData.Regions.push(n),t=n),$$.policy.Destinations()&&ko.utils.arrayForEach($$.policy.Destinations(),function(t){var i,r;ko.utils.unwrapObservable(t.BriefCode)==n.BriefCode&&(t.Description||(t.Description=ko.observable()),t.Description(n.Description),t.Country&&(i=ko.utils.arrayFirst(n.Countries,function(n){return ko.utils.unwrapObservable(t.Country.BriefCode)==n.BriefCode}),i&&(t.Country.Description||(t.Country.Description=ko.observable()),t.Country.Description(i.Description)),i&&i.Locations&&t.Country.Location&&(r=ko.utils.arrayFirst(i.Locations,function(n){return ko.utils.unwrapObservable(t.Country.Location.BriefCode)==n.BriefCode}),r&&(t.Country.Location.Description||(t.Country.Location.Description=ko.observable()),i&&t.Country.Location.Description(r.Description)))))})})},_session.destinationOptions)?(n.resolve(_session.destinationOptions),i(_session.destinationOptions.Regions),window.console.log("data previously loaded for PrismApi.policy.MetaData.Regions. No service call is required."),n.promise()):(t=ko.unwrap(PrismApi.policy.QuoteId),t==null&&(t=ko.unwrap(PrismApi.policy.PreviousQuoteId)),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Destinations+(t!==undefined?"?id="+t:"")).done(function(t){i(t.Regions),n.resolve(t),window.console.log("data loaded for PrismApi.policy.MetaData.Regions")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail to load PrismApi.policy.MetaData.Regions")}).always(function(){$($$.Client.spinner).hide()}),n.promise())},getProductDescriptions:function(){var n=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.ProductDescriptions,{},"GET").done(function(t){PrismApi.productDescriptions=t,PrismApi.policy.fn.applyProductDescriptionsToViewModel(),n.resolve(),window.console.log("data loaded for PrismApi.productDescriptions")}).fail(function(t){PrismApi.productDescriptions=[],PrismApi.policy.fn.applyProductDescriptionsToViewModel();var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getProductDescriptions()")}),n.promise()},getProductBenefits:function(){var n=$.Deferred();return($($$.Client.spinner).show(),PrismApi.productBenefits!=undefined&&PrismApi.productBenefits.length>0)?(PrismApi.policy.fn.applyProductBenefitsToViewModel(),window.console.log("data previously loaded for PrismApi.productBenefits. No service call is required."),n.resolve(PrismApi.productBenefits),n.promise()):(PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Benefits).done(function(t){PrismApi.productBenefits=t,PrismApi.policy.fn.applyProductBenefitsToViewModel(),window.console.log("data loaded for PrismApi.productBenefits"),n.resolve(t)}).fail(function(t){PrismApi.productBenefits=[],PrismApi.policy.fn.applyProductBenefitsToViewModel();var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail to load productBenefits")}).always(function(){$($$.Client.spinner).hide()}),n.promise())},getBulkQuickQuote:function(n,t,i,r){var u,f,s,h,c,o,e;try{if(u=$.Deferred(),f=[],$($$.Client.spinner).show(),t&&(s=PrismApi.Validation.validatePolicyAgainstPage(PrismApi.policy),f=ko.utils.arrayPushAll(f,s)),f.length==0&&(h=PrismApi.Validation.validatePolicyAgainstQuickQuoteOptions(PrismApi.policy,PrismApi.quickQuoteOptions()),f=ko.utils.arrayPushAll(f,h)),f.length>0)return e=new PrismApi.Data.ApiError(null,f,null),u.reject(e),PrismApi.Utils.logError(e,"fail on getBulkQuickQuote"),u.promise();if(i)return u.resolve(),u.promise();r?(c=$$.policy.Plan,$$.policy.Plan={CoverLevel:{BriefCode:r.CoverLevelBriefCode},CoverType:{BriefCode:r.CoverTypeBriefCode}},o=PrismApi.policy.fn.toJSONForContext("getBulkMultiQuickQuote"),$$.policy.Plan=c):o=PrismApi.policy.fn.toJSONForContext("getBulkQuickQuote"),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.QuickQuote,o,"POST").done(function(t){var i=t;PrismApi.bulkQuickQuote=i,PrismApi.policy.fn.applyBulkPremiumsToViewModel(),i.PricingRegions&&PrismApi.policy.PricingRegions(ko.mapping.fromJS(i.PricingRegions)()),window.console.log("data loaded for PrismApi.bulkQuickQuote"),n?PrismApi.fn.getProductBenefits().fail(function(){console.log("getBulkQuickQuote fail to call PrismApi.getProductBenefits().")}).always(function(){u.resolve(t)}):u.resolve(t)}).fail(function(n){PrismApi.bulkQuickQuote=undefined,PrismApi.policy.fn.applyBulkPremiumsToViewModel();var t=PrismApi.fn._getApiError(n);u.reject(t),PrismApi.Utils.logError(t,"PrismApi.getBulkQuickQuote()")}).always(function(){$($$.Client.spinner).hide()})}catch(l){PrismApi.bulkQuickQuote=undefined,PrismApi.policy.fn.applyBulkPremiumsToViewModel(),e=new PrismApi.Data.ApiError(null,["fail on getBulkQuickQuote."],l),u.reject(e),PrismApi.Utils.logError(e,"PrismApi.getBulkQuickQuote()")}return u.promise()},getBulkQuickQuoteWithQuote:function(n,t,i,r,u){var f,e,h,c,s,l,o;try{if(f=$.Deferred(),e=[],$($$.Client.spinner).show(),i&&(h=PrismApi.Validation.validatePolicyAgainstPage(n),e=ko.utils.arrayPushAll(e,h)),e.length==0&&(c=PrismApi.Validation.validatePolicyAgainstQuickQuoteOptions(n,PrismApi.quickQuoteOptions()),e=ko.utils.arrayPushAll(e,c)),e.length>0)return o=new PrismApi.Data.ApiError(null,e,null),f.reject(o),PrismApi.Utils.logError(o,"fail on getBulkQuickQuote"),f.promise();if(r)return f.resolve(),f.promise();u?(l=n.Plan,n.Plan={CoverLevel:{BriefCode:u.CoverLevelBriefCode},CoverType:{BriefCode:u.CoverTypeBriefCode}},s=n.fn.toJSONForContext("getBulkMultiQuickQuote"),n.Plan=l):s=n.fn.toJSONForContext("getBulkQuickQuote"),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.QuickQuote,s,"POST").done(function(i){var r=i;PrismApi.bulkQuickQuote=r,n.fn.applyBulkPremiumsToViewModel(),r.PricingRegions&&n.PricingRegions(ko.mapping.fromJS(r.PricingRegions)()),window.console.log("data loaded for PrismApi.bulkQuickQuote"),t?PrismApi.fn.getProductBenefits().fail(function(){console.log("getBulkQuickQuote fail to call PrismApi.getProductBenefits().")}).always(function(){f.resolve(i)}):f.resolve(i)}).fail(function(t){PrismApi.bulkQuickQuote=undefined,n.fn.applyBulkPremiumsToViewModel();var i=PrismApi.fn._getApiError(t);f.reject(i),PrismApi.Utils.logError(i,"PrismApi.getBulkQuickQuote()")}).always(function(){$($$.Client.spinner).hide()})}catch(a){PrismApi.bulkQuickQuote=undefined,n.fn.applyBulkPremiumsToViewModel(),o=new PrismApi.Data.ApiError(null,["fail on getBulkQuickQuote."],a),f.reject(o),PrismApi.Utils.logError(o,"PrismApi.getBulkQuickQuote()")}return f.promise()},persistQuote:function(){var n,r,i,t;try{n=$.Deferred(),r="",$($$.Client.spinner).show(),i=PrismApi.policy.fn.toJSONForContext("persist"),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Persist,i,"POST").done(function(t){n.resolve(t),window.console.log("data loaded for PrismApi.persistQuote")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.persistQuote()")}).always(function(){$($$.Client.spinner).hide()})}catch(u){t=new PrismApi.Data.ApiError(null,["fail on persistQuote."],u),n.reject(t),PrismApi.Utils.logError(t,"PrismApi.persistQuote()")}return n.promise()},calculateMultiTripEndDate:function(){var n,r,i,t;try{n=$.Deferred(),r="",$($$.Client.spinner).show(),i=PrismApi.policy.fn.toJSONForContext("getQuickQuote"),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.CalculateMultiTripEndDate,i,"POST").done(function(t){n.resolve(t),$$.policy.EndDate(t.EndDate),window.console.log("multi-trip end date calculated")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.calculateMultiTripEndDate()")}).always(function(){$($$.Client.spinner).hide()})}catch(u){t=new PrismApi.Data.ApiError(null,["fail on calculateMultiTripEndDate."],u),n.reject(t),PrismApi.Utils.logError(t,"PrismApi.calculateMultiTripEndDate()")}return n.promise()},getQuickQuote:function(n){var t,f,r,u,i;try{if(t=$.Deferred(),f="",$($$.Client.spinner).show(),n==undefined)throw new Error("bulkPremium is invalid.");if(PrismApi.policy.fn.applyBulkPremiumValuesToViewModel(n),r=PrismApi.Validation.validatePolicyAgainstQuickQuoteOptions(PrismApi.policy,PrismApi.quickQuoteOptions()),r.length>0)return i=new PrismApi.Data.ApiError(null,r,null),t.reject(i),PrismApi.Utils.logError(i,"fail on getQuickQuote"),t.promise();u=PrismApi.policy.fn.toJSONForContext("getQuickQuote"),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.QuickQuote,u,"POST").done(function(i){var r=ko.utils.arrayFirst(PrismApi.bulkQuickQuote.BulkPremiums,function(t){return t.Plan.PlanId==n.Plan.PlanId()});r&&(r.Premium=i.Premium),t.resolve(i),window.console.log("data loaded for PrismApi.getQuickQuote")}).fail(function(n){var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.getQuickQuote()")}).always(function(){$($$.Client.spinner).hide()})}catch(e){i=new PrismApi.Data.ApiError(null,["fail on getQuickQuote."],e),t.reject(i),PrismApi.Utils.logError(i,"PrismApi.getQuickQuote()")}return t.promise()},setPlan:function(n){var t=$.Deferred(),u=function(n){var i=PrismApi.policy.MetaData.BulkPremiums(),t=ko.utils.arrayFilter(i,function(t){return t.Plan.PlanId()==n});if(t.length==0)throw new Error("Plan {0} could not be found in BulkQuickQuotes".format(n));return t[0]},r,i;try{if(n==undefined)throw new Error("Plan Id has not been set.");if(PrismApi.bulkQuickQuote==null||PrismApi.bulkQuickQuote==undefined)throw new Error("PrismApi.bulkQuickQuote has not been set.");r=u(n),PrismApi.policy.fn.applyBulkPremiumValuesToViewModel(r),t.resolve(),window.console.log("plan {0} set successfully.".format(n))}catch(f){PrismApi.policy.fn.applyBulkPremiumToViewModel(null),i=new PrismApi.Data.ApiError(null,["fail to set plan."],f),t.reject(i),PrismApi.Utils.logError(i,"PrismApi.setPlan()")}return t.promise()},getFullQuoteOptions:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("getFullQuoteOptions");return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.FullQuoteOptions,t,"POST").done(function(t){PrismApi.fullQuoteOptions=t,PrismApi.policy.fn.applyFullQuoteOptionsToViewModel(),n.resolve(),window.console.log("data loaded for PrismApi.fullQuoteOptions")}).fail(function(t){PrismApi.fullQuoteOptions=undefined,PrismApi.policy.fn.applyFullQuoteOptionsToViewModel();var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getFullQuoteOptions()")}),n.promise()},getFullQuote:function(n,t,i){var u=$.Deferred(),h=PrismApi.policy.fn.toJSONForContext("getFullQuote"),r=[],e,o,s,f;return((n||t)&&(e=PrismApi.Validation.validatePolicyAgainstPage(PrismApi.policy),r=ko.utils.arrayPushAll(r,e)),n&&(o=PrismApi.Validation.validatePolicyAgainstQuickQuoteOptions(PrismApi.policy,PrismApi.quickQuoteOptions()),r=ko.utils.arrayPushAll(r,o),s=PrismApi.Validation.validatePolicyAgainstFullQuoteOptions(PrismApi.policy,PrismApi.fullQuoteOptions),r=ko.utils.arrayPushAll(r,s)),r.length>0)?(f=new PrismApi.Data.ApiError(null,r,null),u.reject(f),PrismApi.Utils.logError(f,["fail on getFullQuote"]),u.promise()):(PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.FullQuote+"?rescore={0}".format(i===!0?"true":"false"),h,"POST").done(function(n){PrismApi.policy.Benefits()&&ko.utils.arrayForEach(PrismApi.policy.Benefits(),function(n){n.Premium(undefined)}),PrismApi.policy.Adjustments()&&ko.utils.arrayForEach(PrismApi.policy.Adjustments(),function(n){n.Premium(undefined),n.IsDiscount(undefined)}),PrismApi.policy.Premium(n.Premium),PrismApi.policy.PurchaseAmount(n.PurchaseAmount?n.PurchaseAmount:"0.00"),PrismApi.policy.IsRefund(n.IsRefund),PrismApi.policy.fn.applyViolationsToViewModel(null,n),n.Benefits&&ko.utils.arrayForEach(n.Benefits,function(n){var t=PrismApi.policy.fn.getBenefit(n.BriefCode);t&&t.Premium(n.Premium)}),n.Adjustments&&ko.utils.arrayForEach(n.Adjustments,function(n){var i=n.BriefCode,t;n.MetaData&&n.MetaData.InputBriefCode&&(i=n.MetaData.InputBriefCode),t=PrismApi.policy.fn.getAdjustment(i),t&&(t.IsDiscount(n.IsDiscount),t.Premium(n.Premium))}),n.PricingRegions&&PrismApi.policy.PricingRegions(ko.mapping.fromJS(n.PricingRegions)()),i===!0&&(PrismApi.policy.QuoteReference(n.QuoteReference),PrismApi.policy.QuoteId(n.QuoteId),PrismApi.policy.fn.applyPeAssessmentToViewModel(n)),u.resolve(n),window.console.log("PrismApi.policy has been updated.")}).fail(function(n){PrismApi.policy.fn.applyViolationsToViewModel(n);var t=PrismApi.fn._getApiError(n);u.reject(t),PrismApi.Utils.logError(t,["PrismApi.getFullQuote()"])}),u.promise())},saveFullQuote:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("getFullQuote");return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.FullQuote,t,"PUT").done(function(t){PrismApi.policy.QuoteReference(t.QuoteReference),PrismApi.policy.QuoteId(t.QuoteId),PrismApi.policy.fn.applyOwnerToViewModel(t),n.resolve(),window.console.log("quote saved. Quote Reference: "+t.QuoteReference)}).fail(function(t){PrismApi.policy.fn.applyViolationsToViewModel(t);var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.saveFullQuote()")}),n.promise()},getOptionBenefits:function(){var n=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.OptionBenefits,{},"GET").done(function(t){PrismApi.optionBenefits=t,PrismApi.policy.fn.applyOptionBenefitsToViewModel(),n.resolve(),window.console.log("data loaded for PrismApi.optionBenefits")}).fail(function(t){PrismApi.optionBenefits=undefined;var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getOptionBenefits()")}),n.promise()},getPremiumExtraInfo:function(){var n=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.PremiumExtraInfo,{},"GET").done(function(t){PrismApi.premiumExtraInfo=t,PrismApi.policy.fn.applyPremiumExtraInfoToViewModel(),n.resolve(),window.console.log("data loaded for PrismApi.premiumExtraInfo")}).fail(function(t){PrismApi.premiumExtraInfo=undefined;var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getPremiumExtraInfo()")}),n.promise()},getCardEligibleCoverLevels:function(){var n=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.CardEligibleCoverLevels,{},"GET").done(function(t){PrismApi.policy.fn.applyCardEligibleCoverLevelsToViewModel(t),n.resolve(),window.console.log("data loaded for PrismApi.cardEligibleCoverLevels")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getCardEligibleCoverLevels()")}),n.promise()},getPlanDescriptions:function(){var n=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.PlanDescriptions,{},"GET").done(function(t){PrismApi.planDescriptions=t,PrismApi.policy.fn.applyPlanDescriptionsToViewModel(),n.resolve(),window.console.log("data loaded for PrismApi.planDescriptions")}).fail(function(t){PrismApi.planDescriptions=undefined;var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getPlanDescriptions()")}),n.promise()},getTravellerOptions:function(){var n=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.TravellerOptions,{},"GET").done(function(t){PrismApi.travellerOptions(t),$.each(PrismApi.policy.MetaData.AllTravellers(),function(n,t){t.MetaData.TitleGroups&&t.MetaData.TitleGroups()&&t.MetaData.TitleGroups().length!==0||!t.TitleGroup.rules||t.TitleGroup.rules(ko.utils.arrayFilter(t.TitleGroup.rules(),function(n){return n.rule!=="required"}))}),n.resolve(),window.console.log("data loaded for PrismApi.travellerOptions")}).fail(function(t){PrismApi.travellerOptions(undefined),$.each(PrismApi.policy.MetaData.AllTravellers(),function(n,t){t.MetaData.TitleGroups&&t.MetaData.TitleGroups()&&t.MetaData.TitleGroups().length!==0||!t.TitleGroup.rules||t.TitleGroup.rules(ko.utils.arrayFilter(t.TitleGroup.rules(),function(n){return n.rule!=="required"}))});var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getTravellerOptions()")}),n.promise()},sendQuoteEmail:function(){var n=$.Deferred();if(PrismApi.policy.QuoteReference())return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.FullQuoteDocument.format(PrismApi.policy.QuoteReference())+"?method=email",{},"GET").done(function(){n.resolve(),window.console.log("quote emailed. Quote Reference: "+PrismApi.policy.QuoteReference())}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.sendQuoteEmail()")}),n.promise()},sendPolicyEmail:function(){var n=$.Deferred();if(PrismApi.policy.ClientReference())return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.PolicyDocument.format(PrismApi.policy.ClientReference())+"?method=email",{},"GET").done(function(){n.resolve(),window.console.log("policy emailed. Quote Reference: "+PrismApi.policy.ClientReference())}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.sendPolicyEmail()")}),n.promise()},getPaymentOptions:function(){var n=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.PaymentOptions).done(function(t){PrismApi.paymentOptions(t),PrismApi.policy.fn.applyPaymentOptionsToViewModel(),n.resolve(),window.console.log("data loaded for PrismApi.paymentOptions")}).fail(function(t){PrismApi.paymentOptions(undefined),PrismApi.policy.fn.applyPaymentOptionsToViewModel();var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail to load paymentOptions")}),n.promise()},moveTravellerToNonMedicalQuote:function(n){var t=$.Deferred(),i=JSON.stringify({quote:JSON.parse(PrismApi.policy.fn.toJSONForContext("getFullQuote")),travellerIndex:n});return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.SaveNonMedicalQuote,i,"PUT").done(function(i){var u=ko.utils.arrayFirst($$.policy.MetaData.AllTravellers(),function(t){return t.MetaData.TravellerIndex==n}),r,f;u&&(r=$$.policy.PolicyHolders.indexOf(u),r!="undefined"&&r>-1?($$.policy.PolicyHolders.remove(u),$$.policy.MetaData.AdultAges.splice(r,1)):(r=$$.policy.PolicyDependants.indexOf(u),r!="undefined"&&r>-1&&($$.policy.PolicyDependants.remove(u),$$.policy.MetaData.DependantAges.splice(r,1)))),f={newQuote:i,traveller:u},$$.fn.persistQuote().always(function(){t.resolve(f)}),window.console.log("traveller moved to Non Medical quote")}).fail(function(n){var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"fail to move traveller to Non Medical quote")}),t.promise()},savePEAssessment:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("getFullQuote");return $$.Utils.ajaxCall(PrismApi.Client.serviceUrls.SavePEAssessment,t,"PUT").done(function(t){$$.policy.QuoteReference(t.QuoteReference),$$.policy.QuoteId(t.QuoteId),$$.policy.fn.applyOwnerToViewModel(t),n.resolve(),window.console.log("SavePEAssessment has completed sucessfully.")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail on SavePEAssessment")}),n.promise()},purchase:function(){var n=$.Deferred(),r=PrismApi.policy.fn.toJSONForContext("purchase"),i=PrismApi.fn._validatePolicy(),t;return i.length>0?(t=new PrismApi.Data.ApiError(null,i,null),n.reject(t),PrismApi.Utils.logError(t,"fail on purchase"),n.promise()):(PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Purchase,r,"POST").done(function(t){PrismApi.policy.fn.applyPurchaseToViewModel(t),n.resolve(),window.console.log("PrismApi.policy has been updated.")}).fail(function(t,i){var r,u;i==="timeout"?(r={StatusCode:408,ExceptionMessage:"timeout"},n.reject(r),PrismApi.Utils.logError(r,"timeout on purchase")):(PrismApi.policy.fn.applyPurchaseToViewModel(null),PrismApi.policy.fn.applyViolationsToViewModel(t),u=PrismApi.fn._getApiError(t),n.reject(u),PrismApi.Utils.logError(u,"fail on purchase"))}),n.promise())},endorse:function(){var n=$.Deferred(),r=PrismApi.policy.fn.toJSONForContext("endorsement"),i=PrismApi.fn._validatePolicy(),t;return i.length>0?(t=new PrismApi.Data.ApiError(null,i,null),n.reject(t),PrismApi.Utils.logError(t,"fail on endorsement"),n.promise()):(PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Endorse,r,"POST").done(function(t){PrismApi.policy.fn.applyPurchaseToViewModel(t),n.resolve(),window.console.log("PrismApi.policy has been updated.")}).fail(function(t){PrismApi.policy.fn.applyPurchaseToViewModel(null),PrismApi.policy.fn.applyViolationsToViewModel(t);var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail on endorsement")}),n.promise())},saveAccount:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("endorsement");return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.SaveAccount,t,"POST").done(function(t){PrismApi.policy.IsCancelled(t.IsCancelled),n.resolve(),window.console.log("PrismApi.policy has been updated.")}).fail(function(t){PrismApi.policy.fn.applyViolationsToViewModel(t);var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail on endorsement")}),n.promise()},cancelPolicy:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("cancel");return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Cancel,t,"POST").done(function(t){PrismApi.policy.RefundException(t.RefundException),n.resolve(t),window.console.log("PrismApi.policy has been cancelled.")}).fail(function(t){PrismApi.policy.fn.applyViolationsToViewModel(t);var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail on cancellation")}),n.promise()},getDocument:function(n){document.location.href=PrismApi.Client.serviceUrls.PolicyDocument.format(n)},retrieveFullQuote:function(n){var t=$.Deferred(),i=PrismApi.Client.serviceUrls.RetrieveFullQuote.format(n);return _session.context.IncludeHistory&&(i=i+"&includeHistory={0}".format(_session.context.IncludeHistory)),PrismApi.Utils.ajaxCall(i).done(function(n){t.resolve(n),window.console.log("Quote {0} has been retrieved successfully.".format(n.QuoteReference))}).fail(function(n){var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.retrieveQuote()")}),t.promise()},retrievePolicyById:function(n){var t=$.Deferred(),i=PrismApi.Client.serviceUrls.RetrievePolicyById.format(n);return _session.context.IncludeHistory&&(i=i+"&includeHistory={0}".format(_session.context.IncludeHistory)),PrismApi.Utils.ajaxCall(i).done(function(n){t.resolve(n),window.console.log("Policy {0} has been retrieved successfully.".format(n.ClientReference))}).fail(function(n){var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.retrievePolicyById()")}),t.promise()},retrievePolicyByClientRefNo:function(n){var t=$.Deferred(),i=PrismApi.Client.serviceUrls.RetrievePolicyByClientRefNo.format(n);return _session.context.IncludeHistory&&(i=i+"&includeHistory={0}".format(_session.context.IncludeHistory)),PrismApi.Utils.ajaxCall(i).done(function(n){t.resolve(n),window.console.log("Policy {0} has been retrieved successfully.".format(n.ClientReference))}).fail(function(n){var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.retrievePolicyByClientRefNo()")}),t.promise()},validateHealixAssesment:function(n,t,i,r){var u=$.Deferred(),f=[],e;return(n.ScreeningResult.ScreeningStatus()=="DECNM"&&t=="b2b"||n.ScreeningResult.ScreeningStatus()=="DECNP"&&t!=="b2b"||n.ScreeningResult.ScreeningStatus()=="APPPP")&&n.MetaData.IsEnabled()===""?(f.push(new PrismApi.Data.ErrorMessage("Accept Offer",i!="undefined"&&r!="undefined"?PrismApi.Validation.messages.travellers.requiredPreExistingOffer.format("",(r?"Dependant":"Adult")+" "+(i+1)):"Please select an offer")),e=new PrismApi.Data.ApiError(null,f,null),$($$.Client.spinner).hide(),u.reject(e),u.promise()):n.ScreeningResult.ScreeningStatus()=="APPPP"&&n.CalculationOption.SelectedExcessPremiumIndex()===-1?(f.push(new PrismApi.Data.ErrorMessage("Accept Offer",i!="undefined"&&r!="undefined"?PrismApi.Validation.messages.travellers.requiredPreExistingExcessPremium.format("",(r?"Dependant":"Adult")+" "+(i+1)):"Please select an offer")),e=new PrismApi.Data.ApiError(null,f,null),$($$.Client.spinner).hide(),u.reject(e),u.promise()):(u.resolve(),u.promise())},retrieveHealixFatalCondition:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("getFullQuote");return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.HealixFatalQuestions,t,"POST").done(function(t){PrismApi.policy.fn.applyPeFatalToViewModel(t),window.console.log("data loaded for PrismApi.retrieveFatalCondition()"),n.resolve(t)}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.retrieveFatalCondition()")}),n.promise()},retrieveHealixAssessment:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("getFullQuote");return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.HealixAssessment,t,"POST").done(function(t){window.console.log("data loaded for PrismApi.retrieveHealixAssessment()"),n.resolve(t)}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,["PrismApi.retrieveHealixAssessment()"])}),n.promise()},persistAssessment:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("getFullQuote");return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.HealixPersistFatalQuestions,t,"POST").done(function(){window.console.log("data loaded for PersistAssessment"),n.resolve()}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.PersistAssessment()")}),n.promise()},getBaseUrl:function(){return location.protocol+"//"+location.hostname+(location.port&&":"+location.port)+"/"},retrieveInstance:function(n){var t=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.RetrieveInstance.format(n)).done(function(n){t.resolve(n),window.console.log("Workflow Instance {0} has been retrieved successfully.".format(n.Instance.InstanceId))}).fail(function(n){var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.retrieveInstance()")}),t.promise()},init:function(){var n=$.Deferred(),u,i,t,r,e,f;try{return _session.quickQuoteOptions&&PrismApi.quickQuoteOptions(_session.quickQuoteOptions),_session.bulkQuickQuote&&(PrismApi.bulkQuickQuote=_session.bulkQuickQuote),_session.fullQuoteOptions&&(PrismApi.fullQuoteOptions=_session.fullQuoteOptions),_session.productBenefits&&(PrismApi.productBenefits=_session.productBenefits),_session.optionBenefits&&(PrismApi.optionBenefits=_session.optionBenefits),_session.peOptions&&(PrismApi.peOptions=_session.peOptions,PrismApi.fullQuoteOptions&&(PrismApi.fullQuoteOptions&&(_session.fullQuoteOptions.PeOptions.FatalFlag=_session.peOptions.FatalFlag,_session.fullQuoteOptions.PeOptions.FirstHolderFlag=_session.peOptions.FirstHolderFlag,PrismApi.fullQuoteOptions=_session.fullQuoteOptions),PrismApi.fullQuoteOptions=_session.fullQuoteOptions)),PrismApi.fn._init(),u=function(){var n=function(t){for(var i in t)t.hasOwnProperty(i)&&(typeof t[i]=="object"&&n(t[i]),["StartDate","EndDate","DateOfBirth","CoverStartDate","CoverEndDate"].indexOf(i)>=0&&t[i]&&t[i].length>10&&(t[i]=t[i].substr(0,10)))},t;n(_session.policy),PrismApi.policy=PrismApi.policy||new PrismApi.Data.Policy(_session.policy),_session.peOptions&&($$.policy.PeOptions.FatalFlag(_session.peOptions.FatalFlag),$$.policy.PeOptions.PeFatalQuestion(_session.peOptions.PeFatalQuestion)),PrismApi.Client.extendViewModel(PrismApi.policy),ko.validation.configure(PrismApi.Validation.koValidationConfiguration),ko.validation.init({grouping:{deep:!0,observable:!1}}),t=function(){var n=new ko.bindingProvider;this.nodeHasBindings=n.nodeHasBindings,this.getBindings=function(t,i){var u,o,r,f,e,s;try{u=n.getBindings(t,i)}catch(b){console&&console.log&&console.log("Error in binding: "+b.message,t)}if(PrismApi.policy.EditRestrictions&&(o=ko.unwrap(PrismApi.policy.EditRestrictions),o)){var h=ko.unwrap(o.Fields)||[],c=ko.unwrap(o.Actions)||[],l=ko.unwrap(o.Sections)||[];if(t.nodeType==1&&h&&h.length>0&&n.nodeHasBindings(t)){var a=n.getBindingsString(t,i),v=ko.jsonExpressionRewriting.parseObjectLiteral(a),y=new RegExp("[^:]*("+h.join("|")+")[^.(]*");for(r in u)u.hasOwnProperty(r)&&r!=="_ko_property_writers"&&(f=ko.utils.arrayFirst(v,function(n){return n.key==r}),f&&(e=f.value.trim(),s=y.exec(e),s!=null&&$(t).is(":input")&&(u.attr={readonly:!0,disabled:"disabled"})))}if(t.nodeType==1&&c&&c.length>0&&n.nodeHasBindings(t)){var a=n.getBindingsString(t,i),v=ko.jsonExpressionRewriting.parseObjectLiteral(a),p=ko.utils.arrayFilter(c,function(n){return n!="*"}).join("|"),w=p.indexOf("*")>=0,y=new RegExp("[^:]*("+p+")[^.(]*");for(r in u)u.hasOwnProperty(r)&&r!=="_ko_property_writers"&&(f=ko.utils.arrayFirst(v,function(n){return n.key==r}),f&&(e=f.value.trim(),(w||y.exec(e)!=null)&&$(t).is(":input")&&(u.attr={readonly:!0,disabled:"disabled"})))}if(t.nodeType==1&&l&&l.length>0&&n.nodeHasBindings(t)){var a=n.getBindingsString(t,i),v=ko.jsonExpressionRewriting.parseObjectLiteral(a),y=new RegExp("[^:]*("+l.join("|")+")[^.(]*");for(r in u)u.hasOwnProperty(r)&&r!=="_ko_property_writers"&&(f=ko.utils.arrayFirst(v,function(n){return n.key==r}),f&&(e=f.value.trim(),s=y.exec(e),s!=null&&$(t).find(":input").prop("disabled",!0).prop("readonly",!0)))}}return u}},ko.bindingProvider.instance=new t,PrismApi.fn.triggerEvent(PrismApi.EventNames.beforeViewModelBind,"Policy",PrismApi.policy),ko.applyBindings(PrismApi.policy),PrismApi.fn.triggerEvent(PrismApi.EventNames.afterViewModelBind,"Policy",PrismApi.policy)},i=function(t){n.reject(t),PrismApi.Utils.logError(t,"PrismApi fail to initialize.")},_session.context&&_session.context.Type&&(_session.context.EntityId||_session.context.ClientRefNo)?(t=undefined,r=undefined,_session.context.EntityId&&(console.log("attempting to load {0} {1} from server.".format(_session.context.Type,_session.context.EntityId)),t=_session.context.Type=="Quote"?PrismApi.fn.retrieveFullQuote:PrismApi.fn.retrievePolicyById,r=_session.context.EntityId),_session.context.Type=="Policy"&&_session.context.ClientRefNo&&(console.log("attempting to load {0} {1} from server.".format(_session.context.Type,_session.context.ClientRefNo)),t=PrismApi.fn.retrievePolicyByClientRefNo,r=_session.context.ClientRefNo),t?t(r).done(function(t){_session.policy=t,PrismApi.policy=new PrismApi.Data.Policy(_session.policy),_session.context.Type==="Policy"&&_session.context.EntityId===""&&(_session.context.EntityId=t.PolicyId);var r=PrismApi.policy.Benefits();PrismApi.policy.Benefits([]),PrismApi.fn.getQuickQuoteOptions().done(function(){PrismApi.fn.getFullQuoteOptions().done(function(){if(PrismApi.policy&&PrismApi.policy.Benefits()){ko.utils.arrayForEach(PrismApi.policy.Benefits(),function(n){var t=PrismApi.Utils.arrayFirstBriefCode(r,n.BriefCode());t&&($.extend(n.MetaData,t.MetaData),n.BenefitItems(t.BenefitItems()),n.Premium(t.Premium()))}),PrismApi.policy.fn.applyOptionBenefitsToViewModel();var t=PrismApi.policy.Region();t&&t.Country()&&t.Country().BriefCode&&!t.Country().Description&&PrismApi.fn.getCountries(t).done(function(n){t.Countries(n.length==1?n[0].Countries:[]),t.Country()&&t.Country().BriefCode&&t.Country(ko.utils.arrayFirst(t.Countries(),function(n){return n.BriefCode===t.Country().BriefCode}))})}u(),n.resolve(),window.console.log("PrismApi initialized with {0} {1} successfully.".format(_session.context.Type,_session.context.EntityId?_session.context.EntityId:_session.context.ClientRefNo))}).fail(function(n){i(n)})}).fail(function(n){i(n)})}).fail(function(n){i(n)}):(n.reject(),window.console.log("PrismApi failed to initialize with {0} {1}.".format(_session.context.Type,_session.context.EntityId?_session.context.EntityId:_session.context.ClientRefNo)))):(u(),n.resolve(),window.console.log("PrismApi initialized successfully.")),n.promise()}catch(o){return e=o.message&&o.message.indexOf("_session")>-1?"_session has not been initialized. Make sure @Html.PrismApiPageSetup() is applied to all views.":o,f=new PrismApi.Data.ApiError(null,["fail to initialize PrismApi."],e),n.reject(f),PrismApi.Utils.logError(f,"PrismApi.init()"),n.promise()}},initSearch:function(){var n=$.Deferred(),i,t;try{return PrismApi.fn._init(),PrismApi.search=new PrismApi.Data.Search,PrismApi.fn.triggerEvent(PrismApi.EventNames.beforeViewModelBind,"Search",PrismApi.search),ko.applyBindings(PrismApi.search),n.resolve(),window.console.log("PrismApi search initialized successfully."),n.promise()}catch(r){return i=r.message&&r.message.indexOf("_session")>-1?"_session has not been initialized. Make sure @Html.PrismApiPageSetup() is applied to all views.":r,t=new PrismApi.Data.ApiError(null,["fail to initialize PrismApi search."],i),n.reject(t),PrismApi.Utils.logError(t,"PrismApi.initSearch()"),n.promise()}},getSearchResults:function(){var n=$.Deferred(),t=[],f=PrismApi.Validation.validateSearchAgainstPage(PrismApi.search.criteria),i,u;if(t=ko.utils.arrayPushAll(t,f),t.length>0)return i=new PrismApi.Data.ApiError(null,t,null),n.reject(i),PrismApi.Utils.logError(i,["fail on getSearchResults"]),n.promise();var e=function(n){n&&(n.Status&&"All"===n.Status&&(n.Status=undefined),n.ProgramBrandCode&&"All"===n.ProgramBrandCode&&(n.ProgramBrandCode=undefined))},r=PrismApi.Client.serviceUrls.Search,o=function(){var n=$.extend(!0,{},ko.mapping.toJS(PrismApi.search.criteria),{MetaData:undefined});return e(n),window._searchRequest=n,n&&n.Type&&(n.Type=="Policy"?r=PrismApi.Client.serviceUrls.SearchPolicies:n.Type=="Quote"&&(r=PrismApi.Client.serviceUrls.SearchQuotes)),JSON.stringify(n)};return PrismApi.search.criteria.MetaData.SearchHasBeenPerformed(!1),u=o(),PrismApi.Utils.ajaxCall(r+($$.Client.searchMaxResults!=null?"?limit="+$$.Client.searchMaxResults:""),u,"POST").done(function(t){PrismApi.search.criteria.MetaData.SearchHasBeenPerformed(!0),t.length?PrismApi.search.results(ko.utils.arrayMap(t,function(n){return new PrismApi.Data.SearchResult(n)})):PrismApi.search.results([]),n.resolve(t),window.console.log("PrismApi.search.results have been updated.")}).fail(function(t){PrismApi.search.results([]);var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getSearchResults()")}),n.promise()},listPolicies:function(n){var t=$.Deferred(),i,r;return PrismApi.search.criteria.MetaData.SearchHasBeenPerformed(!1),i={},$$.Client.searchMaxResults!=null&&(i={limit:$$.Client.searchMaxResults}),r=$.extend({},n,i),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.ListPolicies,r,"GET").done(function(n){PrismApi.search.criteria.MetaData.SearchHasBeenPerformed(!0),n.length?PrismApi.search.results(ko.utils.arrayMap(n,function(n){return new PrismApi.Data.SearchResult(n)})):PrismApi.search.results([]),t.resolve(n),window.console.log("PrismApi.search.results have been updated.")}).fail(function(n){PrismApi.search.results([]);var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.listPolicies()")}),t.promise()},listQuotes:function(n){var t=$.Deferred(),i,r;return PrismApi.search.criteria.MetaData.SearchHasBeenPerformed(!1),i={},$$.Client.searchMaxResults!=null&&(i={limit:$$.Client.searchMaxResults}),r=$.extend({},n,i),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.ListQuotes,r,"GET").done(function(n){PrismApi.search.criteria.MetaData.SearchHasBeenPerformed(!0),n.length?PrismApi.search.results(ko.utils.arrayMap(n,function(n){return new PrismApi.Data.SearchResult(n)})):PrismApi.search.results([]),t.resolve(n),window.console.log("PrismApi.search.results have been updated.")}).fail(function(n){PrismApi.search.results([]);var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.listPolicies()")}),t.promise()},initWorkflow:function(){var n=$.Deferred(),i,t;try{return PrismApi.fn._init(),PrismApi.workflow=new PrismApi.Data.Workflow,PrismApi.fn.triggerEvent(PrismApi.EventNames.beforeViewModelBind,"Workflow",PrismApi.workflow),ko.applyBindings(PrismApi.workflow),n.resolve(),window.console.log("PrismApi workflow initialized successfully."),n.promise()}catch(r){return i=r.message&&r.message.indexOf("_session")>-1?"_session has not been initialized. Make sure @Html.PrismApiPageSetup() is applied to all views.":r,t=new PrismApi.Data.ApiError(null,["fail to initialize PrismApi workflow."],i),n.reject(t),PrismApi.Utils.logError(t,"PrismApi.initWorkflow()"),n.promise()}},getWorkflowResults:function(){var n=$.Deferred(),t=function(){var n=$.extend(!0,{},ko.mapping.toJS(PrismApi.workflow.criteria),{MetaData:undefined});return window._workflowRequest=n,JSON.stringify(n)};return PrismApi.workflow.criteria.MetaData.SearchHasBeenPerformed(!1),PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Workflow.format("Search"),t(),"POST").done(function(t){PrismApi.workflow.criteria.MetaData.SearchHasBeenPerformed(!0),t.length?PrismApi.workflow.results(ko.utils.arrayMap(t,function(n){return new PrismApi.Data.WorkflowResult(n)})):PrismApi.workflow.results([]),n.resolve(t),window.console.log("PrismApi.workflow.results have been updated.")}).fail(function(t){PrismApi.workflow.results([]);var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getWorkflowResults()")}),n.promise()},initInstance:function(){var n=$.Deferred(),t,r,u,i;try{return PrismApi.fn._init(),t=function(){PrismApi.instance=new PrismApi.Data.Instance(_session.instance),PrismApi.fn.triggerEvent(PrismApi.EventNames.beforeViewModelBind,"Instance",PrismApi.instance),ko.applyBindings(PrismApi.instance)},r=function(t){n.reject(t),PrismApi.Utils.logError(t,"PrismApi fail to initialize.")},_session.context&&_session.context.Type&&_session.context.EntityId?(console.log("attempting to load {0} {1} from server.".format(_session.context.Type,_session.context.EntityId)),PrismApi.fn.retrieveInstance(_session.context.EntityId).done(function(i){_session.instance=i,t(),n.resolve(i),window.console.log("PrismApi.instance has been updated.")}).fail(function(n){r(n)})):(t(),n.resolve(),window.console.log("PrismApi initialized successfully.")),n.promise()}catch(f){return u=f.message&&f.message.indexOf("_session")>-1?"_session has not been initialized. Make sure @Html.PrismApiPageSetup() is applied to all views.":f,i=new PrismApi.Data.ApiError(null,["fail to initialize PrismApi."],u),n.reject(i),PrismApi.Utils.logError(i,"PrismApi.initInstance()"),n.promise()}},retryWorkflowInstance:function(){var n=$.Deferred(),t=function(){var n=$.extend(!0,{},ko.mapping.toJS(PrismApi.instance));return window._retryWorkflowRequest=n,JSON.stringify(n)};return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Workflow.format("Retry"),t(),"POST").done(function(t){var i=PrismApi.instance;i.Data.PolicyRef(t.Data.PolicyRef),i.Data.PolicyId(t.Data.PolicyId),i.Data.DocumentStored(t.Data.DocumentStored),i.LastException(undefined),n.resolve(),window.console.log("PrismApi.instance has been retried successfully.")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.instance has failed on retry")}),n.promise()},terminateWorkflowInstance:function(){var n=$.Deferred(),t=function(){var n=$.extend(!0,{},ko.mapping.toJS(PrismApi.instance));return window._terminateWorkflowRequest=n,JSON.stringify(n)};return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Workflow.format("Terminate"),t(),"POST").done(function(){n.resolve(),window.console.log("PrismApi.instance has been submitted for termination.")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"Failed to submit PrismApi.instance for termination")}),n.promise()},cancelWorkflowInstance:function(){var n=$.Deferred(),t=function(){var n=$.extend(!0,{},ko.mapping.toJS(PrismApi.instance));return window._cancelWorkflowRequest=n,JSON.stringify(n)};return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Workflow.format("Cancel"),t(),"POST").done(function(){n.resolve(),window.console.log("PrismApi.instance has been submitted for cancellation.")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"Failed to submit PrismApi.instance for cancellation")}),n.promise()},bindEvent:function(n,t){PrismApi.Events[n]||(PrismApi.Events[n]=[]),PrismApi.Events[n].push(t)},triggerEvent:function(n){var t=[];$.each(arguments,function(n,i){n>0&&t.push(i)}),PrismApi.Events[n]&&$.each(PrismApi.Events[n],function(n,i){typeof i=="function"&&i.apply(null,t)})},getHistory:function(n,t){var r=$.Deferred(),i=undefined;switch(t.toLowerCase()){case"quote":i=PrismApi.Client.serviceUrls.GetFullQuoteHistory.format(n);break;case"policy":i=PrismApi.Client.serviceUrls.GetPolicyHistory.format(n);break;default:window.console.log("PrismApi.getHistory - No get history support for {0}.".format(t))}return i&&PrismApi.Utils.ajaxCall(i).done(function(i){i.length?PrismApi.policy.fn.applyHistoriesToViewModel(i):PrismApi.policy.Histories([]),r.resolve(i),window.console.log("Get history for {0}: {1} has been retrieved successfully.".format(t,n))}).fail(function(i){var u=PrismApi.fn._getApiError(i);r.reject(u),PrismApi.Utils.logError(u,"PrismApi.getHistory - Error to get {0} history: {1}".format(t,n))}),r.promise()},getHeaderSearchResults:function(){var t=$.Deferred(),n=$("#headerSearchQuery").val();return $.trim(n).length>0&&(window.location.href=$$.baseUrl+"Search?ReferenceNumber={0}&ProgramBrandCode={1}&Status={2}&Type={3}&Reroute={4}".format(n,"All","All","",!0)),t.promise()},getActiveQuotes:function(){window.location.href=$$.baseUrl+"Search?GetActive={0}".format("Quote")},getActivePolicies:function(){window.location.href=$$.baseUrl+"Search?GetActive={0}".format("Policy")},cancelFullQuote:function(){var n=$.Deferred(),t=PrismApi.policy.fn.toJSONForContext("cancel");return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.FullQuoteCancel,t,"POST").done(function(t){n.resolve(t),window.console.log("PrismApi.quote has been cancelled.")}).fail(function(t){PrismApi.policy.fn.applyViolationsToViewModel(t);var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"fail on cancellation")}),n.promise()},getAgenciesByBrand:function(n){var t=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Agencies.format(n,"",!1),{},"GET").done(function(n){t.resolve(n),window.console.log("data loaded for PrismApi.getAgenciesByBrand")}).fail(function(n){var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.getAgenciesByBrand()")}),t.promise()},getAgenciesByBrandAgency:function(n,t){var i=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Agencies.format(n,t,!1),{},"GET").done(function(n){i.resolve(n),window.console.log("data loaded for PrismApi.getAgenciesByBrandAgency")}).fail(function(n){var t=PrismApi.fn._getApiError(n);i.reject(t),PrismApi.Utils.logError(t,"PrismApi.getAgenciesByBrandAgency()")}),i.promise()},getProvisionedAgenciesByBrand:function(n){var t=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Agencies.format(n,"",!0),{},"GET").done(function(n){t.resolve(n),window.console.log("data loaded for PrismApi.getProvisionedAgenciesByBrand")}).fail(function(n){var i=PrismApi.fn._getApiError(n);t.reject(i),PrismApi.Utils.logError(i,"PrismApi.getProvisionedAgenciesByBrand()")}),t.promise()},getProvisionedDefaultAgencyBrand:function(){var n=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.ProvisionedDefault.format(),{},"GET").done(function(t){n.resolve(t),window.console.log("data loaded for PrismApi.getProvisionedDefaultAgencyBrand")}).fail(function(t){var i=PrismApi.fn._getApiError(t);n.reject(i),PrismApi.Utils.logError(i,"PrismApi.getProvisionedDefaultAgencyBrand()")}),n.promise()},setDefaultAgency:function(n,t){var i=$.Deferred();return PrismApi.Utils.ajaxCall(PrismApi.Client.serviceUrls.Default,JSON.stringify({SiteContextDto:{ProgramBrandCode:n},EntityCode:t}),"POST").done(function(n){i.resolve(n),window.console.log("data loaded for PrismApi.setDefaultAgency")}).fail(function(n){var t=PrismApi.fn._getApiError(n);i.reject(t),PrismApi.Utils.logError(t,"PrismApi.setDefaultAgency()")}),i.promise()}}