function openMobileMenu(){document.getElementsByClassName("navbar-mobile")[0].classList.toggle("show");document.getElementsByClassName("mobile-menu__overlay")[0].classList.toggle("show");document.getElementsByClassName("close-button")[0].classList.toggle("show")}function closeMobileNav(){const n=document.querySelectorAll(".show");[].forEach.call(n,n=>{n!==this&&n.classList.remove("show")})}function popupDrivesmart(){var n=$("#modalDrivesmartRegister");n.modal({backdrop:"static"});ga("send","event","Register Drivesmart Popup","View","Register Drivesmart Popup Load")}function populateTyreWidths(n,t){$.ajax({type:"GET",url:nationalAPI.url+"tyres/GetTyreWidths?siteid="+n}).done(function(n,i,r){r.status===200?(t.empty(),t.append('<option value=""><\/option>'),$.each(n,function(n,i){t.append("<option value="+i+">"+i+"<\/option>")})):displayError("APIError","There was an error with the service Tyres-GetTyreWidths.<br />Please try again later.")}).fail(function(n,t,i){displayError("Connection Error",i)});return}function populateTyreProfiles(n,t,i){var r=nationalAPI.url+"tyres/GetTyreProfiles?width="+t;n!==0&&(r+="&siteid="+n);$.ajax({type:"GET",url:r}).done(function(n,t,r){r.status===200?(i.empty(),i.append('<option value=""><\/option>'),$.each(n,function(n,t){i.append('<option value="'+t+'">'+t+"<\/option>")}),n.length===1&&i.prop("selectedIndex",1).change()):displayError("APIError","There was an error with the service Tyres-GetTyreProfiles.<br />Please try again later.")}).fail(function(n,t,i){displayError("Connection Error",i)});return}function populateTyreDiameters(n,t,i,r){var u=nationalAPI.url+"tyres/GetTyreDiameters?width="+t+"&profile="+i;n!==0&&(u+="&siteid="+n);$.ajax({type:"GET",url:u}).done(function(n,t,i){i.status===200?(r.empty(),r.append('<option value=""><\/option>'),$.each(n,function(n,t){r.append('<option value="'+t+'">'+t+"<\/option>")}),n.length===1&&r.prop("selectedIndex",1).change()):displayError("APIError","There was an error with the service Tyres-GetTyreDiameters.<br />Please try again later.")}).fail(function(n,t,i){displayError("Connection Error",i)});return}function populateTyreLoadIndexes(n,t,i,r,u){var f=nationalAPI.url+"tyres/GetTyreLoadIndexes?width="+t+"&profile="+i+"&diameter="+r;n!==0&&(f+="&siteid="+n);$.ajax({type:"GET",url:f}).done(function(n,t,i){i.status===200?(u.empty(),u.append('<option value="">Any<\/option>'),$.each(n,function(n,t){u.append('<option value="'+t+'">'+t+"<\/option>")})):displayError("APIError","There was an error with the service Tyres-GetTyreLoadIndexes.<br />Please try again later.")}).fail(function(n,t,i){displayError("Connection Error",i)});return}function populateTyreSpeedRatings(n,t,i,r,u){var f=nationalAPI.url+"tyres/GetTyreSpeedRatings?width="+t+"&profile="+i+"&diameter="+r;n!==0&&(f+="&siteid="+n);$.ajax({type:"GET",url:f}).done(function(n,t,i){i.status===200?(u.empty(),u.append('<option value="">Any<\/option>'),$.each(n,function(n,t){u.append('<option value="'+t+'">'+t+"<\/option>")})):displayError("APIError","There was an error with the service Tyres-GetTyreSpeedRatings.<br />Please try again later.")}).fail(function(n,t,i){displayError("Connection Error",i)});return}function getQueryStringValueByName(n,t){if(t||(t=window.location.href),n!==undefined)try{n=n.replace(/[\[\]]/g,"\\$&");var r=new RegExp("[?&]"+n+"(=([^&#]*)|&|#|$)","i"),i=r.exec(t);return i?i[2]?decodeURIComponent(i[2].replace(/\+/g," ")):"":null}catch(u){return null}else return null}function makeClickable(n){let t=$(this).data("url");$(n.target).on("click",function(){location.href=t})}function showPostCodeAddresses(n,t,i,r,u,f,e){var o=$("#"+e),s,h;o.hide();n!==""?(s=function(n){var e,s;if(n===null)o.removeClass("hidden").show().html("Sorry, your postcode was not recognised.");else if(n.addresses){var h=$("#"+t),c=h.closest("div.modal"),l=c.find("button.addressselect");c.modal();h.empty();h.append('<option value="">Please select your address<\/option>');l.off("click");$.each(n.addresses,function(n,t){e=t.split(",");s=e[0];e[1]!==" "&&(s+=", "+e[1],e[2]!==" "&&(s+=", "+e[2],e[3]!==" "&&(s+=", "+e[3],e[4]!==" "&&(s+=", "+e[4]))));s+=", "+e[5]+", "+e[6];h.append('<option value="'+t+'">'+s+"<\/option>")});l.on("click",function(){if($("#"+i).val(""),$("#"+r).val(""),$("#"+u).val(""),h.val()!==""){var n=h.val().split(","),t=n[0];n[1]!==" "&&(t+=", "+n[1],n[2]!==" "&&(t+=", "+n[2],n[3]!==" "&&(t+=", "+n[3])));$("#"+i).val(t);$("#"+r).val(n[4]);$("#"+u).val(n[5]);clearValidation(f)}c.modal("hide")})}},h=function(){o.removeClass("hidden").show().html("There was an error looking up your postcode. Please enter your address manually.")},getPostCodeAddresses(n,s,h)):o.removeClass("hidden").show().html("Please enter your postcode.");return}function getPostCodeAddresses(n,t,i){if(n!==""){var r=encodeURI(n.replace(/\s+/g,""));$.ajax({type:"GET",url:"https://api.getaddress.io/find/"+r+"?api-key=fjemsJoZf0eec1mwppHlgQ10736"}).done(function(n){t(n)}).fail(function(){i("Postcode not found")})}else i("Postcode not supplied");return}function submitSignUp(n){$(n.target).find(":submit").attr("disabled",!0).prepend($iProcessing);var t=new FormData;return $(this).find("input,textarea,select").each(function(){t.append(this.id,this.value)}),t.append("siteid",siteId),grecaptcha.ready(function(){grecaptcha.execute(document.getElementById("hidRecaptchaKey").value,{action:"mailsignup"}).then(function(i){t.append("recaptchatoken",i);$.ajax({url:api+"customer/halfordscontact",method:"POST",data:t,cache:!1,contentType:!1,processData:!1}).done(function(t){t?($(n.target).hide(),$("#mailsignedup").removeClass("hidden").show(),$("#mailsignedup")[0].scrollIntoView()):$(n.target).find(":submit").attr("disabled",!1).children(0).remove()}).fail(function(t){apiValidationCheck(t,t.responseJSON);$(n.target).find(":submit").attr("disabled",!1).children(0).remove()})})}),!1}function submitSignUpMOT(n){$(n.target).find(":submit").attr("disabled",!0).prepend($iProcessing);var t=new FormData;return $(this).find("input,textarea,select").each(function(){t.append(this.id,this.value)}),t.append("siteidmot",siteId),grecaptcha.ready(function(){grecaptcha.execute(document.getElementById("hidRecaptchaKey").value,{action:"mailsignup"}).then(function(i){t.append("recaptchatoken",i);$.ajax({url:api+"customer/halfordscontactmot",method:"POST",data:t,cache:!1,contentType:!1,processData:!1}).done(function(t){t?($(n.target).hide(),$("#mailsignedup").removeClass("hidden").show(),$("#mailsignedup")[0].scrollIntoView()):$(n.target).find(":submit").attr("disabled",!1).children(0).remove()}).fail(function(t){apiValidationCheck(t,t.responseJSON);$(n.target).find(":submit").attr("disabled",!1).children(0).remove()})})}),!1}function addTyres(n){var i,t,f,r,e,o;n.preventDefault();i=$(this);t=i.find(":submit");t.attr("disabled",!0);let u=Number(i.find("select").val()),s=t.data("partcode"),h=t.data("partcodepace");return f=getCookie("vehicle"),r="",$.each(f.split("&"),function(n,t){if(t.startsWith("VRM=")){r=t.substr(4);return}}),e=function(){t.attr("disabled",!1).children(0).remove()},o=function(n){if(n.status){let s=t.data("pattern"),c=t.data("brand"),e=t.data("price1"),r=t.data("index"),f=h.toString();dataLayer.push({ecommerce:null});dataLayer.push({event:"add_to_cart",ecommerce:{currency:"GBP",value:e*u,items:[{item_id:f,item_name:s,item_brand:c,item_category:"TY",price:e,quantity:u,index:r}]}});let i=JSON.parse(localStorage.getItem("tyreIndexes"))||[];const o=i.findIndex(n=>n.partCode===f);o>-1?i[o].index=r:i.push({partCode:f,index:r});localStorage.setItem("tyreIndexes",JSON.stringify(i));setBasketCookie(n.Basket)&&(t.attr("disabled",!1).children(0).remove(),window.location.href=siteUrl+"basket")}else t.attr("disabled",!1).children(0).remove()},nationalAPI.addBasketTyres(s,u,r,o,e),!1}function addBattery(){var n=$(this),t,i;n.attr("disabled",!0).prepend($iProcessing);t=function(){n.attr("disabled",!1).children(0).remove()};i=function(t){if(t.status){let r=n.data("partcodepace"),u=n.data("description"),i=Number(n.data("price"));dataLayer.push({ecommerce:null});dataLayer.push({event:"add_to_cart",ecommerce:{currency:"GBP",value:i,items:[{item_id:r.toString(),item_name:u,item_category:"BA",price:i,quantity:1}]}});setBasketCookie(t.Basket)&&(n.attr("disabled",!1).children(0).remove(),window.location.href=siteUrl+"basket")}else n.attr("disabled",!1).children(0).remove()};nationalAPI.addBasketBattery(n.data("code"),i,t)}function splitTyreDescription(n){let t=n.split(" "),u=t[0],i="",r=1;while(r<t.length)if(i+=t[r]+" ",r++,t[r].startsWith("Tyres"))break;return i=i.trim(),{manufacturer:u,pattern:i}}function simplepostback(n){var t=$(this).data("redirect");return n.preventDefault(),$(n.target).find(":submit").attr("disabled",!0),$.ajax({method:"POST",url:n.target.action.toLowerCase(),dataType:"json",headers:{"Content-Type":"application/json"},success:function(){window.location.href=siteUrl+t},error:function(t){console.log("error");console.log(t);$(n.target).find(":submit").attr("disabled",!1)}}),!1}function branchsearch(n){var i,t;n.preventDefault();i=$(n.currentTarget);let u=i.find('input[type="text"]').val().trim().toUpperCase(),r=i.find("select").val();return t="",t=siteUrl+"branch-search?S="+encodeURIComponent(u.replace(" ","")),r!==""&&(t+="&Service="+encodeURI(r)),window.location.href=t,!1}function searchtyresSize(n){n.preventDefault();ga("send","event","Tyres","Click","Main tyre search - Size");$(n.target).find(":submit").attr("disabled",!0);let i=$(n.target).find("select"),o=$(i[0]).val(),s=$(i[1]).val(),h=$(i[2]).val(),r=$(i[3]).val(),u=$(i[4]).val(),e=$(n.target).find("input:text.postcode-input"),f="";e.length===1&&(f=e.val());let t=siteUrl+"tyres-search?width="+o+"&profile="+s+"&diameter="+h;return r!==""&&r!==null&&r!==undefined&&(t+="&rating="+r,t+="~"),u!==""&&u!==null&&u!==undefined&&(t+="&loadindex="+u),$(".searchqs").length>0&&(t+=$(".searchqs").first().val()),f!==""&&(t+="&pc="+encodeURIComponent(f.replace(" ","")).toUpperCase()),window.location.href=t,$(n.target).find(":submit").attr("disabled",!1),!1}function searchtyresVRM(n){n.preventDefault();ga("send","event","Tyres","Click","Main tyre search - VRM");$(n.target).find(":submit").attr("disabled",!0);let i=$(n.target).find("input:text:not(.postcode-input)").val(),r=$(n.target).find("input:text.postcode-input").val(),t=siteUrl+"tyres-search?vrm="+encodeURIComponent(i.replace(" ","")).toUpperCase()+"&pc="+encodeURIComponent(r.replace(" ","")).toUpperCase();return $(".searchqs").length>0&&(t+=$(".searchqs").first().val()),window.location.href=t,$(n.target).find(":submit").attr("disabled",!1),!1}function searchpressuresVRM(n){n.preventDefault();$(n.target).find(":submit").attr("disabled",!0);var t=$(n.target).find("input:text").val();$.ajax({method:"POST",url:n.target.action.toLowerCase(),dataType:"json",data:JSON.stringify({vrm:t.replace(" ","")}),headers:{"Content-Type":"application/json"},contentType:"application/json; charset=utf-8",success:function(n){var t=siteUrl+"tyre-pressure-search?"+n.d;window.location.href=t},error:function(t){console.log("error");console.log(t);$(n.target).find(":submit").attr("disabled",!1)}})}function searchserviceVRM(n){n.preventDefault();let t=$(n.target);var i=t.find(":submit");i.attr("disabled",!0);let r=0;t.find("input:hidden#mot").length===1&&(r=Number(t.find("input:hidden#mot").val()));let e=0;t.find("input:hidden#oil").length===1&&(e=Number(t.find("input:hidden#oil").val()));let u=t.find("input:text:not(.postcode-input)").val(),f=t.find("input:text.postcode-input").val();return e!==0?(window.location.href=siteUrl+"servicing/search?vrm="+encodeURIComponent(u.replace(" ","").toUpperCase())+"&pc="+encodeURIComponent(f.replace(" ","").toUpperCase())+"&oil=1",i.attr("disabled",!1)):r!==0?(window.location.href=siteUrl+"servicing/search?vrm="+encodeURIComponent(u.replace(" ","").toUpperCase())+"&pc="+encodeURIComponent(f.replace(" ","").toUpperCase())+"&mot="+encodeURIComponent(r),i.attr("disabled",!1)):(window.location.href=siteUrl+"servicing/search?vrm="+encodeURIComponent(u.replace(" ","").toUpperCase())+"&pc="+encodeURIComponent(f.replace(" ","").toUpperCase()),i.attr("disabled",!1)),!1}function searchbatteryVRM(n){n.preventDefault();$(n.target).find(":submit").attr("disabled",!0);var t=$(n.target).find("input:text").val();return window.location.href=siteUrl+"batteries/search?vrm="+encodeURIComponent(t.replace(" ","").toUpperCase()),!1}function searchoilVRM(n){n.preventDefault();$(n.target).find(":submit").attr("disabled",!0);ga("send","event","Oil and Filter","Click","Quote","Valvoline");var t=$(n.target).find("input:text").val();return window.location.href=siteUrl+"oil-change-search?vrm="+encodeURIComponent(t.replace(" ","").toUpperCase()),!1}function searchbrakesVRM(n){n.preventDefault();$(n.target).find(":submit").attr("disabled",!0);var i=$(n.target).find("input:text").val(),t=siteUrl;return n.originalEvent.submitter.id==="searchpads"?t+="brake-pad-search?vrm="+encodeURIComponent(i.replace(" ","").toUpperCase()):n.originalEvent.submitter.id==="searchdiscs"&&(t+="brake-disc-search?vrm="+encodeURIComponent(i.replace(" ","").toUpperCase())),window.location.href=t,!1}function getCookie(n){for(var t,r=n+"=",f=decodeURIComponent(document.cookie),u=f.split(";"),i=0;i<u.length;i++){for(t=u[i];t.charAt(0)==" ";)t=t.substring(1);if(t.indexOf(r)==0)return t.substring(r.length,t.length)}return""}function getCookieKeyValue(n,t){let u=getCookie(n),i=u.split("&").reduce((n,t)=>{const[i,r]=t.split("=",2);return n[i]=decodeURIComponent(r),n},{}),r="";return i[t]&&(r=i[t]),r}function setBasketCookie(n){return document.cookie="Basket="+n+"; max-age="+basketExpiry+"; path =/",basketId=n,!0}function displayReviewScore(n){var t="";for(n=Math.round(n)/2,i=0;i<Math.floor(n);i++)t+='<img src="'+siteUrl+'img/review-scores/star-full.svg" width="20" height="20" alt="star" />';for(Math.round(n)-n==.5&&(t+='<img src="'+siteUrl+'img/review-scores/star-half.svg" width="20" height="20" alt="half star" />'),i=Math.round(n);i<5;i++)t+='<img src="'+siteUrl+'img/review-scores/star-empty.svg" width="20" height="20" alt="no star" />';return t}function apiValidationCheck(n,t){if(n.status===422){var i="<ul>";$.each(t,function(n,t){i+="<li>"+t+"<\/li>"});i+="<\/ul>";displayError(i)}else console.log(n.status+":"+n.responseText)}function displayError(n,t=""){var i='<div class="modal fade" tabindex="-1" role="dialog"><div class="modal-dialog modal-sm" role="document"><div class="modal-content">',r;t!==""&&(i+='<div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span aria-hidden="true">&times;<\/span><\/button><h4 class="modal-title">'+t.replace(/'/g,"")+"<\/h4><\/div>");i+='<div class="modal-body"><p>'+n.replace(/'/g,"")+'<\/p><\/div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close<\/button><\/div><\/div><!-- /.modal-content --><\/div><!-- /.modal-dialog --><\/div>';r=$(i);r.modal("show")}function displayMessage(n,t="",i=null){var r='<div class="modal fade" tabindex="-1" role="dialog"><div class="modal-dialog modal-sm" role="document"><div class="modal-content">',n;if(t!==""&&(r+='<div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span aria-hidden="true">&times;<\/span><\/button><h4 class="modal-title">'+t.replace(/'/g,"")+"<\/h4><\/div>"),r+='<div class="modal-body"><p>'+n.replace(/'/g,"")+'<\/p><\/div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close<\/button><\/div><\/div><!-- /.modal-content --><\/div><!-- /.modal-dialog --><\/div>',n=$(r),i)n.on("hidden.bs.modal",function(){window.location.href=i});n.modal("show")}function addBasketItem(){var n=$(this),t,i;n.attr("disabled",!0).prepend($iProcessing);let r=n.data("itemid");t=function(){n.attr("disabled",!1).children(0).remove()};i=function(t){t.status?setBasketCookie(t.Basket)&&(window.location.href=siteUrl+"basket",n.attr("disabled",!1).children(0).remove()):n.attr("disabled",!1).children(0).remove()};nationalAPI.addBasketItem(r,null,i,t)}function addBasketItems(){var n=$(this),t,i;n.attr("disabled",!0).prepend($iProcessing);let r=n.data("itemids").split(",");t=function(){n.attr("disabled",!1).children(0).remove()};i=function(t){t.status?setBasketCookie(t.Basket)&&(n.attr("disabled",!1).children(0).remove(),window.location.href=siteUrl+"basket"):n.attr("disabled",!1).children(0).remove()};nationalAPI.addBasketItems(r,null,i,t)}function setAccordion(n,t){if($(window).resize(function(){$(window).width()<t&&localStorage.getItem("refreshCount")==0&&(localStorage.setItem("refreshCount",1),location.reload());$(window).width()>t&&(localStorage.setItem("refreshCount",0),location.reload())}),$(window).width()<t){var i="";obj_tabs=$(n+" li a").toArray();obj_cont=$(".tab-content:not(.ts) .tab-pane").toArray();jQuery.each(obj_tabs,function(n,t){i+='<div id="'+n+'" class="panel toplevel panel-default">';i+='<div class="panel-heading" role="tab" id="heading'+n+'">';i+='<a role="button" data-toggle="collapse" data-parent="#mobile-tabs-accordion" href="#collapse-'+n+'" aria-expanded="false" aria-controls="collapse-'+n+'">'+t.innerHTML+"<\/a>";i+="<\/div>";i+='<div id="collapse-'+n+'" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading'+n+'">';i+='<div class="panel-body">'+obj_cont[n].innerHTML+"<\/div>";i+="<\/div>";i+="<\/div>"});let t=$('<div class="panel-group mobile-tabs" id="mobile-tabs-accordion" role="tablist" aria-multiselectable="false"><\/div >');t.html(i);t.find(".panel-collapse:first").addClass("in");t.find(".panel-title a:first").attr("aria-expanded","true");$(n).remove();$(".tab-content:not(.ts)").after(t);$(".tab-content:not(.ts)").remove()}}function clearValidation(n){$("#"+n).find(":input[required]").each(function(){var n,t;this.setCustomValidity("");n=$(this);n.removeClass("is-invalid").removeClass("is-valid");n.closest(".form-group").removeClass("has-error").removeClass("has-success").removeClass("has-feedback");t=this.type!=="radio"&&this.type!=="checkbox"?n.next("span.glyphicon"):n.prev("span.glyphicon");t.length===1&&t.removeClass("glyphicon-remove").removeClass("glyphicon-ok")})}function performValidation(){var n=$(this),i,t;n.removeClass("is-invalid").removeClass("is-valid");n.closest(".form-group").removeClass("has-error").removeClass("has-success").removeClass("has-feedback");n.addClass("is-valid");n.next().hasClass("input-group-btn")||n.parent().hasClass("radio-inline")||n.parent().hasClass("radio")||n.hasClass("vrm-back")||n.hasClass("postcode-input")||this.type!=="radio"&&this.type!=="checkbox"&&(i=n.next("span.glyphicon"),i.length===0&&(i=$('<span class="glyphicon form-control-feedback"><\/span>')),n.hasClass("postcode-input")&&i.addClass("postcode-invalid"),n.after(i));this.setCustomValidity("");this.validity.valid?(n.addClass("is-valid"),i&&i.removeClass("glyphicon-remove").addClass("glyphicon-ok"),n.closest(".form-group").addClass("has-success").addClass("has-feedback")):(n.addClass("is-invalid"),i&&i.removeClass("glyphicon-ok").addClass("glyphicon-remove"),n.closest(".form-group").addClass("has-error").addClass("has-feedback"),t="Invalid",this.validity.valueMissing&&(t="A value is required",n.data("requirederror")&&(t=n.data("requirederror"))),this.validity.typeMismatch&&(t="The value is in an invalid format",n.data("typeerror")&&(t=n.data("typeerror"))),this.validity.rangeOverflow&&(t="The value is invalid",n.data("invaliderror")&&(t=n.data("invaliderror"))),this.validity.stepMismatch&&(t="The value is invalid",n.data("steperror")&&(t=n.data("steperror"))),this.validity.patternMismatch&&(t="The format is invalid",n.data("patternerror")&&(t=n.data("patternerror"))),this.setCustomValidity(t))}var siteUrl=$("#siteUrl").val(),siteId=Number($("#SiteID").val()),api=$("#apiUrl").val(),basketId=getCookie("Basket"),basketExpiry=14400,$iProcessing=$('<i class="fa fa-spinner fa-pulse fa-lg margin-right-5"><\/i>');dayjs.locale("en-gb");dayjs.extend(window.dayjs_plugin_advancedFormat);dayjs.extend(window.dayjs_plugin_customParseFormat);dayjs.extend(window.dayjs_plugin_isToday);dayjs.extend(window.dayjs_plugin_isSameOrAfter);const width=window.innerWidth;width>992&&($(".navbar-desktop .solo-link").each(function(){$(this).on("mouseover",function(){$(".side-menu").hide()})}),$(".submenu-parent").each(function(){var n=$(this).attr("data-parent");n&&(n=n.toLowerCase());$(`[data-child="${n}"]`).hide();$(this).on("mouseover touchstart",function(t){t.preventDefault();$(".submenu-child").hide();$(".side-menu").show();$(`[data-child="${n}"]`).show()})}));$("html").on("click.dropdown.data-api",function(){$(".side-menu").hide()});$(".dropdown-submenu-toggle").each(function(){const n=$(this).siblings(".dropdown-menu");$(this).on("click",function(t){t.stopPropagation();t.preventDefault();$(this).toggleClass("active-dropdown");n.css("display")=="none"?n.removeClass("hidden").show():n.hide()})});$(function(){$("head").find('link[href*="/fonts.googleapis.com/"]').on("load",function(){this.onload=null;this.removeAttribute("media")});var n=$("#menuSelect").val();if(n){let u="hypDMenu"+n,f="hypMMenu"+n,t=$("#"+u);t.length===0&&(t=$("body .navbar-desktop a").filter((n,t)=>t.id.toLowerCase()===u.toLowerCase()),t.length===1&&(t=$(t[0])));t.addClass("active");t.parent().addClass("active");t.parent().parents("li.dropdown-submenu").addClass("active");t.parent().parents("li.dropdown").addClass("active");let e=t.parent().data("child");$('li.submenu-parent[data-parent="'+e+'"]').addClass("active");let i=$("#"+f);i.length===0&&(i=$("body .navbar-mobile a").filter((n,t)=>t.id.toLowerCase()===f.toLowerCase()),i.length===1&&(i=$(i[0])));let r=i.parent();r.addClass("active");r.parents("li.dropdown-submenu").addClass("active");r.parents("li.dropdown").addClass("active")}$(".tyre-size-selector").data("siteid",siteId).initialisetyresizeselection();$.isFunction($.fn.datepicker)&&$(".default-datepicker").datepicker({dateFormat:"dd/mm/yy"}).prop("autocomplete","off");$(".drivesmartpopup").on("click",function(){popupDrivesmart()});$('[data-toggle="popover"]').css("cursor","pointer").popover({animation:!1});$("body").on("click",function(n){$(n.target).data("toggle")==="popover"||$(n.target).parents(".popover.in").length!==0||$(n.target).hasClass("form-control")||$('[data-toggle="popover"]').popover("hide")});$("#autopopMOT").val()==="1"&&setTimeout(function(){var n=$("#divMOTReminder");n.modal({backdrop:"static"});ga("send","event","MOT Reminder Popup","View","MOT Reminder Popup Loaded")},1e4);$("video.clickable-onend").on("ended",makeClickable);$("form.mailsignup").on("submit",submitSignUp);$("form.mailsignupmot").on("submit",submitSignUpMOT);$("#autopopDR").val()==="1"&&popupDrivesmart();$("body").on("submit","form.addtyres",addTyres);$("form.searchtyresVRM").on("submit",searchtyresVRM);$("form.searchtyresSize").on("submit",searchtyresSize);$("form.searchoilVRM").on("submit",searchoilVRM);$("form.searchbatteryVRM").on("submit",searchbatteryVRM);$("form.searchserviceVRM").on("submit",searchserviceVRM);$("form.searchtyrepressuresVRM").on("submit",searchpressuresVRM);$("form.searchbrakesVRM").on("submit",searchbrakesVRM);$("form#branchsearch").on("submit",branchsearch);$("form#branchsearch .searchpostcode").on("click",function(){ga("send","event","Branch Search","Search","Generic search")});$("form#branchsearch .searchbranch").on("click",function(){ga("send","event","Branch Town Search","Search","Town search")});$(".clickprint").on("click",function(){return window.print(),!1});$(".clickback").on("click",function(){return parent.history.back(),!1});$(".simplepostback").on("submit",simplepostback);$("button.basketitemadd").on("click",addBasketItem);$("button.basketitemsadd").on("click",addBasketItems);$("#tyreLabelModal").on("show.bs.modal",function(n){var i=$(n.relatedTarget).data("eprel"),t=$("div#eprel");t.hide();i&&(t.show(),t.find("a").attr("href","https://eprel.ec.europa.eu/screen/product/tyres/"+i))});$("form").find("button:disabled").prop("disabled",!1);basketId!==""&&$.ajax({url:api+"basket/basketitemcount",method:"GET",data:"basket="+encodeURIComponent(basketId)}).done(function(n,t,i){i.status===200&&n>0&&$(".badge.basket-count").text(n)})});$.fn.initialisetyresizeselection=function(){$.each(this,function(n,t){var i=$(t).find("select"),c=$(t).find("button");if((i.length===4||i.length===5)&&c.length===1){var r=$(i[0]),u=$(i[1]),f=$(i[2]),o=$(i[3]),s=$(i[4]),e=$(c[0]),h=$("#SiteID").val();e.attr("disabled",!0);r.find("option").length===0&&(r.empty(),u.empty(),f.empty(),s.empty(),o.empty(),e.attr("disabled",!0),populateTyreWidths(h,r));r.change(function(){u.empty();f.empty();s.empty();o.empty();e.attr("disabled",!0);var n=r.val();n!==""&&populateTyreProfiles(h,n,u)});u.change(function(){f.empty();s.empty();o.empty();e.attr("disabled",!0);var n=r.val(),t=u.val();n!==""&&t!==""&&populateTyreDiameters(h,n,t,f)});f.change(function(){i.length===5&&s.empty();o.empty();e.attr("disabled",!0);var n=r.val(),t=u.val(),c=f.val();n!==""&&t!==""&&c!==""&&(i.length===5&&populateTyreLoadIndexes(h,n,t,c,s),populateTyreSpeedRatings(h,n,t,c,o),e.attr("disabled",!1))})}})};nationalAPI={url:api,defaultHeaders:{"Content-Type":"application/json","Cache-Control":"no-cache"},ajaxFailure:function(n,t,i){nationalAPI.displayError("National Tyres & Autocare","Error connecting to service ("+n.status+")",i)},ajaxSuccess:function(n,t,i,r){n.status===200?t!==null&&t.ErrorMessage?nationalAPI.displayError("National Tyres & Autocare",t.ErrorMessage,r):i(t):nationalAPI.ajaxFailure(n,"Invalid status",r)},displayError:function(n,t,i){var s=$('<div class="modal fade" role="dialog"><\/div>'),h=$('<div class="modal-dialog modal-sm"><\/div>'),r,u,f,c,l,e,o;if(s.append(h),r=$('<div class="modal-content"><\/div>'),h.append(r),u=$('<div class="modal-header"><\/div>'),r.append(u),f=$('<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span aria-hidden="true">&times;<\/span><\/button>'),i)f.on("click",i);if(u.append(f),c=$('<h4 class="modal-title">'+n.replace(/'/g,"")+"<\/h4>"),u.append(c),l=$('<div class="modal-body"><p>'+t.replace(/'/g,"")+"<\/p><\/div>"),r.append(l),e=$('<div class="modal-footer"><\/div>'),r.append(e),o=$('<button type="button" class="btn btn-default" data-dismiss="modal">Close<\/button>'),i)o.on("click",i);e.append(o);s.modal("show")},getBranchReviews:function(n,t,i,r,u){var f={siteId:n,branchId:t,pagerows:i,page:1},e={url:nationalAPI.url+"branchreviews/getbranch",method:"GET",headers:nationalAPI.defaultHeaders,data:f};nationalAPI.ajaxCall(e,r,u)},addBasketTyres:function(n,t,i,r){var u={SiteID:siteId,Basket:basketId,PartCode:n,Quantity:t,VehicleReference:i},f={url:nationalAPI.url+"basket/AddTyres",method:"POST",headers:nationalAPI.defaultHeaders,data:JSON.stringify(u)};nationalAPI.ajaxCall(f,r,function(n){console.log(n)})},addBasketBattery:function(n,t,i){var r={SiteID:siteId,Basket:basketId,PartCode:n},u={url:nationalAPI.url+"basket/AddBattery",method:"POST",headers:nationalAPI.defaultHeaders,data:JSON.stringify(r)};nationalAPI.ajaxCall(u,t,i)},addBasketItem:function(n,t,i,r){let u={SiteID:siteId,Basket:basketId,ItemID:n,VehicleReference:t},f={url:nationalAPI.url+"basket/AddItem",method:"POST",headers:nationalAPI.defaultHeaders,data:JSON.stringify(u)};nationalAPI.ajaxCall(f,i,r)},addBasketItems:function(n,t,i,r){let u={SiteID:siteId,Basket:basketId,ItemIDs:n,VehicleReference:t},f={url:nationalAPI.url+"basket/AddItems",method:"POST",headers:nationalAPI.defaultHeaders,data:JSON.stringify(u)};nationalAPI.ajaxCall(f,i,r)},addBasketServicing:function(n,t,i,r,u,f){let e={SiteID:siteId,Basket:basketId,ItemID:n,BranchID:t,VehicleReference:i,VehicleElectric:r},o={url:nationalAPI.url+"basket/AddServicing",method:"POST",headers:nationalAPI.defaultHeaders,data:JSON.stringify(e)};nationalAPI.ajaxCall(o,u,f)},ajaxCall:function(n,t,i){$.ajax(n).done(function(n,r,u){nationalAPI.ajaxSuccess(u,n,t,i)}).fail(function(n,t,r){nationalAPI.ajaxFailure(n,r,i)});return}};$(function(n){n("input[required],textarea[required]").on("input",performValidation);n("select[required]").on("change",performValidation);n("input,textarea,select").on("invalid",performValidation)})