
if(typeof ev==='undefined'){ev={};}
ev.message={};ev.widget={};ev.util={};ev.behaviour={};ev.frontEnd={};ev.frontEnd.component={};ev.frontEnd.constants={};ev.frontEnd.enterPolicyDetails={};ev.frontEnd.datePicker={};ev.frontEnd.policy={};ev.frontEnd.claim={};ev.frontEnd.myQuoteWidget={};bt={};

ev.frontEnd.constants.pleaseSelect="please select";ev.frontEnd.datePicker.dateFormat="dd M yy";ev.frontEnd.displayDateFormat="dd MMM yyyy";ev.frontEnd.isoDateFormat="yyyy-MM-dd";ev.frontEnd.currencySign="$";ev.frontEnd.driverAgeLimits={};ev.frontEnd.driverAgeLimits.additionalDriver={};ev.frontEnd.driverAgeLimits.additionalDriver.minAge=-1;ev.frontEnd.driverAgeLimits.additionalDriver.maxAge=-1;ev.frontEnd.driverAgeLimits.policyHolder={};ev.frontEnd.driverAgeLimits.policyHolder.minAge=-1;ev.frontEnd.driverAgeLimits.policyHolder.maxAge=-1;ev.frontEnd.individualVehicleModLimitPercent=0;ev.frontEnd.groupVehicleModLimitPercent=0;ev.frontEnd.individualVehicleModLimitValue=0;ev.frontEnd.groupVehicleModLimitValue=0;ev.frontEnd.vehicleDecline={};ev.frontEnd.vehicleDecline.yes="Yes";ev.frontEnd.vehicleDecline.no="No";ev.frontEnd.vehicleDecline.basedOnAge="BasedOnAge";ev.frontEnd.vehicleDecline.policyHolder={};ev.frontEnd.vehicleDecline.policyHolder.minAge=-1;ev.frontEnd.vehicleDecline.additionalDriver={};ev.frontEnd.vehicleDecline.additionalDriver.minAge=-1;ev.frontEnd.combinedCoverTypeValue="Combined";ev.frontEnd.buildingCoverTypeValue="HBD";ev.frontEnd.contentsCoverTypeValue="HCN";ev.frontEnd.combinedButton="remove a cover";ev.frontEnd.contentsButton="add contents cover";ev.frontEnd.buildingButton="add building cover";ev.frontEnd.homePolicyAgeLimits={};ev.frontEnd.homePolicyAgeLimits.policyHolder={};ev.frontEnd.homePolicyAgeLimits.policyHolder.minAge=-1;ev.frontEnd.homePolicyAgeLimits.policyHolder.maxAge=-1;ev.frontEnd.homePolicyAgeLimits.policyDependent={};ev.frontEnd.homePolicyAgeLimits.policyDependent.minAge=-1;ev.frontEnd.homePolicyAgeLimits.policyDependent.maxAge=-1;ev.frontEnd.coverType={};ev.frontEnd.productType={};ev.frontEnd.homeDecline={};ev.frontEnd.homeDecline.building={};ev.frontEnd.homeDecline.building.maxValue=-1;ev.frontEnd.homeDecline.building.minValue=-1;ev.frontEnd.homeDecline.contents={};ev.frontEnd.homeDecline.contents.maxValue=-1;ev.frontEnd.homeDecline.contents.minValue=-1;ev.frontEnd.homeDecline.ageOfOldestResident={};ev.frontEnd.homeDecline.ageOfOldestResident.maxValue=-1;ev.frontEnd.homeDecline.ageOfOldestResident.minValue=-1;ev.frontEnd.homeDecline.weeklyRent={};ev.frontEnd.homeDecline.weeklyRent.maxValue=-1;ev.frontEnd.homeDecline.weeklyRent.minValue=-1;ev.frontEnd.homeDecline.specialContents={};ev.frontEnd.homeDecline.specialContents.itemMaxPercent=-1;ev.frontEnd.homeDecline.specialContents.itemMinPercent=-1;ev.frontEnd.homeDecline.specialContents.totalMaxPercent=-1;ev.frontEnd.homeDecline.specialContents.totalMinPercent=-1;ev.message.merge=function(messages){$.extend(ev.message,messages);};

String.prototype.humanise=function(){var words=this.match(/[A-Z]?[a-z]+/g);return words?words.join(" ").toLowerCase():this;};String.prototype.capitalise=function(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase();};String.prototype.capitaliseFirst=function(){return this.charAt(0).toUpperCase()+this.substring(1);};String.prototype.lowerCamelCase=function(){return this.charAt(0).toLowerCase()+this.substring(1);};String.prototype.isDigits=function(){return(/^[0-9]+$/).test(this);};String.prototype.isAlphabets=function(){return(/^[a-zA-Z]+$/).test(this);};String.prototype.toDateFromDisplayDate=function(){return Date.parseExact(this,ev.frontEnd.displayDateFormat);};String.prototype.escapeHTML=function(){return this.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");};String.prototype.urlEncode=function(){return this.replace(/ /,"%20");};String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,'');};String.prototype.contains=function(stringToSearch){return this.indexOf(stringToSearch)>=0;};String.prototype.reverse=function(){return this.split("").reverse().join("");};String.prototype.formatForIE=function(){return this.replace(/&apos;/g,"&#39;");};Array.prototype.contains=function(value){for(var i=0;i<this.length;i++){if(this[i]===value){return true;}}
return false;};Date.prototype.toDisplayDate=function(){return this.toString(ev.frontEnd.displayDateFormat);};$.extend({humaniseNumber:function(num){var numbers={1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine"};return numbers[num]||num;},measureTime:function(f){var start=(new Date()).valueOf();var result=f();var timeTaken=(new Date()).valueOf()-start;var message="Time taken: "+timeTaken+"ms";if(typeof(window['console'])!=="undefined"){console.log(message);}else{alert(message);}
return result;},safeOff:false,safe:function(){var o=$.apply($,arguments);if(!$.safeOff&&o.length===0){throw"["+$._debugInfoForJQueryArguments(arguments)+"] created an empty jQuery object.";}
return o;},safeOne:function(){var o=$.safe.apply(undefined,arguments);if(!$.safeOff&&o.length!==1){throw"["+$._debugInfoForJQueryArguments(arguments)+"] should create jQuery with ONLY one dom element.";}
return o;},_debugInfoForJQueryArguments:function(jqueryArgs){return $.map(jqueryArgs,function(arg){return arg.jquery?arg.selector:arg.toString();}).join(", ");}});$.fn.extend({enable:function(){return this.removeAttr("disabled").filter(":text").removeClass("disabled");},disable:function(){return this.attr("disabled","disabled").filter(":text").addClass("disabled");},clearValueOnFirstClick:function(){var cleanValueThenUnbind=function(){$(this).val('');$(this).unbind('focus',cleanValueThenUnbind);};$(this).focus(cleanValueThenUnbind);},preventCharacters:function(characters){var SpecialCharacters=[0,8,9,13,27];var isSpecialCharacter=function(keyCode){return($.inArray(keyCode,SpecialCharacters)>=0);};$(this).keypress(function(event){var keyCode=0;if(window.event){keyCode=window.event.keyCode;}else if(event){keyCode=event.which;}else{return true;}
var keychar=String.fromCharCode(keyCode);if(isSpecialCharacter(keyCode)){return true;}else if(characters.indexOf(keychar)>-1){return true;}
return false;});},preventNonDigits:function(){$(this).preventCharacters("0123456789");},preventNonNumeric:function(){$(this).preventCharacters("0123456789.");},findExist:function(selector){return $.safe(selector,this);},findOne:function(selector){return $.safeOne(selector,this);},clearValidationMessages:function(){this.find(":input").removeClass("input-validation-error");this.find("label.error").remove();},scrollWindowToFirstErrorElement:function(){var firstError=this.find(":input.error:first");if(firstError.length===0){return;}
var top=firstError.offset().top-40;var hiddenHeight=$(document).height()-$(window).height();var windowTop=$(window).scrollTop();var bottomHiddenHeight=hiddenHeight-windowTop;if(windowTop>top){if(hiddenHeight-top<40){window.scrollTo(0,hiddenHeight-40);}else{window.scrollTo(0,top);}}else if(bottomHiddenHeight<40){window.scrollTo(0,hiddenHeight-40);}else{}}});var _oldSlideUp=$.fn.slideUp;$.fn.slideUp=function(speed,callback){var self=this;var newCallback=function(){self.hide();if(callback){callback.apply(this,arguments);}};_oldSlideUp.call(this,speed,newCallback);};ev.frontEnd.preventClickOnLabelForSelectBox=function(container){$("select",container).each(function(index,element){var select=$(element);$("label[for='"+select.attr("id")+"']",select.parent().parent()).click(function(){return false;});});};bt.current=function(){return $('meta[name=businessType]').attr("content");};ev.defaultValidationOptions={onsubmit:true,focusCleanup:true,onclick:false,focusInvalid:false,onfocusout:false,onkeyup:false};

(function($){ev.frontEnd.constants.inputValidationClass="input-validation-error";var fixJqueryAutocompleterForValidation=function(){if($.Autocompleter){var _AutocompleterCache=$.Autocompleter.Cache;$.Autocompleter.Cache=function(options){ev.frontEnd.autocompleterCacheData=[];var cache=_AutocompleterCache(options);var _add=cache.add;cache.add=function(searchTerm,results){_add(searchTerm,results);$.each(results,function(i,result){ev.frontEnd.autocompleterCacheData.push(result.value);});};var _flush=cache.flush;cache.flush=function(){_flush();ev.frontEnd.autocompleterCacheData=[];};return cache;};}};fixJqueryAutocompleterForValidation();(function(){var standardEmailValidator=$.validator.methods.email;$.validator.methods.email=function(value,element){return standardEmailValidator.apply(this,[$.trim(value),element]);};})();$.validator.addMethod('validPhoneNumber',function(value,element){if(value.length===0){return true;}
return(/^\({0,1}((0|\+61)(2|4|3|7|8)){0,1}\){0,1}(\ |-){0,1}[0-9]{2}(\ |-){0,1}[0-9]{2}(\ |-){0,1}[0-9]{1}(\ |-){0,1}[0-9]{3}$/).test(value.replace(/\s+/g,''));},'Please enter a valid phone number');$.validator.addMethod("validLettersOnly",function(value,element){if(value.length===0){return true;}
return(/^[a-zA-Z ]+$/).test(value);},"Please enter only letters");$.validator.addMethod('validUnitNumber',function(value,element){if(value.length===0){return true;}
return(/^\s*[\-0-9A-Za-z ]+\s*$/).test(value);},'Please enter a valid unit number, using the separate box below to enter a street number');$.validator.addMethod('validStreetNumber',function(value,element){if(value.length===0){return true;}
return(/^\s*[\-0-9A-Za-z]+\s*$/).test(value);},'Please enter a valid street number, using the separate box above to enter a unit number');$.validator.addMethod("validSelectionRequiredIfEnabled",function(value,element){var select=$(element);if(value===""||typeof(value)===undefined){value=$(element).val();}
if(select.attr("disabled")||select.is(":hidden")||select.find("option").size()<=1){return true;}else{return value!==ev.frontEnd.constants.pleaseSelect&&value!=="";}},function(ruleValue,element){return element.attributes['errorMessage']?element.attributes['errorMessage'].value:"Please select a valid "+element.name.humanise();});$.validator.addMethod("validAutocompleteOptionSelected",function(value,element){var field=$(element);if(field.is(":hidden")){return true;}
if(field.val().length<3){return false;}
if(element.defaultValue===value){return true;}
return ev.frontEnd.autocompleterCacheData.contains(value);},function(ruleValue,element){return"Please enter a valid "+element.name.humanise();});$.validator.addMethod("validAutocompleteOptionSelectedForLocality",function(value,element){var field=$(element);if(field.is(":hidden")){return true;}
if(field.val().length<3){return false;}
if(field.val().split(' ').length<3){return false;}
if(element.defaultValue===value){return true;}
return ev.frontEnd.autocompleterCacheData.contains(value);},function(ruleValue,element){return"Please enter postcode/suburb";});var getOtherFieldNameFrom=function(element){var cssClass=$(element).attr("class");return cssClass.substring(cssClass.indexOf("with[")+5,cssClass.indexOf("]"));};var eitherOrMessageCreator=function(ruleValue,element){return"Please enter either "+element.name.humanise()+" OR "+getOtherFieldNameFrom(element).humanise();};var applyRuleToElementAndCompanion=function(element,rule){var field=$(element);var other=$("#"+getOtherFieldNameFrom(element));var res=(other.hasClass(ev.frontEnd.constants.inputValidationClass)||rule(field.val(),other.val()));return res;};$.validator.addMethod("mutuallyExclusive",function(value,element){var field=$(element);if(field.is(":hidden")){return true;}
var other=$("#"+getOtherFieldNameFrom(element));return(field.val()&&!other.val())||(!field.val()&&other.val());},eitherOrMessageCreator);$.validator.addMethod("notAllowedAlong",function(value,element){var field=$(element);if(field.is(":hidden")){return true;}
var other=$("#"+getOtherFieldNameFrom(element));return!(field.val()&&other.val());},eitherOrMessageCreator);$.validator.addMethod("mustHaveSameValue",function(value,element){return applyRuleToElementAndCompanion(element,function(field,other){return field===other;});},function(ruleValue,element){return"Please enter the same value as "+getOtherFieldNameFrom(element).humanise();});$.validator.addMethod("mustHaveSameValueCaseInsensitive",function(value,element){return applyRuleToElementAndCompanion(element,function(field,other){return field.toLowerCase()===other.toLowerCase();});},function(ruleValue,element){return"Please enter the same value as "+getOtherFieldNameFrom(element).humanise();});$.validator.addMethod("validCreditCardNumber",function(value,element){var number=value.replace(/\D/g,'');var number_length=number.length;var parity=number_length%2;var total=0;for(var i=0;i<number_length;i++){var digit=number.charAt(i);if(i%2===parity){digit=digit*2;if(digit>9){digit=digit-9;}}
total=total+parseInt(digit,0);}
if(total%10!==0){return false;}
var cardType=$("#creditCardType").val();if(cardType==="Visa"&&/^4/.test(value)&&(value.length===13||value.length===16)){return true;}
if(cardType==="DinersClub"&&value.length===14&&(/^30[0-5]/.test(value)||/^3[6,8]/.test(value))){return true;}
if(cardType==="AmericanExpress"&&value.length===15&&/^3[4,7]/.test(value)){return true;}
if(cardType==="MasterCard"&&value.length===16&&/^5[1-5]/.test(value)){return true;}
return false;},"Please enter a valid credit card number");$.validator.addMethod('validBSB1',function(value,element){if($(element).attr("disabled")){return true;}
return $('#BsbPart1').val().isDigits();},"Please enter a valid BSB");$.validator.addMethod('validBSB2',function(value,element){if($(element).attr("disabled")){return true;}
return $('#BsbPart2').val().isDigits();},"Please enter a valid BSB");$.validator.addMethod('requiredIgnoreDisabled',function(value,element){if($(element).attr("disabled")||!$(element).is(":visible")){return true;}
return $.validator.methods.required.apply(this,arguments);},$.validator.messages.required);$.validator.addMethod("validAccountNumber",function(value,element){if($(element).attr("disabled")){return true;}
if((value.length===0)||(value.length>9)||(value==="000000000")){return false;}
return(/^[0-9]*$/).test(value);},"Please enter a valid account number, with up to 9 numbers");$.validator.addMethod("validExpiryDate",function(value,element){if($(element).siblings("select").attr("disabled")){return true;}
var expiry=Date.parse(value);return expiry&&expiry.moveToLastDayOfMonth().compareTo(Date.today())>=0;},"The expiry date you have entered is not valid, please re-enter");$.validator.addMethod('printableCharactersOnly',function(value,element){var printableCharacters=/^[\x20-\x7E]*$/;var lessThanOrGreaterThan=/^[^<>]*$/;return(value===""||(printableCharacters.test(value)&&lessThanOrGreaterThan.test(value)));},'Please enter only letters from the English alphabet or numbers or ( ) & @ #');$.validator.addMethod("validBankAccountName",function(value,element){if($(element).attr("disabled")){return true;}
if(value.length===0){return false;}
return(/^[0-9a-zA-Z\-\+\(\)\.\*\$\|\?\/&!,%:_#@'"=`][0-9a-zA-Z \-\+\(\)\.\*\$\|\?\/&!,%:_#@'"=`]*$/).test(value);},"Please enter a valid account holder name");$.validator.addMethod('validCcvNumber',function(value,element){var numbersOnly=/^[0-9]*$/;return(value.length===3||value.length===4)&&numbersOnly.test(value);},'Please enter at least 3 digits');$.validator.addMethod('positive',function(value,element){return element.disabled?true:value>0.0;},'Please enter a positive value');$.validator.setDefaults({customErrorClass:ev.frontEnd.constants.inputValidationClass,highlight:function(element,errorClass){var jElement=$(element);if(!jElement.is("input[type=hidden]")&&!jElement.is(":radio")){jElement.addClass($.validator.defaults.customErrorClass);}
if(jElement.is("input[type=hidden]")){var dob=jElement.siblings("select.day, select.month, select.year");dob.addClass(ev.frontEnd.constants.inputValidationClass);}
jElement.addClass(errorClass);},unhighlight:function(element,errorClass){var jElement=$(element);if(!jElement.is("input[type=hidden]")&&!jElement.is(":radio")){jElement.removeClass($.validator.defaults.customErrorClass);}
if(jElement.is("input[type=hidden]")){var dob=jElement.siblings("select.day, select.month, select.year");dob.removeClass(ev.frontEnd.constants.inputValidationClass);}
jElement.removeClass(errorClass);},showErrors:function(errorMap,errorList){this.defaultShowErrors();$.each(errorList,function(index,element){if(element.message===""){$(element.element).next().addClass("invisibleUIError");}});}});})(jQuery);

jQuery(document).ready(function($){function showEmailResponseMessage(dialog,isSuccess){dialog.data.find('div.loading').hide();if(isSuccess){dialog.data.find('#emailQuoteSuccess').show();dialog.data.find('#emailQuoteFail').hide();}
else{dialog.data.find('#emailQuoteSuccess').hide();dialog.data.find('#emailQuoteFail').show();}}
function modalOpen(dialog){dialog.overlay.fadeIn('slow',function(){dialog.container.fadeIn('slow',function(){dialog.data.fadeIn('slow');});});}
function modalClose(dialog){dialog.container.fadeOut('slow',function(){dialog.overlay.fadeOut('slow',function(){jQuery.modal.close();});});}
function modalEmailQuoteShow(dialog){var primaryOwnerDriverDetails=$("#secureStepTwo #primaryOwnerDriverDetails");if(primaryOwnerDriverDetails.length>0){var s=primaryOwnerDriverDetails.state();$("#emailQuoteName").val(s.primaryOwnerFirstName+" "+s.primaryOwnerLastName);$("#emailQuoteEmailAddress").val(s.primaryOwnerEmail);$("#emailQuoteConfirmEmail").val(s.primaryOwnerVerifyEmail);}
dialog.data.find('img[alt=Send]').click(function(){var form=$("#sendEmailQuote");if(form.valid()){dialog.data.find('#emailQuoteInstructions').hide();dialog.data.find('#emailQuoteFields').hide();dialog.data.find('#emailSubscribeContainer').hide();dialog.data.find('img[alt=Send]').hide();dialog.data.find('div.loading').show();var handleEmailStatus=function(status){showEmailResponseMessage(dialog,status);};$.post(ev.frontEnd.saveAndEmailQuoteUrl,ev.frontEnd.policy.serializeForm(),handleEmailStatus);if(typeof(s)!=='undefined'){cms.emailQuoteTracking();}}});dialog.data.find('img[alt=Close]').click(function(){jQuery.modal.close();});}
function modalCancelChangesShow(dialog){dialog.data.find('img[alt=Yes]').click(function(){var myPlaceURL=ev.frontEnd.myPlaceUrl;document.location.href=myPlaceURL;});dialog.data.find('img[alt=No]').click(function(){jQuery.modal.close();});}
$('a.popupEmailQuote').click(function(event){if($("#quoteStepOne").getParcel().isCarValid()){$('#emailQuoteBox').modal({onOpen:modalOpen,onShow:modalEmailQuoteShow});}});$('a.popupCancelMessage').click(function(event){$('#cancelChangesMessage').modal({onOpen:modalOpen,onShow:modalCancelChangesShow});});if($.modal!==null){$.extend($.modal.defaults,{closeClass:"closeModalWindow",closeHTML:"<a class='modalCloseImg' title='Close'></a>"});}});ev.widget.startYesNoPopup=function(message,yesHandler,noHandler){ev.widget._startTwoButtonPopup({message:message,button1Class:'yes',button1Handler:yesHandler,button2Class:'no',button2Handler:noHandler});};ev.widget.startPopupWithOkCancel=function(message,okHandler,cancelHandler){ev.widget._startTwoButtonPopup({message:message,button1Class:'ok',button1Handler:okHandler,button2Class:'cancel',button2Handler:cancelHandler});};ev.widget._startTwoButtonPopup=function(options){$("#simplePopupTemplate").modal({onShow:function(dialog){var button1=$("#button1",dialog.data);var button2=$("#button2",dialog.data);button1.removeClass();button1.addClass(options.button1Class);button2.removeClass();button2.addClass(options.button2Class);$(".dialogMessage",dialog.data).html(options.message);button1.click(function(){$.modal.close();options.button1Handler();});button2.click(function(){$.modal.close();options.button2Handler();});}});};

ev.frontEnd.Floater=function(options){var floater={fxDuration:500,yPos:0,floaterSlideEffect:'',floaterTop:0,floaterTriggerSideBarScroll:true,floaterResize:false,threshold:0.6,defaultWindowHeight:800,variance:0,contentElement:{},floatElement:{},expandElement:{},floatStopElement:{}};var getContentElement=function(){return floater.contentElement;};var getFloatElement=function(){return floater.floatElement;};var getExpandElement=function(){return floater.expandElement;};var isFloatable=function(){if(floater.floatStopElement){return $("div#HomeQuickQuoteSwitch").is(":hidden");}
return true;};var getContentElementHeight=function(){return parseInt(getContentElement().height(),10);};var getFloatElementHeight=function(){return parseInt(getFloatElement().height(),10);};var getExpandElementHeight=function(){return parseInt(getExpandElement().height(),10);};var getFloaterScrollDistance=function(){return Math.max(0,getExpandElementHeight()-getContentElementHeight());};var reduceExpandElementHeightToZero=function(){if((getExpandElementHeight()+getFloatElementHeight())>getContentElementHeight()){getExpandElement().animate({height:"0px"},{duration:floater.fxDuration,queue:false,easing:"swing",complete:function(){floater.floaterTriggerSideBarScroll=true;}});}
else{floater.floaterTriggerSideBarScroll=true;}};var sideBarScroll=function(){var contentElementHeight=getContentElementHeight();var floatElementHeight=getFloatElementHeight();var expandElementHeight=getExpandElementHeight();var newHeight=Math.min(Math.max(0,contentElementHeight-floatElementHeight*floater.threshold),Math.max(0,$(window).scrollTop()-floater.floaterTop));var maxHeight=contentElementHeight-floatElementHeight*floater.threshold;if(isFloatable()){if((expandElementHeight>=0&&expandElementHeight<=(maxHeight+10))||(expandElementHeight+floatElementHeight>contentElementHeight)){getExpandElement().animate({height:Math.max(0,newHeight+floater.variance)},{duration:floater.fxDuration,queue:false,easing:"swing"});}}else if(expandElementHeight>0){getExpandElement().animate({height:Math.max(0,newHeight+floater.variance)},{duration:floater.fxDuration,queue:false,easing:"swing"});}};var sideBarScrolling=function(){if(getExpandElementHeight()>0){var scrolltop=Math.max(0,$(window).scrollTop()-getExpandElementHeight());if(getExpandElementHeight()+getFloatElementHeight()-getContentElementHeight()>0){scrolltop=0;}
$('html, body').animate({scrollTop:scrolltop},{duration:floater.fxDuration,queue:false,easing:"swing",complete:function(){reduceExpandElementHeightToZero();}});}
else{floater.floaterTriggerSideBarScroll=true;}};var enableScroll=function(){floater.floaterTriggerSideBarScroll=true;};var enableScrollAfterResize=function(){floater.floaterResize=false;floater.floaterTriggerSideBarScroll=true;};var startScroll=function(floater){floater.floaterTop=floater.expandElement.offset().top-floater.yPos;floater.floaterTriggerSideBarScroll=true;floater.defaultWindowHeight=$(window).height();$(window).bind('scroll',function(){if(floater.floaterTriggerSideBarScroll&&!floater.floaterResize){sideBarScroll();}}).bind('resize',function(){var windowHeight=$(window).height();if(floater.defaultWindowHeight!==windowHeight){floater.floaterResize=true;sideBarScroll();enableScrollAfterResize(1000);floater.defaultWindowHeight=windowHeight;}});};var init=function(options){floater=$.extend({},floater,options);floater.scrollBarScrollToRightPos=function(){sideBarScrolling();};if(getExpandElement()){startScroll(floater);}};init(options);return floater;};

function QuickQuoteSwitchBehaviour(quickQuoteSwitchElements){this.firstContainer=quickQuoteSwitchElements.firstContainer;this.secondContainer=quickQuoteSwitchElements.secondContainer;var ResetCustomerSelector=function(){if(this.customerSelector){this.customerSelector.state("CurrentCustomer");}}.bind(this);this.firstContainer.click(function(){ResetCustomerSelector();}.bind(this));this.secondContainer.click(function(){ResetCustomerSelector();}.bind(this));}
function QuickQuoteBehaviour(startQuoteUrl,ajaxLoadedCallback,cmsTrackerCallback){this.startQuoteUrl=startQuoteUrl;this.ajaxLoadedCallback=ajaxLoadedCallback;this.cmsTrackerCallback=cmsTrackerCallback;this.quickQuoteForm=$(this.dob[0].form);if(!this.customerSelector){this.customerSelector=$(":radio[name=customerSelector]");}
this.find("#submitQuickQuote").click(function(){if(this.quickQuoteForm.valid()){if(this.customerSelector&&this.customerSelector.state()==="NewCustomer"){ev.widget.startYesNoPopup(ev.message.myBuzzQuickQuoteWidgetText.Value,this.startQuote.bind(this),function(){});}else{this.startQuote();}}}.bind(this));this.quickQuoteForm.validate($.extend({},ev.defaultValidationOptions,{rules:{locality:{required:true,validAutocompleteOptionSelectedForLocality:true}},messages:{locality:{required:"Please enter postcode/suburb",validAutocompleteOptionSelectedForLocality:"Please re-enter postcode"}}}));this.dob.defaultState({day:"",month:"",year:""});if(this.customerSelector){var dobRegion=this.dob.closest("div.dob").add(this.find("div.expanded .quickquote-vehicle-bottom"));var showHideCallback=function(){var dobInputs=dobRegion.find(":input");if(dobRegion.is(":visible")){this.find("div.expanded").removeClass("noBottomMargin");dobInputs.removeAttr("disabled");}else{this.find("div.expanded").addClass("noBottomMargin");dobInputs.attr("disabled",true);this.dob.DateOfBirth.valid();}}.bind(this);this.customerSelector.showHide(dobRegion,"NewCustomer",true,showHideCallback);}}
$.extend(QuickQuoteBehaviour.prototype,{startQuote:function(){this.cmsTrackerCallback();var postData=$(":radio[name=customerSelector], #locality, #year, #make, #model, #variant, #engineSize, [name='DateOfBirth']").serialize();$.post(this.startQuoteUrl,postData,this.ajaxLoadedCallback,"jsonp");}});function CarDetailsBehaviour(actionUris,dateOfBirth){ev.frontEnd.dependantSelects({field:this.year,affects:{field:this.make,dataUrl:actionUris.make,avoidReset:true,affects:{field:this.model,dataUrl:actionUris.model,affects:{field:this.variant,dataUrl:actionUris.variant,affects:{field:this.engineSize,dataUrl:actionUris.engineSize}}}}},actionUris.year,dateOfBirth);this.defaultState({year:"please select",make:"please select",model:"please select",variant:"please select",engineSize:"please select"});}
function CarDetailsDeclineBasedOnAgeBehaviour(carDetails,declineUrl,dateOfBirth){ev.frontEnd.declineVehicleBasedOnAge(carDetails,declineUrl,dateOfBirth);}
function CarLocalityOnChangeBehaviour(){this.locality.stateChange(function(){$("#changePostcodeOnFullQuoteMessage").show();});}
function CarLocalityBehaviour(){this.locality.fireChangeEventOn("blur");}
$.extend(CarLocalityBehaviour.prototype,{suburb:function(){return this.localityMatcher()[2]||"";},theState:function(){return this.localityMatcher()[3]||"";},postcode:function(){return this.localityMatcher()[1]||"";},localityMatcher:function(){return this.locality.state().match(/^(\d{4}) (.+) (\w{2,3})$/)||[];}});function DateBehaviour(){var formatDate=function(format){var s=this.state();var date=Date.parse(s.year+"-"+s.month+"-"+s.day);return date?date.toString(format):"";}.bind(this);this.toString=function(){return formatDate(ev.frontEnd.isoDateFormat);};this.toDisplayString=function(){return formatDate(ev.frontEnd.displayDateFormat);};}
function AdditionalDriverBehaviour(){this.find(":button[name=RemoveDriver]").click(ev.quoteInvalidChangeHandler).click(function(){this.slideUp("fast",function(){this.removeMe();}.bind(this));}.bind(this));this.onCoOwner=function(handler){this.type.click(function(){if(this.isCoOwner()){handler(this);}}.bind(this));return this;};this.isCoOwner=function(){return this.type.state()==="CoOwner";};this.stateChange(function(){delete this.detailState;}.bind(this));this.dob.DateOfBirthAdditionalDriver.dateOfBirth(ev.frontEnd.driverAgeLimits.additionalDriver.minAge,ev.frontEnd.driverAgeLimits.additionalDriver.maxAge);}
function MyQuoteMyDetailsBehaviour(declineUrl){this.MAX_ADDITIONAL_DRIVERS=9;this._additionalDriverSequencer=0;this.declineUrl=declineUrl;this.addDriverButton=this.findOne("#AddDriver");this.driverTemplate=this.findOne("#AddDriverTemplate");this.additionalDriverContainer=this.findOne("#additionalDriversSection");this.ageExcessMessage=this.findOne("#ageExcessMessage ul");this.claimsReminderMessage=this.findOne("#claimsReminderMessage");this.moreDetailsOnAdditionalDriver=this.findOne("#moreDetailsOnAdditionalDriver");this.addDriverButton.click(function(){this.showReminderMessageForAdditionalDriverChange();this.addDrivers();}.bind(this));this.bind("addItems",function(e,states){var drivers=this.additionalDrivers.items;$.each(states,function(i,s){this.addDriverButton.click();drivers[drivers.length-1].state(s);}.bind(this));}.bind(this));this.bind("addItemsInitial",function(e,states){this.addDrivers(states);}.bind(this));this.bind("removeItems",function(e,fields){$.each(fields,function(i,f){f.findOne(":button[name=RemoveDriver]").click();});});this.change(function(e){if(e.target.tagName.toLowerCase()==="select"){this.updateAgeExcesses();}}.bind(this));this.claimsSection=this.findOne("div[name=claimsSection]");this.findOne("#allDriversDateOfBirth").stateChange(function(){this.showReminderMessageForAdditionalDriverChange();this.checkMaxDrivers();this.updateAgeExcesses();if(ev.frontEnd.quoteInvalidator.invalidate){ev.frontEnd.quoteInvalidator.invalidate();}}.bind(this),true);this.updateAgeExcesses();this.historyOption.showHide(this.findOne("#claimsHistoryExtraQuestionsDiv"),"Yes",true);this.defaultState({historyOption:"No",numberOfAtFaultAccidents:"please select",numberOfNonCollisionClaims:"please select"});}
$.extend(MyQuoteMyDetailsBehaviour.prototype,{addDrivers:function(driverStates){driverStates=driverStates||[{}];$.each(driverStates,function(){var driverWrapper=this.createDriverHtml();this.additionalDriverContainer.append(driverWrapper);driverWrapper.slideDown("fast");}.bind(this));var newDrivers=this.additionalDrivers.sync(this.additionalDrivers);$.each(newDrivers,function(i,driver){driver.applyBehaviour(AdditionalDriverBehaviour);var state=driverStates[i];if(state&&!$.objectEmpty(state)){driver.state(state,{initial:true,silent:true});driver.dob.year.triggerHandler("change");driver.detailState=state;}
driver.applyBehaviour(CarDetailsDeclineBasedOnAgeBehaviour,[{year:$("select#year"),make:$("select#make"),model:$("select#model"),variant:$("select#variant"),engineSize:$("select#engineSize")},this.declineUrl,driver.dob.DateOfBirthAdditionalDriver]);driver.onCoOwner(this.ensureSingleCoOwner.bind(this));}.bind(this));this.checkMaxDrivers();this.updateAgeExcesses();return this;},createDriverHtml:function(){var driverWrapper=this.driverTemplate.clone().removeAttr("id").removeAttr("parcelignored");var thatSequencer=this._additionalDriverSequencer;var elements;var isWebkit=(!document.documentElement.compareDocumentPosition&&!("sourceIndex"in document.documentElement));if(isWebkit){elements=driverWrapper.find('input[type=hidden]').add(driverWrapper.find('input[type=text]')).add(driverWrapper.find(':radio'));}else{elements=driverWrapper.find("input[type=hidden], input[type=text], :radio");}
elements.each(function(i,element){element.name=element.name+"_"+thatSequencer;}.bind(this));if(isWebkit){elements=driverWrapper.find('fieldset').add(driverWrapper.find('input[type=hidden]')).add(driverWrapper.find('input[type=text]')).add(driverWrapper.find(':radio'));}else{elements=driverWrapper.find("fieldset, input[type=hidden], input[type=text], :radio");}
elements.each(function(i,element){element.id=element.id+"_"+thatSequencer;}.bind(this));var labelsForRadio=driverWrapper.find("label[for=additional]").add(driverWrapper.find("label[for=coowner]"));labelsForRadio.each(function(i,label){var currentFor=$(label).attr("for");$(label).attr("for",currentFor+"_"+thatSequencer);});this.fixHtmlForIE(driverWrapper,thatSequencer);this._additionalDriverSequencer++;return driverWrapper;},showReminderMessageForAdditionalDriverChange:function(){this.claimsReminderMessage.show();this.moreDetailsOnAdditionalDriver.show();},fixHtmlForIE:function(driverWrapper,sequence){if(!$.browser.msie){return;}
driverWrapper.find(".driverTypeRadioButton").each(function(){var newRadioHtml=this.outerHTML.replace(/(name=driverType)\b/,"$1_"+sequence);var oldRadio=$(this);oldRadio.before(newRadioHtml);oldRadio.remove();});},checkMaxDrivers:function(){if(this.additionalDrivers.items.length<this.MAX_ADDITIONAL_DRIVERS){if(this.addDriverButton.is(":disabled")){this.addDriverButton.removeAttr("disabled");}}else{if(this.addDriverButton.is(":enabled")){this.addDriverButton.attr("disabled","disabled");}}},youngestDriverDob:function(){var dobs=$.map(this.additionalDrivers.items,function(d){return d.dob.toString();});dobs.push(this.dob.toString());var dobString=dobs.sort().slice(-1)[0];return dobString;},truthTableAgeCategory:function(dob){if(dob.compareTo(Date.today().addYears(-24))<=0){return"24 and Over";}
if(dob.compareTo(Date.today().addYears(-20))>0){return"19 and Under";}
return"20-23";},ageExcesses:function(){var youngestDob=Date.parse(this.youngestDriverDob());if(youngestDob){return ev.frontEnd.driverExcessTruthTable.getResult({"YoungestDriverAge":this.truthTableAgeCategory(youngestDob)}).split("\n");}
return[];},updateAgeExcesses:function(){this.ageExcessMessage.html("<li>"+this.ageExcesses().join("</li><li>")+"</li>");},ensureSingleCoOwner:function(coOwnerDriver){$.each(this.additionalDrivers.items,function(i,driver){if(driver!==coOwnerDriver&&driver.isCoOwner()){driver.type.state("Additional");}});}});function MyQuoteMyInsuranceBehaviour(){this.isTppdOnlySelected=function(){return $.stateEqual(this.coverageOptions.state(),["MotorQuoteComponent_TPPD"]);};}
function MyPolicyMyCarBehaviour(purchaseDateFraudIndicator){this.LicenseSuspendedQuestion.showHide(this.LicenseSuspended.parent(),"Yes",true);this.purchaseDate.showHide(this.insuranceCompany.parent(),purchaseDateFraudIndicator,true);this.modificationDetailsContainer=this.findOne("div#modificationDetails");this.otherModContainer=this.findOne("div#OtherModifications");this.suspensionModContainer=this.findOne("div#SuspensionModifications");this.engineModContainer=this.findOne("div#EngineModifications");this.otherModQuestionsContainer=this.findOne("fieldset#OtherModificationsList");this.suspensionModQuestionsContainer=this.findOne("fieldset#SuspensionModificationsList");this.engineModQuestionsContainer=this.findOne("fieldset#EngineModificationsList");this.lockingWheelNutsQuestionContainer=this.findOne("div#AllowWheelsExtraOption");this.lockingWheelNutsWarningContainer=this.findOne("div#lockingWheelNutsWarning");var clearErrors=function(context){context.find("label.error").remove();context.find("input").removeClass("input-validation-error error");};var self=this;this.ModifiedOption.showHide(this.modificationDetailsContainer,"Yes",true,function(){if(!$(this).displayed()){clearErrors(self.findOne("#VehicleModifications"));}});this.OtherModifications.showHide(this.otherModQuestionsContainer,"Yes",true,function(){if(!$(this).displayed()){clearErrors(self.otherModContainer);ev.frontEnd.ApplyTotalVehicleModificationEnableBehaviour();}});this.SuspensionModifications.showHide(this.suspensionModQuestionsContainer,"Yes",true,function(){if(!$(this).displayed()){clearErrors(self.suspensionModContainer);}});this.EngineModifications.showHide(this.engineModQuestionsContainer,"Yes",true,function(){if(!$(this).displayed()){clearErrors(self.engineModContainer);}});this.AlloyWheelsSelected.showHide(this.lockingWheelNutsQuestionContainer,["true"],true);this.LockingWheelNuts.showHide(this.lockingWheelNutsWarningContainer,"No");this.otherModQuestionsContainer.click(function(e){if(e.target.tagName.toLowerCase()==="input"&&e.target.type.toLowerCase()==="checkbox"){var checkbox=$(e.target);var textbox=checkbox.next(":text");if(checkbox.is(":checked")){textbox.enable().focus();}else{textbox.disable().state("");if(textbox.valid){textbox.valid();}}}});var toggleQuestions=function(){var optionalCarParkQuestion=this.find("#optionalCarkParkQuestion");if(this.riskUnitNo.val()){optionalCarParkQuestion.show();}
else{var pleaseSelect=this.find("#parkingLocation option:contains("+ev.frontEnd.constants.pleaseSelect+")");pleaseSelect.attr("selected","selected");optionalCarParkQuestion.hide();}}.bind(this);this.riskUnitNo.keyup(toggleQuestions).change(toggleQuestions).change();this.find(":radio[name=mailingAddressDifferent]").showHide(this.find("#optionalMailingAddressQuestions"),"Yes",true,function(){var optionalQuestions=$(this);if(optionalQuestions.displayed()){optionalQuestions.resetState({silent:true});if(self.Securelocality.val()===""||self.Securelocality.val()==="POST"){self.Securelocality.val("postcode/suburb").clearValueOnFirstClick();}}});$.each(this.fields,function(i,f){if(f.is(":radio")){f.defaultState(null);}else if(f.is(":checkbox")){f.defaultState([]);}else if(f.is("select")){f.defaultState("please select");}});this.defaultState({LockingWheelNuts:"Yes"});}
function AdditionalDriverDetailsBehaviour(sourceDriver,sequence,localSequence,state){this.sourceDriver=sourceDriver;this.sequence=sequence;this.localSequence=localSequence;this.hackHtml();this.dob.state(this.sourceDriver.dob.toDisplayString());this.hiddenDob.state(this.sourceDriver.dob.toString());this.hiddenType.state(this.sourceDriver.type.state());this.sectionTitle=this.findOne("a.section-title");this.sectionTitle.state(this.sourceDriver.isCoOwner()?"co-owner driver":"additional driver "+$.humaniseNumber(this.localSequence+1));state=state||{};delete state.dob;delete state.hiddenDob;delete state.hiddenType;this.state(state,{initial:true});}
$.extend(AdditionalDriverDetailsBehaviour.prototype,{transformedDriverType:function(){return this.sourceDriver.isCoOwner()?"ownerdriver":"nonownerdriver";},hackHtml:function(){var driverType=this.transformedDriverType();var elementsNeedToHack=$.unique(this.find(":input[id]").add(this.find("input[type=hidden]")).add(this.find("span#Dob")));$(elementsNeedToHack).each(function(i,element){var field=$(element);var originalId=field.attr("id");field.attr("id",driverType+this.sequence+originalId);field.attr("name",'driver_'+originalId+'_'+this.sequence);}.bind(this));this.find(":input[class^='template']").each(function(i,element){var field=$(element);field.attr("class",field.attr("class").replace("template",""));}.bind(this));},isSourceDobChanged:function(){return this.hiddenDob.state()!==this.sourceDriver.dob.toString();}});function MyPolicyOwnerDriverInfoBehaviour(sourceParcel){this.sourceParcel=sourceParcel;this.driverTemplate=this.findOne("div.driver-details-template");this.includeBusinessNameOnPolicy.showHide(this.businessName.parent(),"Yes",true);this.find("#primaryOwnerEmail").add(this.find("#primaryOwnerVerifyEmail")).bind("paste",function(e){return false;});$("#changePostcodeOnFullQuoteMessage").hide();this.rebuildAdditionalDrivers();}
$.extend(MyPolicyOwnerDriverInfoBehaviour.prototype,{rebuildAdditionalDrivers:function(){$.each(this.additionalDriverDetails.items,function(i,driver){if(!driver.sourceDriver.dead()){driver.sourceDriver.detailState=driver.isSourceDobChanged()?{}:driver.state();}});this.find("div.from-template").remove();this.closestParcel().sync();var coowners=$.grep(this.sourceParcel.additionalDrivers.items,function(d){return d.isCoOwner();});$.each(coowners,function(i,driver){this.addDriver(driver,i);}.bind(this));var startIndexForAdditionals=coowners.length;var additionals=$.grep(this.sourceParcel.additionalDrivers.items,function(d){return!d.isCoOwner();});$.each(additionals,function(i,driver){this.addDriver(driver,startIndexForAdditionals+i,i);}.bind(this));},addDriver:function(sourceDriver,sequence,localSequence){var driverWrapper=this.createDriverHtml();this.driverTemplate.before(driverWrapper);driverWrapper.show();var driver=driverWrapper.sync()[0];driver.applyBehaviour(AdditionalDriverDetailsBehaviour,[sourceDriver,sequence,localSequence,sourceDriver.detailState]);return this;},createDriverHtml:function(){var driverWrapper=this.driverTemplate.clone().removeClass("driver-details-template").addClass("from-template").removeAttr("parcelignored");if(this.additionalDriverDetails.items.length>0){driverWrapper.find("a.tooltipclass").remove();driverWrapper.find("div.tooltip-template").remove();}
return driverWrapper;}});function MyInsurancePolicyBehaviour(){this.find("#makeChangeButton").click(function(){ev.frontEnd.policy.getAccordion().openDefault();});}
function QuoteAndPolicyInterPageEventWiring(){this._actionsToPerformWhenSecurePageIsLoaded=[];}
$.extend(QuoteAndPolicyInterPageEventWiring.prototype,{_onCarDetailChanged:function(){var policyCar=$("#secureStepOne").getParcel();policyCar.findOne('div.secure-vehicle-details').resetState();if($("[name='UnrepairedDamage']:checked").val()==="Yes"){$("[name='resetCoverages']").val("true");}
policyCar.findOne('#carConditions').resetState();policyCar.findOne('#VehicleModifications').resetState();var quoteCar=$("#quoteStepOne").getParcel();var s=quoteCar.state();policyCar.state({vehicleYear:s.year,vehicleMake:s.make,vehicleModel:s.model,vehicleVariant:s.variant,vehicleEngineSize:s.engineSize});},_onLocalityChanged:function(){var policyCar=$("#secureStepOne").getParcel();var quoteMyDetails=$("#quoteStepTwo").getParcel();policyCar.findOne("#riskAddress").resetState();policyCar.state({suburb:quoteMyDetails.suburb(),theState:quoteMyDetails.theState(),postcode:quoteMyDetails.postcode()});},_onDriverDobChanged:function(){var policyCar=$("#secureStepOne").getParcel();var policyDrivers=$("#secureStepTwo").getParcel();policyCar.findOne("div.recent-history-form").resetState();var accordionSection=policyDrivers.data("expandable");if(accordionSection){accordionSection.setStatus(ev.frontEnd.accordionStatus.inProgress);}},_onPrimaryDriverDobChanged:function(){var policyDrivers=$("#secureStepTwo").getParcel();var quoteMyDetails=$("#quoteStepTwo").getParcel();policyDrivers.primaryOwnerDob.state(quoteMyDetails.dob.toDisplayString());policyDrivers.findOne("#primaryOwnerDriverDetails").resetState();},beforeSecurePageLoaded:function(){var quoteCar=$("#quoteStepOne").getParcel();var quoteMyDetails=$("#quoteStepTwo").getParcel();quoteCar.findOne("#car-details-container").bind("change.secureIsNotReady",function(){this._schedule(this._onCarDetailChanged);}.bind(this));quoteMyDetails.findOne("[name=locality]").bind("change.secureIsNotReady",function(){this._schedule(this._onLocalityChanged);}.bind(this));quoteMyDetails.findOne("#allDriversDateOfBirth").bind("change.secureIsNotReady",function(){this._schedule(this._onDriverDobChanged);}.bind(this));quoteMyDetails.dob.bind("change.secureIsNotReady",function(e){this._schedule(this._onPrimaryDriverDobChanged);}.bind(this));},afterSecurePageLoaded:function(){var quoteCar=$("#quoteStepOne").getParcel();var quoteMyDetails=$("#quoteStepTwo").getParcel();var quoteInsurance=$("#quoteStepThree").getParcel();var policyCar=$("#secureStepOne").getParcel();var policyDrivers=$("#secureStepTwo").getParcel();var policyInsurance=$("#secureStepThree").getParcel();$("#fullQuoteModule").stateChange(function(){policyInsurance.resetState();});policyCar.stateChange(function(){policyInsurance.resetState();});policyDrivers.stateChange(function(e){if(e.target.tagName!=="DIV"&&$(e.target).is(":visible")){policyInsurance.resetState();}});quoteInsurance.showHide(policyCar.findOne("div#OtherModifications"),function(){return!quoteInsurance.isTppdOnlySelected();},true);quoteCar.findOne("#car-details-container").stateChange(this._onCarDetailChanged);quoteMyDetails.findOne("[name=locality]").stateChange(this._onLocalityChanged);quoteMyDetails.findOne("#allDriversDateOfBirth").stateChange(this._onDriverDobChanged);quoteMyDetails.dob.stateChange(this._onPrimaryDriverDobChanged);this._runScheduledActions();},_runScheduledActions:function(){var quoteCar=$("#quoteStepOne").getParcel();var quoteMyDetails=$("#quoteStepTwo").getParcel();$.each(this._actionsToPerformWhenSecurePageIsLoaded,function(i,action){action();});quoteCar.find("#car-details-container").unbind("change.secureIsNotReady");quoteMyDetails.find("[name=locality],#allDriversDateOfBirth, [fieldname=dob]").unbind("change.secureIsNotReady");delete this._actionsToPerformWhenSecurePageIsLoaded;},_schedule:function(action){this._actionsToPerformWhenSecurePageIsLoaded.push(action);},_isSecurePageReady:function(){return!!$('#secureStepOne').getParcel();},runOrSchedule:function(action){if(this._isSecurePageReady()){action();}else{this._schedule(action);}}});var quoteAndPolicyInterPageEventWiring=new QuoteAndPolicyInterPageEventWiring();function SetupActionRequiredOnSecurePageThatIsntLoadedYet(){quoteAndPolicyInterPageEventWiring.beforeSecurePageLoaded();}
function WireupParcelsAfterSecurePageIsLoaded(){quoteAndPolicyInterPageEventWiring.afterSecurePageLoaded();}
function MtaPaymentBreakdownsBehaviour(){ev.frontEnd.payment.paymentInstalmentChangeHandler();var mtaPaymentBreakdowns=$.evalJSON(this.mtaPaymentBreakdowns.state());if(this.recurringAnnual(mtaPaymentBreakdowns)&&this.premiumIncreased(mtaPaymentBreakdowns)){bt.ShowPaymentDetails(ev.frontEnd.payment);}else{bt.HidePaymentDetails(ev.frontEnd.payment);}}
$.extend(MtaPaymentBreakdownsBehaviour.prototype,{premiumIncreased:function(mtaPaymentBreakdowns){return parseFloat(mtaPaymentBreakdowns.newAmountPayable)>0;},recurringAnnual:function(mtaPaymentBreakdowns){return mtaPaymentBreakdowns.recurring==="Annual";}});

$.fn.extend({updateFieldsEditability:function(){var inputs=this.find(':input');if(this.displayed()){inputs.attr('disabled',false);}else{inputs.attr('disabled',true);this.revertState();this.parent().clearValidationMessages();}}});ev.behaviour.paymentMethodBehaviour={setupPaymentMethodBehaviour:function(options){options=options||{};if(options.creditCard){this._setupCreditCardSelection();}
if(options.bankAccount){this._setupBankAccountSelection();}
if(options.bpay){this._setupBpaySelection();}
if(options.cheque){this._setupChequeSelection();}},_setupCreditCardSelection:function(){var creditCardDetails=this.find("#CreditCardMethodDetails");this.paymentMethod.showHide(creditCardDetails,"CreditCard",function(){creditCardDetails.updateFieldsEditability();this.responseMessage.html('');}.bind(this));},_setupBankAccountSelection:function(){var bankAccountDetails=this.find("#BankAccountMethodDetails");this.paymentMethod.showHide(bankAccountDetails,"BankAccount",function(){bankAccountDetails.updateFieldsEditability();this.responseMessage.html('');}.bind(this));},_setupBpaySelection:function(){var bPayDetails=this.find("#BpayMethodDetails");this.paymentMethod.showHide(bPayDetails,"Bpay",function(){bPayDetails.updateFieldsEditability();});},_setupChequeSelection:function(){var chequeDetails=this.find("#ChequeMethodDetails");this.paymentMethod.showHide(chequeDetails,"Cheque",function(){chequeDetails.updateFieldsEditability();});}};ev.behaviour.ajaxFormBehaviour={setupAjaxFormBehaviour:function(options){options=options||{};this.responseMessage=options.responseMessage||this.responseMessage;this.theForm=options.theForm||this.theForm||$(this.fields[0][0].form);this.submitSuccessHandler=options.submitSuccessHandler||this.submitSuccessHandler;this.submitErrorHandler=options.submitErrorHandler||this.submitErrorHandler;this.resetForm=options.resetForm||this.resetForm;this.waitingSpinnerText=options.waitingSpinnerText||this.waitingSpinnerText;this.validationSetting=options.validationSetting||{};this.theForm.validate($.extend({},ev.defaultValidationOptions,{groups:{bsb:"BsbPart1 BsbPart2"},errorPlacement:function(error,element){if(element.attr('name')==='BsbPart1'){error.insertAfter('#BsbPart2');}else{error.insertAfter(element);}}},this.validationSetting));this.theForm.submit(this._submitForm.bind(this));},_startWaitSpinners:function(){ev.frontEnd.startSpinners(this.waitingSpinnerText);},_stopWaitSpinners:function(){ev.frontEnd.stopSpinners();},_submitForm:function(event){event.preventDefault();this.responseMessage.html('');if(this.theForm.valid()){var data=this.theForm.serialize();var action=this.theForm.attr('action');var method=this.theForm.attr('method')||'POST';this._startWaitSpinners();$.ajax({type:method,url:action,data:data,dataType:'json',success:this._ajaxSuccessHandler.bind(this),error:this._ajaxErrorHandler.bind(this)});}else{this.theForm.scrollWindowToFirstErrorElement();}},_ajaxSuccessHandler:function(data){this._stopWaitSpinners();if(data.Success){this.submitSuccessHandler(data);}else{if(!this.submitErrorHandler){this._showError(data.ErrorDescription);}
else{this.resetForm();this.submitErrorHandler(data);}}},_ajaxErrorHandler:function(){this.resetForm();},_showError:function(errorMessage){this._stopWaitSpinners();this.resetForm();this.responseMessage.html(errorMessage);}};function OneOffPolicyPaymentBehaviour(waitingSpinnerText,myPlaceUrl,thankYouUrl){this.myPlaceUrl=myPlaceUrl;this.thankYouUrl=thankYouUrl;this.setupPaymentMethodBehaviour({bankAccount:true,creditCard:true,bpay:true});this.setupAjaxFormBehaviour({waitingSpinnerText:waitingSpinnerText,submitSuccessHandler:function(data){ev.frontEnd.GoToThankYouPage(data,this.thankYouUrl);}.bind(this),resetForm:function(){var bankAccountDetails=this.find("#BankAccountMethodDetails");bankAccountDetails.revertState();bankAccountDetails.clearValidationMessages();var creditCardDetails=this.find("#CreditCardMethodDetails");creditCardDetails.revertState();creditCardDetails.clearValidationMessages();this.responseMessage.html('');}.bind(this)});this.find("#cancelButton").click(function(){document.location=this.myPlaceUrl;}.bind(this));}
$.extend(OneOffPolicyPaymentBehaviour.prototype,ev.behaviour.paymentMethodBehaviour,ev.behaviour.ajaxFormBehaviour);

if(bt.current()==='Cancellation'){bt.GetSummaryHeading=function(){var heading=[];return heading;};}
ev.behaviour.cancellationBehaviour=function(cancelPolicyUrl,homeUrl,thankyouUrl,submitSpinnerText){this.cancellationReason.stateChange(function(e){var showIndex=e.field[0].selectedIndex-1;var messageDiv=this.find("#cancellationAlertMessages");messageDiv.find("span").hide();if(showIndex>=0){messageDiv.find("span:eq("+showIndex+")").show();}}.bind(this));this.find("#keepMyPolicy").click(function(){document.location=homeUrl;});var ajaxFormBehaviour={waitingSpinnerText:submitSpinnerText,submitSuccessHandler:function(data){ev.frontEnd.GoToThankYouPage(data,thankyouUrl,this.singlePaymentAmount.state());}.bind(this)};var paymentSection=this.find("#paymentMethodSection");var paymentDetailsSection=this.find("#PaymentMethodDetails");if(paymentSection.length>0){$.extend(ajaxFormBehaviour,{resetForm:function(){var bankAccountDetails=this.find("#BankAccountMethodDetails");bankAccountDetails.revertState();bankAccountDetails.clearValidationMessages();var creditCardDetails=this.find("#CreditCardMethodDetails");creditCardDetails.revertState();creditCardDetails.clearValidationMessages();this.responseMessage.html('');}});this.setupPaymentMethodBehaviour({bankAccount:true,creditCard:true,bpay:true});}
var refundSection=this.find("#refundSection");if(refundSection.length>0){$.extend(ajaxFormBehaviour,{submitErrorHandler:function(data){refundSection.getParcel().onSubmitError(data);},resetForm:function(){refundSection.getParcel().resetContent();}});}
this.setupAjaxFormBehaviour(ajaxFormBehaviour);};$.extend(ev.behaviour.cancellationBehaviour.prototype,ev.behaviour.paymentMethodBehaviour,ev.behaviour.ajaxFormBehaviour);

ev.frontEnd.spinnerDefaultText="We're updating your quote and won't be a moment";ev.RegistrationBehaviour=function(registrationUrl,homeUrl){this.registrationUrl=registrationUrl;this.homeUrl=homeUrl;this.passwordFields=this.find("[type=password]");this.errorMessage=this.find("#errorMessage");this.errorMessageSecretQuestion=this.find("#errorMessage_SecretQuestion");this.prepareForNewTry=function(){this.errorMessage.html("");this.resetState();}.bind(this);this.requestData=function(){var s=this.state();delete s.confirmNewPassword;delete s.agreementAccepted;return s;};this.processRegistration=function(){this.errorMessage.html("");this.errorMessageSecretQuestion.html("");ev.frontEnd.startSpinners(ev.frontEnd.spinnerDefaultText.replace("quote","details"));$.ajax({type:'POST',url:this.registrationUrl,data:this.requestData(),dataType:'json',success:function(data){if(data.success){ev.util.redirect(this.homeUrl);}else{ev.frontEnd.stopSpinners();this.resetState();ev.frontEnd.CheckForAccountSuspension(data.errorMessage,ev.frontEnd.getErrorContainer(data.errorMessage),data.redirectToUrl);}}.bind(this)});};this.validate($.extend({},ev.defaultValidationOptions,{invalidHandler:this.prepareForNewTry.bind(this),submitHandler:this.processRegistration.bind(this),messages:{agreementAccepted:{required:"To be able to register, please read and agree to our terms by clicking above"},confirmNewPassword:{mustHaveSameValue:ev.message.wrongConfirmedPassword.Value},secretQuestionAnswer:{required:ev.message.emptySecretAnswer.Value}}}));ev.frontEnd.getErrorContainer=function(errorMessage){if(errorMessage==="The answer you have entered does not match what you previously answered. Please try again."){return $("#errorMessage_SecretQuestion");}
else{return $("#errorMessage");}};};ev.showUpdatingMessageDivAndSetupRedirectionAfterClose=function(redirectUrl,cmsContent){$("#updatingMessage div.addressmatcher-close-div").css("display","block");$("#updatingMessage .addressmatcher-close").click(function(){document.location=redirectUrl;});$("#updatingMessage").css({top:"0",height:"100%"}).find("#display-content").text(cmsContent);};ev.frontEnd.processChangePassword=function(formUrl,redirectUrl,oldPassword,newPassword){ev.frontEnd.startSpinners(ev.frontEnd.spinnerDefaultText.replace("quote","details"));$.ajax({type:'POST',url:formUrl,data:{oldPassword:oldPassword,newPassword:newPassword},dataType:'json',success:function(data){$("#securityDetails")[0].reset();if(!data.success){ev.frontEnd.stopSpinners();ev.frontEnd.CheckForAccountSuspension(data.errorMessage,$("#errorMessage"),data.redirectToUrl);$(":password:first").focus();}else{if(s!==undefined){cms.updatePassword();}
document.location=redirectUrl;}}});};ev.frontEnd.processChangeSecretQuestion=function(params){ev.frontEnd.startSpinners(ev.frontEnd.spinnerDefaultText.replace("quote","details"));$.ajax({type:'POST',async:false,url:params.url,data:{secretQuestion:params.secretQuestionValue,secretAnswer:params.secretAnswerValue},dataType:'json',success:function(data){$("#changeSecretQuestionForm")[0].reset();if(!data.success){ev.frontEnd.stopSpinners();$("#errorMessage").text(data.errorMessage);}else{if(s!==undefined){cms.updateSecretQuestion();}
document.location=params.redirectUrl;}}});};ev.frontEnd.processChangePersonalDetails=function(params){ev.frontEnd.startSpinners(ev.frontEnd.spinnerDefaultText.replace("quote","details"));if(ev.frontEnd.personalDetailsChanged){var serializedForm=$("form#personalDetails").serialize();$.ajax({type:'POST',url:params.url,data:serializedForm,dataType:'json',success:function(data){if(!data.success){ev.frontEnd.stopSpinners();$("#errorMessage").text(data.errorMessage);}else{if(s!==undefined){cms.updatePersonalDetails();}
document.location=params.redirectUrl;}}});}
else{document.location=params.redirectUrl;}};ev.frontEnd.processChangeEmail=function(params){ev.frontEnd.startSpinners(ev.frontEnd.spinnerDefaultText.replace("quote","details"));var getParams={newEmailAddress:params.emailSelector.val(),password:params.passwordSelector.val()};$.ajax({type:'POST',url:params.url,data:getParams,dataType:'json',success:function(data){$("#SecurityDetails").getParcel().resetState();if(!data.success){ev.frontEnd.stopSpinners();ev.frontEnd.CheckForAccountSuspension(data.errorMessage,$("#errorMessage"),data.redirectToUrl);}else{if(s!==undefined){cms.updateEmail();}
ev.showUpdatingMessageDivAndSetupRedirectionAfterClose(params.redirectUrl,params.cmsContent);}}});};ev.frontEnd.CheckForAccountSuspension=function(errorMessage,errorMessageContainer,redirectToUrl){if(redirectToUrl!==""){ev.frontEnd.showModalErrorMessageAndLogout(errorMessage,redirectToUrl);}
else{errorMessageContainer.html(errorMessage);}};ev.frontEnd.clearPasswordFields=function(form,validator){$("[type^='password']").each(function(){$(this).val('');});};ev.frontEnd.getPolicyNumber=function(fieldSelector){var policyList=$(fieldSelector);$('#selectedPolicyNumber').val($('input:radio[name=policies]:checked').val());};ev.frontEnd.enableMyPoliciesButtons=function(){$('form#mtaPolicy :button.mybuzz-button').removeAttr('disabled');};ev.frontEnd.getFieldValueOfSelectedPolicy=function(fieldSelector){var selectedPolicyRadio=$("[name=PolicyNumber]:checked");return selectedPolicyRadio.next("div.current-policy-box").find(fieldSelector).state();};ev.frontEnd.isSelectedPolicyFutureDated=function(){var inceptionDateOfSelectedPolicy=Date.parse(ev.frontEnd.getFieldValueOfSelectedPolicy("#policyInceptionDate"));return inceptionDateOfSelectedPolicy>Date.today();};ev.frontEnd.hasAmountOustandingForSelectedPolicy=function(){var amountOutstanding=parseFloat(ev.frontEnd.getFieldValueOfSelectedPolicy("#amountOutstanding"));return amountOutstanding>0;};ev.frontEnd.updatePolicy=function(params){ev.frontEnd._executePolicy({noSelectedPolicyError:"#noSelectedPolicyError",futureDatedError:"#notStartedPolicyError",notUpdatablePolicyError:"#invalidPolicyError",mtaDuringGracePeriod:"#mtaDuringGracePeriod",execute:function(){var policyType=ev.frontEnd.getFieldValueOfSelectedPolicy("#policyType");var selectedPolicyNumber=$('[name=PolicyNumber]:checked').val();var qryString='?policyNumber='+selectedPolicyNumber;if(policyType==="Car"){document.location=params.motorUrl+qryString;}
else{document.location=params.homeUrl+qryString;}}});};ev.behaviour.PolicyListBehaviour=function(){this.selectedPolicy=function(){return $.first(this.fields,function(){return this.PolicyNumber.state()!==null;});}.bind(this);this.hasSelectedPolicy=function(){return!!this.selectedPolicy();}.bind(this);};ev.behaviour.CurrentPolicyBehaviour=function(){this.activeButNotStarted=function(){return this.policyStatus.state()==='Active'&&Date.parse(this.policyInceptionDate.state())>Date.today();}.bind(this);};ev.frontEnd.makeAClaim=function(params){ev.frontEnd._executePolicy({noSelectedPolicyError:'#selectPolicyForClaimError',futureDatedError:"#notStartedPolicyError",execute:function(){var policyType=ev.frontEnd.getFieldValueOfSelectedPolicy("#policyType");var selectedPolicyNumber=$('[name=PolicyNumber]:checked').val();var qryString='?policyNumber='+selectedPolicyNumber;var url;if(policyType==="Car"){url=params.url+qryString;}
else{url=params.homeUrl+qryString;}
ev.util.redirect(url);}});};ev.frontEnd.makePayment=function(params){ev.frontEnd._executePolicy({noSelectedPolicyError:'#noSelectedPolicyError',noAmountOutstandingError:'#noAmountOutstandingError',execute:function(){var selectedPolicyNumber=$('[name=PolicyNumber]:radio:checked').val();var qryString='?selectedPolicyNumber='+selectedPolicyNumber;ev.util.redirect(params.url+qryString);}});};ev.frontEnd.renewPolicy=function(params){ev.frontEnd._executePolicy({noSelectedPolicyError:'#noSelectedPolicyForRenewalError',notRenewalOfferedPolicyError:"#notRenewalOfferedPolicyError",policyRenewalDeclinedError:"#policyRenewalDeclinedError",execute:function(){var policy=$('[name=PolicyNumber]:radio:checked ~ .current-policy-box').parcel();var selectedPolicyNumber=$('[name=PolicyNumber]:radio:checked').val();var qryString='?selectedPolicyNumber='+selectedPolicyNumber;if(policy.policyType.state()==="Car"){document.location=params.motorUrl+qryString;}else{document.location=params.homeUrl+qryString;}}});};ev.frontEnd.viewCancellation=function(params){ev.frontEnd.stopSpinners();ev.frontEnd.startSpinners("Please wait while we calculate your cancellation amount");var getParams={selectedPolicyNumber:$('[name=PolicyNumber]:radio:checked').val()};$.ajax({type:'GET',url:params.calculateCancellationAmountUrl,data:getParams,dataType:'json',success:function(data){if(data.message){ev.frontEnd.stopSpinners();ev.frontEnd.showCalculateCancellationAmountErrorMessage(data.message);}
else{var qryString="?selectedPolicyNumber="+getParams.selectedPolicyNumber+"&amount="+data.amount+"&fullRefund="+data.fullRefund;document.location=params.url+qryString;}}});};ev.frontEnd.showConfirmLapsePolicyDialog=function(params){ev.frontEnd.showDialog('#confirmLapseDialog');};ev.frontEnd.lapsePolicy=function(params){var policy=$('[name=PolicyNumber]:radio:checked ~ .current-policy-box').parcel();var selectedPolicyNumber=$('[name=PolicyNumber]:radio:checked').val();var paramUrl;if(policy.policyType.state()==="Car"){paramUrl=params.motorUrl;}else{paramUrl=params.homeUrl;}
ev.frontEnd.navigateToUrlUsingPostAction(paramUrl,{policyNumber:selectedPolicyNumber});};ev.frontEnd.navigateToUrlUsingPostAction=function(url,data){var form=document.createElement('form');form.action=url;form.method="POST";$.each(data,function(key,value){var input=document.createElement('input');input.name=key;input.value=value;form.appendChild(input);});document.body.appendChild(form);form.submit();};ev.frontEnd.showCancelOrLapseDialog=function(params){ev.frontEnd.showDialog('#cancelOrLapseDialog');};ev.frontEnd.showDialog=function(contentLocator){$(contentLocator).modal({overlayId:'cardetailsmodal-overlay',containerId:'cardetailsmodal-container',closeClass:"modalCloseImg",onShow:function(dialog){}});};ev.frontEnd.cancelOrLapsePolicy=function(params){var options={noSelectedPolicyError:'#noSelectedPolicyForCancelError',invalidPolicyForCancelError:'#cancelLapsedPolicyError',cancelAFutureDatedPolicyError:'#cancelAFutureDatedPolicyError',execute:function(){var policy=$('[name=PolicyNumber]:radio:checked ~ .current-policy-box').parcel();switch(policy.cancelButtonAction.state()){case'Cancel':ev.frontEnd.viewCancellation({url:params.cancelUrl,calculateCancellationAmountUrl:params.calculateCancellationAmountUrl});break;case'Lapse':ev.frontEnd.showConfirmLapsePolicyDialog({url:params.lapseUrl});break;case'UsersChoice':ev.frontEnd.showCancelOrLapseDialog();break;}}};ev.frontEnd._executePolicy(options);};ev.frontEnd._executePolicy=function(options){var selectedPolicyNumber=$("[name=PolicyNumber]:radio:checked").val();if(options.noSelectedPolicyError&&selectedPolicyNumber===undefined){ev.frontEnd.showPolicyErrorMessage(options.noSelectedPolicyError);return;}
if(options.futureDatedError&&ev.frontEnd.isSelectedPolicyFutureDated()){ev.frontEnd.showPolicyErrorMessage(options.futureDatedError);return;}
if(options.noAmountOutstandingError&&!ev.frontEnd.hasAmountOustandingForSelectedPolicy()){ev.frontEnd.showPolicyErrorMessage(options.noAmountOutstandingError);return;}
var policy=$('[name=PolicyNumber]:radio:checked ~ .current-policy-box').parcel();var policyStatus=policy.policyStatus.state();var policyStatusIsUpdatable=function(status){return policyStatus==='Active'||policyStatus==='Renewal Declined'||policyStatus==='Renewal Offered'||policy.policyStatus.is(":hidden");};if(options.notUpdatablePolicyError&&!(policyStatusIsUpdatable(policyStatus))){ev.frontEnd.showPolicyErrorMessage(options.notUpdatablePolicyError);return;}
if(options.policyRenewalDeclinedError&&policyStatus==='Renewal Declined'){ev.frontEnd.showPolicyErrorMessage(options.policyRenewalDeclinedError);return;}
if(options.notRenewalOfferedPolicyError&&policyStatus!=='Renewal Offered'){ev.frontEnd.showPolicyErrorMessage(options.notRenewalOfferedPolicyError);return;}
var cancelButtonAction=policy.cancelButtonAction.state();if(options.mtaDuringGracePeriod&&policyStatusIsUpdatable(policyStatus)&&cancelButtonAction==='Lapse'){ev.frontEnd.showPolicyErrorMessage(options.mtaDuringGracePeriod);return;}
if(options.cancelAFutureDatedPolicyError&&cancelButtonAction==='None'&&ev.policies.selectedPolicy().activeButNotStarted()){ev.frontEnd.showPolicyErrorMessage(options.cancelAFutureDatedPolicyError);return;}
if(options.invalidPolicyForCancelError&&cancelButtonAction==='None'){ev.frontEnd.showPolicyErrorMessage(options.invalidPolicyForCancelError);return;}
options.execute();};ev.frontEnd.showPolicyErrorMessage=function(errorMessageDivSelector){$('#policySelectionErrorMessage').modal({overlayId:'cardetailsmodal-overlay',containerId:'cardetailsmodal-container',closeClass:"modalCloseImg",onShow:function(dialog){dialog.data.find("div").css("display","none");dialog.data.find(errorMessageDivSelector).css("display","block");}});};ev.frontEnd.showCalculateCancellationAmountErrorMessage=function(cmsContent){$('#calculateCancellationAmountErrorMessage').modal({overlayId:'cardetailsmodal-overlay',containerId:'cardetailsmodal-container',closeClass:"modalCloseImg",onShow:function(dialog){dialog.data.find("div p").text(cmsContent);}});};ev.frontEnd.validateDropDown=function(value,element){return validateDropdown(element);};var validateDropdown=function validateDropdown(dropdownId){var selectedItemValue=$(dropdownId).val();return(selectedItemValue!==""&&selectedItemValue!==ev.frontEnd.constants.pleaseSelect);};

(function($){ev.frontEnd.search=function(cmsHost,searchUrl){function doSearch(){window.open(String.prototype.concat(cmsHost,searchUrl,$('#searchInputBox').val()),"_blank");}
$('#loginWidget .go-search').click(function(){doSearch();});$('#searchInputBox').keydown(function(event){var enterKeyCode=13;if(event.keyCode===enterKeyCode){doSearch();}});$('#searchInputBox').click(function(){$('#searchInputBox').val('');});};})(jQuery);

var Util={};Util.Tooltip=function(options){var defaultOptions={fadeIn:0,fadeOut:250,hideStyle:'.tooltipHide',showStyle:'.tooltipShow',tooltipClass:'.tipEnabled',xOffset:10,yOffset:5,width:300,aboveCursor:true};this.options=jQuery.extend({},defaultOptions,options);this.popupDiv=jQuery("div#UtilTooltipDiv");this._init();};jQuery.extend(Util.Tooltip.prototype,{_init:function(){var iframe=document.createElement("iframe");iframe.setAttribute("id","ShimIFrame");var scriptPrefix="javascript:false";iframe.setAttribute("src",scriptPrefix);iframe.setAttribute("frameborder","0");iframe.setAttribute("scrolling","no");iframe.setAttribute("tabindex","-1");$('body').prepend($(iframe));this.iframeShim=jQuery("iframe#ShimIFrame");},_getScrolledDistance:function(){var iebody=(document.compatMode&&document.compatMode!=="BackCompat")?document.documentElement:document.body;return document.all?iebody.scrollTop:window.pageYOffset;},show:function(event,tooltipDom,toolTipType){var toolTipValue="";if(toolTipType==="info"){toolTipValue=jQuery("#"+tooltipDom).html();}
else if(toolTipType==="dom"){toolTipValue=tooltipDom.value;}
this.popupDiv.html('');var cssTooltipTop=this.options.aboveCursor?'tooltip-down-top':'tooltip-up-top';var cssTooltipBottom=this.options.aboveCursor?'tooltip-down-bottom':'tooltip-up-bottom';var callout="<div class='"+cssTooltipTop+"'></div><div class='tooltip-content'>"+toolTipValue+"</div><div class='"+cssTooltipBottom+"'></div>";this.popupDiv.html(callout);var px=event.clientX;var py=event.clientY;var divWidth=this.popupDiv.width();var divHeight=this.popupDiv.height();var divPadding=parseInt(this.popupDiv.css('padding-left'),10);var divBorderWidth=parseInt(this.popupDiv.css('border-bottom-width'),10);var divLeft=px+this.options.xOffset;var divRight=px+divWidth+this.options.xOffset+(divPadding*2)+(divBorderWidth*2);var divtop=0;if(divHeight<py&&this.options.aboveCursor){divtop=divHeight+this.options.yOffset+(divPadding*2)+(divBorderWidth*2);py=py-divtop+this._getScrolledDistance()+10;this.popupDiv.find(":first").removeClass("tooltip-up-top").addClass("tooltip-down-top");this.popupDiv.find(":last").removeClass("tooltip-up-bottom").addClass("tooltip-down-bottom");}else{divtop=this._getScrolledDistance();py=py+divtop;this.popupDiv.find(":first").addClass("tooltip-up-top").removeClass("tooltip-down-top");this.popupDiv.find(":last").addClass("tooltip-up-bottom").removeClass("tooltip-down-bottom");}
var browserWidth=$(document.documentElement).width();var browserHeight=$(document.documentElement).height();var tooltipDivBottomImageHeight=0;var tooltipDivTopImageHeight=0;if(this.popupDiv.find('div.'+cssTooltipBottom)){tooltipDivBottomImageHeight=this.popupDiv.find('div.'+cssTooltipBottom).height();}
if(this.popupDiv.find('div.'+cssTooltipTop)){tooltipDivTopImageHeight=this.popupDiv.find('div.'+cssTooltipTop).height();}
if(divRight>browserWidth){px=px-divWidth-divPadding*2-this.options.xOffset-divBorderWidth*2;}
else if(divLeft<0){px=px-this.options.xOffset;}
else{px=px+this.options.xOffset;}
this.popupDiv.css('left',px);this.popupDiv.css('top',py);this.popupDiv.attr('class',this.options.showStyle.replace('.',''));var divOpacityValue=parseInt(this.popupDiv.css('opacity'),10);if(divOpacityValue===0){this.popupDiv.css('opacity',1);}
this.popupDiv.css('z-Index',1001);this.iframeShim.css('filter','progid:DXImageTransform.Microsoft.Alpha(opacity=0)');this.iframeShim.css('position','absolute');this.iframeShim.css('left',px+divPadding+2);this.iframeShim.css('top',py+divPadding+tooltipDivTopImageHeight);this.iframeShim.css('width',this.popupDiv.width()+(divBorderWidth*2)-0);this.iframeShim.css('height',this.popupDiv.height()+(divBorderWidth*2)-tooltipDivBottomImageHeight-tooltipDivTopImageHeight-10);this.iframeShim.css('display','block');this.iframeShim.css('z-index',1000);},hide:function(immediate){this.popupDiv.css('opacity',0.0);this.popupDiv.attr('class',this.options.hideStyle.replace('.',''));this.iframeShim.css('display','none');}});ev.frontEnd.component.createTooltip=function(toolTipContentId,toolTipTargetId){if(!ev.frontEnd.tooltip){ev.frontEnd.tooltip=new Util.Tooltip({fadeIn:1,fadeOut:250,hideStyle:'.tooltipHide',showStyle:'.tooltipShow',tooltipClass:'.coverage-title',xOffset:5});}
var targetLocator="#"+toolTipTargetId;jQuery(targetLocator).mouseover(function(e){ev.frontEnd.tooltip.show(e,toolTipContentId,"info");});jQuery(targetLocator).mouseout(function(e){ev.frontEnd.tooltip.hide(false);});};ev.frontEnd.component.wireUpTooltips=function(section){var bindTooltipEvents=function(tooltipId){var item=jQuery("#"+tooltipId);var nextitem=item.parent().find(".tooltip-template");ev.frontEnd.component.createTooltip(nextitem.attr("id"),item.attr("id"));};if(section){section.find("a.tooltipclass").each(function(i){bindTooltipEvents(this.id);});}else{jQuery("a.tooltipclass").each(function(i){bindTooltipEvents(this.id);});}};ev.frontEnd.component.wireUpCoverageTooltip=function(){var tooltip=new Util.Tooltip({fadeIn:1,fadeOut:250,hideStyle:'.tooltipHide',showStyle:'.tooltipShow',tooltipClass:'.coverage-title',xOffset:5,aboveCursor:false});var coverageDescriptions=jQuery("#coverageDetailsSection .coverage-desc");coverageDescriptions.each(function(){jQuery(this).mousemove(function(e){var tooltipContentId=jQuery(this).nextAll(".coverage-details-item").attr("id");tooltip.show(e,tooltipContentId,"info");});jQuery(this).mouseout(function(e){tooltip.hide(true);});});};ev.util.redirect=function(url){document.location=url;};

$.setState=function(selector,state,option){try{var defaultOption={exist:true,editable:true,sync:true,verify:true,notify:true};option=$.extend(defaultOption,$.normalize(option||{}));$(selector).state($.normalize($.cloneState(state)),option);return"";}catch(e){var details="";if(typeof e!=="string"){details=" Details are "
for(var p in e){details+="["+p+":"+e[p]+"]";}}
return e.toString()+". "+details;}};$.getState=function(selector){try{return $.toJSON($(selector).state());}catch(e){return"ERROR:"+e.toString();}};$.IsSectionOfAccordionExpanded=function(sectionId){try{return $('#mainContentRightWrapper .accordionExpanded .accordionExpanded.form-area')[0].getAttribute('id')==sectionId;}catch(e){return"ERROR:"+e.toString();}};$.getErrorsInPage=function(){var errors=$.grep($("div#homedetailsmodal-container:visible,div#cardetailsmodal-container:visible,label.error:visible,div.error:visible,.errorMessage:visible,span.error:visible"),function(err){return $(err).text()!=="";});if(errors.length>0){return"[ \""+$.map(errors,function(e){return $(e).text();}).join("\", \"")+"\" ]";}
return"";};$.dismissError=function(){$('a.modalCloseImg:visible').click();}
$.getAttributes=function(selector,fieldLocator){try{var field;if(fieldLocator){var parcel=$(selector).parcel(true);field=eval("parcel."+fieldLocator);if(field===undefined||(!field.jquery&&!field.tagName)){throw"bad field ["+fieldLocator+"] on ["+selector+"]";}
field=$(field);if(field.length===0){throw fieldLocator+" on "+selector+" does not match any UI element.";}}
else{field=$(selector);if(field.length===0){throw selector+" does not match any UI element.";}}
var attrs={Disabled:field.attr("disabled")===undefined?false:field.attr("disabled"),Visible:field.is(":visible"),Class:field.attr("class")||"",Style:field.attr("style")||""};if(field.is("select")){attrs.OptionsOfSelect=$.map(field.find("option"),function(o){return o.text;}).join(",");}else if(field.is(":text")){var datepicker=field.data("datepicker");if(datepicker){var showOption=datepicker.settings.beforeShow();attrs.DatepickerMinDate=showOption.minDate.toString("dd MMM yyyy");attrs.DatepickerMaxDate=showOption.maxDate.toString("dd MMM yyyy");}}
var a=field.find("a");if(a.length>0){attrs.AnchorLink="";$.each(a,function(i,v){attrs.AnchorLink+=v.href;if(i+1<a.length){attrs.AnchorLink+="|";}});}
return $.toJSON(attrs);}catch(ex){return"ERROR:"+ex.toString();}};$.getHtml=function(selector){return $(selector).html();};$.normalize=function(state){if($.isArray(state)){for(var i=0;i<state.length;i++){if(typeof state[i]==="object"){$.normalize(state[i]);}}}else{for(var key in state){if(state[key]===null){delete state[key];}else if(typeof state[key]==="object"){$.normalize(state[key]);}else if(state[key]==="null"){state[key]=null;}}}
return state;};$.enterSection=function(selector){var oldSetting={async:$.ajaxSettings.async,off:$.fx.off};$.ajaxSetup({async:false});$.fx.off=true;try{var section=$(selector);if(section.length===0){throw"no UI element matching ["+selector+"]";}
var sectionHeader=section.find("div.form-heading.accordionHeader");if(sectionHeader.length===0){throw"failed to locate section header of ["+selector+"]";}
var module=sectionHeader.closest("div.module-wrapper");var moduleHeader=module.find("div.module-heading-expand.accordionHeader");if(moduleHeader.length===0){throw"failed to locate module header of ["+selector+"]";}
if(sectionHeader.is(":hidden")){moduleHeader.triggerNative("click");if(sectionHeader.is(":hidden")){throw"failed to open the parent module of ["+selector+"] by clicking module header";}}
var sectionContent=section.find("div.form-content");if(sectionContent.is(":hidden")){sectionHeader.triggerNative("click");if(sectionContent.is(":hidden")){throw"failed to open section content of ["+selector+"] by clicking section header";}}}finally{$.ajaxSetup({async:oldSetting.async});$.fx.off=oldSetting.off;}};$(document).ready(function(){$("#selectedExcess").live("state-notify",function(){$(this).change();});});$.activeAjaxRequestCount=0;$().ajaxSend(function(){$.activeAjaxRequestCount++;if(!$._ajaxErrorHandlerAdded){$().ajaxError(function(){$.activeAjaxRequestCount--;});$._ajaxErrorHandlerAdded=true;}}).ajaxSuccess(function(){$.activeAjaxRequestCount--;});$._defaultSyncZone=$.parcelConfig.syncZone;$.setTimeoutInSync=function(code){$.isFunction(code)?code():eval(code);return-1;};$.parcelConfig.syncZone={enter:function(){var originalSetting=$._defaultSyncZone.enter();originalSetting.setTimeout=window.setTimeout;window.setTimeout=$.setTimeoutInSync;return originalSetting;},leave:function(originalSetting){$._defaultSyncZone.leave(originalSetting);window.setTimeout=originalSetting.setTimeout;}};$.waitForUserInteractionFailureDetails=function(){var details="activeAjaxRequestCount is "+($.activeAjaxRequestCount===undefined?"undefined":$.activeAjaxRequestCount)+".";details+=" $.readyList is "+$.print($.readyList)+".";if($.readyList){details+=" this error may be caused by uncaught js exception in any document ready handler while page is loading.";}
return details;};$.getAddressPopupList=function(){var listitems=$.grep($("ul li.ac_even:visible,ul li.ac_odd:visible"),function(listitem){return $(listitem).text()!=="";});if(listitems.length>0){return $.map(listitems,function(i){return $(i).text();}).join("|");}
return"";};$.getSpanButton=function(){return $(".cover-type-btn").text();};function offsetter(){this.clientX=0;this.clientY=0;}
$.showToolTip=function(helpPopupLocator){ev.frontEnd.tooltip.show(new offsetter(),helpPopupLocator,'info');}
$.hideToolTip=function(helpPopupLocator){ev.frontEnd.tooltip.hide("",helpPopupLocator,'info');}

ev.frontEnd.component.LocalityAutocompleter=function(fieldId,localityServiceUrl){var KEY={LEFT:37,UP:38,RIGHT:39,DOWN:40,PAGEUP:33,PAGEDOWN:34};var selectResult=function(field){var results=jQuery(".ac_results .ac_over:visible");if(results.length===1){field.val(results.text());}};this.init=function(fieldId,localityServiceUrl){var field=jQuery("#"+fieldId);field.autocomplete(localityServiceUrl,{dataType:'jsonp',parse:this.parseAddressData,formatItem:this.formatAddressData,minChars:3,max:10,scroll:false,matchContains:false,matchSubset:true,selectFirst:true,autoFill:false,highlight:this.highlight,delay:400});field.blur(function(){selectResult(field);});field.keydown(function(e){if(e.keyCode===KEY.LEFT||e.keyCode===KEY.RIGHT){selectResult(field);}});};this.parseAddressData=function(data){var rows=[];for(var i=0;i<data.length;i=i+1){rows[i]={data:data[i],value:data[i].Tag,result:data[i].Tag};}
return rows;};this.formatAddressData=function(row,i,max){return row.Tag;};this.highlight=function(value,term){var re=/\s*((\S+\s*)*)/;term=term.replace(re,"$1");return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>");};this.init(fieldId,localityServiceUrl);};ev.frontEnd.component.addressMatchers={};ev.frontEnd.component.registerAddressMatcher=function(section,options,addressMatcherUrl){var addressMatcher=ev.frontEnd.component.addressMatcher(options,addressMatcherUrl);var sectionAddressMatcher=ev.frontEnd.component.addressMatchers[section];if(!sectionAddressMatcher){ev.frontEnd.component.addressMatchers[section]={};ev.frontEnd.component.addressMatchers[section].matchers=[];ev.frontEnd.component.addressMatchers[section].onComplete=[];sectionAddressMatcher=ev.frontEnd.component.addressMatchers[section];}
sectionAddressMatcher.matchers.push({id:addressMatcher.options.addressBlock,matcher:addressMatcher});if(options.onComplete){sectionAddressMatcher.onComplete.push(options.onComplete);}};ev.frontEnd.component.unregisterAddressMatcher=function(section,addressMatcherId){for(var i=0;i<ev.frontEnd.component.addressMatchers[section].matchers.length;i++){if(ev.frontEnd.component.addressMatchers[section].matchers[i]&&ev.frontEnd.component.addressMatchers[section].matchers[i].id===addressMatcherId){delete ev.frontEnd.component.addressMatchers[section].matchers[i];break;}}
for(i=0;i<ev.frontEnd.component.addressMatchers[section].matchers.length;i++){if(ev.frontEnd.component.addressMatchers[section].matchers[i]){return;}}
delete ev.frontEnd.component.addressMatchers[section];};ev.frontEnd.component.matchAddresses=function(section){var sectionAddressMatcher=ev.frontEnd.component.addressMatchers[section];if(sectionAddressMatcher&&sectionAddressMatcher.matchers.length>0){for(var i=0;i<sectionAddressMatcher.matchers.length;i++){if(sectionAddressMatcher.matchers[i]){sectionAddressMatcher.matchers[i].matcher.remainingMatchers=sectionAddressMatcher.matchers.slice(i+1);sectionAddressMatcher.matchers[i].matcher.onComplete=sectionAddressMatcher.onComplete;sectionAddressMatcher.matchers[i].matcher.validateAddress();return;}}}};ev.frontEnd.component.addressMatcherQuoteUpdater={};ev.frontEnd.component.addressMatcher=function(options,addressMatcherUrl){var matcher={options:options,addressMatcherUrl:addressMatcherUrl};matcher.responseHandlingOptions={exactMatch:{message:[{text:"We have found an exact match for {addressType} address ("},{text:"{displayAddress}",css:{"font-weight":"bold"}},{text:").  Please select the address to continue."}],showConfirmation:false,showAddressSelector:false,showAddressAsEnteredOption:false,showCloseButton:false,closeButtonText:"",canChangeLocality:false},singleMatch:{message:[{text:"A possible match for {addressType} address ("},{text:"{displayAddress}",css:{"font-weight":"bold"}},{text:") has been found.  Please confirm that the address is correct."}],showConfirmation:true,showAddressSelector:true,showAddressAsEnteredOption:true,showCloseButton:false,closeButtonText:"",canChangeLocality:true},multipleMatch:{message:[{text:"We could not find an exact match for {addressType} address ("},{text:"{displayAddress}",css:{"font-weight":"bold"}},{text:").  Possible matches are shown below.  Please select the correct address from the list."}],showConfirmation:true,showAddressSelector:true,showAddressAsEnteredOption:true,showCloseButton:false,closeButtonText:"",canChangeLocality:true},noMatch:{message:[{text:"We could not find any matches for {addressType} address ("},{text:"{displayAddress}",css:{"font-weight":"bold"}},{text:")."}],showConfirmation:true,showAddressSelector:false,showAddressAsEnteredOption:false,showCloseButton:true,closeButtonText:"OK",canChangeLocality:false},error:{message:[{text:"We could not find any matches for {addressType} address ("},{text:"{displayAddress}",css:{"font-weight":"bold"}},{text:").  We will assume this is correct as entered."}],showConfirmation:true,showAddressSelector:false,showAddressAsEnteredOption:false,showCloseButton:true,closeButtonText:"OK",canChangeLocality:false}};matcher.LOCALITY_CHANGE_WARNING="If you select an address in a different suburb, your quote will be re-calculated and may change.";matcher.init=function(){var addressBlockId=".addressMatcher-address";if(matcher.options.addressBlock){addressBlockId=options.addressBlock;}
matcher.container=jQuery(addressBlockId);matcher.fields={unitNo:matcher.container.find(".addressMatcher-unitNo"),streetNo:matcher.container.find(".addressMatcher-streetNo"),streetName:matcher.container.find(".addressMatcher-streetName"),suburb:matcher.container.find(".addressMatcher-suburb"),state:matcher.container.find(".addressMatcher-state"),postcode:matcher.container.find(".addressMatcher-postcode"),poBox:matcher.container.find(".addressMatcher-poBox"),locality:matcher.container.find(".addressMatcher-locality"),dpid:matcher.container.find(".addressMatcher-dpid")};matcher.checkButton=jQuery(addressBlockId+" .addressMatcher-checkButton");matcher.checkButton.click(function(){ev.frontEnd.startSpinners(["validating "+(!!(matcher.options.addressType)?matcher.options.addressType+" ":"")+"address",matcher.getDisplayAddress()]);matcher.checkButton.attr("disabled","disabled");jQuery.getJSON(matcher.addressMatcherUrl,matcher.getAddressURI(),matcher.processMatchResponse);});matcher.container.find(":text").keyup(function(){matcher.fields.dpid.val("");matcher.checkButton.removeAttr("disabled");});};matcher.validateAddress=function(){matcher.currentAddress=matcher.getDisplayAddress();if(matcher.fields.dpid.val()!==""||!matcher.currentAddress||matcher.currentAddress===""){matcher.complete();return;}
ev.frontEnd.startSpinners(["validating "+(!!(matcher.options.addressType)?matcher.options.addressType+" ":"")+"address",{text:matcher.currentAddress.toUpperCase(),css:{"font-weight":"bold"}}]);jQuery.getJSON(matcher.addressMatcherUrl,matcher.getAddressURI(),matcher.processMatchResponse);};matcher.processMatchResponse=function(data){var matchType="error";if(data){if(!data.FuzzySearch){var address=data.Addresses[0];if(data.ExactMatch){matchType="exactMatch";}else{matchType="singleMatch";}}else if(data.Addresses){if(data.Addresses.length>=1){matchType="multipleMatch";}else{matchType="noMatch";}}}
matcher.showAddressSelector(data,matchType);};matcher.showAddressSelector=function(data,matchType){var responseOptions=matcher.responseHandlingOptions[matchType];if(!responseOptions.showConfirmation){if(data&&data.Addresses&&data.Addresses[0]){matcher.selectAddress(data.Addresses[0]);}
return;}
var msg=responseOptions.message;var table=jQuery("<div />").attr("id","display-content").css("height",responseOptions.showAddressSelector?(responseOptions.canChangeLocality&&matcher.options.onLocalityChanged?"90%":"95%"):"50%");var msgDiv=jQuery("<div />").attr("id","am-result").css("padding","5px");for(var i=0;i<msg.length;i++){var msgSpan=jQuery("<span />");if(msg[i].css){msgSpan.css(msg[i].css);}
msgSpan.text(msg[i].text.replace(/\{addressType\}/,matcher.options.addressType).replace(/\{displayAddress\}/,matcher.currentAddress.toUpperCase()));msgDiv.append(msgSpan);}
table.append(msgDiv);if(responseOptions.canChangeLocality&&matcher.options.onLocalityChanged){table.append(jQuery("<div />").css("padding","5px").text(matcher.LOCALITY_CHANGE_WARNING));}
if(responseOptions.showAddressSelector){table.append(jQuery("<div />").css("height",responseOptions.showCloseButton?"60%":"75%").css("overflow","auto").addClass("am_results").append(jQuery("<ul />").mouseover(function(event){if(matcher.target(event).nodeName&&matcher.target(event).nodeName.toUpperCase()==="LI"){jQuery("li",table).removeClass("am_over");jQuery(matcher.target(event)).addClass("am_over");}}).click(function(event){if(matcher.target(event).nodeName&&matcher.target(event).nodeName.toUpperCase()==="LI"){if(jQuery(matcher.target(event)).data("address")){matcher.selectAddress(jQuery(matcher.target(event)).data("address"));}}})));var ul=table.find("ul");if(data&&data.Addresses){for(var j=0;j<data.Addresses.length;j++){var address=data.Addresses[j];jQuery("<li />").addClass(j%2===0?"am_even":"am_odd").data("address",address).text(matcher.formatAddress(address)).appendTo(ul);}}
if(responseOptions.showAddressAsEnteredOption){jQuery("<li />").addClass("am_highlight").data("address","as-is").text("My address "+matcher.currentAddress.toUpperCase()+" is correct as entered").appendTo(ul);}}
if(responseOptions.showCloseButton){jQuery("#updatingMessage .addressmatcher-close-div").css("display","block");jQuery("#updatingMessage .addressmatcher-close").bind("click.addressmatcher",function(){jQuery("#updatingMessage .addressmatcher-close").unbind("click.addressmatcher");jQuery("#updatingMessage .addressmatcher-close-div").css("display","none");matcher.selectAddress("as-is");});}else{jQuery("#updatingMessage .addressmatcher-close-div").css("display","none");}
if(responseOptions.closeButtonText){jQuery("#updatingMessage .addressmatcher-close").text(responseOptions.closeButtonText);}
jQuery("#updatingMessage").css("top","0").css("height","100%").find("#display-content").replaceWith(table);};matcher.selectAddress=function(address){if(address&&address!=="as-is"){var localityChanged=matcher.setAddressAndCheckForLocalityChange(address);if(localityChanged&&matcher.options.onLocalityChanged){matcher.options.onLocalityChanged(address.Locality);}}else{matcher.fields.dpid.val("0");}
matcher.complete();};matcher.complete=function(){matcher.currentAddress="";if(this.remainingMatchers&&this.remainingMatchers.length>0){for(var i=0;i<this.remainingMatchers.length;i++){if(this.remainingMatchers[i]){this.remainingMatchers[i].matcher.remainingMatchers=this.remainingMatchers.slice(i+1);this.remainingMatchers[i].matcher.onComplete=this.onComplete;this.remainingMatchers[i].matcher.validateAddress();return;}}}
matcher.checkButton.removeAttr("disabled");if(this.onComplete&&this.onComplete.length>0){jQuery.each(this.onComplete,function(i,callback){callback();});}else{ev.frontEnd.stopSpinners();}};matcher.setAddressAndCheckForLocalityChange=function(address){var localityChanged=false;matcher.fields.unitNo.val(address.UnitNumber===null||address.UnitNumber===""?"":address.UnitNumber);matcher.fields.streetNo.val(address.StreetNumber===null||address.StreetNumber===""?"":address.StreetNumber);matcher.fields.streetName.val(address.StreetName===null||address.StreetName===""?"":address.StreetName);matcher.fields.poBox.val(address.PostOfficeBox===null||address.PostOfficeBox===""?"":address.PostOfficeBox);matcher.fields.dpid.val(address.Dpid===null||address.Dpid===""?"":address.Dpid);if(matcher.fields.locality&&matcher.fields.locality.length>0){var newLocality=address.Locality.Postcode+" "+address.Locality.Suburb+" "+address.Locality.State;localityChanged=matcher.fields.locality.val().toUpperCase()!==newLocality.toUpperCase();matcher.fields.locality.val(newLocality);matcher.fields.locality.get(0).defaultValue=newLocality;}else{localityChanged=matcher.fields.suburb.text().replace(/[^A-Za-z0-9 ]/g,"").toUpperCase()!==address.Locality.Suburb.toUpperCase()||matcher.fields.postcode.text().replace(/[^A-Za-z0-9 ]/g,"").toUpperCase()!==address.Locality.Postcode.toUpperCase()||matcher.fields.state.text().replace(/[^A-Za-z0-9 ]/g,"").toUpperCase()!==address.Locality.State.toUpperCase();matcher.fields.suburb.text(address.Locality.Suburb);matcher.fields.state.text(address.Locality.State);matcher.fields.postcode.text(address.Locality.Postcode);}
return localityChanged;};matcher.getDisplayAddress=function(){var address="";var sep="";if(matcher.fields.poBox&&matcher.fields.poBox.val()){var poBox=matcher.fields.poBox.val();if(poBox.match(/^\d+$/)){poBox="PO Box "+poBox;}
address+=sep+poBox;sep=", ";}else{if(matcher.fields.unitNo&&matcher.fields.unitNo.val()){address+=sep+matcher.fields.unitNo.val();sep="/";}
if(matcher.fields.streetNo&&matcher.fields.streetNo.val()){address+=sep+matcher.fields.streetNo.val();sep=" ";}
if(matcher.fields.streetName&&matcher.fields.streetName.val()){address+=sep+matcher.fields.streetName.val();sep=", ";}}
if(matcher.fields.locality&&matcher.fields.locality.val()){address+=sep+matcher.fields.locality.val();sep=" ";}else{if(matcher.fields.suburb&&matcher.fields.suburb.text().replace(/[^A-Za-z0-9 ]/g,"")){address+=sep+matcher.fields.suburb.text().replace(/[^A-Za-z0-9 ]/g,"");sep=" ";}
if(matcher.fields.state&&matcher.fields.state.text().replace(/[^A-Za-z0-9 ]/g,"")){address+=sep+matcher.fields.state.text().replace(/[^A-Za-z0-9 ]/g,"");sep=" ";}
if(matcher.fields.postcode&&matcher.fields.postcode.text().replace(/[^A-Za-z0-9 ]/g,"")){address+=sep+matcher.fields.postcode.text().replace(/[^A-Za-z0-9 ]/g,"");sep=" ";}}
if(address==="postcode/suburb"){address="";}
return address;};matcher.getAddressURI=function(){var address="";var sep="";if(matcher.fields.poBox&&matcher.fields.poBox.val()){var poBox=matcher.fields.poBox.val();if(poBox.match(/^\d+$/)){poBox="PO BOX "+poBox;}
address+=sep+"POBox="+encodeURI(poBox);sep="&";}
if(matcher.fields.unitNo&&matcher.fields.unitNo.val()){address+=sep+"UnitNumber="+encodeURI(matcher.fields.unitNo.val());sep="&";}
if(matcher.fields.streetNo&&matcher.fields.streetNo.val()){address+=sep+"StreetNumber="+encodeURI(matcher.fields.streetNo.val());sep="&";}
if(matcher.fields.streetName&&matcher.fields.streetName.val()){address+=sep+"StreetName="+encodeURI(matcher.fields.streetName.val());sep="&";}
if(matcher.fields.suburb&&matcher.fields.suburb.text()){address+=sep+"Suburb="+encodeURI(matcher.fields.suburb.text().replace(/[^A-Za-z0-9 ]/g,""));sep="&";}
if(matcher.fields.state&&matcher.fields.state.text()){address+=sep+"State="+encodeURI(matcher.fields.state.text().replace(/[^A-Za-z0-9 ]/g,""));sep="&";}
if(matcher.fields.postcode&&matcher.fields.postcode.text()){address+=sep+"Postcode="+encodeURI(matcher.fields.postcode.text().replace(/[^A-Za-z0-9 ]/g,""));sep="&";}
if(matcher.fields.locality&&matcher.fields.locality.val()){address+=sep+"Locality="+encodeURI(matcher.fields.locality.val());sep="&";}
return address;};matcher.formatAddress=function(address){return((address.PostOfficeBox&&address.PostOfficeBox!=="")?(address.PostOfficeBox+" "):(((address.UnitNumber&&address.UnitNumber!=="")?""+address.UnitNumber+"/":"")+address.StreetNumber+" "+address.StreetName+", "))+address.Locality.Suburb+"  "+address.Locality.State+"  "+address.Locality.Postcode;};matcher.target=function(event){var element=event.target;while(element&&element.tagName!=="LI"){element=element.parentNode;}
if(!element){return[];}
return element;};matcher.init();return matcher;};

ev.frontEnd.maskCreditCardNumber=function(creditCardNumber){return"xxxx"+creditCardNumber.substring(creditCardNumber.length-4);};ev.frontEnd.setupCreditCardExpiryDateComponent=function(fieldSelector){var expiryField=$(fieldSelector);var creditCardExpiryDateChanged=function(){expiryField.val(expiryField.month.val()+"/"+expiryField.year.val());expiryField.siblings(".error").hide();};expiryField.month=expiryField.siblings(".month").change(creditCardExpiryDateChanged);expiryField.year=expiryField.siblings(".year").change(creditCardExpiryDateChanged);};ev.frontEnd.createCreditCard=function(passedType,allawedMaxDigitCount){var type=passedType;var maxDigitCount=allawedMaxDigitCount;return{getType:function(){return type;},getMaxDigitCount:function(){return maxDigitCount;}};};ev.frontEnd.setupChangeCreditCardType=function(fieldSelector,textboxSelector){var changeCreditCardType=function(){var selectedCardType=$(this).val();var selectedCard=null;var maxLength=0;if(selectedCardType===ev.frontEnd.visa.getType()){selectedCard=ev.frontEnd.visa;}
if(selectedCardType===ev.frontEnd.master.getType()){selectedCard=ev.frontEnd.master;}
if(selectedCardType===ev.frontEnd.dinners.getType()){selectedCard=ev.frontEnd.dinners;}
if(selectedCardType===ev.frontEnd.amex.getType()){selectedCard=ev.frontEnd.amex;}
maxLength=(selectedCard&&selectedCard.getMaxDigitCount())||0;$(textboxSelector).attr("maxlength",maxLength);};$(fieldSelector).change(changeCreditCardType);};ev.frontEnd.visa=ev.frontEnd.createCreditCard("Visa",16);ev.frontEnd.master=ev.frontEnd.createCreditCard("MasterCard",16);ev.frontEnd.dinners=ev.frontEnd.createCreditCard("DinersClub",14);ev.frontEnd.amex=ev.frontEnd.createCreditCard("AmericanExpress",15);

function AjaxError(options){this.name=options.name;this.errorOptions=options;this.requestedUrl=options.url;this.errorHandler=options.handler;this.errorHandlingStrategy=options.errorHandlingStrategy;this.numberOfErrorsHandled={};}
$.extend(AjaxError.prototype,{isError:function(XMLHttpRequest,ajaxOptions){var url=ajaxOptions.url;if($.isArray(this.requestedUrl)){for(var urlFromList in this.requestedUrl){if(url.contains(this.requestedUrl[urlFromList])){return true;}}
return false;}
return url.contains(this.requestedUrl);},handle:function(XMLHttpRequest,ajaxOptions){var url=ajaxOptions.url;if(XMLHttpRequest!==null&&XMLHttpRequest.status===403){var redirectUrl=XMLHttpRequest.getResponseHeader("Location");if(redirectUrl!==undefined&&redirectUrl!==""){ev.frontEnd.defaultErrorHandler();ev.frontEnd.redirectToUrl(redirectUrl);return;}}
if(this.errorHandlingStrategy){var result=this.errorHandlingStrategy(this.errorHandler,this.numberOfErrorsHandled,url);this.incrementErrorsCount(url);return result;}
return this.defaultErrorHandlingStrategy(this.errorHandler,url);},defaultErrorHandlingStrategy:function(handler,url){if(this.numberOfErrorsHandled[url]&&this.numberOfErrorsHandled[url]>0){document.location=ev.frontEnd.ajaxErrorHandlerRedirectUrl;return;}
this.incrementErrorsCount(url);return handler();},incrementErrorsCount:function(url){if(this.numberOfErrorsHandled[url]){this.numberOfErrorsHandled[url]+=1;}else{this.numberOfErrorsHandled[url]=1;}
return this.numberOfErrorsHandled[url];}});function SessionExpiredAjaxError(options){var args=options||{};AjaxError.call(this,args);}
$.extend(SessionExpiredAjaxError.prototype,AjaxError.prototype,{isError:function(XMLHttpRequest,ajaxOptions){if(XMLHttpRequest.status===403&&XMLHttpRequest.getResponseHeader("Location")!==undefined&&XMLHttpRequest.getResponseHeader("Location")!==""){return true;}
return false;},handle:function(XMLHttpRequest,ajaxOptions){var redirectUrl=XMLHttpRequest.getResponseHeader("Location");if(redirectUrl===undefined||redirectUrl===""){redirectUrl=ev.frontEnd.ajaxErrorHandlerRedirectUrl;}
document.location=redirectUrl;}});function defaultAjaxErrorHandle(){$.modal('<div class="defaultAjaxErrorPopup"><p>Unexpected error occured. Please try again later.</p></div>');}
function AjaxErrorHandler(listOfErrors){var errorList=listOfErrors;var recognizeAjaxError=function(XMLHttpRequest,ajaxOptions){for(var error in errorList){if(errorList[error].isError(XMLHttpRequest,ajaxOptions)){return errorList[error];}}
if(errorList&&errorList["defaultError"]){return errorList["defaultError"];}
return new AjaxError({name:'default',url:'',handler:defaultAjaxErrorHandle});};var handle=function(error,XMLHttpRequest,ajaxOptions){error.handle(XMLHttpRequest,ajaxOptions);};var handleAjaxErrors=function(event,XMLHttpRequest,ajaxOptions,thrownError){var error=recognizeAjaxError(XMLHttpRequest,ajaxOptions);handle(error,XMLHttpRequest,ajaxOptions);};return handleAjaxErrors;}
ev.frontEnd.showModalErrorMessage=function(message,action){if($.modal){$.modal.close();}
ev.frontEnd.stopSpinners();if(action){action();}
var html='<div class="ajaxErrorPopup"><p>'+message+'</p><div class="buttons"><div class="close simplemodal-close">Close</div></div></div>';$.modal(html,{close:false,onShow:function(dialog){dialog.container.find(".close").click(function(){$.modal.close();});},overlayCss:{backgroundColor:'#717171',opacity:'0.5'},containerCss:{border:'3px solid #472c78',padding:'20px',color:'#717171',backgroundColor:'#F8F4F9'},closeClass:'simplemodal-close'});};ev.frontEnd.showModalErrorMessageWithRedirectUrl=function(message,redirectToUrl){if($.modal){$.modal.close();}
ev.frontEnd.stopSpinners();var html='<div class="ajaxErrorPopup"><p>'+message+'</p><div class="buttons"><div class="close simplemodal-close">Close</div></div></div>';$.modal(html,{overlayCss:{backgroundColor:'#717171',opacity:'0.5'},containerCss:{border:'3px solid #472c78',padding:'20px',color:'#717171',backgroundColor:'#F8F4F9'},closeClass:'simplemodal-close',onClose:function(){$.modal.close();document.location=redirectToUrl;}});};ev.frontEnd.showModalErrorMessageAndLogout=function(message,redirectToUrl){if($.modal){$.modal.close();}
ev.frontEnd.stopSpinners();var html='<div style="display:block;" id="UserSuspendedErrorMessageContainer"><div id="UserSuspendedErrorMessage" class="usersuspendedmodal-text"><p>'+message+'</p></div></div>';$.modal(html,{overlayId:'usersuspendedmodal-overlay',containerId:'usersuspendedmodal-container',closeClass:"modalCloseImg",onClose:function(){$.modal.close();document.location=redirectToUrl;}});};$.fn.resetSelect=function(){$(this).find(":option:first").attr('selected','selected');$(this).trigger('change');return this;};ev.frontEnd.showQuotingJustStoppedWorkingErrorMessage=function(){ev.frontEnd.showModalErrorMessage("We're sorry our system is experiencing a problem. Please try again later.",function(){$("#locality").val("postcode/suburb").clearValueOnFirstClick();$("#year").val(ev.frontEnd.constants.pleaseSelect);$("#fieldset_DateOfBirth :select").resetSelect();});};function QuickQuoteErrorList(){return{quickQuoteError:new AjaxError({name:'quickQuoteError',url:['Quote/LocalitySearch','Quote/VehicleMakesForYear','Quote/VehicleModelsForYearAndMake','Quote/VehicleVariantForYearMakeAndModel','Quote/EngineSizeForVehicleModel','Quote/DeclinedForEngineSize','Policy/StartQuote'],handler:ev.frontEnd.showQuotingJustStoppedWorkingErrorMessage,errorHandlingStrategy:function(handler,numberIfErrors){return handler();}})};}
ev.frontEnd.defaultAjaxErrorMessage="We're sorry, but we are unable to help you with your insurance needs due to the specialised nature of your car and circumstances.";ev.frontEnd.defaultErrorHandler=function(){if($.modal){$.modal.close();}};ev.frontEnd.redirectToUrl=function(url){if(url.indexOf("InvalidPremiumError")>0){var redirectUrl="";if(bt.current()==='Mta'){var myBuzzLink=$("#myBuzzLink");redirectUrl=myBuzzLink!=='undefined'?myBuzzLink.attr("href"):"";ev.frontEnd.showModalErrorMessageWithRedirectUrl(ev.frontEnd.defaultAjaxErrorMessage,redirectUrl);}
else{ev.frontEnd.showModalErrorMessageWithRedirectUrl(ev.frontEnd.defaultAjaxErrorMessage,"");}}
else{document.location=url;}};ev.frontEnd.showTemporaryProblemMessage=function(){ev.frontEnd.showModalErrorMessage(ev.frontEnd.defaultAjaxErrorMessage);};ev.frontEnd.carDetailsErrorHandler=function(){ev.frontEnd.showTemporaryProblemMessage();$("#year").resetSelect();};ev.frontEnd.localityErrorHandler=function(){ev.frontEnd.showTemporaryProblemMessage();$("#locality").val("postcode/suburb").clearValueOnFirstClick();};ev.frontEnd.addressingErrorHandler=function(){ev.frontEnd.redirectOnAjaxError(ev.frontEnd.ajaxErrorHandlerRedirectUrl);};ev.frontEnd.quoteErrorHandler=function(){ev.frontEnd.redirectOnAjaxError(ev.frontEnd.ajaxErrorHandlerRedirectUrl);};ev.frontEnd.submitQuoteErrorHandler=function(){$("#fullQuoteModule").data('expandable').hasCompleteErrors=true;ev.frontEnd.redirectOnAjaxError(ev.frontEnd.ajaxErrorHandlerRedirectUrl);};ev.frontEnd.submitSecureErrorHandler=function(){$("#secureModule").data('expandable').hasCompleteErrors=true;ev.frontEnd.redirectOnAjaxError(ev.frontEnd.ajaxErrorHandlerRedirectUrl);};ev.frontEnd.purchaseMotorPolicyErrorHandler=function(){ev.frontEnd.redirectOnAjaxError(ev.frontEnd.ajaxErrorHandlerRedirectUrl);};ev.frontEnd.mtaSubmitSecureErrorHandler=function(){ev.frontEnd.defaultErrorHandler();ev.frontEnd.redirectOnAjaxError(ev.frontEnd.ajaxErrorHandlerRedirectUrl);};ev.frontEnd.redirectOnAjaxError=function(redirectUrl){document.location=redirectUrl;};function MtaErrorList(){return{mtaErrorList:new AjaxError({name:'mtaErrorList',url:['Mta/SubmitSecure','Mta/SubmitMTAPolicy','Mta/GetMTAPolicyAsJSON','Mta/ProcessRefundMta','Mta/ProcessBuyMta'],handler:ev.frontEnd.mtaSubmitSecureErrorHandler,errorHandlingStrategy:function(handler,numberIfErrors){return handler();}})};}
function NewBusinessErrorList(){return{sendQuoteViaEmailError:new AjaxError({name:'saveAndEmailQuoteError',url:'Policy/SaveAndEmailQuote',handler:ev.frontEnd.showTemporaryProblemMessage}),quoteError:new AjaxError({name:'quoteError',url:'Quote/GetQuoteAsJSON',handler:ev.frontEnd.quoteErrorHandler}),submitSecureError:new AjaxError({name:'submitSecureError',url:'Policy/SubmitSecure',handler:ev.frontEnd.submitSecureErrorHandler})};}
function PolicyErrorList(){return{sessionExpiredError:new SessionExpiredAjaxError({}),defaultError:new AjaxError({name:'anyOtherError',handler:ev.frontEnd.defaultErrorHandler}),carDetailsError:new AjaxError({name:'carDetailsError',url:'Quote/LocalitySearch',handler:ev.frontEnd.localityErrorHandler}),localityError:new AjaxError({name:'carDetailsError',url:['Quote/VehicleMakesForYear','Quote/VehicleModelsForYearAndMake','Quote/VehicleVariantForYearMakeAndModel','Quote/EngineSizeForVehicleModel','Quote/DeclinedForEngineSize'],handler:ev.frontEnd.carDetailsErrorHandler}),addressingError:new AjaxError({name:'addressingError',url:'Addressing/MatchAddress',handler:ev.frontEnd.addressingErrorHandler}),submitQuoteError:new AjaxError({name:'submitQuoteError',url:'Policy/SubmitQuote',handler:ev.frontEnd.submitQuoteErrorHandler}),purchaseMotorPolicyError:new AjaxError({name:'purchaseMotorPolicyError',url:'Payment/PurchaseMotorPolicy',handler:ev.frontEnd.purchaseMotorPolicyErrorHandler})};}
ev.frontEnd.changePasswordErrorHandler=function(){ev.frontEnd.redirectOnAjaxError(ev.frontEnd.ajaxErrorHandlerRedirectUrl);};ev.frontEnd.myBuzzDefaultErrorHandler=function(){ev.frontEnd.defaultErrorHandler();ev.frontEnd.redirectOnAjaxError(ev.frontEnd.ajaxErrorHandlerRedirectUrl);};function myBuzzErrorList(){return{defaultError:new AjaxError({name:'anyOtherError',handler:ev.frontEnd.myBuzzDefaultErrorHandler}),changePasswordError:new AjaxError({name:'changePasswordError',url:['MyBuzz/ChangePassword','Account/ChangePassword'],handler:ev.frontEnd.changePasswordErrorHandler})};}
function QuickQuoteAjaxErrorHandler(){return AjaxErrorHandler(QuickQuoteErrorList());}
ev.frontEnd.attachQuickQuoteAjaxErrorHandler=function(ajaxErrorRedirectUrl){ev.frontEnd.ajaxErrorHandlerRedirectUrl=ajaxErrorRedirectUrl;$().ajaxError(new QuickQuoteAjaxErrorHandler());};function MtaAjaxErrorHandler(){return new AjaxErrorHandler($.extend({},MtaErrorList(),PolicyErrorList()));}
function PolicyAjaxErrorHandler(){return new AjaxErrorHandler($.extend({},NewBusinessErrorList(),PolicyErrorList()));}
function MyBuzzAjaxErrorHandler(){return new AjaxErrorHandler(myBuzzErrorList());}
ev.frontEnd.attachPolicyErrorHandler=function(ajaxErrorRedirectUrl){ev.frontEnd.ajaxErrorHandlerRedirectUrl=ajaxErrorRedirectUrl;$().ajaxError(new PolicyAjaxErrorHandler());};ev.frontEnd.attachMtaErrorHandler=function(ajaxErrorRedirectUrl){ev.frontEnd.ajaxErrorHandlerRedirectUrl=ajaxErrorRedirectUrl;$().ajaxError(new MtaAjaxErrorHandler());};ev.frontEnd.attachMyBuzzErrorHandler=function(ajaxErrorRedirectUrl){ev.frontEnd.ajaxErrorHandlerRedirectUrl=ajaxErrorRedirectUrl;$().ajaxError(new MyBuzzAjaxErrorHandler());};

ev.frontEnd.component.loginWidgetBehaviour=function(){var logoutLink=this.find("#logoutLink");var myBuzzLink=this.find("#myBuzzLink");var dialogTemplate=this.find(".dialogTemplate");var logoutMessage=this.find("#logoutMessage");var myBuzzMessage=this.find("#myBuzzMessage");var dialogMessage=this.find(".dialogMessage");var dialogTop=this.find(".top div");var logoutTop=this.find("#logoutTop");var myBuzzTop=this.find("#myBuzzTop");var onLogoutYes=function(){jQuery.modal.close();document.location=logoutLink.attr("href");};var onMyBuzzYes=function(){jQuery.modal.close();document.location=myBuzzLink.attr("href");};var setMessage=function(source){dialogMessage.empty();dialogMessage.append(source.html());};var setTop=function(source){dialogTop.empty();dialogTop.append(source.html());};var wireupLogoutLink=function(){logoutLink.click(function(event){event.preventDefault();setTop(logoutTop);setMessage(logoutMessage);dialogTemplate.modal({onShow:function(dialog){dialog.data.find(".yes").click(onLogoutYes);},closeClass:"closeModalWindow"});});};var wireupMyBuzzLink=function(){myBuzzLink.click(function(event){event.preventDefault();setTop(myBuzzTop);setMessage(myBuzzMessage);dialogTemplate.modal({onShow:function(dialog){dialog.data.find(".yes").click(onMyBuzzYes);},closeClass:"closeModalWindow"});});};var shouldConfirmLogout=function(){return(logoutMessage.length===1);};var shouldConfirmMyBuzz=function(){return(myBuzzMessage.length===1);};if(shouldConfirmLogout()){wireupLogoutLink();}
if(shouldConfirmMyBuzz()){wireupMyBuzzLink();}};

(function($){ev.frontEnd.startSpinners=function(msg){ev.frontEnd.resetSpinnerMessage();var obj=$("#updatingMessage");var top=0;if(!msg&&ev.frontEnd.quoteRefreshMessage&&ev.frontEnd.quoteRefreshMessage!==""){msg=ev.frontEnd.quoteRefreshMessage;ev.frontEnd.quoteRefreshMessage=undefined;}
if(msg){var target=obj.find("#display-content div");target.empty();if(typeof msg==="string"){target.append($("<div></div>").css("margin-bottom","20px").html(msg));}else if(typeof msg==="object"){for(var i=0;i<msg.length;i++){if(typeof msg[i]==="string"){target.append($("<div></div>").css("margin-bottom","20px").text(msg[i]));}else{target.append($("<div></div>").css("margin-bottom","20px").css(msg[i].css).text(msg[i].text));}
top-=5;}}}
if(top<10){top=10;}
obj.css("top",top+"%");if(!obj.hasClass("simplemodal-data")){obj.modal({overlayCss:{backgroundColor:'#717171',opacity:'0.5'},containerCss:{border:'3px solid #472c78',padding:'20px',color:'#717171',backgroundColor:'#F8F4F9'},dataCss:{textAlign:'center'},close:false,closeClass:'simplemodal-close',onClose:ev.frontEnd.removeModalDialog});}};ev.frontEnd.stopSpinners=function(){ev.frontEnd.resetSpinnerMessage();$.modal.close();};ev.frontEnd.removeModalDialog=function(dialog){dialog.data.hide();dialog.container.hide();dialog.overlay.hide();ev.frontEnd.stopSpinners();};ev.frontEnd.resetSpinnerMessage=function(){$("#updatingMessage #display-content").replaceWith($("#updatingMessage #default-content").clone().attr("id","display-content").css("display","block"));};})(jQuery);

ev.frontEnd.GoToThankYouPage=function(data,thankYouUrl,payModuleTrackingText){var buildParamIfProvided=function(paramName,dataValue){return dataValue?paramName+"="+dataValue:"";};var omnitureModel=data.OmnitureReportingViewModel||{};var queryParams=[buildParamIfProvided("ref",data.CreditCardTransactionReferenceNumber),buildParamIfProvided("policyno",data.PolicyNumber),buildParamIfProvided("policytype",data.PolicyType),buildParamIfProvided("fullname",data.CustomerFullName),buildParamIfProvided("email",data.CustomerEmail),buildParamIfProvided("activeFrom",data.ActiveFrom),buildParamIfProvided("myBuzzUrl",data.MyBuzzUrl),buildParamIfProvided("payLater",data.PayLater),buildParamIfProvided("itemid",data.ThankYouPageItemId),buildParamIfProvided("productTotal",omnitureModel.Amount),buildParamIfProvided("cancellationDate",data.CancellationDate),buildParamIfProvided("businessType",omnitureModel.BusinessType),buildParamIfProvided("age",omnitureModel.DateOfBirth),buildParamIfProvided("postcode",omnitureModel.PostCode),buildParamIfProvided("make",omnitureModel.Make)];var queryString="";$.each(queryParams,function(index,value){var paramOperator=queryString?"&":"?";if(value){queryString=queryString+paramOperator+value;}});location.href=(thankYouUrl+queryString).urlEncode();};ev.frontEnd.NewPaymentInstalmentDate=function(args){var options={container:args.container,dateTextboxId:args.dateTextboxId,policyInceptionDate:args.policyInceptionDate,annualButton:args.annualButton,monthlyButton:args.monthlyButton,fortnightlyButton:args.fortnightlyButton,paymentScheduleSuffix:args.paymentScheduleSuffix,imageLocation:args.imageLocation,ongoingPaymentDateForMonthly:args.ongoingPaymentDateForMonthly,ongoingPaymentDateForFortnightly:args.ongoingPaymentDateForFortnightly,instalmentFromDateForMonthly:args.instalmentFromDateForMonthly,instalmentFromDateForFortnightly:args.instalmentFromDateForFortnightly,instalmentToDateForMonthly:args.instalmentToDateForMonthly,instalmentToDateForFortnightly:args.instalmentToDateForFortnightly};var that=options;that._dateTextbox=$(that.dateTextboxId);that.showContainer=function(){that.container.show();var inceptionDate=that._getPolicyInceptionDate();if(that.monthlyButton.is(':checked')){that._makeDatePicker('monthly',inceptionDate,that._displayMonthlyPaymentSchedule);that._displayMonthlyPaymentSchedule(that._dateTextbox.val());}else if(that.fortnightlyButton.is(':checked')){that._makeDatePicker('fortnightly',inceptionDate,that._displayFortnightlyPaymentSchedule);that._displayFortnightlyPaymentSchedule();}};that.hideContainer=function(){that.container.hide();};that._getPolicyInceptionDate=function(){return that.policyInceptionDate.val().toDateFromDisplayDate();};that._getFirstInstalmentDate=function(){return that._getPolicyInceptionDate();};that._getSecondInstalmentDate=function(){return that._dateTextbox.val().toDateFromDisplayDate();};that._getLastMonthlyInstalmentDate=function(){var secondPaymentDate=that._getSecondInstalmentDate();return secondPaymentDate.add(10).months();};that._getLastFortnightlyInstallmentDate=function(){var secondPaymentDate=that._getSecondInstalmentDate();return secondPaymentDate.add(48).weeks();};that._makeDatePicker=function(paymentType,inceptionDate,onSelectFunction){that._dateTextbox.datepicker("destroy");var datePickerOptions={paymentType:paymentType,inceptionDate:inceptionDate,onSelect:onSelectFunction,imageLocation:that.imageLocation,ongoingPaymentDateForMonthly:that.ongoingPaymentDateForMonthly,ongoingPaymentDateForFortnightly:that.ongoingPaymentDateForFortnightly,instalmentFromDateForMonthly:that.instalmentFromDateForMonthly,instalmentFromDateForFortnightly:that.instalmentFromDateForFortnightly,instalmentToDateForMonthly:that.instalmentToDateForMonthly,instalmentToDateForFortnightly:that.instalmentToDateForFortnightly};var keepJsLintHappy=new ev.frontEnd.component.PaymentInstallmentDatePicker(that.dateTextboxId,datePickerOptions);};that._displayMonthlyPaymentSchedule=function(secondPaymentDateString){$("#monthly"+that.paymentScheduleSuffix).html(ev.frontEnd.constructMonthlyPaymentSchedule(that.monthlyButton.attr("Amount"),that._getFirstInstalmentDate(),secondPaymentDateString.toDateFromDisplayDate()));$("#lastInstallmentDate").text(that._getLastMonthlyInstalmentDate().toDisplayDate());};that._displayFortnightlyPaymentSchedule=function(){$("#fortnightly"+that.paymentScheduleSuffix).html(ev.frontEnd.constructFortnightlyPaymentSchedule(that.fortnightlyButton.attr("Amount"),that._getFirstInstalmentDate()));$("#lastInstallmentDate").text(that._getLastFortnightlyInstallmentDate().toDisplayDate());};that.container.children('a').click(function(event){event.preventDefault();that._dateTextbox.focus();});return that;};ev.frontEnd.createPayment=function(args){var that=args;that.showPaymentDateBox=function(){if(that.annualButton.is(':checked')&&that.creditCardButton.is(':checked')){that.paymentDateBox.show();that.paymentDateBox.find(':radio').removeAttr('disabled');}else{that.paymentDateBox.hide();that.paymentDateBox.find(':radio').attr('disabled','disabled');}};that.switchPaymentType=function(paymentFrenquencyNotChanged){that.showSelectedPaymentMethod();that.showPaymentDateBox();if(that.annualButton.is(':checked')){that.bPayButton.removeAttr('disabled');that.dontRequireDirectDebitConfirm();if(that.datePicker){that.datePicker.hideContainer();}
that.highlightInstallment(that.annualFrequencyTxt);}else{that.bPayButton.attr('disabled','disabled');that.directDebitAgreement.children(':checkbox').removeAttr('checked');that.requireDirectDebitConfirm();if(that.datePicker&&!paymentFrenquencyNotChanged){that.datePicker.showContainer();}
if(that.monthlyButton.is(':checked')){that.highlightInstallment(that.monthlyFrequencyTxt);}
else{that.highlightInstallment(that.fortnightlyFrequencyTxt);}}
that.setBPayRules();$('#'+that.installmentDetailsSuffix).children().hide();var selectedInstallment=$('[name='+that.annualButton.attr('name')+']:checked');$('#'+selectedInstallment.val()+that.installmentDetailsSuffix).show();};that.setBPayRules=function(){if(that.bPayButton.is(':checked')){that.monthlyButton.attr('disabled','disabled');that.fortnightlyButton.attr('disabled','disabled');}else{that.monthlyButton.removeAttr('disabled');that.fortnightlyButton.removeAttr('disabled');}};that.paymentMethodChangeHandler=function(){that.switchPaymentType(true);$("#paymentDetails").clearValidationMessages();that.resetToDefaultValue();};that.paymentInstalmentChangeHandler=function(){bt.ChangePaymentFrequency(that);};that.highlightInstallment=function(frequency){$('.installment-txt').attr('class','installment-txt');$('#'+frequency.toLowerCase()+that.installmentTxtSuffix).attr('class','installment-txt highlight-txt');$('.installment-amt').attr('class','installment-amt');$('#'+that.installmentPaymentPrefix+frequency).attr('class','installment-amt highlight-amt');$('#paymentAmount').val($('#'+that.installmentPaymentPrefix+frequency).text().replace(/[$,]/g,""));};that.resetToDefaultValue=function(){that.paymentMethodParent.find(":text").each(function(){this.value=this.defaultValue;});that.paymentMethodParent.find("select").each(function(){this.selectedIndex=0;});that.paymentMethodParent.find(":radio, :checkbox").each(function(){this.checked=this.defaultChecked;});that.responseMessage.html('');that.responseMessage.hide();};that.clearValidationMessages=function(){that.paymentMethodParent.clearValidationMessages();};that.showSelectedPaymentMethod=function(){var paymentMethod=$('[name=paymentMethod]:checked').val();if(typeof(s)!=='undefined'){cms.payModuleTrackingPaymentMethod(paymentMethod,bt.current());}
that.paymentMethodParent.find(':input').attr('disabled','disabled');that.paymentMethodParent.children().hide();$('#'+paymentMethod+that.paymentMethodSuffix).find(':input').removeAttr('disabled');$('#'+paymentMethod+that.paymentMethodSuffix).show();};that.requireDirectDebitConfirm=function(){that.directDebitAgreement.find("#DirectDebitAgreementCheckBox").attr("disabled",false);that.directDebitAgreement.show();that.confirmDirectDebit();};that.dontRequireDirectDebitConfirm=function(){that.directDebitAgreement.find("#DirectDebitAgreementCheckBox").attr("disabled",true);that.directDebitAgreement.hide();that.confirmDirectDebit();};that.enablePaymentFields=function(){that.paymentMethodParent.find(':input:visible').removeAttr('disabled');};that.disablePaymentFields=function(){that.paymentMethodParent.find(':input[type!=hidden]').attr('disabled','disabled');};that.confirmDirectDebit=function(){if(that.directDebitAgreement.children(':checkbox').is(':checked')||!that.directDebitAgreement.displayed()){that.enablePaymentFields();}else{that.disablePaymentFields();}};that.getProductTotal=function(){if(that.annualButton.is(':checked')){return $("#totalPremiumAnnual").text();}
else if(that.monthlyButton.is(':checked')){return $("#totalPremiumMonthly").text();}
else if(that.fortnightlyButton.is(':checked')){return $("#totalPremiumForthnightly").text();}};that.formSuccess=function(data,textStatus){if(data.Success){ev.frontEnd.GoToThankYouPage(data,that.finishUrl,that.getProductTotal());}else{that.formError(data,textStatus);}};that.formError=function(data,textStatus){if(!data.ErrorRedirectUrl){that.resetForm();that.showError(data.ErrorDescription);}else{that.showErrorPage(data.ErrorRedirectUrl);}};that.resetForm=function(){that.resetToDefaultValue();};that.showError=function(message){ev.frontEnd.stopSpinners();that.resetToDefaultValue();that.responseMessage.html(message);that.responseMessage.show();};that.showErrorPage=function(errorUrl){ev.frontEnd.stopSpinners();location.href=errorUrl;};that.init=function(){bt.InitPayment(that);};that.annualButton.click(that.paymentInstalmentChangeHandler);that.monthlyButton.click(that.paymentInstalmentChangeHandler);that.fortnightlyButton.click(that.paymentInstalmentChangeHandler);that.creditCardButton.click(that.paymentMethodChangeHandler);that.bankAccountButton.click(that.paymentMethodChangeHandler);that.bPayButton.click(that.paymentMethodChangeHandler);that.directDebitAgreement.children(':checkbox').click(that.confirmDirectDebit);that.init();return that;};

function RefundBehaviour(thankYouUrl){this.thankYouUrl=thankYouUrl;this.setupPaymentMethodBehaviour({bankAccount:true,cheque:true});}
$.extend(RefundBehaviour.prototype,ev.behaviour.paymentMethodBehaviour,{onSubmitError:function(data){ev.frontEnd.CheckForAccountSuspension(data.ErrorDescription,this.responseMessage,data.ErrorRedirectUrl);this.password.addClass("input-validation-error");},resetContent:function(){var bankAccountDetails=this.find("#BankAccountMethodDetails");bankAccountDetails.revertState();bankAccountDetails.clearValidationMessages();this.password.revertState();this.password.parent().clearValidationMessages();this.responseMessage.html('');}});

ev.frontEnd.constructMonthlyPaymentSchedule=function(amount,firstPaymentDate,secondPaymentDate){return"You have selected <b>12</b> instalments of <b>$"+amount+"</b>."+" The first to be paid on <b>"+firstPaymentDate.toString(ev.frontEnd.displayDateFormat)+"</b>,"+" and <b>11</b> subsequent instalments paid on <b>"+secondPaymentDate.toString("d")+secondPaymentDate.getOrdinal()+"</b> of each month.";};ev.frontEnd.constructFortnightlyPaymentSchedule=function(amount,firstPaymentDate){return"You have selected <b>26</b> instalments of <b>$"+amount+"</b>."+" The first to be paid on <b>"+firstPaymentDate.toString(ev.frontEnd.displayDateFormat)+"</b>,"+" and <b>25</b> subsequent instalments to be paid each fortnight starting from the next payment date.";};

