(function(n,t){t.METracking.Track_NewInventory_PageView_202104();t.InventoryGlobal.init({StatusFilterValue:"N"})})(jQuery,window),function(){function i(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){var t=Math.random()*16|0,i=n=="x"?t:t&3|8;return i.toString(16)})}function t(n,t,i){if(n==0)return"-";i==null&&(i=!0);var r=Settings.Lang=="fr",u=wNumb({mark:r?",":".",thousand:r?" ":",",decimals:i?2:0,prefix:t&&!r?"$":"",postfix:t&&r?" $":""});return u.to(n)}var r=Settings.IsStagingOrLocal?"http://dag-bmw-gta-1.richmondday.com/":"https://bmw-gta.ca/",n={CalculatorType:{Lease:"Lease",Finance:"Finance"},ActiveCalculatorGroupArray:[],CreateNewCalculatorGroup:function(r,u){var f={};return f.$Container=r instanceof $?r:$(r),this.ActiveCalculatorGroupArray.push(f),f.DealerFeesArray=u||[],f.SetDealerFeesArray=function(n){NewCalc.DealerFeesArray=n;for(var t=0;t<f.CalculatorArray.length;++t)f.CalculatorArray[t].Update()},f.CalculatorArray=[],f.OnTypeChangeCallbackArray=[],f.CreateNewCalculator=function(r,u,e,o){var c=this,s={},h;return s.VIN=r,s.Type=u||n.CalculatorType.Lease,s.IsCertifiedPreOwned=e,s.Defaults={LeaseTerm:48,FinanceTerm:60,DownPayment:0,AllowUserInputInterestRate:!1,CustomLeaseRate:null,CustomFinanceRate:null,CustomResidualRate:null,AvailableLeaseTerms:[24,36,39,42,45,48],AvailableFinanceTerms:[24,36,48,60,72,80],TypeRestriction:!1,ShowNumberOfPaymentsInLease:!1,ShowNumberOfPaymentsInFinance:!1,UseBiweeklyInFinance:!0,ShowAddCalculatorButton:!0},o&&(o.Type&&(s.Defaults.Type=o.Type),o.LeaseTerm&&(s.Defaults.LeaseTerm=o.LeaseTerm),o.FinanceTerm&&(s.Defaults.FinanceTerm=o.FinanceTerm),o.DownPayment&&(s.Defaults.DownPayment=o.DownPayment),window.isUndefined(o.AllowUserInputInterestRate)||(s.Defaults.AllowUserInputInterestRate=o.AllowUserInputInterestRate),o.CustomLeaseRate&&(s.Defaults.CustomLeaseRate=o.CustomLeaseRate),o.CustomFinanceRate&&(s.Defaults.CustomFinanceRate=o.CustomFinanceRate),o.CustomResidualRate&&(s.Defaults.CustomResidualRate=o.CustomResidualRate),o.AvailableLeaseTerms&&(s.Defaults.AvailableLeaseTerms=o.AvailableLeaseTerms),o.AvailableFinanceTerms&&(s.Defaults.AvailableFinanceTerms=o.AvailableFinanceTerms),o.TypeRestriction&&(s.Defaults.TypeRestriction=o.TypeRestriction),window.isUndefined(o.ShowNumberOfPaymentsInLease)||(s.Defaults.ShowNumberOfPaymentsInLease=o.ShowNumberOfPaymentsInLease),window.isUndefined(o.ShowNumberOfPaymentsInFinance)||(s.Defaults.ShowNumberOfPaymentsInFinance=o.ShowNumberOfPaymentsInFinance),window.isUndefined(o.UseBiweeklyInFinance)||(s.Defaults.UseBiweeklyInFinance=o.UseBiweeklyInFinance),window.isUndefined(o.ShowAddCalculatorButton)||(s.Defaults.ShowAddCalculatorButton=o.ShowAddCalculatorButton)),s.Defaults.DownPayment||(s.Defaults.DownPayment=0),s.Defaults.DownPayment=Number(s.Defaults.DownPayment).toFixed(2),s.GroupReference=f,s.Update_BacklogCount=0,s.Update_AjaxObj=null,s.Update_Timeout=null,s.RefreshKilometerInputVisibility=function(){var t=this;t.Type==n.CalculatorType.Lease?t.$Container.find(".kilometer-element").show():t.$Container.find(".kilometer-element").hide()},s.AppendCloneInGroup=function(){let t=this,i=t.Type==n.CalculatorType.Lease,u=t.Type==n.CalculatorType.Finance;t.GroupReference.CreateNewCalculator(r,t.Type,t.IsCertifiedPreOwned,{LeaseTerm:u?48:t.$TermDropdownElement.val()||48,FinanceTerm:i?60:t.$TermDropdownElement.val()||60,DownPayment:t.Defaults.DownPayment,AllowUserInputInterestRate:t.Defaults.AllowUserInputInterestRate,AvailableLeaseTerms:t.Defaults.AvailableLeaseTerms||[],AvailableFinanceTerms:t.Defaults.AvailableFinanceTerms||[],TypeRestriction:t.Defaults.TypeRestriction,CustomLeaseRate:t.Defaults.CustomLeaseRate||null,CustomFinanceRate:t.Defaults.CustomFinanceRate||null,CustomResidualRate:t.Defaults.CustomResidualRate||null,ShowNumberOfPaymentsInLease:t.Defaults.ShowNumberOfPaymentsInLease,ShowNumberOfPaymentsInFinance:t.Defaults.ShowNumberOfPaymentsInFinance,UseBiweeklyInFinance:t.Defaults.UseBiweeklyInFinance,ShowAddCalculatorButton:t.Defaults.ShowAddCalculatorButton})},s.Update=function(i){let r=this,o=r.Type==n.CalculatorType.Lease,h=r.Type==n.CalculatorType.Finance;if(typeof i!="boolean"&&(i=!1),r.Update_AjaxObj!=null&&r.Update_AjaxObj.readyState!=XMLHttpRequest.DONE)if(i)r.Update_AjaxObj.abort(),r.Update_AjaxObj=null;else{r.Update_BacklogCount++;r.Update_BacklogCount==1&&(r.Update_Timeout=setTimeout(function(){r.Update(!0)},50));return}var u={Language:Settings.Lang,VIN:r.VIN,Type:r.Type,DownPayment:Number(r.$Container.find("input[name='DownPayment']").val()),Term:r.$TermDropdownElement.val(),Kilometers:r.$Container.find("select[name='KM']").val(),DealerFeeList:r.GroupReference.DealerFeesArray,CustomInterestRate:o?r.Defaults.CustomLeaseRate:r.Defaults.CustomFinanceRate,CustomResidualRate:r.Defaults.CustomResidualRate,IsCertifiedPreOwned:r.IsCertifiedPreOwned};let f=r.$Container.find(".text-payment-name");if(h&&r.Defaults.UseBiweeklyInFinance){let n=r.Defaults.AllowUserInputInterestRate?window.TranslationResource.EstimatedBiweeklyPayment:window.TranslationResource.BiweeklyPayment;f.text(n)}else{let n=r.Defaults.AllowUserInputInterestRate?window.TranslationResource.EstimatedMonthlyPayment:window.TranslationResource.MonthlyPayment;f.text(n)}f.text(f.text()+":");let e=r.$Container.find(".text-interest-rate-name");if(r.Defaults.AllowUserInputInterestRate?e.text(window.TranslationResource.EstimatedInterestRate):e.text(window.TranslationResource.InterestRate),e.text(e.text()+":"),r.Defaults.AllowUserInputInterestRate&&(u.CustomInterestRate=Number(r.$Container.find(".input-custom-interest-rate").val())/100,isNaN(u.CustomInterestRate)||u.CustomInterestRate==0)){r.$Container.find(".dollar-value").text("-");r.$Container.find(".text-number-of-payments").text("");r.$Container.find(".monthly-payment-figure").removeClass("small").hide();r.$Container.find(".text-DueOnDelivery-value").text("-");r.$Container.find(".info-due-on-delivery").hide();r.$Container.find(".text-TotalObligation-value").text("-");r.$Container.find(".info-total-obligation").hide();r.$Container.find(".text-CostOfBorrowing-value").text("-");r.$Container.find(".value-offer-expiry-date").parent().hide();return}r.$Container.find(".fade-on-loading").css("opacity",.25);r.Update_AjaxObj=$.ajax({url:"/PaymentCalculator_CalculatePayment",data:u,type:"POST",error:function(){console.error("Failed to fetch calculated payment via API.")},success:function(i){if(clearTimeout(r.Update_Timeout),r.Update_BacklogCount>0){r.Update_BacklogCount=0;r.Update();return}if(r.Update_BacklogCount=0,i.Success){r.$TermDropdownElement.find("option").remove();var u=i.AvailableTerms;u&&u.length!=0||(u=r.Type==n.CalculatorType.Lease?s.Defaults.AvailableLeaseTerms:s.Defaults.AvailableFinanceTerms);u.forEach(function(n){r.$TermDropdownElement.append("<option value='"+n+"'>"+n+"<\/option>")});r.$TermDropdownElement.find("option[value='"+i.Term+"']").prop("selected",!0);o?r.Defaults.LeaseTerm=i.Term:h&&(r.Defaults.FinanceTerm=i.Term);let f="";r.Type==n.CalculatorType.Finance?r.Defaults.UseBiweeklyInFinance?(f=t(i.BiweeklyPayment,!1,!0),r.$Container.find(".text-number-of-payments").text(i.NumberOfBiWeeklyPayments+" "+window.TranslationResource.BiweeklyPayments+".")):(f=t(i.MonthlyPayment,!1,!0),r.$Container.find(".text-number-of-payments").text(i.Term+" "+window.TranslationResource.MonthlyPayments+".")):(f=t(i.MonthlyPayment,!1,!0),r.$Container.find(".text-number-of-payments").text(i.Term+" "+window.TranslationResource.MonthlyPayments+"."));f.length>6?r.$Container.find(".monthly-payment-figure").addClass("small"):r.$Container.find(".monthly-payment-figure").removeClass("small");r.$Container.find(".monthly-payment-figure").show();r.$Container.find(".dollar-value").text(f);r.$Container.find(".rate-value").text(parseFloat((i.InterestRate*100).toFixed(2)).toString());r.$Container.find(".text-DueOnDelivery-value").text(t(i.DueOnDelivery,!0,!0));r.$Container.find(".info-due-on-delivery").show();r.DodTippyInstance.setContent(i.DueOnDeliveryBreakdownStatement);r.$Container.find(".text-TotalObligation-value").text(t(i.TotalObligation,!0,!0));r.$Container.find(".info-total-obligation").show();r.TotalObligationTippyInstance.setContent(i.TotalObligationBreakdownStatement);r.$Container.find(".text-CostOfBorrowing-value").text(t(i.CostOfBorrowing,!0,!0));r.$Container.find(".value-offer-expiry-date").text(i.ExpiryDate);i.ExpiryDate?r.$Container.find(".value-offer-expiry-date").parent().show():r.$Container.find(".value-offer-expiry-date").parent().hide()}else r.$Container.find(".info-due-on-delivery").hide(),r.$Container.find(".info-total-obligation").hide(),console.error(i.Message)},error:function(){},complete:function(){r.$Container.find(".fade-on-loading").css("opacity",1)}})},s.Destroy=function(){this.$Container.remove();var n=this.GroupReference.CalculatorArray.indexOf(this);n>-1&&this.GroupReference.CalculatorArray.splice(n,1);this.GroupReference.RefreshCalculatorCloseButtonVisibility()},h=i(),f.$Container.append("<div class='content-loading'><\/div>"),$.ajax({url:"/"+Settings.Lang+"/PaymentCalculator_LoadHTML",type:"GET",data:{CalculatorID:h,AllowUserInputInterestRate:s.Defaults.AllowUserInputInterestRate},error:function(){console.error("Failed to fetch calculator HTML via API.")},success:function(t){var i,u;f.$Container.find(".content-loading").remove();f.$Container.append(t);s.$Container=$("#"+h);s.$TermDropdownElement=s.$Container.find("select[name='Term']");let r=s.Type==n.CalculatorType.Lease,e=s.Type==n.CalculatorType.Finance;s.$Container.find("input[name='Type'][value='"+s.Type+"']").prop("checked",!0);s.$Container.find("input[name='DownPayment']").val(s.Defaults.DownPayment);s.$Container.find(".dollar-value").text("-.-");s.$Container.find(".rate-value").text("-.-");s.$Container.find(".fade-on-loading").css("transition","opacity 0.15s linear");s.$TermDropdownElement.find("option").remove();(r?s.Defaults.AvailableLeaseTerms:s.Defaults.AvailableFinanceTerms).forEach(function(n){s.$TermDropdownElement.append("<option value='"+n+"'>"+n+"<\/option>")});s.$TermDropdownElement.val(r?s.Defaults.LeaseTerm:s.Defaults.FinanceTerm);s.Defaults.AllowUserInputInterestRate&&s.$Container.find(".input-custom-interest-rate").focus();s.Defaults.ShowAddCalculatorButton?(s.$Container.find(".Button_CreateNewCalculator").show(),s.$Container.find(".Button_CreateNewCalculator").click(function(){s.AppendCloneInGroup()})):s.$Container.find(".Button_CreateNewCalculator").hide();s.$Container.find(".Button_DeleteSelf").click(function(){s.GroupReference.CalculatorArray.length<=1||s.$Container.fadeOut(150,function(){s.Destroy()})});s.DodTippyInstance=tippy(s.$Container.find(".info-due-on-delivery")[0],{content:"",allowHTML:!0,placement:"top",trigger:"mouseenter focus click"});s.TotalObligationTippyInstance=tippy(s.$Container.find(".info-total-obligation")[0],{content:"",allowHTML:!0,placement:"top",trigger:"mouseenter focus click"});s.$Container.find(".text-payment-calculator-type").text("");i=s.$Container.find("input[type='radio'][name='Type']");s.Defaults.TypeRestriction?(i.parents(".radio-inline").hide(),r?s.$Container.find(".text-payment-calculator-type").text(window.TranslationResource.Lease):e&&s.$Container.find(".text-payment-calculator-type").text(window.TranslationResource.Finance)):i.change(function(){s.Type=s.$Container.find("input[type='radio']input[name='Type']:checked").val();let i=s.Type==n.CalculatorType.Lease,r=s.Type==n.CalculatorType.Finance;i?(s.$TermDropdownElement.append("<option value='"+s.Defaults.LeaseTerm+"'>"+s.Defaults.LeaseTerm+"<\/option>"),s.$TermDropdownElement.val(s.Defaults.LeaseTerm)):r&&(s.$TermDropdownElement.append("<option value='"+s.Defaults.FinanceTerm+"'>"+s.Defaults.FinanceTerm+"<\/option>"),s.$TermDropdownElement.val(s.Defaults.FinanceTerm));s.RefreshKilometerInputVisibility();for(var t=0;t<f.OnTypeChangeCallbackArray.length;++t)s.GroupReference.OnTypeChangeCallbackArray[t](s);s.Update()});s.$Container.on("change","input,select",function(n){$(n.target)!=i&&(n.target.name=="DownPayment"&&$(n.target).val()==""&&$(n.target).val(0),s.Update())});s.$Container.on("focusin","input[name='DownPayment']",function(n){u=parseFloat($(n.target).val());$(n.target).val("")});s.$Container.on("focusout","input[name='DownPayment']",function(n){$(n.target).val()==""&&$(n.target).val(u)});s.$Container.on("keyup","input.input-custom-interest-rate",function(n){isNaN($(n.target).val())||s.Update()});s.RefreshKilometerInputVisibility();s.Update();s.GroupReference.RefreshCalculatorCloseButtonVisibility()},error:function(){},complete:function(){}}),f.CalculatorArray.push(s),s},f.RefreshCalculatorCloseButtonVisibility=function(){for(var t,i=f.CalculatorArray.length>1,n=0;n<f.CalculatorArray.length;++n)t=f.CalculatorArray[n].$Container.find(".Button_DeleteSelf"),i?t.show():t.hide()},f.Destroy=function(){for(var n=0;0<f.CalculatorArray.length;++n)if(f.CalculatorArray[0].Destroy(),n>=1e3){console.error("Payment Calculator - Group - Destroy() function was running infinitely. Calculator chidlren of the Group should decrement the Group's array when their Destroy() function is called, which should prevent infinite loops.");break}},f}};window.PaymentCalculator=n}(jQuery,window),function(){const n=function(n){return;const t=$(".filter-options-retailers"),i=t.find(".for-items"),r=n.map(function(n){const t=$(`#dlRetailer option[value="${n}"]`).text()||"";return`
            <div class="fori-item" data-retailer-id="${n}">
                ${t}
                <span class="close-cta">&times;</span>
            </div>
        `})},t=function(n,t,i,r){const u=function(n){return n*Math.PI/180};var f=u(i-n),e=u(r-t),n=u(n),i=u(i),o=Math.sin(f/2)*Math.sin(f/2)+Math.sin(e/2)*Math.sin(e/2)*Math.cos(n)*Math.cos(i),s=2*Math.atan2(Math.sqrt(o),Math.sqrt(1-o));return 6371*s},i=function(){const i=this;i.RetailerCacheArray=[];i.AllRetailersArray=[];i.API_ENDPOINT="/InventorySearch_API";i.Image404Url="/Public/new-inventory/404.jpg";i.Filter_Province_ID="#dlProvince";i.Filter_FuelType_ID="#dlFuelType";i.Filter_Engine_ID="#dlVariant";i.Filter_BodyStyle_ID="#dlBodyStyle";i.Filter_Retailer_ID="#dlRetailer";i.Filter_xDriveOnly_ID="#FilterInput_xDriveOnly";i.Filter_PostalCodeInput_ID="#Filter_PostalCodeInput";i.Filter_CertifiedOnly_ID="#FilterInput_CertifiedOnly";i.Filter_SearchDistance_ID="#dlSearchDistance";i.Filter_ButtonUserLocation_ID="#Button_UseMyLocation";i.Filter_ExteriorColor_ID="#dlExteriorColour";i.Filter_InteriorColor_ID="#dlInteriorColour";i.$XDriveCheckbox=$(i.Filter_xDriveOnly_ID+" .checkbox-group");i.$CertifiedOnlyCheckbox=$(i.Filter_CertifiedOnly_ID+" .checkbox-group");i.UserCoordinates=null;i.AreSliderCallbacksEnabled=!1;i.MonthlyPaymentSliderElement=document.getElementById("MonthlyPaymentSlider");i.KMSliderElement=document.getElementById("KilometerSlider");i.PriceSliderElement=document.getElementById("PriceSlider");i.YearSliderElement=document.getElementById("YearSlider");i.FirstSelectedRetailerValue=null;i.LastSelectedRetailerNameArray=[];i.YearMin=document.getElementById("YearSlider_Min");i.YearMax=document.getElementById("YearSlider_Max");i.doSetSliderLimits=!0;i.doSetInitialFilters=!0;i.$PaymentCalculatorModal=$("#PaymentCalculatorModal");i.PaymentCalculatorGroup=null;i.BrandFilterValue="BMW";i.StatusFilterValue=undefined;i.IsNewInventory=function(){return i.StatusFilterValue=="N"};i.IsPreOwned=function(){return i.StatusFilterValue=="P"};i.LocalStorageKey_SearchData=function(){return i.IsNewInventory()?"new_search_data":i.IsPreOwned()?"preowned_search_data":"search_data(err_unknownInvType)"};i.wNumbMoneyFormat=function(n){return n=typeof n=="boolean"?n:!0,wNumb({prefix:Settings.Lang=="fr"?"":"$",thousand:Settings.Lang=="fr"?" ":",",mark:Settings.Lang=="fr"?",":".",postfix:Settings.Lang=="fr"?" $":"",decimals:n?2:0})};i.wNumbFormat=function(){return wNumb({thousand:Settings.Lang=="fr"?" ":",",mark:Settings.Lang=="fr"?",":".",decimals:0})};i.init=function(t){if(i.StatusFilterValue=t.StatusFilterValue,i.initUISlider(),$(".PaymentCalculatorModal .Button_CreateNewCalculator").click(function(){window.InventoryGlobal.IsPreOwned()&&window.METracking.Track_PreOwnedInventory_PageView_Simulation();i.PaymentCalculatorGroup.CalculatorArray[0].AppendCloneInGroup()}),i.IsNewInventory()){function t(){const n=$(i.Filter_Retailer_ID).val();n.length===0?i.FirstSelectedRetailerValue=null:n.includes(i.FirstSelectedRetailerValue)&&i.FirstSelectedRetailerValue!==null||(i.FirstSelectedRetailerValue=n[0])}$(i.Filter_Retailer_ID).multiselect({includeSelectAllOption:!0,numberDisplayed:1,onChange:function(r,u){t();var f=i.getRetailerByValue(r.val());u?i.LastSelectedRetailerNameArray.push(f.Text):i.LastSelectedRetailerNameArray.splice(i.LastSelectedRetailerNameArray.indexOf(f.Text),1);const e=$(i.Filter_Retailer_ID).val();n(e)},onSelectAll:function(){const t=$(i.Filter_Retailer_ID).val();n(t);i.LastSelectedRetailerNameArray=["All"]},onDeselectAll:function(){const t=$(i.Filter_Retailer_ID).val();n(t);i.FirstSelectedRetailerValue=null;i.LastSelectedRetailerNameArray=["None"]},nonSelectedText:"Retailer"});t();$(document).on("click",".fori-item .close-cta",function(){const n=$(this),t=$(i.Filter_Retailer_ID),r=n.parents(".fori-item"),f=n.parents(".for-items").find(".fori-item").length,u=r.attr("data-retailer-id")||0;r.remove();u>0&&(t.multiselect("deselect",u),t.trigger("change"));f<=1&&$(".filter-options-retailers").hide()})}let r=null;try{r=JSON.parse(window.LocalStorageHelper.get(i.LocalStorageKey_SearchData()))}catch(u){console.error("Unable to read SearchData.")}r==null||FilterInitial.ShowPersistedSearches||i.clearSearchLocalStorage();$(i.Filter_Province_ID).val(i.getInventoryProvinceStoredValue()||"");i.UpdatePage({page:FilterInitial.PageNum,ProvinceCode:null,ModelYear_Minimum:null,ModelYear_Maximum:null,Kilometers_Minimum:null,Kilometers_Maximum:null,Price_Minimum:null,Price_Maximum:null,MonthlyPayment_Minimum:null,MonthlyPayment_Maximum:null,IsXDriveOnly:null,WithPhotosOnly:null,IsCertifiedPreOwnedOnly:null,IncludeVehiclesWithoutOffer:null},function(){var n,t;if(i.AreSliderCallbacksEnabled=!0,FilterInitial.IsInventoryMatch&&$(".inventory-match-landing .loading-symbol").fadeOut(100,function(){$(".inventory-match-landing .input-elements").fadeIn()}),FilterInitial.ShowPersistedSearches){if(FilterInitial.ShowPersistedSearches=!1,r!=null){const u=Object.keys(r);for(n=0;n<u.length;n++){const f=u[n],e=r[f];if(e!=="")if(t=f,t.startsWith("#")||(t="#"+f),$(t).val(e),f=="dlSort"||f=="dlResultsPerPage"||f==i.Filter_Province_ID.substring(1)||f==i.Filter_SearchDistance_ID.substring(1)||f=="PageNum"||f=="minYear"||f=="maxYear"||f=="minPrice"||f=="maxPrice"||f=="minKM"||f=="maxKM"||f=="minMonthlyPayment"||f=="maxMonthlyPayment")(f=="minYear"||f=="maxYear")&&(i.IsNewInventory()?(i.YearMin.value=r.minYear||0,i.YearMax.value=r.maxYear||2050):i.NoUISlider_Update(i.YearSliderElement,{min:r.minYear||0,max:r.maxYear||2050},!1)),i.PriceSliderElement&&(f=="minPrice"||f=="maxPrice")&&i.NoUISlider_Update(i.PriceSliderElement,{min:r.minPrice||0,max:r.maxPrice||9e5},!1),i.KMSliderElement&&(f=="minKM"||f=="maxKM")&&i.NoUISlider_Update(i.KMSliderElement,{min:r.minKM||0,max:r.maxKM||2e5},!1),i.MonthlyPaymentSliderElement!=null&&(f=="minMonthlyPayment"||f=="maxMonthlyPayment")&&i.NoUISlider_Update(i.MonthlyPaymentSliderElement,{min:r.minMonthlyPayment||0,max:r.maxMonthlyPayment||2e5},!1),f=="PageNum"&&(FilterInitial.PageNum=e);else if(f=="UserCoordinates")i.UserCoordinates=e;else if(f==i.Filter_PostalCodeInput_ID.substring(1))i.disableFilter($("#"+f),!1),i.GeolocateByPostalCodeFilter();else if(f==i.Filter_xDriveOnly_ID.substring(1))e==="false"||e===!1?i.$XDriveCheckbox.removeClass("active"):i.$XDriveCheckbox.addClass("active");else if(f==i.Filter_CertifiedOnly_ID.substring(1))e==="false"||e===!1?i.$CertifiedOnlyCheckbox.removeClass("active"):i.$CertifiedOnlyCheckbox.addClass("active");else if(f=="WithPhotosOnly")e==="false"||e===!1?$(".photos-toggle .checkbox-group").removeClass("active"):$(".photos-toggle .checkbox-group").addClass("active");else{i.disableFilter($("#"+f));switch(f){case"dlModel":$(i.Filter_BodyStyle_ID).prop("disabled",!1)}}}i.UpdateLocationFilterVisibility();i.UpdatePage()}}else{let t=i.getInventoryRetailerStoredValue(),r=!!t,n=$(i.Filter_Retailer_ID);if(!FilterInitial.IsInventoryMatch&&n.val()!=t&&t){const r=t.split(",");n.val(r);n.is("[multiple]")&&(n.multiselect("rebuild"),n.multiselect("refresh"),n.multiselect("select",r,!0));i.disableFilter(n,!0)}i.UpdatePage({},function(t){t.TotalCount==0&&(!FilterInitial.IsInventoryMatch&&r?(i.setInventoryRetailerStoredValue(""),n.val(""),i.disableFilter(n,!1),i.UpdatePage({},function(n){n.TotalCount==0&&i.resetFilterInputs()})):i.resetFilterInputs())})}});i.filterEvents();$(document).on("click",".vehicle-image-container",function(n){n.preventDefault();InventoryGlobal.IsPreOwned()&&window.METracking.Track_PreOwnedInventory_PageView_Simulation();const t=$(this).parents(".vehicle");t.find(".view-details")[0].click()})};i.setSlider=function(n,t){let i=t.min,r=t.max;if(!isNaN(parseInt(i))&&(i=Number(i),!isNaN(parseInt(r)))){r=Number(r);try{$(n)[0].noUiSlider.set([i,r])}catch(u){console.error("unable to update uislider",n,t,u)}}};i.UpdatePage_AJAX=null;i.UpdatePage=function(t,r){if(t=t||{},t.Brand=i.BrandFilterValue,t.Status=i.StatusFilterValue,t.IncludeVehiclesWithoutOffer=!0,t.Language=Settings.Lang,t.page=window.SetDefaultByCondition(t.page,!t.page||t.page<0,1),t.ProvinceCode=window.SetDefaultByCondition(t.ProvinceCode,window.isUndefined(t.ProvinceCode),$(i.Filter_Province_ID).val()),i.UserCoordinates!=null&&(t.UserLatitude=i.UserCoordinates.Latitude,t.UserLongitude=i.UserCoordinates.Longitude,t.SearchDistanceFromUserLocationInKilometers=$(i.Filter_SearchDistance_ID).val()||13e3,i.IsNewInventory()&&!i.hasLocatedOnce)){const r=i.getClosestRetailer(i.UserCoordinates.Latitude,i.UserCoordinates.Longitude);r&&(n([]),t.ProvinceCode=r.ProvinceAbbreviation,$(i.Filter_Province_ID).val(r.ProvinceAbbreviation),$(i.Filter_Retailer_ID).multiselect("deselectAll"),$(i.Filter_Retailer_ID).multiselect("enable"),$(i.Filter_Retailer_ID).multiselect("select",r.Value,!0));i.hasLocatedOnce=!0}const f=$(i.Filter_Retailer_ID).val();f.length>0&&(typeof f=="object"?f.map(function(n,i){t[`DealerID[${i}]`]=n}):t.DealerID=window.SetDefaultByCondition(t.DealerID,window.isUndefined(t.DealerID),$(i.Filter_Retailer_ID).val()));t.ResultsPerPage=window.SetDefaultByCondition(t.ResultsPerPage,window.isUndefined(t.ResultsPerPage),$("#dlResultsPerPage option:selected").val());t.SeriesID=window.SetDefaultByCondition(t.SeriesID,window.isUndefined(t.SeriesID),$("#dlModel").val());t.ModelID=window.SetDefaultByCondition(t.ModelID,window.isUndefined(t.ModelID),$(i.Filter_BodyStyle_ID).val());t.Engine=window.SetDefaultByCondition(t.Engine,window.isUndefined(t.Engine),$(i.Filter_Engine_ID).val());t.Transmission=window.SetDefaultByCondition(t.Transmission,window.isUndefined(t.Transmission),$("#dlTransmission").val());t.ExteriorColorID=window.SetDefaultByCondition(t.ExteriorColorID,window.isUndefined(t.ExteriorColorID),$("#dlExteriorColour").val());t.InteriorColorID=window.SetDefaultByCondition(t.InteriorColorID,window.isUndefined(t.InteriorColorID),$("#dlInteriorColour").val());t.FuelType=window.SetDefaultByCondition(t.FuelType,window.isUndefined(t.FuelType),$(i.Filter_FuelType_ID).val());i.IsNewInventory()?(t.ModelYear_Minimum=window.SetDefaultByCondition(t.ModelYear_Minimum,!window.isNumber(t.ModelYear_Minimum),$("#YearSlider_Min").val()),t.ModelYear_Maximum=window.SetDefaultByCondition(t.ModelYear_Maximum,!window.isNumber(t.ModelYear_Maximum),$("#YearSlider_Max").val())):(t.ModelYear_Minimum=window.SetDefaultByCondition(t.ModelYear_Minimum,!window.isNumber(t.ModelYear_Minimum),Number(i.YearSliderElement.noUiSlider.get()[0])),t.ModelYear_Maximum=window.SetDefaultByCondition(t.ModelYear_Maximum,!window.isNumber(t.ModelYear_Maximum),Number(i.YearSliderElement.noUiSlider.get()[1])));t.ModelYear_Maximum<=1&&(t.ModelYear_Minimum=null,t.ModelYear_Maximum=null);i.KMSliderElement&&(t.Kilometers_Minimum=window.SetDefaultByCondition(t.Kilometers_Minimum,!window.isNumber(t.Kilometers_Minimum),i.wNumbFormat().from(i.KMSliderElement.noUiSlider.get()[0])),t.Kilometers_Maximum=window.SetDefaultByCondition(t.Kilometers_Maximum,!window.isNumber(t.Kilometers_Maximum),i.wNumbFormat().from(i.KMSliderElement.noUiSlider.get()[1])));t.Kilometers_Maximum<=1&&(t.Kilometers_Minimum=null,t.Kilometers_Maximum=null);t.Price_Minimum=window.SetDefaultByCondition(t.Price_Minimum,!window.isNumber(t.Price_Minimum),i.wNumbMoneyFormat().from(i.PriceSliderElement.noUiSlider.get()[0]));t.Price_Maximum=window.SetDefaultByCondition(t.Price_Maximum,!window.isNumber(t.Price_Maximum),i.wNumbMoneyFormat().from(i.PriceSliderElement.noUiSlider.get()[1]));t.Price_Maximum<=1&&(t.Price_Minimum=null,t.Price_Maximum=null);t.SortMode=window.SetDefaultByCondition(t.SortMode,window.isUndefined(t.SortMode),$("#dlSort").val());t.WithPhotosOnly=window.SetDefaultByCondition(t.WithPhotosOnly,window.isUndefined(t.WithPhotosOnly),$(".photos-toggle .checkbox-group").hasClass("active"));t.IsXDriveOnly=window.SetDefaultByCondition(t.IsXDriveOnly,window.isUndefined(t.IsXDriveOnly),i.$XDriveCheckbox.hasClass("active"));i.IsNewInventory()&&(t.PreserveRetailers=!0,t.MonthlyPayment_Minimum=window.SetDefaultByCondition(t.MonthlyPayment_Minimum,!window.isNumber(t.MonthlyPayment_Minimum),i.wNumbMoneyFormat(!1).from("#MonthlyPaymentSlider",0)),t.MonthlyPayment_Maximum=window.SetDefaultByCondition(t.MonthlyPayment_Maximum,!window.isNumber(t.MonthlyPayment_Maximum),i.wNumbMoneyFormat(!1).from("#MonthlyPaymentSlider",1)),t.MonthlyPayment_Maximum<=1&&(t.MonthlyPayment_Minimum=null,t.MonthlyPayment_Maximum=null));i.IsPreOwned()&&(window.METracking.Track_PreOwnedInventory_PageView_Simulation(),t.IsCertifiedPreOwnedOnly=window.SetDefaultByCondition(t.IsCertifiedPreOwnedOnly,window.isUndefined(t.IsCertifiedPreOwnedOnly),i.$CertifiedOnlyCheckbox.hasClass("active")));i.updateSearchLocalstorage("PageNum",t.page);let u="",e="";if(!FilterInitial.IsInventoryMatch){const n=$(i.Filter_Retailer_ID).val();if(n>0){let t=i.RetailerCacheArray.filter(function(t){return t.Value==n});t.length>0&&(t=t[0],u=t.Text,u.includes(t.City)||(u+=" ("+t.City+")"),e=t.Address)}}$(".display-text-retailer-name").html(u);$(".display-text-retailer-address").html(e);u?$(".display-text-retailer").show():$(".display-text-retailer").hide();$(".vehicles-list").css("opacity",0);$(".wait-for").fadeIn(100);$("#InventorySearchErrorContainer").hide();i.UpdatePage_AJAX&&i.UpdatePage_AJAX.readyState&&i.UpdatePage_AJAX.readyState!==4&&i.UpdatePage_AJAX.abort();i.UpdatePage_AJAX=$.ajax({url:i.API_ENDPOINT,method:"POST",contentType:"application/x-www-form-urlencoded",data:$.param(t),success:function(n){var u,e,f;if($(".wait-for").hide(),window.VehicleList=n.VehiclesForThisPageList,i.updateFilters(n.Filters),i.updatePagination(n.Page,n.ResultsPerPage,n.TotalCount),i.updateVehicleList(n.VehiclesForThisPageList),n.VehiclesForThisPageList.length==0&&n.Page<=1){let n="";n+='<h2 class="no-results-copy">';n+=FilterInitial.IsInventoryMatch?InventoryResource.InventoryMatch_NoMatch:InventoryResource.NoResults;n+="<\/h2>";$(".vehicles-container").html(n);$(".pagination").css("display","none")}else $(".pagination").css("display","flex");if(u=!0,i.IsNewInventory()&&(e=$(i.Filter_Retailer_ID).removeClass("has-err").val()!="",e||($(i.Filter_Retailer_ID).addClass("has-err"),u=!1),f=$(i.Filter_Province_ID).removeClass("has-err").val(),(f===""||f===null)&&($(i.Filter_Province_ID).addClass("has-err"),u=!1,$(i.Filter_Retailer_ID).multiselect("disable"))),u?($(".vehicles-list").show().css("opacity",1),$(".pagination-bottom").css("opacity",1)):$(".vehicles-list").hide().css("opacity",0),window.InventoryGlobal.IsNewInventory()&&t.page==1){let n=null;if(t.UserLatitude&&t.UserLongitude)n=i.getClosestRetailer(t.UserLatitude,t.UserLongitude);else if(i.FirstSelectedRetailerValue)n=i.getRetailerByValue(i.FirstSelectedRetailerValue);else{let t=$(i.Filter_Retailer_ID).val();Array.isArray(t)&&(t=t.length>0?t[0]:null);t&&(n=i.AllRetailersArray.filter(n=>n.Value==t),n.length>0&&(n=n[0]))}if(n!==null&&$(i.Filter_Retailer_ID).val().length<=1){let i=n.Text;const t=$(".inventory-match-card").clone();t.find(".request-more-info").attr("stock-match","true");t.find(".request-more-info").attr("stock-match-retailer-id",n.InternalRetailerID);t.find(".request-more-info").attr("stock-match-retailer-name",i);t.find(".request-more-info").attr("stock-match-vehicle-name",FilterInitial.InventoryMatchVehicleName);const r=t.find(".txt-default").html().replace("[NAME]",i);t.find(".txt-value").html(r);$(".vehicles-container").prepend(t)}}r&&r(n)},error:function(n){n.readyState!==0&&(console.error(n),$(".wait-for").fadeOut(function(){$("#InventorySearchErrorContainer").fadeIn()}))}})};i.updateFilters=function(n){var f,e,t;const r=function(n,t){const s=n,r=t instanceof jQuery?t:$(t),f=r.is("[multiple]");let u=r.find("option:first-child");u=u.length>0&&!f?r.find("option:first-child")[0].outerHTML:"";const e=r.find("option:selected").get(),h=e.map(function(n){return $(n).prop("outerHTML")}),o=e.map(function(n){return $(n).val()}),c=s.map(function(n){var u=n.Text,r;return i.IsNewInventory()&&t==i.Filter_Retailer_ID&&n.Text.toLowerCase().indexOf(n.City.toLowerCase())<0&&(u+=" ("+n.City+")"),i.IsPreOwned()&&(u+=" ("+n.ApplicableVehicleCount+")"),r="",n.InternalRetailerID&&(r+=' data-rid="'+n.InternalRetailerID+'" '),n.Latitude&&n.Longitude&&(r+=' data-latitude="'+n.Latitude+'" ',r+=' data-longitude="'+n.Longitude+'" '),'<option value="'+n.Value+'" '+r+">"+u+"<\/option>"}).join("");r.html(u+c);o.map(function(n,t){const i=h[t];r.find('option[value="'+n+'"]').length<=0&&r.append(i)});r.val(o);i.disableFilter(r,r.val()!="");f&&(r.multiselect("rebuild"),r.multiselect("refresh"))};let u=n.RetailerOptionList;if(i.AllRetailersArray=u,i.IsNewInventory()){const n=$(i.Filter_Province_ID).val()||"";n&&n.length>0&&u&&u.length>0&&(u=u.filter(function(t){return t.ProvinceAbbreviation==n}))}for(f=0;f<u.length;++f)t=u[f],e=i.RetailerCacheArray.filter(function(n){return n.InternalRetailerID==t.InternalRetailerID}).length>0,e||i.RetailerCacheArray.push(t);if(r(n.SeriesOptionList,"#dlModel"),r(n.ModelOptionList,i.Filter_BodyStyle_ID),r(n.TransmissionOptionList,"#dlTransmission"),r(n.ExteriorColorOptionList,"#dlExteriorColour"),r(n.InteriorColorOptionList,"#dlInteriorColour"),r(u,i.Filter_Retailer_ID),r(n.FuelTypeOptionList,i.Filter_FuelType_ID),r(n.EngineOptionList,i.Filter_Engine_ID),i.doSetSliderLimits&&(i.IsNewInventory()?(i.YearMin.value=n.ModelYear_Minimum,i.YearMax.value=n.ModelYear_Maximum):i.NoUISlider_Update(i.YearSliderElement,{min:n.ModelYear_Minimum,max:n.ModelYear_Maximum},!0),i.PriceSliderElement&&i.NoUISlider_Update(i.PriceSliderElement,{min:n.Price_Minimum,max:n.Price_Maximum},!0),i.KMSliderElement&&i.NoUISlider_Update(i.KMSliderElement,{min:n.Kilometers_Minimum,max:n.Kilometers_Maximum},!0),i.MonthlyPaymentSliderElement&&i.NoUISlider_Update(i.MonthlyPaymentSliderElement,{min:n.MonthlPayment_Minimum,max:n.MonthlPayment_Maximum},!0),i.doSetSliderLimits=!1),i.doSetInitialFilters){i.doSetInitialFilters=!1;const n=$("#FilterContainer");if(FilterInitial.SerieName.length>0){let t=FilterInitial.SerieName;isNaN(t)||(t=Settings.Lang=="fr"?"Série"+t:t+"Serie");t=t.toUpperCase().replace(/\s/,"");let u=[],f=[];n.find("#dlModel option").each(function(n,i){let r=$(i);r.text().toUpperCase().replace(/\s/,"")==t?f.push(r):r.text().toUpperCase().replace(/\s/,"").indexOf(t)>-1&&u.push(r)});let r=null;f.length>0?r=f[0]:u.length>0&&(r=u[0]);r!==null&&(i.disableFilter($(i.Filter_BodyStyle_ID),!1),r.attr("selected",!0),i.disableFilter($("#dlModel"),!0))}n.find('#dlModel option[value="'+(FilterInitial.Series||"N/A")+'"]').length>0&&(n.find("#dlModel").val(FilterInitial.Series),i.disableFilter(n.find("#dlModel")),i.updateSearchLocalstorage("dlModel",FilterInitial.Series));n.find(i.Filter_BodyStyle_ID+" option[value="+(FilterInitial.BodyStyle||"N/A")+"]").length>0&&(n.find(i.Filter_BodyStyle_ID).val(FilterInitial.BodyStyle),i.disableFilter(n.find(i.Filter_BodyStyle_ID)),i.updateSearchLocalstorage(i.Filter_BodyStyle_ID,FilterInitial.Series));FilterInitial.InternalRetailerID&&(t=i.RetailerCacheArray.filter(function(n){return n.InternalRetailerID==FilterInitial.InternalRetailerID}),t.length>0&&(t=t[0],$(i.Filter_Province_ID).find("option[value="+t.ProvinceAbbreviation+"]").attr("selected","selected"),$(i.Filter_Retailer_ID).find("option[value="+t.Value+"]").attr("selected","selected"),i.disableFilter($(i.Filter_Retailer_ID),!0),i.setInventoryProvinceStoredValue($(i.Filter_Province_ID).val()),i.setInventoryRetailerStoredValue($(i.Filter_Retailer_ID).val())));i.IsNewInventory()?(n.find(i.Filter_Engine_ID+" option[value="+(FilterInitial.Variant||"0")+"]").length>0&&(n.find(i.Filter_Engine_ID).val(FilterInitial.Variant),i.updateSearchLocalstorage(i.Filter_Engine_ID,FilterInitial.Variant)),n.find(i.Filter_ExteriorColor_ID+" option[value="+(FilterInitial.ExteriorColor||"0")+"]").length>0&&(n.find(i.Filter_ExteriorColor_ID).val(FilterInitial.ExteriorColor),i.updateSearchLocalstorage(i.Filter_ExteriorColor_ID,FilterInitial.ExteriorColor)),n.find(i.Filter_InteriorColor_ID+" option[value="+(FilterInitial.InteriorColor||"0")+"]").length>0&&(n.find(i.Filter_interiorColor_ID).val(FilterInitial.InteriorColor),i.updateSearchLocalstorage(i.Filter_InteriorColor_ID,FilterInitial.InteriorColor)),FilterInitial.MinYear&&(i.YearMin.value=FilterInitial.MinYear),FilterInitial.MaxYear&&(i.YearMax.value=FilterInitial.MaxYear)):i.setSlider("#YearSlider",{min:FilterInitial.MinYear,max:FilterInitial.MaxYear})}};i.updatePagination=function(n,t,i){$(".filter-result").html(i);const r=Math.ceil(i/t),f=r>5,c=n>1;let u="",o="";const s='<span class="page-dot">...<\/span>',h=function(n){n=n||!1;const t=Settings.Lang=="fr"?"Suivant":"Next",i=Settings.Lang=="fr"?"Précédent":"Previous";return'<a href="#" class="'+(n?"next":"prev")+'-page btn btn-secondary">'+(n?t:i)+"<\/a>"};$(".pagination").attr("data-pages",r);for(var e=0;e<(f?5:r);e++){let t=Number(e+n);if(n>r&&(t=e+1),f||(t=r-(r-e)+1),f&&n>2?t=t-2:f&&n==2&&(t=t-1),t>r)break;o+='<span class="page '+(t==n?"active":"")+'" data-page="'+t+'">'+t+"<\/span>"}c&&(u=h(!1)+s+u);u+=o;f&&(u=u+s+h(!0));$(".pagination__nav").html(u)};i.updateVehicleList=function(n){window.InventoryGlobal.hideVehicleInfoContainer();$(".vehicles-container").html("");const t=n.map(function(n){const r=n.Offer,t=$($.parseHTML($(".vehicle")[0].outerHTML));if(InventoryGlobal.IsNewInventory()?(t.find(".vehicle-title .model-year").html(n.ModelYear),t.find(".vehicle-title .name").html(n.FullVehicleName?n.FullVehicleName.replace(n.ModelYear,"").trim():n.FullVehicleName)):t.find(".vehicle-title").html(n.FullVehicleName),t.find(".all-inc-label-text").html(TranslationResource.AllInclusiveCashPrice+":"),t.find(".vehicle-msrp").html(FormatNumber(n.CashPurchasePrice,2)),t.find(".pre-qual-link").attr("href",t.find(".pre-qual-link").attr("data-href")+n.VIN),t.attr("data-vin",n.VIN),t.attr("data-province",n.ProvinceCode),t.attr("data-retailer-number",n.RetailerNumber),t.attr("data-vehicle-name",n.FullVehicleName),t.attr("data-is-pipeline",n.IsPipelineVehicle),n.IsCertifiedPreOwned?t.find(".show-if-certified").show():t.find(".show-if-certified").hide(),n.IsPipelineVehicle?(t.find(".all-inc-label").remove(),t.find(".vehicle-msrp").remove(),t.find(".vehicle-payment-calculations").remove(),t.find(".estimate-payment").css("visibility","hidden"),t.find(".reserve-now").remove(),t.find(".credit-app-link").html("")):(t.find(".vehicle-is-pipelined").remove(),t.find(".coming-soon-side-banner").remove(),t.find(".vehicle-not-exactly-as-shown-disclaimer").remove()),n.IsReserved?(t.find(".reserve-now").remove(),t.find(".credit-app-link").html("")):t.find(".is-reserved-side-banner").remove(),!n.IsPipelineVehicle&&(i.IsNewInventory()&&r||i.IsPreOwned())){if(i.IsNewInventory()&&r){if(t.find(".vehicle-rate-calc").html(Number(r.LeaseRate*100).toFixed(2)),t.find(".vehicle-months-calc").html(r.LeaseTerm.toFixed(0)),r.LeaseRateExpiryDate)try{const n=r.LeaseRateExpiryDate.split("-"),i=new Date(Number(n[0]),Number(n[1])-1,Number(n[2]),0,0,0),u=i.toLocaleDateString(Settings.Lang,{year:"numeric",month:"long",day:"numeric"});t.find(".offer-expiry-line").html(t.find(".offer-expiry-line").attr("data-text").replace("[DATE]",u))}catch(o){console.error(`Failed to display offer expiry for value ${r.LeaseRateExpiryDate}`,o)}t.find(".vehicle-monthly-payment").html(FormatNumber(r.LeaseMonthlyPayment.toFixed(0),0));t.find(".vehicle-credit-calc").html(FormatNumber(r.LeaseCredit,0));t.find(".vehicle-payment-calculations__inner").addClass("only-2")}t.find(".estimate-payment").click(function(){$(".PaymentCalculatorModal").show();window.InventoryGlobal.IsPreOwned()&&window.METracking.Track_PreOwnedInventory_PageView_Simulation();i.PaymentCalculatorGroup!=null&&i.PaymentCalculatorGroup.Destroy();i.PaymentCalculatorGroup=PaymentCalculator.CreateNewCalculatorGroup($("#PaymentCalculatorModal .calculator-group-container"),n.DealerFeeList);i.PaymentCalculatorGroup.OnTypeChangeCallbackArray.push(function(t){window.InventoryGlobal.popualteVehiclePriceBreakdownInfo(i.$PaymentCalculatorModal.find(".vehicle-info-container"),n,t.Type=="Finance"?window.InventoryGlobal.VehiclePriceBreakdownType.Finance:window.InventoryGlobal.VehiclePriceBreakdownType.Lease)});i.$PaymentCalculatorModal.modal("show");i.IsNewInventory()?i.$PaymentCalculatorModal.find(".prequal-cta-container").hide():i.$PaymentCalculatorModal.find(".pre-qual-link").attr("href",i.$PaymentCalculatorModal.find(".pre-qual-link").attr("data-href")+n.VIN);window.InventoryGlobal.popualteVehiclePriceBreakdownInfo(i.$PaymentCalculatorModal.find(".vehicle-info-container"),n,i.IsPreOwned()?window.InventoryGlobal.VehiclePriceBreakdownType.Finance:window.InventoryGlobal.VehiclePriceBreakdownType.Lease);i.PaymentCalculatorGroup.CalculatorArray.length==0&&(i.IsPreOwned()?i.PaymentCalculatorGroup.CreateNewCalculator(n.VIN,"Finance",n.IsCertifiedPreOwned,{DownPayment:0,AllowUserInputInterestRate:!0,FinanceTerm:84,UseBiweeklyInFinance:!0,ShowNumberOfPaymentsInFinance:!0,ShowAddCalculatorButton:!1,TypeRestriction:!0,AvailableLeaseTerms:[],AvailableFinanceTerms:[24,36,48,60,66,72,84]}):i.PaymentCalculatorGroup.CreateNewCalculator(n.VIN,"Lease",n.IsCertifiedPreOwned,{DownPayment:5e3,ShowAddCalculatorButton:!1}))})}else t.find(".vehicle-payment-calculations").css("visibility","hidden"),t.find(".estimate-payment").css("visibility","hidden"),t.find(".credit-app-link").html("");let u="";i.IsNewInventory()?u=n.ImageURL.replace("-staging",""):n.ProvidedPhotoUrlList&&n.ProvidedPhotoUrlList.length>0&&(u=n.ProvidedPhotoUrlList[0]);u.length==0&&(u=i.Image404Url);u=window.SSLImageProxy(u);t.find(".vehicle-image").on("error",function(){$(this).attr("src",i.Image404Url)});n.FullVehicleName.toUpperCase()=="2018 330I XDRIVE SEDAN"||n.FullVehicleName.toUpperCase()=="2018 330I XDRIVE SEDAN SA"||n.FullVehicleName.toUpperCase()=="2018 X5 XDRIVE35I";t.find(".request-more-info-link").attr("id","btn_"+n.VIN_ShortPart);t.find(".vehicle-image").attr("src",u);t.find(".transmission_type").html(n.Transmission);t.find(".vin").html(n.VIN_ShortPart);t.find(".exterior_colour").html(n.ExteriorColor);t.find(".interior_colour").html(n.InteriorColor);t.find(".kilometers").html(window.formatNumberWithCommas(n.MileageInKilometers));t.find(".retailer").html(n.RetailerName);let f="/"+Settings.Lang;i.IsNewInventory()?f=`${window.BMWDigitalSalesUrl.replace(/\/+$/,"")}/${Settings.Lang}`:i.IsPreOwned()&&(f+="/PreOwnedInventorySearchDetails");f+="?vin="+n.VIN;let e=window.GetQueryString("at");return typeof e!="undefined"&&e!==null&&e!==""&&(f+="&at="+e),t.find(".view-details").attr("href",f),t.removeClass("hide"),t});$(".vehicles-container").html(t);tippy(".vehicles-container [data-tippy-content]")};i.UpdatePage_UseGeolocation=function(n,t){const r=$(i.Filter_ButtonUserLocation_ID);if(navigator.geolocation){if(i.UserCoordinates==null){r.html(window.TranslationResource.Geolocating+"&#8230;");function u(r){i.UserCoordinates={Latitude:r.coords.latitude,Longitude:r.coords.longitude};i.UpdateLocationFilterVisibility();i.UpdatePage(n,t);InventoryGlobal.gaTrack("Geolocate Filter Enabled")}function f(){r.html(window.TranslationResource.ErrorMessage_Geolocating);InventoryGlobal.gaTrack("Geolocate Filter Failed/Blocked")}navigator.geolocation.getCurrentPosition(u,f)}else i.UserCoordinates=null,r.html(window.TranslationResource.UseCurrentLocation),i.UpdateLocationFilterVisibility(),i.UpdatePage(n,t),i.hasLocatedOnce=!1,InventoryGlobal.gaTrack("Geolocate Filter Disabled");i.IsNewInventory()&&$(i.Filter_Retailer_ID).multiselect("refresh")}else i.UpdatePage(n,t)};i.initUISlider=function(){var n=0,t=999999999;if(i.IsNewInventory())i.YearMin.value=n,i.YearMax.value=t;else if(i.YearSliderElement){noUiSlider.create(i.YearSliderElement,{start:[n,t],connect:!0,range:{min:n,max:t},step:1});i.YearSliderElement.noUiSlider.on("update",function(n,t){const r=numeral(n[t]).format("0000");t==0?($("#YearSlider").parent().find(".minValueDisplay").html(r),i.AreSliderCallbacksEnabled&&i.updateSearchLocalstorage("minYear",r)):t==1&&($("#YearSlider").parent().find(".maxValueDisplay").html(r),i.AreSliderCallbacksEnabled&&i.updateSearchLocalstorage("maxYear",r))})}if(i.PriceSliderElement){noUiSlider.create(i.PriceSliderElement,{start:[n,t],step:1e3,connect:!0,format:i.wNumbMoneyFormat(),range:{min:n,max:t}});i.PriceSliderElement.noUiSlider.on("update",function(n,t){const r=n[t];t==0?($("#PriceSlider").parent().find(".minValueDisplay").html(r),i.AreSliderCallbacksEnabled&&i.updateSearchLocalstorage("minPrice",i.wNumbMoneyFormat().from(r))):t==1&&($("#PriceSlider").parent().find(".maxValueDisplay").html(r),i.AreSliderCallbacksEnabled&&i.updateSearchLocalstorage("maxPrice",i.wNumbMoneyFormat().from(r)))})}if(i.KMSliderElement){noUiSlider.create(i.KMSliderElement,{start:[n,t],connect:!0,step:1e3,format:i.wNumbFormat(),range:{min:n,max:t}});i.KMSliderElement.noUiSlider.on("update",function(n,t){const r=n[t];t==0?($("#KilometerSlider").parent().find(".minValueDisplay").html(r),i.AreSliderCallbacksEnabled&&i.updateSearchLocalstorage("minKM",r.replace(",",""))):t==1&&($("#KilometerSlider").parent().find(".maxValueDisplay").html(r),i.AreSliderCallbacksEnabled&&i.updateSearchLocalstorage("maxKM",r.replace(",","")))})}if(i.MonthlyPaymentSliderElement){noUiSlider.create(i.MonthlyPaymentSliderElement,{start:[n,t],connect:!0,step:10,format:i.wNumbMoneyFormat(!1),range:{min:n,max:t}});i.MonthlyPaymentSliderElement.noUiSlider.on("update",function(n,t){const r=n[t];t==0?($("#MonthlyPaymentSlider").parent().find(".minValueDisplay").html(r),i.AreSliderCallbacksEnabled&&i.updateSearchLocalstorage("minMonthlyPayment",i.wNumbMoneyFormat(!1).from(r))):t==1&&($("#MonthlyPaymentSlider").parent().find(".maxValueDisplay").html(r),i.AreSliderCallbacksEnabled&&i.updateSearchLocalstorage("maxMonthlyPayment",i.wNumbMoneyFormat(!1).from(r)))})}};i.NoUISlider_Update=function(n,t,r){if(!i.IsPreOwned()||n!=i.MonthlyPaymentSliderElement){var u=Number(t.min),f=Number(t.max);u==f&&(f=u+1);r=window.isUndefined(r)?!0:r;r?n.noUiSlider.updateOptions({start:[u,f],range:{min:u,max:f}}):n.noUiSlider.set([u,f])}};i.getInventoryProvinceStoredValue=function(){let n=null;try{n=window.LocalStorageHelper.get("inventory_province")}catch(t){console.error("Unable to read Inventory Province.");n=""}return n};i.setInventoryProvinceStoredValue=function(n){let t=null;try{t=window.LocalStorageHelper.set("inventory_province",n)}catch(i){console.error("Unable to set Inventory Province.")}return t};i.getInventoryRetailerStoredValue=function(){let n=null;try{n=window.LocalStorageHelper.get("inventory_retailer")}catch(t){console.error("Unable to read Inventory Retailer.");n=""}return n};i.setInventoryRetailerStoredValue=function(n){let t=null;try{t=window.LocalStorageHelper.set("inventory_retailer",n)}catch(i){console.error("Unable to set Inventory Retailer.")}return t};i.updateSearchLocalstorage=function(n,t){let r=null;n||(n="");n.startsWith("#")&&(n=n.substring(1));try{r=window.LocalStorageHelper.get(i.LocalStorageKey_SearchData())}catch(f){console.error("Unable to read SearchData.")}r=r==null?{}:JSON.parse(r);let u=r;u[n]=t;try{window.LocalStorageHelper.set(i.LocalStorageKey_SearchData(),JSON.stringify(u))}catch(f){console.log("unable to set search data")}};i.clearSearchLocalStorage=function(){var n,t;window.LocalStorageHelper.remove(i.LocalStorageKey_SearchData());n=i.getInventoryProvinceStoredValue();n&&i.updateSearchLocalstorage(i.Filter_Province_ID.substring(1),n);t=i.getInventoryRetailerStoredValue();t&&i.updateSearchLocalstorage(i.Filter_Retailer_ID.substring(1),t)};i.disableFilter=function(n,t){t=typeof t=="undefined"?!0:t;n.prop("disabled")!=t&&(n.prop("disabled",t),t?n.parent("div").append('<div class="filter-disabled"><\/div>'):n.next(".filter-disabled").remove());i.updateSearchLocalstorage(n.attr("id"),n.val())};i.UpdateLocationFilterVisibility=function(){i.UserCoordinates==null?($(i.Filter_SearchDistance_ID).parent().hide(),$(i.Filter_Province_ID).parent().show(),$(i.Filter_PostalCodeInput_ID).parent().show(),$(i.Filter_ButtonUserLocation_ID).parent().show(),$("#dlSort option[value=DistanceAscending]").hide(),$("#dlSort option[value=DistanceDescending]").hide()):($("#dlSort option[value=DistanceAscending]").show(),$("#dlSort option[value=DistanceDescending]").show(),$(i.Filter_SearchDistance_ID).parent().show(),$(i.Filter_Province_ID).parent().hide(),$(i.Filter_PostalCodeInput_ID).length>0&&$(i.Filter_PostalCodeInput_ID).val()?($(i.Filter_PostalCodeInput_ID).parent().show(),$(i.Filter_ButtonUserLocation_ID).parent().hide()):($(i.Filter_PostalCodeInput_ID).parent().hide(),$(i.Filter_ButtonUserLocation_ID).parent().show(),$(i.Filter_ButtonUserLocation_ID).html(window.TranslationResource.Geolocated)));i.updateSearchLocalstorage("UserCoordinates",i.UserCoordinates)};i.GeolocateByPostalCodeFilter=function(n){$(i.Filter_PostalCodeInput_ID).removeClass("has-err");var t=(""+$(i.Filter_PostalCodeInput_ID).val()).trim();if(i.updateSearchLocalstorage(i.Filter_PostalCodeInput_ID.substring(1),t),!t){i.UserCoordinates=null;i.UpdateLocationFilterVisibility();n&&n();return}i.hasLocatedOnce=!1;fetch("/Geolocate_API",{method:"post",headers:new Headers({"Content-Type":"application/x-www-form-urlencoded"}),body:$.param({PostalCode:t})}).then(function(n){return n.json()}).then(function(t){t.Success?(i.UserCoordinates={Latitude:t.Latitude,Longitude:t.Longitude},i.disableFilter($(i.Filter_PostalCodeInput_ID),!1),i.UpdateLocationFilterVisibility(),n&&n()):($(i.Filter_PostalCodeInput_ID).addClass("has-err"),console.error("Error Geolocating: "+(t.Message||"No response.")))})};i.resetFilterInputs=function(){$("#dlModel, #dlTransmission, #dlExteriorColour, #dlInteriorColour, "+[i.Filter_BodyStyle_ID,i.Filter_Engine_ID,i.Filter_FuelType_ID].join(",")).prop("selectedIndex",0).prop("disabled",!1).next(".filter-disabled").remove();$(i.Filter_BodyStyle_ID).prop("disabled",!0);i.IsPreOwned()&&i.$CertifiedOnlyCheckbox.removeClass("active");i.clearSearchLocalStorage();i.doSetSliderLimits=!0;i.UpdatePage({ModelYear_Minimum:null,ModelYear_Maximum:null,Kilometers_Minimum:null,Kilometers_Maximum:null,Price_Minimum:null,Price_Maximum:null,MonthlyPayment_Minimum:null,MonthlyPayment_Maximum:null,IsCertifiedPreOwnedOnly:null},function(){i.IsPreOwned()&&(i.$CertifiedOnlyCheckbox.addClass("active"),i.UpdatePage())});i.IsNewInventory()?(i.YearMin.value=2e3,i.YearMax.value=(new Date).getFullYear()):i.YearSliderElement&&i.setSlider("#YearSlider",{min:0,max:1e6});i.KMSliderElement&&i.setSlider("#KilometerSlider",{min:0,max:1e6});i.PriceSliderElement&&i.setSlider("#PriceSlider",{min:0,max:1e6});i.MonthlyPaymentSliderElement&&i.setSlider("#MonthlyPaymentSlider",{min:0,max:1e6});i.UpdateLocationFilterVisibility()};i.getClosestRetailer=function(n,r){const u=i.AllRetailersArray.map(function(i){return i.distance=t(n,r,i.Latitude,i.Longitude),i}).sort(function(n,t){return n.distance-t.distance});return u.length>0?u[0]:null};i.getRetailerByValue=function(n){const t=i.AllRetailersArray.filter(t=>t.Value==n);return t.length>0?t[0]:null};i.filterEvents=function(){$(document).on("change","#YearSlider_Min, #YearSlider_Max",function(){const n=$(this).is("#YearSlider_Min"),t=$(this).val();i.updateSearchLocalstorage((n?"min":"max")+"Year",t)});$(document).on("change","#dlModel, #dlTransmission, #dlExteriorColour, #dlInteriorColour, #dlSort, #dlResultsPerPage, "+[i.Filter_SearchDistance_ID,i.Filter_Province_ID,i.Filter_BodyStyle_ID,i.Filter_Engine_ID,i.Filter_Retailer_ID,i.Filter_FuelType_ID].join(","),function(t){var u,f;t.preventDefault();let r={};if($(this).is("#dlModel")){const n=$("#dlModel").prop("selectedIndex")==0;$(i.Filter_BodyStyle_ID).prop("disabled",n);n&&$(i.Filter_BodyStyle_ID).prop("selectedIndex",0)}if($(this).is(i.Filter_Province_ID)){i.setInventoryProvinceStoredValue($(this).val());let t=$(i.Filter_Province_ID).val(),f=$(i.Filter_Retailer_ID).val();u=i.RetailerCacheArray.filter(function(n){return n.Value==f});u.length>0&&(u=u[0],u.ProvinceAbbreviation!=t&&($(i.Filter_Retailer_ID).val(""),i.disableFilter($(i.Filter_Retailer_ID),!1)));i.doSetSliderLimits=!0;r.ModelYear_Minimum=null;r.ModelYear_Maximum=null;r.Kilometers_Minimum=null;r.Kilometers_Maximum=null;r.Price_Minimum=null;r.Price_Maximum=null;r.MonthlyPayment_Minimum=null;r.MonthlyPayment_Maximum=null;i.IsNewInventory()&&($(i.Filter_Retailer_ID).multiselect("enable"),$(i.Filter_Retailer_ID).multiselect("deselectAll"),n([]))}if($(this).is(i.Filter_Retailer_ID)){let n=$(this).val();if(i.setInventoryRetailerStoredValue(n),window.InventoryGlobal.IsNewInventory()){f="";i.LastSelectedRetailerNameArray.length>0&&(f=i.LastSelectedRetailerNameArray[i.LastSelectedRetailerNameArray.length-1]);const t=$(i.Filter_Retailer_ID).val();let r="Retailer Filter Changed",n="";t.length===0?n="Empty":t.length===1?n="Single":t.length>1&&(n="Multiple");n&&(r+=` - ${n}`);window.InventoryGlobal.gaTrack(r)}}$(this).is(i.Filter_SearchDistance_ID)||$(this).is(i.Filter_Province_ID)||$(this).is("#dlSort")||$(this).is("#dlResultsPerPage")||i.disableFilter($(this));i.updateSearchLocalstorage($(this).attr("id"),$(this).val());i.UpdatePage(r)});$(document).on("click",".filter-disabled",function(n){n.preventDefault();const r=$(this).parent("div");let t=r.find("select"),u=!0;t.length==0&&(u=!1,t=r.find("input"));let f=t.attr("id");if($(this).remove(),u?t.prop("selectedIndex",0):t.val(""),f=="dlModel"){const n=$(i.Filter_BodyStyle_ID);n.prop("selectedIndex",0);n.parent("div").find(".filter-disabled").remove()}(!t.is(i.Filter_BodyStyle_ID)||$("#dlModel").prop("selectedIndex")>0)&&t.prop("disabled",!1);"#"+f==i.Filter_PostalCodeInput_ID?i.GeolocateByPostalCodeFilter(()=>{i.UpdatePage()}):(i.updateSearchLocalstorage(t.attr("id"),""),i.UpdatePage())});$(document).on("click",".advanced-search",function(n){n.preventDefault();$(".filter-advanced-options").slideToggle();$(".filter-container").toggleClass("advanced-active")});$(document).on("click",".search-filter",function(n){n.preventDefault();i.UpdatePage()});$(document).on("click",".reset-results",function(n){n.preventDefault();i.resetFilterInputs()});$(document).on("click",".photos-toggle,"+[i.Filter_xDriveOnly_ID,i.Filter_CertifiedOnly_ID].join(","),function(n){n.preventDefault();$(this).find(".checkbox-group").toggleClass("active");i.updateSearchLocalstorage(i.Filter_xDriveOnly_ID,i.$XDriveCheckbox.hasClass("active"));i.updateSearchLocalstorage(i.Filter_CertifiedOnly_ID,i.$CertifiedOnlyCheckbox.hasClass("active"));i.updateSearchLocalstorage("WithPhotosOnly",$(".photos-toggle .checkbox-group").hasClass("active"));i.UpdatePage()});$(document).on("click",".pagination .page",function(n){n.preventDefault();const t=Number($(this).text());i.UpdatePage({page:t})});$(document).on("click",".next-page, .prev-page",function(n){n.preventDefault();const t=$(this).parents(".pagination"),f=$(this).hasClass("next-page"),r=Number(t.find(".page.active").text()),u=f?r+1:r-1;u>Number(t.attr("data-pages"))||i.UpdatePage({page:u})});$(document).on("click",i.Filter_ButtonUserLocation_ID,function(){const n=$(i.Filter_ButtonUserLocation_ID);navigator.geolocation?i.UpdatePage_UseGeolocation():n.html(window.TranslationResource.ErrorMessage_GeolocationNotSupported)});$(document).on("change",i.Filter_PostalCodeInput_ID,function(){const n=$(i.Filter_PostalCodeInput_ID).val(),t=n&&n.length&&n.length>0;t?InventoryGlobal.gaTrack("Postal Code Filter Changed"):InventoryGlobal.gaTrack("Postal Code Filter Cleared");i.GeolocateByPostalCodeFilter(()=>{i.UpdatePage()})})}};window.InventorySearch=new i}(),function(n,t){t.InventoryGlobal.IsSearchPage=!0;t.InventorySearch.init({StatusFilterValue:"N"})}(jQuery,window)