function equalheight(n){var r=0,u=0,i=[],t;$(window).width()>767?$(n).each(function(){if(t=$(this),$(t).outerHeight("auto"),topPostion=t.position().top,u!=topPostion){for(currentDiv=0;currentDiv<i.length;currentDiv++)i[currentDiv].outerHeight(r);i.length=0;u=topPostion;r=t.outerHeight();i.push(t)}else i.push(t),r=r<t.outerHeight()?t.outerHeight():r;for(currentDiv=0;currentDiv<i.length;currentDiv++)i[currentDiv].outerHeight(r)}):$('.js-adjust-heights > [class*="span-"], .js-adjust-heights-inner > [class*="span-"]').css({height:"auto"})}var GLOBAL_ttstores,isMobile,tonysTyres;$(document).ready(function(){jcf.replaceAll();$('input[type="text"],input[type="tel"],input[type="email"]').wrap('<span class="jcf-input" />');$("textarea").wrap('<span class="jcf-textarea" />');var n=$('[class*="jcf-"] [class*="span-"]').attr("class");$('[class*="jcf-"]').addClass(n);$(".carousel").slick({dots:!0,infinite:!0,slidesToShow:1,slidesToScroll:1,autoplay:!0,autoplaySpeed:3e3});$(".js-mobile-nav-icon").on("click",function(){$("html").toggleClass("nav-open")});$(".js-nav-primary a").on("click",function(){$("html").toggleClass("nav-open")});if($(window).width()<768&&$("html").hasClass("touch")){$(window).on("scroll",function(){$(".js-sticky").sticky({topSpacing:60})});$(".touch .js-sticky").sticky({topSpacing:60})}if($(window).width()<768)$(".js-store-select-toggle").on("click",function(){$(".js-store-select-hook").slideToggle()})});$(window).on("load",function(){var n,t;equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]');$(window).on("resize",function(){clearTimeout(n);n=setTimeout(function(){equalheight('.js-adjust-heights > [class*="span-"]')},100)});$(window).on("resize",function(){clearTimeout(t);t=setTimeout(function(){equalheight('.js-adjust-heights-inner > [class*="span-"]')},90)})});GLOBAL_ttstores=[];isMobile={Android:function(){return navigator.userAgent.match(/Android/i)},BlackBerry:function(){return navigator.userAgent.match(/BlackBerry/i)},iOS:function(){return navigator.userAgent.match(/iPhone|iPad|iPod/i)},Opera:function(){return navigator.userAgent.match(/Opera Mini/i)},Windows:function(){return navigator.userAgent.match(/IEMobile/i)||navigator.userAgent.match(/WPDesktop/i)},any:function(){return isMobile.Android()||isMobile.BlackBerry()||isMobile.iOS()||isMobile.Opera()||isMobile.Windows()}};tonysTyres=tonysTyres||function(){var n={namespace:function(){for(var f=arguments,n,t,r,i,u=0;u<f.length;u++)if(n=this,i=f[u],i.indexOf(".")>-1)for(r=i.split("."),t=0;t<r.length;t++)n[r[t]]=n[r[t]]||{},n=n[r[t]];else n[i]=n[i]||{},n=n[i];return n},module:function(t,i){var r,f,u;return t.indexOf(".")>-1?(f=t.substring(0,t.indexOf(".")),u=t.substring(t.indexOf(".")+1),r=n.namespace(f)):(r=this,u=t),r[u]=r[u]||i,i}};return n}();tonysTyres.module("lightBox",function(){function i(){t();$(".js-tyre-box").show();n()}function n(){$(".js-close-lightbox").one("click",function(n){n.preventDefault();$(this).closest(".js-lightbox").fadeOut("fast")});$(".js-lightbox").fadeIn("fast")}function r(){t();$(".js-thanks-box").show();n()}function t(){$(".js-tyre-box").hide();$(".js-thanks-box").hide();$(".js-message-box").hide()}function u(i,r,u){t();$(".js-message-div").empty();u?$(".js-message-div").append(r):(i&&$(".js-message-div").append("<h4>"+i+"<\/h4>"),$(".js-message-div").append("<h6>"+r+"<\/h6>"));$(".js-message-box").show();n()}return{}.options={},{openTyresLightBox:function(){i()},openThanksLightBox:function(){r()},openMessageLightBox:function(n,t,i){u(n,t,i)}}}());tonysTyres.module("validation",function(){function t(n,t){return u(),$.each(n,t),$(".required-field").length>0?(f(),!1):!0}function i(n){var n="<div>"+n+"<\/div>";$(".js-error-messages").append(n)}function r(t){t.addClass(n)}function u(){$("."+n).removeClass(n);$(".js-error-message").hide();equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]')}function f(){$(".js-error-message").fadeIn("slow");equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]')}var n;return{}.options={url:{financeNow:""},dealerNumber:""},n="required-field",{addErrorText:function(n){i(n)},setErrorClass:function(n){r(n)},validate:function(n,i){return t(n,i)}}}());tonysTyres.module("ajax",function(){function t(t){t=$.extend(!0,{},n.options,t);var i=typeof t.datagetter=="function"?t.datagetter:function(){return t.datagetter};return $.ajax({contentType:t.contentType,traditional:!0,datatype:"json",url:t.url,type:"POST",data:i()}).done(function(n){t.doneCallBack(n)}).fail(function(n){tonysTyres.lightBox.openMessageLightBox("An error occurred!",n.responseJSON);t.failCallBack()}).always(function(n){t.alwaysCallBack(n)})}var n={};return n.options={contentType:"application/x-www-form-urlencoded",datatype:"text",datagetter:{},url:"",doneCallBack:$.noop,failCallBack:$.noop,alwaysCallBack:$.noop,form:null},{get:function(n){return t(n)}}}());tonysTyres.module("finance",function(){function e(t){t.preventDefault();var i=$(".js-form").serializeArray();tonysTyres.validation.validate(i,o)&&($(".js-financeIframe")[0].src=s(i),$(".js-form").hide(),$(".js-financeIframe").show(),tonysTyres.ajax.get({url:n.options.url.ajaxFinance,datagetter:l()}))}function o(n,i){switch(i.name){case"firstName":i.value||t($("#firstName").closest("div"));break;case"lastName":i.value||t($("#lastName").closest("div"));break;case"email":i.value?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i.value)||t($("#email").closest("div")):t($("#email").closest("div"));break;case"phone":i.value||t($("#phone").closest("div"))}}function s(){var i=n.options.url.financeNow+"?",r=$("#email").val(),u=($("#firstName").val()+"+"+$("#lastName").val()).replace(" ","+"),f=$(".js-default-finance-amount").val(),e=$(".js-default-finance-term").val(),t=n.options;return t.dealerName=t.dealerName.replace(" ","+"),t.contact=t.contact.replace(" ","+"),"https://www.fnl.co.nz/qik/Qikdealer/Default.asp?DealerNr="+t.dealerNumber+"&DealerName="+t.dealerName+"&DealerEmail="+t.dealerEmail+"&Contact="+t.contact+"&Product="+t.product+"&CashPrice="+f+"&Term="+e+"&Defterm=0&Deposit=0&RateOR="+t.interest+"&BookingFee="+t.estabFee+"&CustomerName="+u+"&CustomerEmail="+r}function h(){n.options.finance>0&&($(".js-default-finance-amount").val(n.options.finance),jcf.destroy($(".js-default-finance-amount")),jcf.replace($(".js-default-finance-amount")));n.options.term>0&&($(".js-default-finance-term").attr("value",n.options.term),jcf.destroy($(".js-default-finance-term")),jcf.replace($(".js-default-finance-term")));$(".js-finance-amount").on("input change",function(){var n=$(this).closest(".finance-calculator"),t;n.find(".js-finance-value")[0].innerHTML="$"+this.value;t=r(this.value,n.find(".js-finance-term").val());n.find(".js-weekly-amount")[0].innerHTML=t;c($(this))});$(".js-finance-term").on("input change",function(){var n=$(this).closest(".finance-calculator"),t;n.find(".js-finance-term-value")[0].innerHTML=this.value+" months";t=r(n.find(".js-finance-amount").val(),this.value);n.find(".js-weekly-amount")[0].innerHTML=t});$(".js-finance-amount").trigger("input");$(".js-finance-term").trigger("input")}function c(n){var r=n.val(),t,i;r<225?(t=5,i=195):r<500?(t=25,i=0):r<1e3?(t=50,i=0):(t=100,i=0);n.attr("step",t);n.attr("min",i)}function r(t,i){var e=n.options.estabFee,s=n.options.monthlyFee,h=n.options.interest,r=parseInt(n.options.interestFreePeriod);console.log("trm: "+i);console.log("if_trm (1): "+r);i<r&&(console.log(i+" is less than "+r),r=i);console.log("if_trm (2): "+r);var b=String.fromCharCode(13),k=String.fromCharCode(27),f=Math.abs(t)/i,d=r*f,c=(i-r)*f,l=f,a=u(c,i-r,h),v=l*r,y=a*(i-r),o=v+y+Math.abs(e),p=o/i+Math.abs(s),g=Math.abs(o)-(Math.abs(t)+Math.abs(e)),w=Math.abs(p*12/52);return"$"+(Math.round(w*100)/100).toFixed(2)}function u(n,t,r){if(t==0)return 0;var u=0,f=1+r/1200;for(i=1;i<=t;i++)u+=Math.pow(f,-i);return n/u}function l(){return{FirstName:$("#firstName").val(),LastName:$("#lastName").val(),Email:$("#email").val(),Phone:$("#phone").val(),FinanceAmount:$(".js-default-finance-amount").val(),Term:$(".js-default-finance-term").val()}}function f(t){n.options=$.extend(!0,{},n.options,t);$(".js-getFinance").on("click",function(n){n.preventDefault();e(n)});h()}var n={},t;return n.options={url:{financeNow:"",ajaxFinance:"/ajax/financerequest"},dealerNumber:"",dealerName:"",dealerEmail:"",contact:"",product:"",interest:"",monthlyFee:"",estabFee:"",term:0,finance:0,interestFreePeriod:0},t=tonysTyres.validation.setErrorClass,{init:function(n){f(n)},initHomePageSlider:function(t){n.options.dealerNumber==""&&f(t)}}}());tonysTyres.module("quote",function(){function e(n){if(n.preventDefault(),!r){if(u>0){tonysTyres.lightBox.openMessageLightBox("Quote already sent","If you wish to send another quote please refresh the page");return}t=s();tonysTyres.validation.validate(t,a)&&(r=!0,o(),tonysTyres.ajax.get({url:"/ajax/quote",datagetter:t,doneCallBack:l,failCallBack:c}))}}function o(){$(".js-processing").show()}function f(){$(".js-processing").hide()}function s(){var n=null;return($("#purchaseYes")[0].checked||$("#purchaseNo")[0].checked)&&(n=$("#purchaseYes")[0].checked),{Tyres:$("#tyresCheck")[0].checked,NumberOfTyres:$("#numOfTyres").val(),SomethingElse:$("#somethingCheck")[0].checked,Need:$("#need").val(),ServiceList:h(),PurchasedBefore:n,Rego:$("#rego").val(),PreferredStore:$(".js-store-dropdown").val(),TyreSize:$("#tyreSize").val(),FirstName:$("#firstName").val(),LastName:$("#lastName").val(),Email:$("#email").val(),Phone:$("#phone").val(),AdditionalComments:$("#comments").val()}}function h(){for(var n="",i=$(".js-serviceitem :checked"),t=0;t<i.length;t++)n!=""&&(n+=", "),n+=i[t].closest("label").textContent;return n}function c(){r=!1;f()}function l(){f();tonysTyres.lightBox.openThanksLightBox();u+=1;r=!1}function a(i,r){switch(i){case"Tyres":r||t.SomethingElse||(n($("#tyresCheck").closest("div")),n($("#somethingCheck").closest("label")));break;case"SomethingElse":r!=!0||t.Need||t.ServiceList||(n($("#need").closest("div")),n($(".js-serviceitem").closest("div").parent().closest("div")));break;case"NumberOfTyres":t.Tyres&&r==$("#numOfTyres option:first").val()&&n($("#numOfTyres").closest("div"));break;case"PurchasedBefore":r==null&&(n($("#purchaseYes").closest("div")),n($("#purchaseYes").closest("div").siblings(".label")));break;case"FirstName":r||n($("#firstName").closest("div"));break;case"LastName":r||n($("#lastName").closest("div"));break;case"Email":r?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r)||n($("#email").closest("div")):n($("#email").closest("div"));break;case"Phone":r||n($("#phone").closest("div"));break;case"TyreSize":!r&&t.Tyres&&n($("#tyreSize").closest("div"));break;case"PreferredStore":r==$(".js-store-dropdown option:first").val()&&n($(".js-store-dropdown").closest("div"));break;case"Rego":r||n($("#rego").closest("span"))}}function v(){for(var t="<option>Year<\/option>",n=(new Date).getFullYear();n>1900;n--)t+="<option>"+n+"<\/option>";$(".js-year-dropdown").empty();$(".js-year-dropdown").append(t)}function y(){$("#tyresCheck")[0].checked?$(".js-tyre-details").show():$(".js-tyre-details").hide();equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]')}function p(n){i.options=$.extend(!0,{},i.options,n);$(".js-quote-section").hide();equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]');setTimeout(function(){v();i.options.somethingElseSelected&&$("#somethingCheck").prop("checked",!0).change();i.options.tyresSelected&&$("#tyresCheck").prop("checked",!0).change();jcf.refreshAll()},0);$("#tyresCheck").on("change",function(){$(".js-toggle-select").toggle();y();equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]')});$("#somethingCheck").on("change",function(){$(".js-toggle-input").toggle();equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]')});$(".js-getQuote").on("click",function(n){e(n)});$(".js-open-tyre-lightbox").on("click",function(n){n.preventDefault();tonysTyres.lightBox.openTyresLightBox()})}var i={};i.options={url:{ajaxQuote:"/ajax/quote"},tyresSelected:!1,somethingElseSelected:!1};var t=null,u=0,r=!1,w=tonysTyres.validation.addErrorText,n=tonysTyres.validation.setErrorClass;return{init:function(n){p(n)}}}());tonysTyres.module("shortCuts",function(){function h(t){n.options=$.extend(!0,{},n.options,t);$(".js-open-stores").on("click",function(n){y(n)});$(".js-open-quote").on("click",function(n){w(n)});$(".js-send-phone").on("click",function(n){c(n)});$(".js-finance-quote").on("click",function(n){p(n)});if($(".js-stores-url").attr("href",n.options.url.Stores),$(".js-quote-url").attr("href",n.options.url.quote),isMobile.any()&&navigator.geolocation?navigator.geolocation.getCurrentPosition(b,o):o(),!isMobile.any())$(".js-phone-click").on("click",function(n){n.preventDefault();var t=$(this).find("a").attr("href").replace("tel:","");$(this).find(".tel-ellipsis").text(t);$(this).find(".js-phone-arrow").hide()})}function c(t){if(t.preventDefault(),!r){var i=$(".js-phone-request").val(),u=$(".js-name-request").val();f?tonysTyres.lightBox.openMessageLightBox("Phone details already sent","If you need to resend your details please refresh the page"):i&&u?(r=!0,v(),tonysTyres.ajax.get({url:n.options.url.ajaxPhone,datagetter:{Number:i,ContactName:u},doneCallBack:a,failCallBack:l})):tonysTyres.lightBox.openMessageLightBox("More detail required","Please enter name and phone number")}}function l(){r=!1;e()}function a(){tonysTyres.lightBox.openThanksLightBox();f=!0;r=!1;e()}function v(){$(".js-processing").show()}function e(){$(".js-processing").hide()}function y(t){t.preventDefault();var i="";$(".js-store-finder :selected").val()!=$(".js-store-finder option:first").val()&&(i="?region="+$(".js-store-finder").val());window.location.href=n.options.url.Stores+i}function p(t){t.preventDefault();var i=$("#financeTerm").val(),r=$("#financeAmount").val(),u="?term="+i+"&finance="+r;window.location.href=n.options.url.finance+u}function w(t){t.preventDefault();var u=$(".js-tyre-quote")[0].checked,r=$(".js-somethingelse-quote")[0].checked,i="";u&&(i+="?tyres=true");r&&i==""?i+="?somethingelse=true":r&&(i+="&somethingelse=true");window.location.href=n.options.url.quote+i}function b(n){$(".js-no-location").hide();$(".js-location").show();k(n);t=!0;$(window).trigger("resize")}function k(t){var f=s(t.coords.latitude,t.coords.longitude),e=$(".js-store-distance"),r;for(e.empty(),r=0;r<5;r++){var i=f[r].store,h=f[r].distance,o=i.Suburb?i.Suburb:i.City,u=n.options.url.store+o.replace(/ /g,"-"),u="\\store\\"+i.Region+"\\"+i.Town;u=u.replace(/ /g,"-");e.append('<li><a href="'+u+'"><span class="store-address">'+o+", "+i.Street+'<\/span><span class="store-distance">'+h.toFixed(2)+' km  <span class="icon -arrow-circle-right"><\/span><\/span><\/a><\/li>')}}function o(){$(".js-no-location").show();$(".js-location").hide();t=!1}function s(t,r){var p=tonysTyres.storeGeo.getMarkers(),f=[],e=-1;for(i=0;i<n.options.stores.length;i++){var l=n.options.stores[i].Lat,a=n.options.stores[i].Lon,o=u(l-t),s=u(a-r),h=Math.sin(o/2)*Math.sin(o/2)+Math.cos(u(t))*Math.cos(u(t))*Math.sin(s/2)*Math.sin(s/2),v=2*Math.atan2(Math.sqrt(h),Math.sqrt(1-h)),c=6371*v,y={distance:c,store:n.options.stores[i]};f[i]=y;(e==-1||c<f[e].distance)&&(e=i)}return f.sort(d),f}function u(n){return n*(Math.PI/180)}function d(n,t){return n.distance<t.distance?-1:n.distance>t.distance?1:0}function g(){var i="<option>Select store<\/option>",u,r,t;if(0)for(u=s(position.coords.latitude,position.coords.longitude),t=0;t<u.length;t++)i+="<option>"+u[0].store.Name+"<\/option>";else{for(r="",t=0;t<n.options.stores.length;t++)r&&r==n.options.stores[t].Region||(r=n.options.stores[t].Region,i.indexOf("<optgroup")>0&&(i+="<\/optgroup>"),i+="<optgroup label="+r+">"),i+="<option>"+n.options.stores[t].Name+"<\/option>";i+="<\/optgroup>"}return i}var n={},t,r,f;return n.options={url:{Stores:"",store:"/store",quote:"",ajaxPhone:"/ajax/phonecall",finance:""},stores:[]},t=null,r=!1,f=!1,{init:function(n){h(n)},getStoresSelectList:function(){return g()},hideFinanceCalculator:function(){$(".js-sidebar-finance-calc").hide();equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]')},showFinanceCalculator:function(){$(".js-sidebar-finance-calc").show();equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]')}}}());tonysTyres.module("storeGeo",function(){function s(t){n.options=$.extend(!0,{},n.options,t);u();$("#region-select").on("change",y);$(".js-store-section").hide();equalheight('.js-adjust-heights > [class*="span-"]');equalheight('.js-adjust-heights-inner > [class*="span-"]')}function u(){var i={lat:n.options.currentLat,lng:n.options.currentLng};t=new google.maps.Map(document.getElementById(n.options.mapName),{center:i,scrollwheel:!0,zoom:16});google.maps.event.addListener(t,"click",c);$.each(n.options.stores,l);h()}function h(){var u=t.maxZoom,i;if(n.options.selectedStoreId){var h=$.grep(n.options.stores,function(t){return t.Id==n.options.selectedStoreId}),e=v(n.options.selectedStoreId),s=e.getPosition();t.setCenter(s)}else n.options.region==""?f(r,!0):(i=o(n.options.region),f(i,!0),$("#region-select").val(n.options.region),jcf.refresh($("#region-select")));setTimeout(function(){t.setOptions({maxZoom:u})},500)}function c(){for(var n=0;n<e.length;n++)e[n].close()}function l(n,i){var f={lat:i.Lat,lng:i.Lon},e=new google.maps.MarkerImage("/img/map-icon.png",null,null,null,new google.maps.Size(42,68)),u=new google.maps.Marker({map:t,position:f,title:i.Name,icon:e});u.store=i;r.push(u);$("#map").data("info-window")&&$("#map").data("info-window")=="suppress"||a(u,i)}function a(n,t){n.addListener("click",function(){window.location.href=t.Url})}function f(n,t){for(var r=tonysTyres.storeGeo.getMap(),u=new google.maps.LatLngBounds,f,e,i=0;i<n.length;i++)f=new google.maps.LatLng(n[i].position.lat(),n[i].position.lng()),u.extend(f);e=r.maxZoom;r.setOptions({maxZoom:12});r.fitBounds(u);t||r.setOptions({maxZoom:e})}function o(n){if(n==$("#region-select option:first").val())return r;var t=[];return $.each(r,function(i,r){r.store.Region==n&&t.push(r)}),t}function v(n){var t=null;return $.each(r,function(i,r){if(r.store.Id==n)return t=r,!1}),t}function y(){var n=this.options[this.selectedIndex].value,t=o(n);f(t)}var n={},t=null,r=[],e=[];n.options={url:{StoresList:""},stores:[],currentLat:0,currentLng:0,mapName:"map",region:"",selectedStoreId:""};var p='<div class="map-content"><address><h2 class="map-header">[STREET]<\/h2><p>[SUBURBCITY]<\/p><\/address><section class="map-contact-details js-map-phone-click"><h3><a href="tel:[PHONE]"><span class="icon -phone"><\/span><span class="txt-group"><span class="tel-ellipsis">[PHONEELIPSIS]...<\/span><span class="icon -arrow-circle-right js-phone-arrow"><\/span><\/span><\/a><\/h3><div class="map-opening-hours"><div class="map-open-week"><p><strong>All stores closed until further notice<\/strong><\/p><\/div><\/div><\/section><!-- / section-contact-details --><section class="map-store-services"><h6>Services<\/h6><p>[SERVICES].<\/p><\/section><a href="[DIRECTION]" target="newwindow" class="button" [HIDEDIRECTION] >Get directions<\/a><\/div>';return{init:function(n){s(n)},getMap:function(){return t},getMarkers:function(){return r}}}())