typeof axios!="undefined"&&axios.interceptors.response.use(function(response){return response},function(error){var appName=document.getElementById("appName").value;return error.response&&error.response.status===401&&appName==="comma"&&(localStorage.clear(),window.location.href=document.getElementById("signInUrlGlobal").value),Promise.reject(error)});
let app=Vue.createApp({data:function(){return{category:"cars",selectedRadioSearch:0,vrm:"",countryCode:"gb",country:!0,makeModel:"",fullSearchResults:[],ddBrandOptions:[],ddModelOptions:[],ddYearOptions:[],ddFuelOptions:[],ddEngineSizeOptions:[],ddTypeOptions:[],selectedBrand:0,selectedModel:0,selectedYear:0,selectedFuel:0,selectedEngineSize:0,selectedType:0,selectedTypeId:0,vrnSearchError:!1,vrnSearchResults:[],vrnLastMot:null,vrnPreviousMots:[],filteredSearchResults:[],isLoading:!1,img_src:"",multipleVrns:!1,vrmBrand:"comma"}},mounted(){const urlParams=new URLSearchParams(window.location.search),reg=urlParams.get("vrm"),countryCode=urlParams.get("countryCode"),typeId=urlParams.get("typeId");reg&&countryCode&&(this.vrm=reg,this.countryCode=countryCode,this.getVehicleByVrm(!1,null,typeId),this.getVehicleMotHistory())},methods:{getUTCDate(dateInput){const formattedDateString=`${dateInput}T00:00:00Z`;return new Date(formattedDateString)},getUTCToday(){const now=new Date;return new Date(Date.UTC(now.getUTCFullYear(),now.getUTCMonth(),now.getUTCDate()))},formatDate(dateValue){if(dateValue){const motExpiryDate=this.getUTCDate(dateValue),motExpiryDateYear=""+motExpiryDate.getFullYear(),motExpiryDateMonth=""+(motExpiryDate.getMonth()+1>9?"":"0")+(motExpiryDate.getMonth()+1),motExpiryDateDay=""+motExpiryDate.getDate();return motExpiryDateDay+"/"+motExpiryDateMonth+"/"+motExpiryDateYear}return dateValue},makeModelSearch(){this.selectedRadioSearch=1},getVehicleMotHistory(){this.isLoading=!0;axios.get("/api/vehicles/mot-history/"+this.vrm+"/").then(response=>{this.vrnSearchError=!1;const data=response.data,lastMot=data?.lastMot,previousMots=data?.previousMots,expiryDate=this.getUTCDate(data?.lastMot?.expiryDate),today=this.getUTCToday(),expired=data?.lastMot?.expiryDate===null||expiryDate<today;expired||(lastMot.expiryDateFormatted=this.formatDate(data?.lastMot?.expiryDate));previousMots.forEach(item=>{item.completedDateFormatted=this.formatDate(item?.completedDate),item.expiryDateFormatted=this.formatDate(item?.expiryDate)});this.vrnLastMot=lastMot;this.vrnPreviousMots=previousMots||[];this.isLoading=!1}).catch(error=>{console.log(error),this.vrnSearchError=!0,this.isLoading=!1})},getVehicleByVrm(redirect=false,resultUrl=null,typeId=null){this.isLoading=!0;axios.get("/api/vehicles/vrms/"+this.vrmBrand+"/"+this.countryCode+"?vrm="+this.vrm).then(response=>{this.vrnSearchError=!1;const data=response.data;if(this.vrnSearchResults=data?.vehicles,this.vrnSearchResults.length>1){if(this.multipleVrns=!0,this.fullSearchResults=response.data,typeId){const typeNumber=Number(typeId);this.vrnSearchResults=response.data.filter(x=>x.typeId===typeNumber);this.setImageSrc(this.fullSearchResults[0].brand)}this.setBrandList();this.getBrandChanged()}else if(this.vrnSearchResults.length===1){if(this.setImageSrc(this.vrnSearchResults[0].brand),resultUrl?.length>0){var url=resultUrl+"?vrm="+this.vrm+"&countryCode="+this.countryCode;redirect===!0&&(window.location.href=url)}}else this.vrnSearchError=!0;this.isLoading=!1}).catch(error=>{console.log(error),this.vrnSearchError=!0,this.isLoading=!1})},redirectWithMultiple(resultUrl=null){if(resultUrl?.length>0){var url=resultUrl+"?vrm="+this.vrm+"&countryCode="+this.countryCode+"&typeId="+this.selectedTypeId;window.location.href=url}},getBrandChanged(){this.setModelList();this.setYearList();this.setFuelList();this.setEngineSizeList();let matches=this.makeModel.match(/(\?:\d{4}|\d{2})/);this.selectedYear=matches?matches[0]:this.ddYearOptions.length==1?this.ddYearOptions[0].value:0;this.setTypeList()},getModelChanged(isSelected=true){this.setModelList(!1);isSelected&&(this.selectedModel=this.ddModelOptions[0].value);this.setYearList(isSelected);this.setFuelList(isSelected);this.setEngineSizeList(isSelected);this.setTypeList(isSelected);this.selectedBrand||this.setBrandList(!0)},getYearChanged(isSelected=true){this.setYearList(!1);isSelected&&(this.selectedYear=this.ddYearOptions[0].value);this.setModelList(isSelected);this.setYearList(isSelected);this.setFuelList(isSelected);this.setEngineSizeList(isSelected);this.setTypeList(isSelected);this.selectedBrand||this.setBrandList(!0)},getFuelChanged(isSelected=true){this.setFuelList(!1);isSelected&&(this.selectedFuel=this.ddFuelOptions[0].value);this.setModelList(isSelected);this.setYearList(isSelected);this.setEngineSizeList(isSelected);this.setTypeList(isSelected);this.selectedBrand||this.setBrandList(!0)},getEngineSizeChanged(isSelected=true){this.setEngineSizeList(!1);isSelected&&(this.selectedEngineSize=this.ddEngineSizeOptions[0].value);this.setFuelList(isSelected);this.setTypeList(isSelected);this.setYearList(isSelected);this.setModelList(isSelected);this.selectedBrand||this.setBrandList(!0)},getTypeChanged(isSelected=true){this.setTypeList(!1);isSelected&&(this.selectedType=this.ddTypeOptions[0].value);this.setEngineSizeList(isSelected);this.setFuelList(isSelected);this.setYearList(isSelected);this.setModelList(isSelected);this.selectedBrand||this.setBrandList(!0)},setBrandList(setFilter=true){const uniqueBrandList=this.generateFilterQuery().map(x=>x.brand).filter((value,index,array)=>array.indexOf(value)===index);this.ddBrandOptions=uniqueBrandList.sort().map(x=>({value:x,text:x}));this.ddBrandOptions.length==1&&setFilter&&(this.selectedBrand=this.ddBrandOptions[0].value)},setModelList(setFilter=true){const uniqueModelList=this.generateFilterQuery().map(x=>x.model).filter((value,index,array)=>array.indexOf(value)===index);this.ddModelOptions=uniqueModelList.sort().map(x=>({value:x,text:x}));this.ddModelOptions.length==1&&setFilter&&(this.selectedModel=this.ddModelOptions[0].value)},setYearList(setFilter=true){const uniqueYearList=this.generateFilterQuery().map(x=>x.year).filter((value,index,array)=>array.indexOf(value)===index);this.ddYearOptions=uniqueYearList.sort().map(x=>({value:x,text:x}));this.ddYearOptions.length==1&&setFilter&&(this.selectedYear=this.ddYearOptions[0].value);this.ddYearOptions.length>1&&setFilter&&(this.selectedYear=0)},setFuelList(setFilter=true){const uniqueFuelList=this.generateFilterQuery().map(x=>x.fuel).filter((value,index,array)=>array.indexOf(value)===index);this.ddFuelOptions=uniqueFuelList.sort().map(x=>({value:x,text:x}));this.ddFuelOptions.length==1&&setFilter&&(this.selectedFuel=this.ddFuelOptions[0].value)},setEngineSizeList(setFilter=true){const uniqueEngineSizeList=this.generateFilterQuery().map(x=>x.power+"kW / "+x.displacement+"cc").filter((value,index,array)=>array.indexOf(value)===index);this.ddEngineSizeOptions=uniqueEngineSizeList.sort().map(x=>({value:x,text:x}));this.ddEngineSizeOptions.length==1&&setFilter&&(this.selectedEngineSize=this.ddEngineSizeOptions[0].value)},setTypeList(setFilter=true){const uniqueTypeList=this.generateFilterQuery().map(x=>x.type).filter((value,index,array)=>array.indexOf(value)===index);this.ddTypeOptions=uniqueTypeList.sort().map(x=>({value:x,text:x}));this.ddTypeOptions.length==1&&setFilter&&(this.selectedType=this.ddTypeOptions[0].value)},generateFilterQuery(){let searchResultsArray;if(searchResultsArray=this.fullSearchResults,this.selectedBrand!=0&&(searchResultsArray=searchResultsArray.filter(value=>value.brand===this.selectedBrand)),this.selectedModel!=0&&searchResultsArray.length>1&&(searchResultsArray=searchResultsArray.filter(value=>value.model===this.selectedModel)),this.selectedYear!=0&&searchResultsArray.length>1){const year=Number(this.selectedYear);searchResultsArray=searchResultsArray.filter(value=>value.year===year)}return this.selectedFuel!=0&&searchResultsArray.length>1&&(searchResultsArray=searchResultsArray.filter(value=>value.fuel===this.selectedFuel)),this.selectedEngineSize!=0&&searchResultsArray.length>1&&(searchResultsArray=searchResultsArray.filter(value=>value.power+"kW / "+value.displacement+"cc"===this.selectedEngineSize)),this.selectedType!=0&&searchResultsArray.length>1&&(searchResultsArray=searchResultsArray.filter(value=>value.type.replace(/\s/g,"")===this.selectedType.replace(/\s/g,""))),searchResultsArray.length===1&&(this.selectedTypeId=searchResultsArray[0].typeId),Vue.toRaw(searchResultsArray)?.vehicles||[]},getCheckQueryBase(){return this.filteredSearchResults.length===0?this.fullSearchResults:this.filteredSearchResults},getVehicleByMakeModel(){this.isLoading=!0;this.makeModel.length===0&&(this.clearSearch(),this.isLoading=!1,this.fullSearchResults=[]);this.getVehicle("/api/vehicles/models/"+this.vrmBrand+"?query="+this.makeModel+"&category="+this.category).then(response=>{this.fullSearchResults=response.data;const uniqueBrandList=response.data.map(x=>x.brand).filter((value,index,array)=>array.indexOf(value)===index);this.ddBrandOptions=uniqueBrandList.sort().map(x=>({value:x,text:x}));this.ddBrandOptions.length==1&&(this.selectedBrand=this.ddBrandOptions[0].value,this.getBrandChanged());this.isLoading=!1})},getVehicle(responseUrl){return axios.get(responseUrl)},handleMakeModelSearchInput:_.debounce(function(){this.ddBrandOptions=[];this.ddEngineSizeOptions=[];this.filteredSearchResults=[];this.fullSearchResults=[];this.selectedBrand=0;this.selectedModel=0;this.selectedYear=0;this.selectedFuel=0;this.selectedEngineSize=0;this.selectedType=0;this.getVehicleByMakeModel();document.getElementById("clear-text-button").style.visibility=document.getElementById("makemodel-autocomplete").value!==""?"visible":"hidden"},300),vrnSearchInput(){this.vrnSearchError&&(this.vrnSearchError=undefined)},vrnSearchInputFocus(){const input=document.querySelector(".vrn-search-input");input.setAttribute("placeholder","")},vrnSearchInputBlur(placeholder){const input=document.querySelector(".vrn-search-input");input.setAttribute("placeholder",placeholder)},setCategory(category){this.category=category;this.clearSearch()},searchAgain(){const referrer=document.referrer+"#vehicle-search";window.location.href=referrer;this.vrnSearchResults=[];this.img_src=null},setImageSrc(brand){if(!brand)return"";brand=brand.replace(/ *\([^)]*\) */g,"");brand=brand.replace("-","");this.img_src="https://cdn-oly-moa-static-prod.azureedge.net/make-images/"+brand+"_icon.png"},clearSearch(){this.makeModel="";this.ddBrandOptions=[];this.ddEngineSizeOptions=[];this.filteredSearchResults=[];this.fullSearchResults=[];this.ddFuelOptions=[];this.ddModelOptions=[];this.ddTypeOptions=[];this.ddYearOptions=[];this.selectedBrand=0;this.selectedModel=0;this.selectedYear=0;this.selectedFuel=0;this.selectedEngineSize=0;this.selectedType=0;this.multipleVrns=!1;this.vrm="";this.vrnSearchError=!1;document.getElementById("clear-text-button").style.visibility="hidden"},setCountry(){this.countryCode=this.country?"gb":"ie"},getSanitizedCountry(){return this.countryCode==="gb"?"GB":this.countryCode==="ie"?"IE":void 0},handleDeselect(section){switch(section){case"brand":this.selectedBrand=0;this.selectedModel=0;this.selectedYear=0;this.selectedFuel=0;this.selectedEngineSize=0;this.selectedType=0;this.getBrandChanged(!1);this.getModelChanged(!1);this.getYearChanged(!1);this.getFuelChanged(!1);this.getEngineSizeChanged(!1);this.getTypeChanged(!1);break;case"brandVrn":this.selectedBrand=0;this.getBrandChanged(!1);this.selectedModel=0;this.getModelChanged(!1);this.selectedYear=0;this.getYearChanged(!1);this.selectedFuel=0;this.getFuelChanged(!1);this.selectedEngineSize=0;this.getEngineSizeChanged(!1);this.selectedType=0;this.getTypeChanged(!1);break;case"model":this.selectedModel=0;this.selectedYear=0;this.selectedFuel=0;this.selectedEngineSize=0;this.selectedType=0;this.getModelChanged(!1);this.getYearChanged(!1);this.getFuelChanged(!1);this.getEngineSizeChanged(!1);this.getTypeChanged(!1);break;case"modelVrn":this.selectedModel=0;this.getModelChanged(!1);this.selectedYear=0;this.getYearChanged(!1);this.selectedFuel=0;this.getFuelChanged(!1);this.selectedEngineSize=0;this.getEngineSizeChanged(!1);this.selectedType=0;this.getTypeChanged(!1);break;case"year":this.selectedYear=0;this.selectedFuel=0;this.selectedEngineSize=0;this.selectedType=0;this.getYearChanged(!1);this.getFuelChanged(!1);this.getEngineSizeChanged(!1);this.getTypeChanged(!1);break;case"fuel":this.selectedFuel=0;this.getFuelChanged(!1);this.selectedEngineSize=0;this.getEngineSizeChanged(!1);this.selectedType=0;this.getTypeChanged(!1);break;case"engineSize":this.selectedEngineSize=0;this.getEngineSizeChanged(!1);this.selectedType=0;this.getTypeChanged(!1);break;case"type":this.selectedType=0;this.getTypeChanged(!1)}}}});document.getElementById("vehicle-search")&&app.mount("#vehicle-search");document.getElementById("vrn-summary-mot-section")&&app.mount("#vrn-summary-mot-section");document.getElementById("motHistory")&&app.mount("#motHistory");
let appContactUs=Vue.createApp({data:function(){return{company:"",queryType:"0",productQueryType:"",firstName:"",lastName:"",jobPosition:"",phoneNumber:"",emailAddress:"",businessName:"",businessAddress:"",addressLine1:"",addressLine2:"",city:"",region:"",postcode:"",country:"",message:"",contactAgreement:!1,userDetailsSupplied:!1,contactUsAPIError:!1,isLoading:!1,isBusinessQuery:!1,canShowBusinessAddressBreakdown:!1,autocomplete:undefined,businessDetailsConfirmed:!1,stockProfileDetailsConfirmed:!1,showMessage:!1,emailSuccessfullySent:undefined,validationError:{firstName:undefined,lastName:undefined,phoneNumber:undefined,emailAddress:undefined,noContact:!1,businessName:!1,addressLine1:!1,city:!1,region:!1,postcode:!1,country:!1,message:!1,contactAgreement:!1}}},mounted(){const contactElement=document.getElementById("company");contactElement&&(this.company=contactElement.value);window.contactUs=this;this.floatingHelpLinkListener()},methods:{floatingHelpLinkListener(){const links=document.querySelectorAll("[data-contact-us-floating-link]");for(let i=0;i<links.length;i++){const link=links[i];link.onclick=e=>{document.getElementById("contactUsForm").scrollIntoView();const queryTypeText=e.target.attributes.getNamedItem("data-contact-us-floating-link").value;switch(queryTypeText.toUpperCase()){case"GET A QUOTE":this.queryType=1;break;case"BECOME A [DISTRIBUTOR/STOCKIST]":this.queryType=2;break;case"INTERESTED IN WORKSHOP PROGRAMME":this.queryType=3;break;case"ACCESS STOCK PROFILING TOOL":this.queryType=4;break;case"DELIVERY ENQUIRY":this.queryType=5;break;case"ASK AN EXPERT / TECHNICAL HELP":this.queryType=6;break;case"WEBSITE FEEDBACK":this.queryType=7;break;case"PRODUCT INFORMATION / TDS":this.queryType=9;break;default:this.queryType=8}}}},queryTypeSelected(){return this.queryType!=="0"},contactDetailsRequired(){return this.queryTypeSelected()&&(!this.isProductQuery()||this.productQueryType==="1")},formValid(){const emailAddressValid=this.emailAddress===""||this.validateEmail(this.emailAddress),phoneNumberValid=this.phoneNumber===""||this.validatePhone(this.phoneNumber);return this.queryTypeSelected()&&this.firstName&&this.lastName&&(this.emailAddress&&emailAddressValid||this.phoneNumber&&phoneNumberValid)&&this.contactAgreement},isStockProfilingQuery(){return this.queryType==="4"},isProductQuery(){return this.queryType==="9"},continueDisabled(){return this.formValid()?0:1},validateField(e){let dataModel=e.target.name;const dataModelAttribute=e.target.attributes.getNamedItem("data-model");dataModelAttribute&&(dataModel=dataModelAttribute.value);this.validationError[dataModel]=e.target.value.trim()===""},validatePhone(e){let input=e,phoneNumber="phoneNumber";if(typeof e=="string"){if(e==="")return this.validationError.phoneNumber=undefined,!0}else{if(e.target.value===""){this.validationError[e.target.name]=undefined;return}input=e.target.value;phoneNumber=e.target.name}const regex=new RegExp(/^[0+]\d*$/),value=input.replaceAll(" ",""),success=regex.test(value);return this.validationError[phoneNumber]=!success,success},validateEmail(e){let input=e,elementName="emailAddress";if(typeof e=="string"){if(e==="")return this.validationError.emailAddress=undefined,!0}else{if(e.target.value==="")return this.validationError[e.target.name]=undefined,!0;input=e.target.value;elementName=e.target.name}const regex=new RegExp(/^[\w+.-]+[@][a-zA-Z\d.-]+$/),value=input.replace(" ",""),success=regex.test(value);return this.validationError[elementName]=!success,success},userDetailsInvalid(){return this.validationError.firstName=this.firstName==="",this.validationError.lastName=this.lastName==="",this.validationError.noContact=this.phoneNumber===""&&this.emailAddress==="",this.emailAddress===""||this.validateEmail(this.emailAddress)||(this.validationError.emailAddress=!0),this.validationError.firstName||this.validationError.lastName||this.validationError.noContact||this.validationError.emailAddress},continueButtonClicked(){if(!this.userDetailsInvalid()){this.isBusinessQuery=this.queryType==="2";this.showMessage=!this.isBusinessQuery;this.userDetailsSupplied=!0;document.getElementById("readonlyReasonForQuery").innerHTML={1:"Get a Quote",2:"Become a Distributor/Stockist",3:"Interested in Workshop Programme",4:"Access Stock Profiling Tool",5:"Delivery Enquiry",6:"Ask an Expert / Technical Help",7:"Website Feedback",8:"Default",9:"Product Information / TDS"}[this.queryType];document.getElementById("readonlyFirstName").innerHTML=this.firstName;document.getElementById("readonlyLastName").innerHTML=this.lastName;document.getElementById("readonlyJobPosition").innerHTML=this.jobPosition;const contactMethods=[];document.getElementById("phoneNumber").value!==""&&contactMethods.push(this.phoneNumber);document.getElementById("emailAddress").value!==""&&contactMethods.push(this.emailAddress);document.getElementById("readonlyContactMethod").innerHTML=contactMethods.join(", ")}},canShowBusinessDetails(){return this.isBusinessQuery&&!this.businessDetailsConfirmed},showBusinessAddressBreakdown(value){this.canShowBusinessAddressBreakdown=value},businessDetailsValid(){return this.businessName!==""&&this.addressLine1!==""&&this.city!==""&&this.region!==""&&this.country!==""},businessDetailsInvalid(checkOnly=false){const businessNameInvalid=this.businessName==="",addressLine1Invalid=this.addressLine1==="",cityInvalid=this.city==="",regionInvalid=this.region==="",postcodeInvalid=this.postcode==="",countryInvalid=this.country==="";return checkOnly||(this.validationError.businessName=businessNameInvalid,this.validationError.addressLine1=addressLine1Invalid,this.validationError.city=cityInvalid,this.validationError.region=regionInvalid,this.validationError.postcode=postcodeInvalid,this.validationError.country=countryInvalid),businessNameInvalid||addressLine1Invalid||cityInvalid||regionInvalid||postcodeInvalid||countryInvalid},initBusinessAddressAutocomplete(){this.autocomplete=new google.maps.places.Autocomplete(document.getElementById("businessAddress"),{types:["address"],fields:["address_components","formatted_address","geometry"]});this.autocomplete.addListener("place_changed",this.onBusinessAddressChanged)},onBusinessAddressChanged(){const place=this.autocomplete.getPlace();if(place.geometry){this.addressLine1="";this.addressLine2="";this.city="";this.region="";this.postcode="";this.country="";for(const component of place.address_components||[]){const type=component.types[0];switch(type){case"street_number":this.addressLine1=`${component.long_name} ${this.addressLine1}`;break;case"route":this.addressLine1+=component.short_name;break;case"postal_code":this.postcode=`${component.long_name}${this.postcode}`;break;case"postal_code_prefix":this.postcode=`${component.long_name} ${this.postcode}`.trim();break;case"postal_code_suffix":this.postcode=`${this.postcode} ${component.long_name}`.trim();break;case"postal_town":this.city=component.long_name;break;case"locality":this.city=component.long_name;break;case"administrative_area_level_2":this.city!==component.long_name&&(this.region=component.short_name);break;case"country":this.country=component.long_name}}this.canShowBusinessAddressBreakdown=!0}else document.getElementById("businessAddress").value=""},canShowBusinessSummary(){return this.businessDetailsConfirmed},canShowStockProfilerDetails(){return this.isStockProfilingQuery()},isStockProfileValid(){return this.businessName!==""&&this.businessAddress!==""},canShowStockProfilingSummary(){return this.stockProfileDetailsConfirmed},canShowMessage(){return this.showMessage&&(!this.isBusinessQuery||this.businessDetailsConfirmed)&&(!this.isStockProfilingQuery()||this.stockProfileDetailsConfirmed)},canShowUserDetails(){return!this.userDetailsSupplied},canShowStep2(){return this.userDetailsSupplied&&!this.emailSuccessfullySent},goBackButtonClicked(){this.isBusinessQuery&&this.businessDetailsConfirmed?this.businessDetailsConfirmed=!1:this.isStockProfilingQuery()&&this.stockProfileDetailsConfirmed?this.stockProfileDetailsConfirmed=!1:this.userDetailsSupplied=!1;this.emailSuccessfullySent=undefined},stepTwoContinueDisabled(){return this.isBusinessQuery&&!this.businessDetailsConfirmed?this.isLoading||this.businessDetailsInvalid(!0):this.isStockProfilingQuery()&&!this.stockProfileDetailsConfirmed?this.isLoading||!this.isStockProfileValid():this.isLoading||document.getElementById("message")?.value.trim()===""},stepTwoContinueClicked(){if(this.isBusinessQuery&&!this.businessDetailsConfirmed){if(this.businessDetailsInvalid())return;this.businessDetailsConfirmed=!0;document.getElementById("readonlyBusinessName").innerHTML=this.businessName;const lineBreak=", <br />";let address=`${this.addressLine1}${lineBreak}`;this.addressLine2!==""&&(address=`${address}${this.addressLine2}${lineBreak}`);address=`${address}${this.city}${lineBreak}`;address=`${address}${this.region}${lineBreak}`;address=`${address}${this.postcode}${lineBreak}`;address=`${address}${this.country}`;document.getElementById("readonlyBusinessAddress").innerHTML=address;this.showMessage=!0}else this.contactUsPost()},sendButtonClicked(){this.contactUsPost()},contactUsPost(){this.isLoading=!0;const requestBody={company:this.company,queryType:Number.parseInt(this.queryType),firstName:this.firstName,lastName:this.lastName,jobTitle:this.jobPosition,contactPhoneNo:this.phoneNumber,email:this.emailAddress,businessName:this.businessName,businessAddressLine1:this.addressLine1,businessAddressLine2:this.addressLine2,businessAddressCity:this.city,businessAddressRegion:this.region,businessAddressPostcode:this.postcode,businessAddressCountry:this.country,message:this.message,userAgent:navigator.userAgent};var scope=this;grecaptcha.ready(function(){try{const recaptchaScript=document.querySelector('[data-script-id="recaptcha-script"]'),recaptchaKey=recaptchaScript.attributes.src.value.split("=")[1];grecaptcha.execute(recaptchaKey,{action:"contactUs"}).then(function(token){requestBody.recaptchaToken=token;axios.post("/api/contactus/",requestBody).then(()=>{scope.isLoading=!1,scope.emailSuccessfullySent=!0,window.dataLayer.push({form_name:this.queryType,event:"form_submission"})}).catch(error=>{scope.isLoading=!1,scope.emailSuccessfullySent=!1,console.log(error)})})}catch(error){scope.isLoading=!1;scope.emailSuccessfullySent=!1;console.log(error)}})},emailSent(){return this.emailSuccessfullySent},emailFailedToSend(){return this.emailSuccessfullySent===!1}}});document.getElementById("contactUsForm")&&appContactUs.mount("#contactUsForm");
let eapChooserApp=Vue.createApp({data:function(){return{sector:null,subSectors:null,chosenEquipmentId:null,chosenApplicationId:null,chosenApplicationName:null,chosenEquipmentName:null,isLoading:!1,sectorError:!1,allSectors:[],sectorResults:[],subSectorResults:[],equipmentTypeResults:[],applicationResults:[],solutionResults:[],hasChosenEquipment:!1,hasChosenApplication:!1,showEquipment:!1,showApplication:!1,showSolutions:!1,page:1,showMoreButton:!1}},async mounted(){this.isLoading=!0;const sectors=await this.getAllSectors();if(this.isLoading=!1,!sectors){this.sectorError=!0;return}this.sectorError=!1;this.allSectors=sectors;this.sectorResults=sectors;document.addEventListener("callGetEquipment",this.getEquipment);document.dispatchEvent(new Event("EapChooserReady"))},methods:{async getAllSectors(){try{const response=await axios.get("/api/sectors/");return response.data}catch(e){return null}},getSubSectors(){this.isLoading=!0;this.equipmentTypeResults=[];this.applicationResults=[];this.solutionResults=[];this.showEquipment=!1;this.showApplication=!1;this.showSolutions=!1;this.chosenEquipmentId=null;this.subSectors=null;this.sector&&axios.get("/api/sectors/"+this.sector).then(response=>{this.resetApplication(),this.resetEquipment(),this.sectorError=!1,this.subSectorResults=response.data,this.isLoading=!1}).catch(()=>{this.sectorError=!0,this.isLoading=!1});this.isLoading=!1},getEquipment($event){$event&&(this.subSectors=$event.detail.subSectors,this.sector=$event.detail.sector);this.isLoading=!0;this.subSectors&&axios.get("/api/sectors/equipment/"+this.subSectors).then(response=>{this.resetApplication(),this.resetEquipment(),this.sectorError=!1,this.equipmentTypeResults=response.data,this.showEquipment=!0,this.isLoading=!1}).catch(()=>{this.sectorError=!0,this.isLoading=!1});this.isLoading=!1},getApplication(){this.isLoading=!0;axios.get("/api/sectors/application/"+this.chosenEquipmentId).then(response=>{this.sectorError=!1,this.applicationResults=response.data,this.isLoading=!1}).catch(()=>{this.sectorError=!0,this.isLoading=!1})},getSolutions(){this.isLoading=!0;axios.get("/api/products/"+this.chosenApplicationId+"/"+this.page).then(response=>{this.sectorError=!1;this.solutionResults=response.data.listViewModel;this.isLoading=!1;var total=response.data.totalProducts;this.showMoreButton=4*this.page<total?!0:!1}).catch(()=>{this.sectorError=!0,this.isLoading=!1})},incrementPage(){this.page++;this.getSolutions()},chosenEquipment(chosenEquipmentId,chosenEquipmentName){this.showApplication=!0;this.showEquipment=!1;this.hasChosenEquipment=!0;this.chosenEquipmentId=chosenEquipmentId;this.chosenEquipmentName=chosenEquipmentName;this.getApplication()},chosenApplication(chosenApplicationId,chosenApplicationName){this.hasChosenApplication=!0;this.showApplication=!1;this.showSolutions=!0;this.chosenApplicationId=chosenApplicationId;this.chosenApplicationName=chosenApplicationName;this.getSolutions()},resetApplication(){this.showSolutions=!1;this.chosenApplicationId=null;this.chosenApplicationName=null;this.solutionResults=[]},resetEquipment(){this.chosenApplicationId=null;this.chosenApplicationName=null;this.chosenEquipmentId=null;this.chosenEquipmentName=null;this.solutionResults=[];this.applicationResults=[];this.showApplication=!1;this.showSolutions=!1},clearSearch(){this.chosenApplicationId=null;this.chosenApplicationName=null;this.chosenEquipmentId=null;this.chosenEquipmentName=null;this.hasChosenEquipment=!1;this.hasChosenApplication=!1;this.solutionResults=[];this.applicationResults=[];this.sector=null;this.subSectors=null;this.sectorResults=this.allSectors;this.subSectorResults=[];this.equipmentTypeResults=[];this.applicationResults=[];this.solutionResults=[];this.showEquipment=!1;this.showApplication=!1;this.showSolutions=!1}}});document.getElementById("eapChooser")&&eapChooserApp.mount("#eapChooser");
let productFinder=Vue.createApp({data:function(){return{isLoading:!1,filterKey:"",results:null,totalResults:0,showAllResults:!1,isOpen:!1}},mounted(){document.addEventListener("click",this.handleClickOutside)},beforeDestroy(){document.removeEventListener("click",this.handleClickOutside)},computed:{productsToShow:function(){return this.showAllResults||this.results.products.length<9?this.results.products:this.results.products.slice(0,6)}},methods:{onFocus(){if(this.filterKey.length<3){this.isOpen=!1;return}this.results?this.isOpen=!0:this.search(this.filterKey)},handleClickOutside(event){event.target.isConnected&&!this.$refs.searchForm.contains(event.target)&&(this.isOpen=!1)},getShortProductUrl(url){const urlParts=url.split("/");return`/${urlParts[1]}/product/${urlParts[5]}/${urlParts[6]}/${urlParts[7]}`},showLessInSearch(){this.showAllResults=!1},showMoreInSearch(){this.showAllResults=!0},search(filterKey){if(this.filterKey=filterKey,this.filterKey.length<3){this.isOpen=!1;return}const rootKey=document.getElementById("rootKey"),languageKey=document.getElementById("languageKey").value;let resultsPageUrl=document.getElementById("resultsPageUrl")?.value??"";resultsPageUrl?.length===0&&(resultsPageUrl="/");const productsUrl=`/api/products/${languageKey}?rootKey=${rootKey.value}&resultsPageUrl=${resultsPageUrl}&query=${this.filterKey}`;this.isOpen=!0;this.isLoading=!0;this.showAllResults=!1;axios.get(productsUrl).then(response=>{this.results=response.data}).catch(error=>{console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},startSearch:_.debounce(function(e){this.search(e.target.value)},300)}});document.getElementById("product-finder-form")&&productFinder.mount("#product-finder-form");
if(document.getElementById("comma-sign-in")){let signInFinder=Vue.createApp({data:function(){return{userName:"",password:"",errorMessage:"",dashboardUrl:"",isErrorExists:!1,showPassword:!1,isLoading:!1}},mounted(){this.isLoading=!0;this.dashboardUrl=document.getElementById("dashboardUrl").value;const accessToken=localStorage.getItem("accessToken"),tokenExpiration=localStorage.getItem("tokenExpiration"),userId=Number(localStorage.getItem("userId")),userType=localStorage.getItem("userType");accessToken&&userId&&userType&&tokenExpiration>(new Date).toISOString()&&(window.location.href=this.dashboardUrl);this.isLoading=!1},methods:{submit(){if(!this.userName||!this.password){this.errorMessage="Username and password are required.";this.isErrorExists=!0;return}const hostName=document.getElementById("hostName").value,loginUrl=`${hostName}api/Account/Login`;this.isLoading=!0;const requestBody={email:this.userName,password:this.password};axios.post(loginUrl,requestBody).then(response=>{this.SetValueInLocalStorage(response);const urlToVRN=localStorage.getItem("redirectToVRNPageUrl");urlToVRN?(localStorage.removeItem("redirectToVRNPageUrl"),window.location.href=urlToVRN):window.location.href=this.dashboardUrl}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error.response.data.errors:error?.response?.data?error.response.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},SetValueInLocalStorage(result){result&&result.status==200&&(localStorage.setItem("accessToken",result.data.data.token),localStorage.setItem("isPending",result.data.data.isPending),localStorage.setItem("tokenExpiration",result.data.data.expiration),localStorage.setItem("userId",result.data.data.userId),localStorage.setItem("userType",result.data.data.userType))},toggleShow(){this.showPassword=!this.showPassword}}});signInFinder.mount("#comma-sign-in")};
if(document.getElementById("comma-dashboard")){let dashboardFinder=Vue.createApp({data:function(){return{pageIndex:1,pageSize:5,loadMorePageSize:0,userId:0,ordersCount:null,orders:[],userName:"",userPoints:0,errorMessage:"",accessToken:"",hostName:"",previousOrderUrl:"",isErrorExists:!1,isLoading:!1,isUserTypeIsOwner:!1}},mounted(){const accessToken=localStorage.getItem("accessToken"),tokenExpiration=localStorage.getItem("tokenExpiration"),userId=Number(localStorage.getItem("userId")),userType=localStorage.getItem("userType");this.accessToken=accessToken;!accessToken||!userType||!userId||tokenExpiration<(new Date).toISOString()?window.location.href=document.getElementById("signInUrl").value:(this.isLoading=!0,this.isUserTypeIsOwner=userType.toLowerCase()==="owner"?!0:!1,axios.defaults.headers.common.Authorization=`Bearer ${this.accessToken}`,this.userId=Number(localStorage.getItem("userId")),this.hostName=document.getElementById("hostName").value,this.previousOrderUrl=document.getElementById("previousOrderUrl").value,this.GetUserDateById(),this.GetUserOrders())},methods:{GetUserDateById(){if(this.userId){const getUserDataUrl=`${this.hostName}api/user/me`;axios.get(getUserDataUrl).then(response=>{this.SetValueInLocalStorage(response)}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error.response.data.errors:error?.response?.data?error.response.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})}},GetUserOrders(){const getUserOrdersUrl=`${this.hostName}api/order/getorders`,requestBody={pageIndex:this.pageIndex,pageSize:this.pageSize,customerId:this.userId};this.pageIndex++;axios.post(getUserOrdersUrl,requestBody).then(response=>{response.status==200&&(this.ordersCount=response.data.data.count,this.orders=this.orders.concat(response.data.data.data))}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error.response.data.errors:error?.response?.data?error.response.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)})},LoadMoreOrders(){this.GetUserOrders()},SetValueInLocalStorage(result){if(result&&result.status==200){const userName=result.data.data.firstName,isPending=result.data.data.isPending??!1,userPoints=result.data.data.reward?.currentPoints??0;localStorage.setItem("currentPoints",userPoints);localStorage.setItem("firstName",userName);localStorage.setItem("isPending",isPending);this.userName=userName;this.userPoints=Number(userPoints)}}}});dashboardFinder.mount("#comma-dashboard")};
if(document.getElementById("comma-catalogue")){let catalogueFinder=Vue.createApp({data:function(){return{pageIndex:1,pageSize:200,allProducts:[],orderList:[],productsCount:0,userId:0,isUserPending:!1,hostName:"",userPoints:0,errorMessage:"",accessToken:"",tokenExpiration:"",isErrorExists:!1,isLoading:!1,dropId:"",dropContentId:"",sizeFilterItems:[],productTypeFilterItems:[],selectedSizeFilter:"",selectedTypeFilter:"",brand:""}},mounted(){if(document.addEventListener("click",this.handleClickOutside),this.getValuesFromLocalStorage(),!this.accessToken||!this.userId||this.tokenExpiration<(new Date).toISOString())window.location.href=document.getElementById("signInUrl").value;else{this.isLoading=!0;this.brand=document.getElementById("brand").value;this.hostName=document.getElementById("hostName").value;axios.defaults.headers.common.Authorization=`Bearer ${this.accessToken}`;let requestBody={pageIndex:this.pageIndex,pageSize:this.pageSize,customerId:this.userId,isGroupByCategory:!0};this.brand&&this.brand.toLowerCase()=="greggs"&&(requestBody={pageIndex:this.pageIndex,pageSize:this.pageSize,customerId:this.userId,productTypeFilter:"Greggs",isGroupByCategory:!0});this.getSizeFilterItems();this.getTypeFilterItems();this.getProducts(requestBody)}},beforeDestroy(){document.removeEventListener("click",this.handleClickOutside)},methods:{handleClickOutside(event){let target=event?.target;if(target.isConnected&&(target.id||(target=event.target?.parentNode),this.dropId&&this.dropId!==target.id)){for(const select of document.querySelectorAll(".dropdown-content"))select.classList.remove("show");for(const select of document.querySelectorAll(".rewards-drop-arrow"))select.classList.remove("rotate-180deg")}},filterChanged(filterBy,filterType){let requestBody={pageIndex:this.pageIndex,pageSize:this.pageSize,customerId:this.userId,isGroupByCategory:!0};filterBy.label==="Not selected"&&this.getProducts(requestBody);filterType==="size-filter"?(this.selectedSizeFilter=filterBy.label,this.selectedTypeFilter=this.productTypeFilterItems[0].label,requestBody={pageIndex:this.pageIndex,pageSize:this.pageSize,customerId:this.userId,isGroupByCategory:!0,sizeFilter:filterBy.label}):filterType==="type-filter"&&(this.selectedTypeFilter=filterBy.label,this.selectedSizeFilter=this.sizeFilterItems[0].label,requestBody={pageIndex:this.pageIndex,pageSize:this.pageSize,isGroupByCategory:!0,customerId:this.userId,productTypeFilter:filterBy.value});this.getProducts(requestBody)},getSizeFilterItems(){const getFilterItemsUrl=`${this.hostName}api/product/getsizefilteritems`;axios.get(getFilterItemsUrl).then(response=>{this.sizeFilterItems=response?.data?.data,this.sizeFilterItems.unshift({label:"Not selected",value:-1}),this.selectedSizeFilter=this.sizeFilterItems[0].label}).catch(error=>{error?.response?.data?.errors?onsole.error("There was an error!",error.response.data.errors):error?.response?.data?onsole.error("There was an error!",error.response.data):console.error("There was an error!",error)})},getTypeFilterItems(){const getFilterItemsUrl=`${this.hostName}api/product/getproducttypefilteritems`;axios.get(getFilterItemsUrl).then(response=>{this.productTypeFilterItems=response?.data?.data,this.productTypeFilterItems.unshift({label:"Not selected",value:-1}),this.selectedTypeFilter=this.productTypeFilterItems[0].label}).catch(error=>{error?.response?.data?.errors?onsole.error("There was an error!",error.response.data.errors):error?.response?.data?onsole.error("There was an error!",error.response.data):console.error("There was an error!",error)})},getProducts(requestBody){this.isLoading=!0;const getProductsUrl=`${this.hostName}api/product/getproducts`;this.allProducts=[];axios.post(getProductsUrl,requestBody).then(response=>{if(response.status==200&&response?.data?.statusCode>=200&&response?.data?.statusCode<=300){const productList=response.data?.data?.data;this.productsCount=response.data?.data?.count;for(let i=0;i<productList.length;++i){let productGroup={category:productList[i].category,count:productList[i].category.toLowerCase()=="greggs"?productList[i].productCount:productList[i].productColorCount,isOrderedByName:!0,products:[]};for(let j=0;j<productList[i].products.length;++j)if(productList[i].products[j].productColors.length>0)for(let k=0;k<productList[i].products[j].productColors.length;++k){let sizes=productList[i].products[j].stockLevel==-1?productList[i].products[j].productSizes:productList[i].products[j].productSizes.filter(s=>s.sizeStock>0);const productObject={productId:productList[i].products[j].id,name:productList[i].products[j].name+` (${productList[i].products[j].productColors[k].color})`,description:productList[i].products[j].description,productColorId:productList[i].products[j].productColors[k].id,imageUrl:productList[i].products[j].productColors[k]?.url,productSizes:sizes,selectedSize:sizes[0]?.size,selectedSizeId:sizes[0]?.id,productPrice:productList[i].products[j].unitPrice,productCode:productList[i].products[j].productCode,quantity:1,tc1:productList[i].products[j].tc1,tc2:productList[i].products[j].tc2,tc3:productList[i].products[j].tc3,tc4:productList[i].products[j].tc4,tc5:productList[i].products[j].tc5,tcLink:productList[i].products[j].tcLink,packSize:productList[i].products[j].packSize,maxQuantity:productList[i].products[j].stockLevel==-1?-1:sizes[0].sizeStock,isMadeToOrder:productList[i].products[j].stockLevel==-1};productGroup.products.push(productObject)}else{const productObject={productId:productList[i].products[j].id,name:productList[i].products[j].name,description:productList[i].products[j].description,imageUrl:productList[i].products[j].logo,productPrice:productList[i].products[j].unitPrice,productCode:productList[i].products[j].productCode,quantity:1,tc1:productList[i].products[j].tc1,tc2:productList[i].products[j].tc2,tc3:productList[i].products[j].tc3,tc4:productList[i].products[j].tc4,tc5:productList[i].products[j].tc5,tcLink:productList[i].products[j].tcLink,packSize:productList[i].products[j].packSize,maxQuantity:productList[i].products[j].stockLevel,isMadeToOrder:productList[i].products[j].stockLevel==-1};productGroup.products.push(productObject)}productGroup.products=productGroup.products.sort(function(a,b){return a.name.localeCompare(b.name)});this.allProducts.push(productGroup)}}else this.errorMessage=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors)}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error?.response?.data?.errors:error?.response?.data?error?.response?.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},sizeChanged(param,sizeId){param.maxQuantity!==-1&&(param.maxQuantity=param.productSizes.find(c=>c.id==sizeId).sizeStock);param.selectedSize=param.productSizes.find(c=>c.id==sizeId).size;param.selectedSizeId=sizeId},addToBasket(param){const cartItems=JSON.parse(localStorage.getItem("orders"))||[],matchedItem=cartItems.find(x=>x.order.productId===param.productId&&x.order.productColorId===param.productColorId&&x.order.selectedSizeId===param.selectedSizeId);matchedItem?matchedItem.order.quantity+=param.quantity:cartItems.push({orderId:cartItems.length+1,order:param});localStorage.setItem("orders",JSON.stringify(cartItems));eventBus.trigger("cart-updated")},increaseQuantity(param){param.maxQuantity>0&&param.quantity<param.maxQuantity?++param.quantity:param.maxQuantity==-1&&++param.quantity},decreaseQuantity(param){param.quantity>1&&--param.quantity},addOrRemoveClass(clickedElement,parentName){const element=document.getElementById(parentName);element.classList.contains("hide-product-section")?(clickedElement.currentTarget.children[2].classList.remove("rotate-180deg"),element.classList.remove("hide-product-section")):(clickedElement.currentTarget.children[2].classList.add("rotate-180deg"),element.classList.add("hide-product-section"))},getValuesFromLocalStorage(){this.accessToken=localStorage.getItem("accessToken");this.tokenExpiration=localStorage.getItem("tokenExpiration");this.userId=Number(localStorage.getItem("userId"));this.userPoints=Number(localStorage.getItem("currentPoints"));this.orderList=JSON.parse(localStorage.getItem("orders"));this.isUserPending=localStorage.getItem("isPending")==="true";this.orderList||(this.orderList=[])},orderProductsByName(productGroup,index){this.allProducts[index].products=productGroup.products.reverse();productGroup.isOrderedByName=!productGroup.isOrderedByName},toggleDropdownMenu(dropContentId,dropBtnId){if(this.dropContentId&&this.dropContentId!=dropContentId){const previewsElement=document.getElementById(this.dropContentId),previewsDropBtnElement=document.getElementById(this.dropId);previewsElement.classList.contains("show")&&(previewsElement.classList.remove("show"),previewsDropBtnElement.firstElementChild.classList.remove("rotate-180deg"))}const element=document.getElementById(dropContentId),dropBtnElement=document.getElementById(dropBtnId);this.dropId=dropBtnId;this.dropContentId=dropContentId;element.classList.contains("show")?(element.classList.remove("show"),dropBtnElement.firstElementChild.classList.remove("rotate-180deg")):(element.classList.add("show"),dropBtnElement.firstElementChild.classList.add("rotate-180deg"))}}});catalogueFinder.mount("#comma-catalogue")};
const appFilter=Vue.createApp({data:function(){return{categories:[],filters:[],filterSelects:[],categoriesStatic:[],filterCategories:["productTypes","brands","oilTypes","viscosities","sizes","applications",],productProperties:["productType","brand","subSector","oilType","viscosity","size","equipment","application",],totalItemsValue:0,totalItemsToShow:0,isLoading:!1,isShowFilterBtns:!1,isSortDropdownOpen:!1,selectedSortOption:""}},mounted(){this.selectedSortOption=document.getElementById("search-results-sort-options").children[0].textContent;let uri=window.location.search.substring(1),params=new URLSearchParams(uri);const rootKey=document.getElementById("rootKey"),languageKey=document.getElementById("languageKey").value;let includesCategory=["viscosity","prange","sector","tag","brand"].find(x=>params.has(x)),url;url=includesCategory?`/api/products/categorised/${languageKey}/${includesCategory}?id=${params.get(includesCategory)}`:`/api/products/categorised/${languageKey}?query=${params.get("q")}&rootKey=${rootKey.value}`;this.isLoading=!0;axios.get(url).then(response=>{this.categories=response.data.categories,this.categoriesStatic=this.categories,this.sortByProductTitleASC(),this.updateView(),this.isLoading=!1}).catch(e=>{this.isLoading=!1,console.error(`Error loading product data: ${e}`)})},methods:{toShortDate(value){const d=new Date(value);let month=["January","February","March","April","May","June","July","August","September","October","November","December"][d.getMonth()];return`${month} ${d.getFullYear()}`},searchFilter(){const filterBtn=document.querySelector(".toggle-filter"),filterSvg=document.querySelector(".toggle-filter svg");if(filterBtn){let searchWrapper=document.querySelector(".search-results-wrapper");searchWrapper.classList.toggle("open");filterSvg.hasAttribute("transform")?filterSvg.removeAttribute("transform"):filterSvg.setAttribute("transform","rotate(180)")}else return},searchOrderFilter(item){const dropdownInitItems=document.querySelectorAll(".dropdown-select-init1");dropdownInitItems.forEach(item=>{let buttons=item.querySelectorAll(".dropdown-result button, .dropdown-result a"),input=item.querySelector(".dropdown-input-selected");buttons.forEach(button=>{button.addEventListener("click",()=>{input.value=button.innerHTML,buttons.forEach(button=>{button.classList.remove("selected")}),item.classList.remove("open-dropdown"),button.classList.add("selected")})})});let buttons=document.querySelectorAll(".dropdown-result button, .dropdown-result a"),input=document.querySelector(".dropdown-input-selected"),button=buttons[0];input.value=buttons.innerHTML;buttons.forEach(button=>{button.classList.remove("selected")});item.target.classList.remove("open-dropdown");button.classList.add("selected")},onlyUnique(value,index,array){return array.indexOf(value)===index},onlyNotNull(elm){return elm!=null&&elm!==!1&&elm!==""},addFilterSelects(select,filterId,filterCategory){const isAlreadyChecked=document.getElementById("cb"+filterId).checked;isAlreadyChecked?this.filterSelects=this.filterSelects.filter(item=>{const matchedItem=item.title===select&&item.filterId===filterId;return!matchedItem}):this.filterSelects.push({title:select,filterId:filterId,filterCategory:filterCategory});setTimeout(()=>{const stillHasFilters=document.querySelector("#search-results div.results-filter ul li button[data-filterselectid]");this.isShowFilterBtns=stillHasFilters?!0:!1},10)},removeFilterSelects(e,select){let filterselectid=e.target.getAttribute("data-filterselectid");this.filterSelects=this.filterSelects.filter(item=>item.filterId!==filterselectid||item.title!==select.title);this.filterSelects.length==0&&(this.isShowFilterBtns=!1);this.apply()},apply(){this.categories=this.categoriesStatic;this.categories=this.getCategoryWithConditions();this.updateView();let searchWrapper=document.querySelector(".search-results-wrapper");searchWrapper.classList.contains("open")&&this.searchFilter();document.activeElement.blur()},resetAllFilters(){this.categories=this.categoriesStatic;this.filters=[];this.filterSelects=[];this.updateView();this.uncheckFilterCheckboxes();this.isShowFilterBtns=!1},updateView(){let productTypes=[],brands=[],subSectors=[],oilTypes=[],viscosities=[],sizes=[],equipments=[],applications=[];for(let i=0;i<this.categories.length;i++){this.categories[i].totalItems=this.categories[i].items.length;for(let j=0;j<this.categories[i].items.length;j++)productTypes.push(this.categories[i].items[j].productType),brands.push(this.categories[i].items[j].brand),subSectors.push(this.categories[i].items[j].subSector),oilTypes.push(this.categories[i].items[j].oilType),viscosities.push(this.categories[i].items[j].viscosity),sizes.push(this.categories[i].items[j].size),equipments.push(this.categories[i].items[j].equipment),applications.push(this.categories[i].items[j].application)}productTypes=productTypes.filter(this.onlyUnique).filter(this.onlyNotNull);brands=brands.filter(this.onlyUnique).filter(this.onlyNotNull);oilTypes=oilTypes.filter(this.onlyUnique).filter(this.onlyNotNull);viscosities=viscosities.filter(this.onlyUnique).filter(this.onlyNotNull);sizes=sizes.filter(this.onlyUnique).filter(this.onlyNotNull);applications=applications.filter(this.onlyUnique).filter(this.onlyNotNull);this.filters=[];this.filters.push({items:productTypes,length:productTypes.length,id:"productTypes",title:"Product Types",placeholderText:"Narrow down product types"});this.filters.push({items:brands,length:brands.length,id:"brands",title:"Brands",placeholderText:"Narrow down brands"});this.filters.push({items:oilTypes,length:oilTypes.length,id:"oilTypes",title:"Oil Types",placeholderText:"Narrow down oil types"});this.filters.push({items:viscosities,length:viscosities.length,id:"viscosities",title:"Viscosities",placeholderText:"Narrow down viscosities"});this.filters.push({items:sizes,length:sizes.length,id:"sizes",title:"Sizes",placeholderText:"Narrow down sizes"});this.filters.push({items:applications,length:equipments.length,id:"applications",title:"Sector",placeholderText:"Narrow down sectors"});let totalItems=0;for(const category of this.categories)for(const item of category.items)totalItems++;this.totalItemsValue=totalItems;this.totalItemsToShow=this.categories.reduce((total,category)=>total+category.itemsToShow,0);this.totalItemsValue<this.totalItemsToShow&&(this.totalItemsToShow=this.totalItemsValue)},getCategoryWithConditions(){const categoryMap=this.filterCategories.reduce((acc,category,index)=>(acc[category]=this.productProperties[index],acc),{}),filters={};this.filterCategories.forEach(category=>{filters[category]=[...new Set(this.filterSelects.filter(filter=>filter.filterCategory===category).map(filter=>filter.title)),]});const filteredCategories=this.categories.map(category=>{const filteredItems=category.items.filter(product=>this.filterCategories.every(category=>{const filterValues=filters[category];return!filterValues.length||filterValues.includes(product[categoryMap[category]])}));return{...category,items:filteredItems,totalItems:filteredItems.length}});return filteredCategories.filter(category=>category.items.length>0)},groupedTitles(filters){const groupedTitles=filters.reduce((result,filter)=>(result[filter.filterCategory]||(result[filter.filterCategory]=[]),result[filter.filterCategory].push(filter.title),result),{})},uncheckFilterCheckboxes(){var checkboxes=document.querySelectorAll(".filter-checkbox");checkboxes.forEach(function(checkbox){checkbox.checked=!1})},showMoreCheckboxes(filter){for(var i=0;i<filter.items.length;i++)document.getElementById("cb"+filter.id+i).parentElement.style.display="",document.getElementById("showMore"+filter.id).style.display="none",document.getElementById("showLess"+filter.id).style.display=""},showLessCheckboxes(filter){for(var i=4;i<filter.items.length;i++)document.getElementById("cb"+filter.id+i).parentElement.style.display="none",document.getElementById("showMore"+filter.id).style.display="",document.getElementById("showLess"+filter.id).style.display="none"},filterArray(e,filterId){const foundFilter=this.filters.find(filter=>filter.id===filterId),inputText=e.target.value.toLowerCase(),filteredArray=foundFilter.items.filter(item=>item.toLowerCase().includes(inputText));document.getElementById("showMore"+foundFilter.id)&&(document.getElementById("showMore"+foundFilter.id).style.display="none");document.getElementById("showLess"+foundFilter.id)&&(document.getElementById("showLess"+foundFilter.id).style.display="none");const countElement=document.getElementById("count"+filterId);countElement.innerText=filteredArray.length;this.displayResults(filteredArray,e.target.getAttribute("data-ul"))},displayResults(filteredArray,ulId){const ulElement=document.getElementById(ulId),listItems=ulElement.getElementsByTagName("label"),liItems=ulElement.getElementsByTagName("li");for(let i=0;i<listItems.length;i++){const listItem=listItems[i];listItem.style.display=filteredArray.includes(listItem.textContent.trim())?"list-item":"none"}for(let i=0;i<liItems.length;i++){const liItem=liItems[i];liItem.style.display=filteredArray.includes(liItem.textContent.trim())?"list-item":"none"}},openDropDown(){this.isSortDropdownOpen=!this.isSortDropdownOpen},setSelected(e){const dropdownInitItems=document.querySelectorAll(".dropdown-select-init");dropdownInitItems.forEach(item=>{let buttons=item.querySelectorAll(".dropdown-result button, .dropdown-result a"),input=item.querySelector(".dropdown-input-selected");buttons.forEach(button=>{button.classList.remove("selected")});buttons.forEach(button=>{input.value=button.innerHTML,item.classList.remove("open-dropdown")})});e.target.classList.add("selected");const selectedOptionLabel=e.target?.textContent;this.selectedSortOption=selectedOptionLabel??this.selectedSortOption;e.target.id=="sortByAZ"?this.sortByProductTitleASC():e.target.id=="sortByZA"?this.sortByProductTitleDESC():e.target.id=="sortByBrandAZ"?this.sortByProductBrandASC():e.target.id=="sortByBrandZA"&&this.sortByProductBrandDESC();this.isSortDropdownOpen=!1},sortByProductTitleASC(){this.categories.forEach(category=>{category.items.sort((a,b)=>{const titleA=a.title.toUpperCase(),titleB=b.title.toUpperCase();return titleA<titleB?-1:titleA>titleB?1:0})});this.categoriesStatic=this.categories},sortByProductTitleDESC(){this.categories.forEach(category=>{category.items.sort((a,b)=>{const titleA=a.title.toUpperCase(),titleB=b.title.toUpperCase();return titleA>titleB?-1:titleA<titleB?1:0})});this.categoriesStatic=this.categories},sortByProductBrandASC(){this.categories.forEach(category=>{category.items.sort((a,b)=>{const titleA=a.brand.toUpperCase(),titleB=b.brand.toUpperCase();return titleA<titleB?-1:titleA>titleB?1:0})});this.categoriesStatic=this.categories},sortByProductBrandDESC(){this.categories.forEach(category=>{category.items.sort((a,b)=>{const titleA=a.brand.toUpperCase(),titleB=b.brand.toUpperCase();return titleA>titleB?-1:titleA<titleB?1:0})});this.categoriesStatic=this.categories},getShortProductUrl(url){const urlParts=url.split("/");return`/${urlParts[1]}/product/${urlParts[5]}/${urlParts[6]}/${urlParts[7]}`}}});document.getElementById("search-results")&&appFilter.mount("#search-results");
function appHeight(){doc.style.setProperty("--app-height",`${window.innerHeight}px`)}function getFaq(){const faqItems=document.querySelectorAll(".toggle-item"),defaultStateOpen=document.querySelector(".default-state")?.value==="true";faqItems.forEach(item=>{function assignToggleHandler(){disableToggle.checked?(toggleButton.removeEventListener("click",toggleHandler),item.classList.remove("open")):(toggleButton.addEventListener("click",toggleHandler),defaultStateOpen&&item.classList.add("open"))}function toggleHandler(){if(!defaultStateOpen){let toogleParent;toogleParent=toggleButton.closest(".toggle-col")!=null?toggleButton.closest(".toggle-col"):toggleButton.closest(".toggle-wrapper");toogleParent.querySelectorAll(".toggle-item").forEach(anotherItem=>{anotherItem!=item&&anotherItem.classList.remove("open")})}item.classList.toggle("open")}const disableToggle=item.querySelector('.switch input[type="checkbox"]'),toggleButton=item.querySelector(".btn-toggle");disableToggle?(disableToggle.addEventListener("change",assignToggleHandler),assignToggleHandler()):toggleButton.addEventListener("click",toggleHandler)})}function modalOpen(){function hideModal(){modals.forEach(modal=>{modal.classList.remove("open")});document.querySelector("body").classList.remove("no-scroll");document.querySelector("#video iframe").setAttribute("src","")}const modalBtns=document.querySelectorAll("[data-modal]"),modals=document.querySelectorAll(".modal-wrapper"),closeBtns=document.querySelectorAll(".close");modalBtns.forEach(btn=>{btn.addEventListener("click",()=>{let modalName=btn.dataset.modal;if(btn.dataset.video){let modalWrapper=document.querySelector(`#${modalName}`),video=btn.dataset.video,frameVideo=modalWrapper.querySelector("iframe");frameVideo.setAttribute("src",`${video}?autoplay=1`)}document.querySelector("body").classList.add("no-scroll");modals.forEach(modal=>{modal.classList.contains("open")?modal.classList.remove("open"):""});document.querySelector("#"+modalName).classList.add("open")})});closeBtns.forEach(close=>{close.addEventListener("click",()=>{hideModal()})});modals.forEach(modal=>{modal.addEventListener("click",e=>{let classesClick=e.target.attributes.class.value;classesClick.indexOf("modal-wrapper")||hideModal()})})}function getAllSliders(){const allSliders=document.querySelectorAll(".moove-slider");allSliders.forEach(slider=>{function getSliderTheme(){let slideThemeEl=sliderItem.slides[sliderItem.activeIndex];slideThemeEl.dataset.theme==="light"?slider.classList.add("light"):slider.classList.remove("light")}var titles,sliderItem;let pagination=slider.querySelector(".slider-pagination");titles=[];let titleArrays=slider.querySelectorAll(".slide-content"),btnPlay=slider.querySelector(".toggle-active-slider");if(titleArrays.forEach(title=>{titles.push(title.dataset.title)}),sliderItem=new Swiper(slider,{autoplay:{delay:5e3,disableOnInteraction:!1},pagination:{el:pagination,clickable:!0,bulletClass:"bullet",bulletActiveClass:"bullet-active",renderBullet:function(index,className){return'<span class="'+className+'">'+titles[index]+"<span class='progress-line'><\/span><\/span>"}},on:{autoplayTimeLeft(){},slideChange:function(){getSliderTheme()}}}),btnPlay){sliderItem.on("slideChange",function(){btnPlay.classList.remove("pause");let slideThemeEl=sliderItem.slides[sliderItem.activeIndex],video=slideThemeEl.querySelector("video");var iframe=slideThemeEl.querySelector("iframe");if(iframe!=null){let player=new Vimeo.Player(iframe);player.play()}video!=null&&video.play()});btnPlay.addEventListener("click",()=>{btnPlay.classList.toggle("pause");document.getElementById("theVideo");let slideThemeEl=sliderItem.slides[sliderItem.activeIndex],video=slideThemeEl.querySelector("video");var iframe=slideThemeEl.querySelector("iframe");if(btnPlay.classList.contains("pause")){if(sliderItem.autoplay.pause(),iframe!=null){let player=new Vimeo.Player(iframe);player.pause()}video!=null&&video.pause()}else{if(sliderItem.autoplay.resume(),iframe!=null){let player=new Vimeo.Player(iframe);player.play()}video!=null&&video.play()}})}})}function getSliders(){const allSliders=document.querySelectorAll("[data-slider]");allSliders.forEach(slider=>{let pagination=slider.querySelector(".pagination-news");var sliderItem=new Swiper(slider,{slidesPerView:"auto",pagination:{el:pagination,clickable:!0}})})}function alignInfoCardTitles(){let infoCardMaxTitleHeight=0;const allInfoCardTitles=document.querySelectorAll("#infoPanelComponent > div.card-container-info.multi-info-card-view > .card-info-row > .card-info > div.card-head.info-headline");allInfoCardTitles?.forEach(element=>{const currentTitleHeight=window.getComputedStyle(element).height,currentTitleHeightAsNumber=Number(currentTitleHeight.split("px")?.[0]??0);currentTitleHeightAsNumber>infoCardMaxTitleHeight&&(infoCardMaxTitleHeight=currentTitleHeightAsNumber)});allInfoCardTitles?.forEach(element=>{element.style.height=`${infoCardMaxTitleHeight}px`})}function ensureSameHeightInfoCardDescriptions(){let maxDescriptionHeight=0;const allInfoDescriptions=document.querySelectorAll("#infoPanelComponent div.card-container-info.multi-info-card-view div.item-content div.desc-item.info-headline-desc");allInfoDescriptions?.forEach(element=>{const currentHeight=window.getComputedStyle(element).height,currentHeightAsNumber=Number(currentHeight.split("px")?.[0]??0);currentHeightAsNumber>maxDescriptionHeight&&(maxDescriptionHeight=currentHeightAsNumber)});allInfoDescriptions?.forEach(element=>{element.style.height=`${maxDescriptionHeight}px`})}function alignProofPointsTitles(){let proofPointsMaxTitleHeight=0;const allProofPointsTitles=document.querySelectorAll("#proof-points > div.points-row-wrapper.points-row > div > div > div > div > div.item-content > div.title-item");allProofPointsTitles?.forEach(element=>{const currentTitleHeight=window.getComputedStyle(element).height,currentTitleHeightAsNumber=Number(currentTitleHeight.split("px")?.[0]??0);currentTitleHeightAsNumber>proofPointsMaxTitleHeight&&(proofPointsMaxTitleHeight=currentTitleHeightAsNumber)});allProofPointsTitles?.forEach(element=>{element.style.minHeight=`${proofPointsMaxTitleHeight}px`})}function checkForProofPointsMobileView(){if(window.innerWidth<=575){const swiperWrapper=document.getElementsByClassName("swiper-wrapper")[0];swiperWrapper?.dataset?.turnoncarousel&&swiperWrapper?.dataset?.turnoncarousel.toUpperCase()==="FALSE"&&swiperWrapper.removeAttribute("class");proofSlider()}window.innerWidth>=768&&(alignProofPointsTitles(),alignInfoCardTitles())}function updatePromoBannerHeights(){const promoBannerSections=document.querySelectorAll("body > .main-row > main > section.promo-banner.img-promo");promoBannerSections.forEach(promoBanner=>{function adjustCarouselHeight(){const maxMobileWidth=768,maxTabletWidth=1e3;slides.forEach(slide=>{const ctaOverlay=slide.querySelector(".cta-overlay"),imageOverlay=slide.querySelector(".image-overlay"),ctaOverlayHeight=ctaOverlay?window.getComputedStyle(ctaOverlay).height:"0px",imageOverlayHeight=imageOverlay?window.getComputedStyle(imageOverlay).height:"0px",ctaHeight=parseInt(ctaOverlayHeight,10)||0,imageHeight=parseInt(imageOverlayHeight,10)||0;let finalHeight=0;if(window.innerWidth<=maxMobileWidth)finalHeight=ctaHeight+imageHeight+100;else if(window.innerWidth<=maxTabletWidth)finalHeight=ctaHeight+imageHeight+200;if(finalHeight>0){const carousel=promoBanner.querySelector(".carousel-slider");carousel.style.height=`${finalHeight}px`}})}const slides=promoBanner.querySelectorAll(".carousel-slider .carousel-row-wrapper .swiper-slide");slides.forEach(slide=>{const imageOverlay=slide.querySelector(".image-overlay");if(imageOverlay){const ctaOverlay=slide.querySelector(".cta-overlay"),overlayClass=ctaOverlay.getAttribute("data-overlay-position");switch(overlayClass){case"cta-overlay-top":case"cta-overlay-left":ctaOverlay.style.setProperty("margin","0 auto","important");break;case"cta-overlay-bottom":ctaOverlay.style.setProperty("top","300px","important")}}});window.addEventListener("load",adjustCarouselHeight);window.addEventListener("resize",adjustCarouselHeight)})}function proofSlider(){const allSliders=document.querySelectorAll(".points-mobile-slider");allSliders.forEach(slider=>{new Swiper(slider,{autoplay:{delay:5e3,disableOnInteraction:!1,pauseOnMouseEnter:!0},slidesPerView:"auto",pagination:{el:".swiper-pagination",clickable:!0}})})}function promoSlider(){const allSliders=document.querySelectorAll(".carousel-slider");allSliders.forEach(slider=>{var sliderItem=new Swiper(slider,{autoplay:{delay:5e3,disableOnInteraction:!1,pauseOnMouseEnter:!0},centeredSlides:!0,slidesPerView:"auto",pagination:{el:".swiper-pagination",clickable:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}})})}function autocomplete(inp,arr){function addActive(x){if(!x)return!1;removeActive(x);currentFocus>=x.length&&(currentFocus=0);currentFocus<0&&(currentFocus=x.length-1);x[currentFocus].classList.add("autocomplete-active")}function removeActive(x){for(var i=0;i<x.length;i++)x[i].classList.remove("autocomplete-active")}function closeAllLists(elmnt){for(var x=document.getElementsByClassName("results-list"),i=0;i<x.length;i++)elmnt!=x[i]&&elmnt!=inp&&x[i].parentNode.removeChild(x[i])}var currentFocus;inp.addEventListener("input",function(){var a,b,i,val=this.value;if(closeAllLists(),!val)return!1;for(currentFocus=-1,a=document.createElement("DIV"),a.setAttribute("id",this.id+"autocomplete-list"),a.setAttribute("class","results-list"),this.parentNode.appendChild(a),i=0;i<arr.length;i++)arr[i].substr(0,val.length).toUpperCase()==val.toUpperCase()&&(b=document.createElement("DIV"),b.innerHTML="<strong>"+arr[i].substr(0,val.length)+"<\/strong>",b.innerHTML+=arr[i].substr(val.length),b.innerHTML+="<input type='hidden' value='"+arr[i]+"' aria-label='arr[i]'>",b.addEventListener("click",function(){inp.value=this.getElementsByTagName("input")[0].value;closeAllLists()}),a.appendChild(b))});inp.addEventListener("keydown",function(e){var x=document.getElementById(this.id+"autocomplete-list");x&&(x=x.getElementsByTagName("div"));e.keyCode==40?(currentFocus++,addActive(x)):e.keyCode==38?(currentFocus--,addActive(x)):e.keyCode==13&&(e.preventDefault(),currentFocus>-1&&x&&x[currentFocus].click())});document.addEventListener("click",function(e){closeAllLists(e.target)})}function scrollDropDown(){const scrollWrapper=document.querySelectorAll("[data-scroll]");scrollWrapper.forEach(scroll=>{new SimpleBar(scroll,{autoHide:!1})})}function dropdownSearchExample(){const labelSearch=document.querySelector(".label-search");if(labelSearch){let btnReset=document.querySelector(".clear-search"),input=labelSearch.querySelector(".input-search");input.addEventListener("input",()=>{input.value.length>0?labelSearch.classList.add("open-wrapper"):labelSearch.classList.remove("open-wrapper"),btnReset.addEventListener("click",()=>{input.value="",labelSearch.classList.remove("open-wrapper")})})}}function toggleDropdownWrapper(){const dropDowns=document.querySelectorAll(".dropdown-wrapper");dropDowns.forEach(item=>{if(item.querySelector(".btn-toggle")){let btnToggle=item.querySelector(".btn-toggle");btnToggle.addEventListener("click",()=>{item.classList.toggle("open-dropdown")})}else return})}function dropdownSelect(){const dropdownInitItems=document.querySelectorAll(".dropdown-select-init");dropdownInitItems.forEach(item=>{let buttons=item.querySelectorAll(".dropdown-result button, .dropdown-result a"),input=item.querySelector(".dropdown-input-selected");buttons.forEach(button=>{button.addEventListener("click",()=>{input.value=button.innerHTML,buttons.forEach(button=>{button.classList.remove("selected")}),item.classList.remove("open-dropdown"),button.classList.add("selected")})})})}function passwordEye(){const passLabels=document.querySelectorAll(".password-label");passLabels.forEach(label=>{let input=label.querySelector("input"),passToggle=label.querySelector(".btn-eye");passToggle.addEventListener("click",()=>{label.classList.toggle("pass-visible"),input.type=label.classList.contains("pass-visible")?"text":"password"})})}function productSliders(){const sliders=document.querySelectorAll(".products-sliders-wrapper");sliders.forEach(slider=>{let sliderImages=slider.querySelector(".products-slider"),sliderContent=slider.querySelector(".product-content-slider"),pagination=slider.querySelector(".pagination-news"),prev=slider.querySelector(".prev"),next=slider.querySelector(".next"),counter=slider.getAttribute("slide-count"),centered=slider.getAttribute("slider-center"),centeredStatus=!0;centeredStatus=centered==="false"?!1:!0;var sliderItem=new Swiper(sliderImages,{slidesPerView:"auto",centeredSlides:centeredStatus,on:{slideChange:function(){productContent.slideTo(sliderItem.realIndex)}}}),productContent=new Swiper(sliderContent,{on:{slideChange:function(){sliderItem.slideTo(productContent.realIndex)}},navigation:{nextEl:next,prevEl:prev},pagination:{el:pagination,type:"fraction"}})})}function toggleProducts(){const toggleWrapper=document.querySelector(".toggle-products-wrapper");if(toggleWrapper){let toggleBtns=toggleWrapper.querySelectorAll("[data-product]"),toggleContents=toggleWrapper.querySelectorAll(".product-content__item");toggleBtns.forEach(btn=>{let contentId=btn.getAttribute("data-product");btn.addEventListener("click",()=>{toggleContents.forEach(content=>{content.classList.remove("active")}),toggleBtns.forEach(btn=>{btn.classList.remove("active-product")}),btn.classList.add("active-product"),toggleWrapper.querySelector(`#${contentId}`).classList.add("active")})})}}function setCookie(name,value,days){var expires="",date;days&&(date=new Date,date.setTime(date.getTime()+days*864e5),expires="; expires="+date.toUTCString());document.cookie=name+"="+(value||"")+expires+"; path=/"}function getCookie(name){for(var c,nameEQ=name+"=",ca=document.cookie.split(";"),i=0;i<ca.length;i++){for(c=ca[i];c.charAt(0)==" ";)c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length)}return null}function eraseCookie(name){document.cookie=name+"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function breadcrumbsHide(){let breadcrumbsHide=document.getElementsByClassName("breadcrumbs-hide")[0],breadcrumbsMoreHide=document.getElementsByClassName("breadcrumbs-more-hide")[0];if(breadcrumbsHide!=null){let breadcrumbsMore=document.getElementsByClassName("breadcrumbs-more")[0];breadcrumbsMore.innerHTML=breadcrumbsMore.innerHTML!=breadcrumbsHide.innerHTML?breadcrumbsHide.innerHTML:breadcrumbsMoreHide.innerHTML}}function helpToggle(){let helpWrapper=document.querySelector(".help-wrapper");if(helpWrapper){let helpBtnToggle=helpWrapper.querySelector(".btn-help"),helpItems=helpWrapper.querySelectorAll(".help-item");helpBtnToggle.addEventListener("click",e=>{const clearWasClicked=e.target.classList.contains("clear");clearWasClicked||helpWrapper.classList.toggle("open")});helpItems.forEach(item=>{let itemToggle=item.querySelector(".answer-toggle");itemToggle.addEventListener("click",()=>{item.classList.toggle("open")})});const clearIcon=helpWrapper.querySelector(".btn-help span.clear");clearIcon.addEventListener("click",e=>{const clearWasClicked=e.target.classList.contains("clear");clearWasClicked&&(helpWrapper.style.display="none")})}}function getInfoList(){const listWrapper=document.querySelectorAll(".product-info-list");if(listWrapper)listWrapper.forEach(list=>{let listsItem=list.querySelectorAll("li");listsItem.forEach(listItem=>{listItem.addEventListener("click",()=>{listsItem.forEach(listItem=>{listItem.classList.remove("active-item-info")}),listItem.classList.toggle("active-item-info")})})});else return}function showUserLinks(btnContext){for(var linksToShow,divsToHide=document.getElementsByClassName("show-more"),btnToShow=document.getElementsByClassName("show-less"),i=0;i<divsToHide.length;i++)divsToHide[i].style.display="none";for(i=0;i<btnToShow.length;i++)btnToShow[i].style.display="flex";for(linksToShow=btnContext.parentNode.parentNode.querySelectorAll(".links-col .link-item"),i=0;i<linksToShow.length;i++)linksToShow[i].style.display="block"}function copySku(oldSku,sku){const input=document.getElementById(sku);input.checked=!0;navigator.clipboard.writeText(oldSku||sku)}function hideUserLinks(btnContext){for(var linksToHide,btnToShow=document.getElementsByClassName("show-more"),divsToHide=document.getElementsByClassName("show-less"),i=0;i<divsToHide.length;i++)divsToHide[i].style.display="none";for(i=0;i<btnToShow.length;i++)btnToShow[i].style.display="flex";for(linksToHide=btnContext.parentNode.parentNode.querySelectorAll(".links-col .link-item"),i=0;i<linksToHide.length;i++)linksToHide[i].removeAttribute("style")}function getProductTabs(){const productWrapper=document.querySelector(".product-info-wrapper");if(productWrapper){let tabs=productWrapper.querySelectorAll("[data-tab]"),tabsContent=productWrapper.querySelectorAll(".product-tab");tabs.forEach(tabBtn=>{tabBtn.addEventListener("click",()=>{tabs.forEach(tabBtn=>{tabBtn.parentNode.classList.remove("active-slide"),tabBtn.classList.remove("active-tab")}),tabsContent.forEach(tabBtn=>{tabBtn.classList.remove("product-active")}),document.querySelector(`#${tabBtn.dataset.tab}`).classList.add("product-active"),tabBtn.parentNode.classList.add("active-slide"),tabBtn.classList.add("active-tab")})})}else return}function copyText(){const copyText=document.querySelectorAll("[data-copy]");copyText.forEach(link=>{let linkValue=link.dataset.copy;link.addEventListener("click",()=>{navigator.clipboard.writeText(linkValue).then(()=>{link.classList.add("copied"),setTimeout(()=>{link.classList.remove("copied")},1500)}).catch(err=>{console.error("Ошибка: ",err)})})})}function tabsSlider(){const sliderTabsWrapper=document.querySelector(".product-info-tabs");if(sliderTabsWrapper){let prev=sliderTabsWrapper.querySelector(".prev"),next=sliderTabsWrapper.querySelector(".next");new Swiper(sliderTabsWrapper,{slidesPerView:"auto",navigation:{nextEl:next,prevEl:prev}})}else return}function attrMobile(){const attrs=document.querySelectorAll(".select-attr-item");if(attrs)attrs.forEach(attr=>{let attrToggle=attr.querySelector(".select-title");attrToggle.addEventListener("click",()=>{attr.classList.toggle("open")})});else return}function hideSearchResultsPopup(){document.getElementById("search-list__brands__item").style.display="none";document.getElementById("search-list__products__item").style.display="none";document.getElementById("search-list__producttypes__item").style.display="none";document.getElementById("search-list__productsizes__item").style.display="none"}function getInfoList(){const listWrapper=document.querySelectorAll(".product-info-list");if(listWrapper)listWrapper.forEach(list=>{let listsItem=list.querySelectorAll("li");listsItem.forEach(listItem=>{listItem.addEventListener("click",()=>{listsItem.forEach(listItem=>{listItem.classList.remove("active-item-info")}),listItem.classList.toggle("active-item-info")})})});else return}function getProductTabs(){const productWrapper=document.querySelector(".product-info-wrapper");if(productWrapper){let tabs=productWrapper.querySelectorAll("[data-tab]"),tabsContent=productWrapper.querySelectorAll(".product-tab");tabs.forEach(tabBtn=>{tabBtn.addEventListener("click",()=>{tabs.forEach(tabBtn=>{tabBtn.parentNode.classList.remove("active-slide"),tabBtn.classList.remove("active-tab")}),tabsContent.forEach(tabBtn=>{tabBtn.classList.remove("product-active")}),document.querySelector(`#${tabBtn.dataset.tab}`).classList.add("product-active"),tabBtn.parentNode.classList.add("active-slide"),tabBtn.classList.add("active-tab")})})}else return}function copyText(){const copyText=document.querySelectorAll("[data-copy]");copyText.forEach(link=>{let linkValue=link.dataset.copy;link.addEventListener("click",()=>{navigator.clipboard.writeText(linkValue).then(()=>{link.classList.add("copied"),setTimeout(()=>{link.classList.remove("copied")},1500)}).catch(err=>{console.error("Ошибка: ",err)})})})}function tabsSlider(){const sliderTabsWrapper=document.querySelector(".product-info-tabs");if(sliderTabsWrapper){let prev=sliderTabsWrapper.querySelector(".prev"),next=sliderTabsWrapper.querySelector(".next");new Swiper(sliderTabsWrapper,{slidesPerView:"auto",navigation:{nextEl:next,prevEl:prev}})}else return}function attrMobile(){const attrs=document.querySelectorAll(".select-attr-item");if(attrs)attrs.forEach(attr=>{let attrToggle=attr.querySelector(".select-title");attrToggle.addEventListener("click",()=>{attr.classList.toggle("open")})});else return}function adjustSearchPopupContainerHeight(){const openedInsideLightbox=window.self!==window.top||window!==window.parent;if(!openedInsideLightbox){const container=document.querySelector(".global-search .tab-wrap div.tab__content:has(section.catalogue-search)"),searchResultsPopup=document.querySelector("section.catalogue-search.product-selector .search-results"),noProductsFound=Array.from(searchResultsPopup?.querySelectorAll(".search-list__item")??[]).every(element=>element.style.display==="none");if(noProductsFound){container.style.minHeight="unset";return}container.style.minHeight=`unset`;const containerHeight=window.getComputedStyle(container).height,popupHeight=window.getComputedStyle(searchResultsPopup).height,cumulativeHeight=[containerHeight,popupHeight].reduce((final,initial)=>{const height=initial?.split("px")?.filter(Boolean)?.map(Number)?.[0]??0;return final+height},0);container.style.minHeight=`${cumulativeHeight}px`}}function updateProductsTitleFromSearch(){const visibleProducts=Array.from(document.querySelectorAll("#search-list__products__item > ul > li > a")).filter(link=>link.style.display!=="none"),productsTitle=document.querySelector("#search-list__products__item .list-item__title");productsTitle&&visibleProducts&&(productsTitle.textContent=`Products: (${document.querySelectorAll("#search-list__products__item > ul > li > a").length})`)}function showMoreInSearch(){const search_list__show_less=document.querySelector("#search-list__show_less"),search_list__show_more=document.querySelector("#search-list__show_more"),searchList=document.querySelector("#search-list__products__item"),hiddenProducts=searchList?.querySelectorAll(".more_products"),searchResults=document.querySelector("section.catalogue-search.product-selector .search-results");(searchResults&&(searchResults.style.maxHeight="400px",searchResults.style.overflowY="auto"),hiddenProducts?.length!==0)&&(hiddenProducts?.forEach(element=>{element.style.display=""}),search_list__show_less&&(search_list__show_less.style.display=""),search_list__show_more&&(search_list__show_more.style.display="none"),updateProductsTitleFromSearch())}function showLessInSearch(){const search_list__show_less=document.querySelector("#search-list__show_less"),search_list__show_more=document.querySelector("#search-list__show_more"),searchList=document.querySelector("#search-list__products__item"),searchResults=document.querySelector("section.catalogue-search.product-selector .search-results");searchResults&&(searchResults.style.maxHeight="400px",searchResults.style.overflowY="hidden");const productsToHide=searchList?.querySelectorAll(".more_products");productsToHide?.length!==0&&(productsToHide?.forEach(element=>{element.style.display="none"}),search_list__show_less&&(search_list__show_less.style.display="none"),search_list__show_more&&(search_list__show_more.style.display=""),updateProductsTitleFromSearch())}const doc=document.documentElement;window.addEventListener("resize",appHeight);appHeight();class EventBus{constructor(){this.events={}}on(eventName,fn){this.events[eventName]=this.events[eventName]||[];this.events[eventName].push(fn)}off(eventName,fn){if(this.events[eventName])for(var i=0;i<this.events[eventName].length;i++)if(this.events[eventName][i]===fn){this.events[eventName].splice(i,1);break}}trigger(eventName,data){this.events[eventName]&&this.events[eventName].forEach(function(fn){fn(data)})}}window.eventBus=new EventBus;getFaq();modalOpen();getAllSliders();getSliders();checkForProofPointsMobileView();updatePromoBannerHeights();promoSlider();const data=["product","looking","product_test_2","laser"];let inputAutomplete=document.getElementById("autocomplete");inputAutomplete&&inputAutomplete.addEventListener("input",()=>{inputAutomplete.value.length>=3&&autocomplete(document.getElementById("autocomplete"),data)});scrollDropDown();dropdownSearchExample();let toggleFooterLinks=document.querySelectorAll(".toggle-mobile-links");toggleFooterLinks&&toggleFooterLinks.forEach(links=>{let linksToggle=links.querySelector(".footer-col-title");linksToggle.addEventListener("click",()=>{links.classList.toggle("open")})});toggleDropdownWrapper();dropdownSelect();passwordEye();productSliders();toggleProducts();helpToggle();getInfoList();getProductTabs();copyText();tabsSlider();attrMobile();let inputsAutomplete=document.querySelectorAll(".autocomplete");inputsAutomplete&&inputsAutomplete.forEach(inputAutomplete=>{const debouncedCb=_.debounce(function(){searchProducts(inputAutomplete)},300);inputAutomplete.addEventListener("input",debouncedCb)});getInfoList();getProductTabs();const lightbox=GLightbox({width:"992px",height:"auto"}),lightbox2=GLightbox({selector:".glightbox2"});lightbox.on("slide_after_load",()=>{const lightBoxIframe=document.getElementsByClassName("gvideo")[0];if(lightBoxIframe){lightBoxIframe.style.height=`${lightBoxIframe.contentWindow.document.body.scrollHeight}px`;const tabWrap=lightBoxIframe.contentDocument.getElementsByClassName("tab-wrap")[0];tabWrap&&(tabWrap.onclick=()=>{lightBoxIframe.style.height=`${lightBoxIframe.contentWindow.document.body.scrollHeight}px`})}});copyText();tabsSlider();attrMobile();try{showMoreInSearch()}catch(ex){console.error(ex)}try{showLessInSearch()}catch(ex){console.error(ex)}class DynamicSelect{constructor(element,options={}){let defaults={placeholder:"Select an option",columns:1,name:"",width:"",height:"",data:[],onChange:function({url,target}){const properUrl=new URL(url,window.location.origin);target==="_blank"?window.open(properUrl.href,"_blank"):window.location.href=properUrl.href}};this.options=Object.assign(defaults,options);this.selectElement=typeof element=="string"?document.querySelector(element):element;for(const prop in this.selectElement.dataset)this.options[prop]!==undefined&&(this.options[prop]=this.selectElement.dataset[prop]);if(this.name=this.selectElement.getAttribute("name")?this.selectElement.getAttribute("name"):"dynamic-select-"+Math.floor(Math.random()*1e6),!this.options.data.length){let options=this.selectElement.querySelectorAll("option");for(let i=0;i<options.length;i++)this.options.data.push({value:options[i].value,text:options[i].innerHTML,img:options[i].getAttribute("data-img"),selected:options[i].selected,html:options[i].getAttribute("data-html"),imgWidth:options[i].getAttribute("data-img-width"),imgHeight:options[i].getAttribute("data-img-height"),countryCode:options[i].getAttribute("data-countrycode"),target:options[i].getAttribute("data-target")})}this.element=this._template();this.selectElement.replaceWith(this.element);this._updateSelected();this._eventHandlers()}_template(){let optionsHTML="";for(let i=0;i<this.data.length;i++){let optionWidth=100/this.columns,optionContent="";optionContent=this.data[i].html?this.data[i].html:`
                    ${this.data[i].img?`<img src="${this.data[i].img}" alt="${this.data[i].text}" class="${this.data[i].imgWidth&&this.data[i].imgHeight?"dynamic-size":""}" style="${this.data[i].imgWidth?"width:"+this.data[i].imgWidth+";":""}${this.data[i].imgHeight?"height:"+this.data[i].imgHeight+";":""}">`:""}
                    ${this.data[i].text?'<span class="dynamic-select-option-text">'+this.data[i].text+"<\/span>":""}
                `;optionsHTML+=`
                <div class="dynamic-select-option${this.data[i].value==this.selectedValue?" dynamic-select-selected":""}${this.data[i].text||this.data[i].html?"":" dynamic-select-no-text"}" data-value="${this.data[i].value}" data-target="${this.data[i].target}"  style="width:${optionWidth}%;${this.height?"height:"+this.height+";":""}" data-countrycode="${this.data[i].countryCode}">
                    ${optionContent}
                </div>
            `}let template=`
            <div class="dynamic-select ${this.name}"${this.selectElement.id?' id="'+this.selectElement.id+'"':""} style="${this.width?"width:"+this.width+";":""}${this.height?"height:"+this.height+";":""}">
                <input type="hidden" name="${this.name}" value="${this.selectedValue}" aria-label="${this.selectElement}">
                <div class="dynamic-select-header" style="${this.width?"width:"+this.width+";":""}${this.height?"height:"+this.height+";":""}"><span class="dynamic-select-header-placeholder">${this.placeholder}</span></div>
                <div class="dynamic-select-options" style="${this.options.dropdownWidth?"width:"+this.options.dropdownWidth+";":""}${this.options.dropdownHeight?"height:"+this.options.dropdownHeight+";":""}">${optionsHTML}</div>
                </div>
            </div>
        `,element=document.createElement("div");return element.innerHTML=template,element}_eventHandlers(){this.element.querySelectorAll(".dynamic-select-option").forEach(option=>{option.onclick=()=>{this.element.querySelectorAll(".dynamic-select-selected").forEach(selected=>selected.classList.remove("dynamic-select-selected"));option.classList.add("dynamic-select-selected");this.element.querySelector(".dynamic-select-header").innerHTML=option.innerHTML;this.element.querySelector("input").value=option.getAttribute("data-value");this.data.forEach(data=>data.selected=!1);this.data.filter(data=>data.value==option.getAttribute("data-value"))[0].selected=!0;this.element.querySelector(".dynamic-select-header").classList.remove("dynamic-select-header-active");const onchangeProps={url:option.getAttribute("data-value"),countryCode:option.getAttribute("data-countrycode"),target:option.getAttribute("data-target")};this.options.onChange(onchangeProps)}});this.element.querySelector(".dynamic-select-header").onclick=()=>{this.element.querySelector(".dynamic-select-header").classList.toggle("dynamic-select-header-active")};this.selectElement.id&&document.querySelector('label[for="'+this.selectElement.id+'"]')&&(document.querySelector('label[for="'+this.selectElement.id+'"]').onclick=()=>{this.element.querySelector(".dynamic-select-header").classList.toggle("dynamic-select-header-active")});document.addEventListener("click",event=>{event.target.closest("."+this.name)||event.target.closest('label[for="'+this.selectElement.id+'"]')||this.element.querySelector(".dynamic-select-header").classList.remove("dynamic-select-header-active")})}_updateSelected(){const currentUrl=new URL(window.location.href),urlCountryCode=currentUrl.searchParams.get("lang");if(urlCountryCode){const options=this.element.querySelector(".dynamic-select-options").querySelectorAll("div.dynamic-select-option");options.forEach(option=>{const optionCode=option.getAttribute("data-countrycode");optionCode===urlCountryCode?option.classList.add("dynamic-select-selected"):option.classList.remove("dynamic-select-selected")})}this.selectedValue&&(this.element.querySelector(".dynamic-select-header").innerHTML=this.element.querySelector(".dynamic-select-selected").innerHTML)}get selectedValue(){let selected=this.data.filter(option=>option.selected);return selected.length?selected[0].value:""}set data(value){this.options.data=value}get data(){return this.options.data}set selectElement(value){this.options.selectElement=value}get selectElement(){return this.options.selectElement}set element(value){this.options.element=value}get element(){return this.options.element}set placeholder(value){this.options.placeholder=value}get placeholder(){return this.options.placeholder}set columns(value){this.options.columns=value}get columns(){return this.options.columns}set name(value){this.options.name=value}get name(){return this.options.name}set width(value){this.options.width=value}get width(){return this.options.width}set height(value){this.options.height=value}get height(){return this.options.height}}document.querySelectorAll("[opt-dynamic-select]").forEach(select=>new DynamicSelect(select));const selectElement=document.querySelector("#languages");
function swapCtaBanner($serviceCard){var supportingCopyItem=$serviceCard.dataset.hddsupportingcopy,ctaLinkItem=$serviceCard.dataset.hddctalink,ctaLinkItemTarget=$serviceCard.dataset.hddctalinktarget,ctaLinkNameItem=$serviceCard.dataset.hddctalinkname,headingItem=$serviceCard.dataset.hddheading,backgroundImageItem=$serviceCard.dataset.hddbackgroundimage,ctaLinkContainer=document.getElementById("ctaLinkContainer").href,ctaLinkTarget=document.getElementById("ctaLinkContainer").target,supportingCopyContainer=document.getElementById("supportingCopyContainer").innerHTML,headingContainer=document.getElementById("headingContainer").innerHTML,backgroundImageContainer=document.getElementById("backgroundImageContainer").style.backgroundImage,linkNameContainer=document.getElementById("ctaLinkNameContainer").innerText;$serviceCard.dataset.hddsupportingcopy=supportingCopyContainer;$serviceCard.dataset.hddctalink=ctaLinkContainer;$serviceCard.dataset.hddctalinktarget=ctaLinkTarget;$serviceCard.dataset.hddheading=headingContainer;$serviceCard.innerHTML=document.getElementById("supportingCopyContainer").style.visibility==="hidden"?`<span>${headingContainer}</span>`:`<span>${linkNameContainer}</span>`;$serviceCard.dataset.hddbackgroundimage=backgroundImageContainer;$serviceCard.style.backgroundImage=backgroundImageContainer;document.getElementById("ctaLinkContainer").href=ctaLinkItem;document.getElementById("ctaLinkContainer").target=ctaLinkItemTarget;document.getElementById("ctaLinkNameContainer").href=ctaLinkNameItem;document.getElementById("headingContainer").innerText=headingItem;document.getElementById("backgroundImageContainer").style.backgroundImage=backgroundImageItem;document.getElementById("supportingCopyContainer").innerHTML=supportingCopyItem;document.getElementById("supportingCopyContainer").style.visibility=ctaLinkItem==="javascript:void(0);"?"hidden":"visible"};
function appendItemToCookie(cookieKey,itemKey){let values=getCookieItems(cookieKey);values.includes(itemKey)||(values=values.concat(itemKey),document.cookie=`${cookieKey}=${encodeURIComponent(JSON.stringify(values))};path=/;expires=${new Date('@string.Format("{0:s}", dateTo)').toUTCString()}`)}function toggleCookieItem(cookieKey,itemKey){let values=getCookieItems(cookieKey);if(values.includes(itemKey)){const idx=values.indexOf(itemKey);values.splice(idx,1)}else values=values.concat(itemKey);document.cookie=`${cookieKey}=${encodeURIComponent(JSON.stringify(values))};path=/;expires=${new Date('@string.Format("{0:s}", dateTo)').toUTCString()}`}function getCookieItems(cookieKey){const cookie=decodeURIComponent(document.cookie).split("; ").find(cookie=>cookie.startsWith(cookieKey));let values=[];if(cookie){const idx=cookie.indexOf("=")+1,existing=cookie.substring(idx);existing&&(values=JSON.parse(existing))}return values};
const registerPageSectionId="my-comma-register";if(document.getElementById(registerPageSectionId)){let registerPage=Vue.createApp({data:function(){return{activeTabIndex:0,userType:"Owner",email:"",isLoading:!1,membershipHost:"",setPasswordUrl:"",userOtherType:"",userOtherTypeValues:[],verificationCodeError:!1,validateEmailError:!1,registerError:!1,verificationCode:"",userData:{firstName:"",lastName:"",workshopName:"",workshopAddress1:"",workshopAddress2:"",workshopAddress3:"",workshopPhone:"",workshopPostCode:"",numberOfBays:"",motorFactors:[{id:null,name:"",accountNo:"",branch:"",jobTitle:"",selection:null,error:null}],isSignUpForEmail:!1,displayOnMap:!1}}},mounted(){this.membershipHost=document.getElementById("membershipHostKey").value;this.setPasswordUrl=document.getElementById("setPasswordUrlKey").value;const otherTypesListApi=`${this.membershipHost}api/Account/GetOptionsForTypeOther`;axios.get(otherTypesListApi).then(response=>{this.userOtherTypeValues=response.data.data})},methods:{validateEmail(){this.validateEmailError=!1;this.makeValidateEmailRequest()},makeValidateEmailRequest(){this.isLoading=!0;const reqBody={email:this.email,userType:this.userType,position:this.userOtherType},validateApi=`${this.membershipHost}api/Account/ValidateEmail`;axios.post(validateApi,reqBody).then(()=>{this.activeTabIndex=1}).catch(error=>{this.validateEmailError=error.response.data,console.log(error)}).finally(()=>{this.isLoading=!1})},setUserType(type){this.userType=type},sendNewCode(){this.makeValidateEmailRequest()},checkCode(){this.verificationCodeError=!1;this.isLoading=!0;const confirmApi=`${this.membershipHost}api/Account/ConfirmEmail?token=${this.verificationCode}`;axios.post(confirmApi).then(()=>{this.activeTabIndex=2}).catch(error=>{this.verificationCodeError=error.response.data,console.log(error)}).finally(()=>{this.isLoading=!1})},addMotorFactor(){this.userData.motorFactors.push({id:null,name:"",accountNo:"",branch:"",jobTitle:""})},removeMotorFactor(index){this.userData.motorFactors.splice(index,1)},register(){this.registerError=!1;let isValid=!0;if(this.userData.motorFactors.forEach(mf=>{const containsDuplicate=this.userData.motorFactors.some(mf2=>mf!=mf2&&mf2.accountNo==mf.accountNo&&mf.id==mf2.id);containsDuplicate?(mf.error="Duplicate motor factor",isValid=!1):mf.error=null}),isValid){var reqBody=JSON.parse(JSON.stringify(this.userData));reqBody.email=this.email;reqBody.userType=this.userType;let motorFactors=[];reqBody.motorFactors.forEach(mf=>{(mf.error=null,mf.id)&&motorFactors.push({motorFactorId:mf.id,accountNo:mf.accountNo,branch:mf.branch,jobTitle:mf.jobTitle,userType:this.userType})});reqBody.motorFactors=motorFactors;reqBody.numberOfBays||delete reqBody.numberOfBays;this.isLoading=!0;const registerApi=`${this.membershipHost}/api/Account/Register`;axios.post(registerApi,reqBody).then(response=>{if(response.data.status==="Error")console.log(response),this.registerError=response.data.errors.map(e=>e.messages[0]).join("\n");else{const setPasswordToken=response.data.data;document.location.replace(`${this.setPasswordUrl}?token=${setPasswordToken}`)}}).catch(error=>{console.log(error)}).finally(()=>{this.isLoading=!1})}},mfSearch:_.debounce(function(mf){if(mf.name.length==0){mf.showSuggestions=!1;return}mf.showSuggestions=!0;mf.loadingSuggestions=!0;const mfApi=`${this.membershipHost}api/Account/GetMotorFactors?query=${mf.name}`;axios.get(mfApi).then(response=>{mf.suggestions=response.data.data}).catch(error=>{console.log(error)}).finally(()=>{mf.loadingSuggestions=!1})},300),selectMf(mf,s){mf.selection=s;mf.name=s.label;mf.id=s.value;mf.suggestions=[];mf.showSuggestions=!1},onMfFocus(mf){mf.name.length>0&&this.mfSearch(mf)},onMfUnfocus(mf){mf.selection?(mf.name=mf.selection.label,mf.id=mf.selection.value):(mf.name="",mf.id=null);mf.showSuggestions=!1}}});registerPage.mount("#"+registerPageSectionId)};
const forgotPasswordPageSectionId="my-comma-forgot-password";if(document.getElementById(forgotPasswordPageSectionId)){let forgotPasswordPage=Vue.createApp({data:function(){return{activeTabIndex:0,email:"",isLoading:!1,isLoggedIn:!1,membershipHost:""}},mounted(){const accessToken=localStorage.getItem("accessToken"),tokenExpiration=localStorage.getItem("tokenExpiration"),userType=localStorage.getItem("userType");this.membershipHost=document.getElementById("membershipHostKey").value;accessToken&&userType&&tokenExpiration>(new Date).toISOString()&&(this.isLoggedIn=!0)},methods:{validateEmail(){this.validateEmailError=!1;this.makeValidateEmailRequest()},makeValidateEmailRequest(){this.isLoading=!0;const validateApi=`${this.membershipHost}api/Account/SentForgotPasswordConfirmationEmail?email=${encodeURIComponent(this.email)}`;axios.post(validateApi).then(()=>{this.activeTabIndex=1}).catch(error=>{this.validateEmailError=error.response.data,console.log(error)}).finally(()=>{this.isLoading=!1})}}});forgotPasswordPage.mount("#"+forgotPasswordPageSectionId)};
if(document.getElementById("comma-cart")){let cartApp=Vue.createApp({data:function(){return{pageIndex:1,pageSize:4,cartItems:[],accessToken:"",tokenExpiration:"",hostName:"",checkoutPopup:"",greyedOut:"",userPoints:0,availableUserPoints:0,userId:0,isLoading:!1,isCheckoutLoading:!1,allProducts:[],userData:{},totalCartItems:0,totalPrice:0,errorMessage:"",isErrorExists:!1,isPopupOpened:!1,dropId:"",dropContentId:""}},mounted(){document.addEventListener("click",this.handleClickOutside);this.getValuesFromLocalStorage();!this.accessToken||this.tokenExpiration<(new Date).toISOString()||!this.userId?window.location.href=document.getElementById("signInUrl").value:(this.isLoading=!0,axios.defaults.headers.common.Authorization=`Bearer ${this.accessToken}`,this.hostName=document.getElementById("hostName").value,this.checkoutPopup=document.getElementById("checkout-popup"),this.greyedOut=document.getElementById("greyed-out-background"),this.getUserOrdersFromLocalStorage(),this.getUserDateById(),this.getProducts(this.pageIndex,this.pageSize))},beforeDestroy(){document.removeEventListener("click",this.handleClickOutside)},methods:{handleClickOutside(event){let target=event?.target;if(target.isConnected&&(target.id||(target=event.target?.parentNode),this.dropId&&this.dropId!==target.id)){for(const select of document.querySelectorAll(".dropdown-content"))select.classList.remove("show");for(const select of document.querySelectorAll(".rewards-drop-arrow"))select.classList.remove("rotate-180deg")}},toggleDropdownMenu(dropContentId,dropBtnId){if(this.dropContentId&&this.dropContentId!=dropContentId){const previewsElement=document.getElementById(this.dropContentId),previewsDropBtnElement=document.getElementById(this.dropId);previewsElement.classList.contains("show")&&(previewsElement.classList.remove("show"),previewsDropBtnElement.firstElementChild.classList.remove("rotate-180deg"))}const element=document.getElementById(dropContentId),dropBtnElement=document.getElementById(dropBtnId);this.dropId=dropBtnId;this.dropContentId=dropContentId;element.classList.contains("show")?(element.classList.remove("show"),dropBtnElement.firstElementChild.classList.remove("rotate-180deg")):(element.classList.add("show"),dropBtnElement.firstElementChild.classList.add("rotate-180deg"))},openCheckoutPopup(){this.checkoutPopup.classList.remove("display-hidden");this.greyedOut.style.height=document.documentElement.scrollHeight+"px";this.isPopupOpened=!0},closeCheckoutPopup(){this.checkoutPopup.classList.add("display-hidden");this.isPopupOpened=!1;this.errorMessage="";this.isErrorExists=!1},getValuesFromLocalStorage(){this.accessToken=localStorage.getItem("accessToken");this.tokenExpiration=localStorage.getItem("tokenExpiration");this.userId=Number(localStorage.getItem("userId"));this.userPoints=Number(localStorage.getItem("currentPoints"));this.availableUserPoints=this.userPoints-this.totalPrice},getUserOrdersFromLocalStorage(){this.isLoading=!0;this.cartItems=JSON.parse(localStorage.getItem("orders"));this.getTotalItemsDetail();this.isLoading=!1},getTotalItemsDetail(){this.cartItems?(this.totalCartItems=this.cartItems.reduce((a,b)=>a+b.order.quantity,0),this.totalPrice=this.cartItems.reduce((a,b)=>a+b.order.quantity*b.order.productPrice,0),this.availableUserPoints=this.userPoints-this.totalPrice):this.cartItems=[]},getUserDateById(){const getUserDataUrl=`${this.hostName}api/user/me`;this.isLoading=!0;axios.get(getUserDataUrl).then(response=>{this.userData=response?.data?.data}).catch(error=>{error?.response?.data?.errors?console.error("There was an error!",error.response.data.errors):error?.response?.data?console.error("There was an error!",error.response.data):console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},getProducts(pageIndex,pageSize){this.isLoading=!0;const geProductsUrl=`${this.hostName}api/product/getproducts`,requestBody={pageIndex:pageIndex,pageSize:pageSize,customerId:this.userId};axios.post(geProductsUrl,requestBody).then(response=>{if(response.status==200&&response?.data?.statusCode>=200&&response?.data?.statusCode<=300){const products=response.data?.data?.data;this.productsCount=response.data?.data?.count;for(let i=0;i<products.length;++i)if(products[i].productColors.length>0)for(let j=0;j<products[i].productColors.length;++j){let sizes=products[i].stockLevel==-1?products[i].productSizes:products[i].productSizes.filter(s=>s.sizeStock>0),productObject={productId:products[i].id,name:products[i].name+` (${products[i].productColors[j].color})`,description:products[i].description,productColorId:products[i].productColors[j].id,imageUrl:products[i].productColors[j].url,selectedSize:sizes[0]?.size,selectedSizeId:sizes[0]?.id,productSizes:sizes,productPrice:products[i].unitPrice,productCode:products[i].productCode,quantity:1,tc1:products[i].tc1,tc2:products[i].tc2,tc3:products[i].tc3,tc4:products[i].tc4,tc5:products[i].tc5,tcLink:products[i].tcLink,packSize:products[i].packSize,maxQuantity:products[i].stockLevel==-1?-1:sizes[0].sizeStock,isMadeToOrder:products[i].stockLevel==-1,category:products[i].productCategories[0].name};this.allProducts.push(productObject)}else{let productObject={productId:products[i].id,name:products[i].name,description:products[i].description,imageUrl:products[i].logo,productPrice:products[i].unitPrice,productCode:products[i].productCode,quantity:1,tc1:products[i].tc1,tc2:products[i].tc2,tc3:products[i].tc3,tc4:products[i].tc4,tc5:products[i].tc5,tcLink:products[i].tcLink,packSize:products[i].packSize,maxQuantity:products[i].stockLevel,isMadeToOrder:products[i].stockLevel==-1,category:products[i].productCategories[0].name};this.allProducts.push(productObject)}}else this.errorMessage=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors)}).catch(error=>{error?.response?.data?.errors?console.error("There was an error!",error.response.data.errors):error?.response?.data?console.error("There was an error!",error.response.data):console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},createOrder(orders){const createOrderUrl=`${this.hostName}api/order/createorder`,requestBody=orders;this.isCheckoutLoading=!0;axios.post(createOrderUrl,requestBody).then(response=>{response.status==200&&response?.data?.statusCode>=200&&response?.data?.statusCode<=300?(localStorage.removeItem("orders"),localStorage.setItem("currentPoints",this.availableUserPoints),this.currentPoints=this.availableUserPoints,localStorage.setItem("lastOrderId",response?.data?.data),this.checkoutPopup.classList.add("display-hidden"),this.isPopupOpened=!1,window.location.href=document.getElementById("orderSummaryUrl").value):(this.errorMessage=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors))}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error.response.data.errors:error?.response?.data?error.response.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isCheckoutLoading=!1})},addToBasket(param){let order={orderId:this.cartItems.length+1,order:param};this.cartItems.push(order);localStorage.setItem("orders",JSON.stringify(this.cartItems));this.getTotalItemsDetail();eventBus.trigger("cart-updated")},proceedToCheckout(){if(this.cartItems&&this.cartItems?.length!=0){const parsedToken=this.getParsedToken(this.accessToken);if(parsedToken?.nameid==this.userId){if(this.getTotalItemsDetail(),this.totalPrice>this.userPoints){this.errorMessage="You don't have enough points.";this.isErrorExists=!0;return}let ordersToBuy={customerId:this.userId,deliveryAddress:this.userData.workshopAddress1+this.userData.workshopAddress2+this.userData.workshopAddress3,comment:"",products:[]};for(let i=0;i<this.cartItems.length;++i){const productToAdd={productId:this.cartItems[i].order.productId,productSizeId:this.cartItems[i].order.selectedSizeId,productColorId:this.cartItems[i].order.productColorId,quantity:this.cartItems[i].order.quantity,unitPrice:this.cartItems[i].order.productPrice,productCode:this.cartItems[i].order.productCode};ordersToBuy.products.push(productToAdd)}this.createOrder(ordersToBuy)}}},getParsedToken(token){return JSON.parse(atob(token.split(".")[1]))},increaseQuantity(param,isCartItem){if(param.maxQuantity>0&&param.quantity<param.maxQuantity?++param.quantity:param.maxQuantity==-1&&++param.quantity,isCartItem){const matchedItem=this.cartItems.find(x=>x.order.productId===param.productId&&x.order.productColorId===param.productColorId&&x.order.selectedSizeId===param.selectedSizeId);matchedItem&&(matchedItem.order.quantity=param.quantity)}this.getTotalItemsDetail();localStorage.setItem("orders",JSON.stringify(this.cartItems));eventBus.trigger("cart-updated")},decreaseQuantity(param,isCartItem){if(param.quantity>1&&--param.quantity,isCartItem){const matchedItem=this.cartItems.find(x=>x.order.productId===param.productId&&x.order.productColorId===param.productColorId&&x.order.selectedSizeId===param.selectedSizeId);matchedItem&&(matchedItem.order.quantity=param.quantity)}this.getTotalItemsDetail();localStorage.setItem("orders",JSON.stringify(this.cartItems));eventBus.trigger("cart-updated")},sizeChanged(param,sizeId){param.maxQuantity!==-1&&(param.maxQuantity=param.productSizes.find(c=>c.id==sizeId).sizeStock);param.selectedSize=param.productSizes.find(c=>c.id==sizeId).size;param.selectedSizeId=sizeId},removeItem(orderId){this.dropContentId="";this.dropBtnId="";this.cartItems=this.cartItems.filter(x=>x.orderId!=orderId);this.getTotalItemsDetail();localStorage.setItem("orders",JSON.stringify(this.cartItems));this.allProducts?.length==0&&this.getProducts(this.pageIndex,this.pageSize);eventBus.trigger("cart-updated")}}});cartApp.mount("#comma-cart")};
if(document.getElementById("comma-order-summary")){let cartApp=Vue.createApp({data:function(){return{pageIndex:1,pageSize:4,cartItems:[],accessToken:"",tokenExpiration:"",hostName:"",userId:0,isLoading:!1,allProducts:[],order:{},errorMessage:"",isErrorExists:!1,previousOrderUrl:"",dropId:"",dropContentId:""}},mounted(){if(this.isLoading=!0,document.addEventListener("click",this.handleClickOutside),this.getValuesFromLocalStorage(),!this.accessToken||this.tokenExpiration<(new Date).toISOString()||!this.userId)window.location.href=document.getElementById("signInUrl").value;else{axios.defaults.headers.common.Authorization=`Bearer ${this.accessToken}`;this.hostName=document.getElementById("hostName").value;this.previousOrderUrl=document.getElementById("previousOrderUrl").value;this.getProducts(this.pageIndex,this.pageSize);const lastOrderId=localStorage.getItem("lastOrderId");lastOrderId||(window.location.href=document.getElementById("catalogueUrl").value);this.getOrderById(lastOrderId)}},beforeDestroy(){document.removeEventListener("click",this.handleClickOutside)},methods:{handleClickOutside(event){let target=event?.target;if(target.isConnected&&(target.id||(target=event.target?.parentNode),this.dropId&&this.dropId!==target.id)){for(const select of document.querySelectorAll(".dropdown-content"))select.classList.remove("show");for(const select of document.querySelectorAll(".rewards-drop-arrow"))select.classList.remove("rotate-180deg")}},toggleDropdownMenu(dropContentId,dropBtnId){if(this.dropContentId&&this.dropContentId!=dropContentId){const previewsElement=document.getElementById(this.dropContentId),previewsDropBtnElement=document.getElementById(this.dropId);previewsElement.classList.contains("show")&&(previewsElement.classList.remove("show"),previewsDropBtnElement.firstElementChild.classList.remove("rotate-180deg"))}const element=document.getElementById(dropContentId),dropBtnElement=document.getElementById(dropBtnId);this.dropId=dropBtnId;this.dropContentId=dropContentId;element.classList.contains("show")?(element.classList.remove("show"),dropBtnElement.firstElementChild.classList.remove("rotate-180deg")):(element.classList.add("show"),dropBtnElement.firstElementChild.classList.add("rotate-180deg"))},getValuesFromLocalStorage(){this.accessToken=localStorage.getItem("accessToken");this.tokenExpiration=localStorage.getItem("tokenExpiration");this.userId=Number(localStorage.getItem("userId"));this.cartItems=JSON.parse(localStorage.getItem("orders"))},getProducts(pageIndex,pageSize){this.isLoading=!0;const geProductsUrl=`${this.hostName}api/product/getproducts`,requestBody={pageIndex:pageIndex,pageSize:pageSize,customerId:this.userId};axios.post(geProductsUrl,requestBody).then(response=>{if(response.status==200&&response?.data?.statusCode>=200&&response?.data?.statusCode<=300){const products=response.data?.data?.data;this.productsCount=response.data?.data?.count;for(let i=0;i<products.length;++i)if(products[i].productColors.length>0)for(let j=0;j<products[i].productColors.length;++j){let sizes=products[i].stockLevel==-1?products[i].productSizes:products[i].productSizes.filter(s=>s.sizeStock>0),productObject={productId:products[i].id,name:products[i].name+` (${products[i].productColors[j].color})`,description:products[i].description,productColorId:products[i].productColors[j].id,imageUrl:products[i].productColors[j].url,selectedSize:sizes[0]?.size,selectedSizeId:sizes[0]?.id,productSizes:sizes,productPrice:products[i].unitPrice,productCode:products[i].productCode,quantity:1,tc1:products[i].tc1,tc2:products[i].tc2,tc3:products[i].tc3,tc4:products[i].tc4,tc5:products[i].tc5,tcLink:products[i].tcLink,packSize:products[i].packSize,maxQuantity:products[i].stockLevel==-1?-1:sizes[0].sizeStock,isMadeToOrder:products[i].stockLevel==-1,category:products[i].productCategories[0].name};this.allProducts.push(productObject)}else{let productObject={productId:products[i].id,name:products[i].name,description:products[i].description,imageUrl:products[i].logo,productPrice:products[i].unitPrice,productCode:products[i].productCode,quantity:1,tc1:products[i].tc1,tc2:products[i].tc2,tc3:products[i].tc3,tc4:products[i].tc4,tc5:products[i].tc5,tcLink:products[i].tcLink,packSize:products[i].packSize,maxQuantity:products[i].stockLevel,isMadeToOrder:products[i].stockLevel==-1,category:products[i].productCategories[0].name};this.allProducts.push(productObject)}}else this.errorMessage=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors)}).catch(error=>{error?.response?.data?.errors?onsole.error("There was an error!",error.response.data.errors):error?.response?.data?onsole.error("There was an error!",error.response.data):console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},getOrderById(id){this.isLoading=!0;const getUserOrderUrl=`${this.hostName}api/Order/GetOrderById?id=${id}`;axios.get(getUserOrderUrl).then(response=>{response.status==200&&response?.data?.statusCode==200?this.order=response.data.data:(this.errorMessage=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors))}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error.response.data.errors:error?.response?.data?error.response.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},addToBasket(param){const cartItems=JSON.parse(localStorage.getItem("orders"))||[],matchedItem=cartItems.find(x=>x.order.productId===param.productId&&x.order.productColorId===param.productColorId&&x.order.selectedSizeId===param.selectedSizeId);matchedItem?matchedItem.order.quantity+=param.quantity:cartItems.push({orderId:cartItems.length+1,order:param});localStorage.setItem("orders",JSON.stringify(cartItems));eventBus.trigger("cart-updated")},increaseQuantity(param){param.maxQuantity>0&&param.quantity<param.maxQuantity?++param.quantity:param.maxQuantity==-1&&++param.quantity},decreaseQuantity(param){param.quantity>1&&--param.quantity},sizeChanged(param,sizeId){param.maxQuantity!==-1&&(param.maxQuantity=param.productSizes.find(c=>c.id==sizeId).sizeStock);param.selectedSize=param.productSizes.find(c=>c.id==sizeId).size;param.selectedSizeId=sizeId}}});cartApp.mount("#comma-order-summary")};
if(document.getElementById("comma-top-banner")){let topBanner=Vue.createApp({data:function(){return{cartCount:0,userType:null,isCartVisible:!1,isLoggedIn:!1,isDropDownVisible:!1}},mounted(){this.$nextTick(()=>{this.$refs.myAccount&&(this.handleClickOutside=this.handleClickOutside.bind(this),document.addEventListener("click",this.handleClickOutside))});const accessToken=localStorage.getItem("accessToken"),tokenExpiration=localStorage.getItem("tokenExpiration");this.userType=localStorage.getItem("userType");this.accessToken=accessToken;accessToken&&this.userType&&tokenExpiration>(new Date).toISOString()&&(this.isLoggedIn=!0,this.isUserPending=localStorage.getItem("isPending")==="true");this.isCartVisible=this.isLoggedIn&&this.userType=="Owner"&&!this.isUserPending;this.updateCart();eventBus.on("cart-updated",this.updateCart)},beforeDestroy(){document.removeEventListener("click",this.handleClickOutside)},methods:{handleClickOutside(event){event?.target?.isConnected&&!this.$refs.myAccount.contains(event.target)&&(this.isDropDownVisible=!1)},updateCart:function(){const orders=JSON.parse(localStorage.getItem("orders"));let cartCount=0;if(orders&&orders.length>0)for(let i=0;i<orders.length;++i)cartCount+=orders[i].order.quantity;this.cartCount=cartCount},logout(){localStorage.clear();window.location.href=document.getElementById("signInUrl").value},toggleDropDown(){this.isDropDownVisible=!this.isDropDownVisible}}});topBanner.mount("#comma-top-banner")};
if(document.getElementById("comma-previous-order")){let dashboardFinder=Vue.createApp({data:function(){return{id:null,accessToken:"",hostName:"",order:null,orders:[],errorMessage:!1,isLoading:!0}},mounted(){const accessToken=localStorage.getItem("accessToken"),tokenExpiration=localStorage.getItem("tokenExpiration");if(this.accessToken=accessToken,!accessToken||tokenExpiration<(new Date).toISOString())window.location.href=document.getElementById("signInUrl").value;else{axios.defaults.headers.common.Authorization=`Bearer ${this.accessToken}`;const userId=localStorage.getItem("userId");this.hostName=document.getElementById("hostName").value;this.previousOrderUrl=document.getElementById("previousOrderUrl").value;this.id=document.getElementById("orderIdKey").value;this.GetUserOrders(userId);const getOrderUrl=`${this.hostName}api/Order/GetOrderById?id=${this.id}`;axios.get(getOrderUrl).then(response=>{this.order=response.data.data,console.log(response)}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error.response.data.errors:error?.response?.data?error.response.data:error.message}).finally(()=>{this.isLoading=!1})}},methods:{GetUserOrders(userId){const getUserOrdersUrl=`${this.hostName}api/order/getorders`,requestBody={pageIndex:this.pageIndex,pageSize:5,customerId:userId};axios.post(getUserOrdersUrl,requestBody).then(response=>{response.status==200&&(this.orders=response.data.data.data)}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error.response.data.errors:error?.response?.data?error.response.data:error.message,this.isErrorExists=!0,console.error("There was an error!",error)})}}});dashboardFinder.mount("#comma-previous-order")};
if(document.getElementById("comma-set-password")){let signInFinder=Vue.createApp({data:function(){return{isLoading:!1,error:!1,newPassword:"",showNewPassword:!1,hasPasswordValue:!1}},computed:{isEnabled(){return this.hasUpperCaseLetter&&this.hasExpectedLength&&this.hasSpecialCharacter&&this.hasNumber&&!this.isLoading},hasUpperCaseLetter(){return/[A-Z]/.test(this.newPassword)},hasExpectedLength(){return this.newPassword.length>=8},hasSpecialCharacter(){return/[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/.test(this.newPassword)},hasNumber(){return/\d/.test(this.newPassword)}},methods:{submit(){if(this.error=!1,!this.newPassword){this.error="Enter password";return}const hostName=document.getElementById("hostName").value,token=document.getElementById("tokenKey").value,setPasswordUrl=`${hostName}api/Account/SetPassword`,dashboardUrl=document.getElementById("dashboardUrl").value;this.isLoading=!0;const requestBody={newPassword:this.newPassword,confirmPassword:this.newPassword,token:token};axios.post(setPasswordUrl,requestBody).then(response=>{this.SetValueInLocalStorage(response),window.location.href=dashboardUrl}).catch(error=>{this.error=error.response.data.errors?error.response.data.errors:error.response.data?error.response.data:error.message,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},toggleNewPasswordShow(){this.showNewPassword=!this.showNewPassword},SetValueInLocalStorage(result){result&&result.status==200&&(localStorage.setItem("accessToken",result.data.data.token),localStorage.setItem("isPending",result.data.data.isPending),localStorage.setItem("tokenExpiration",result.data.data.expiration),localStorage.setItem("userId",result.data.data.userId),localStorage.setItem("userType",result.data.data.userType))},passwordValidation(){this.hasPasswordValue=this.newPassword.length>0}}});signInFinder.mount("#comma-set-password")};
if(document.getElementById("my-comma-my-account")){let myAccountPage=Vue.createApp({data:function(){return{accessToken:"",tokenExpiration:"",userId:0,activeTabIndex:0,userType:"",email:"",isLoading:!0,membershipHost:"",userOtherType:"",userOtherTypeValues:[],verificationCode:"",userData:{firstName:"",lastName:"",workshopName:"",workshopAddress1:"",workshopAddress2:"",workshopAddress3:"",workshopPhone:"",workshopPostCode:"",numberOfBays:"",motorFactors:[{id:null,name:"",accountNo:"",branch:"",jobTitle:"",selection:null,error:null}],isSignUpForEmail:!1,displayOnMap:!1,userMotorFactorsDict:{}}}},mounted(){this.getValuesFromLocalStorage();!this.accessToken||this.tokenExpiration<(new Date).toISOString()||!this.userId?window.location.href=document.getElementById("signInUrl").value:(axios.defaults.headers.common.Authorization=`Bearer ${this.accessToken}`,this.membershipHost=document.getElementById("membershipHostKey").value,this.getUserDateById(this.userId))},methods:{getUserDateById(){const getUserDataUrl=`${this.membershipHost}api/user/me`;this.isLoading=!0;axios.get(getUserDataUrl).then(response=>{const userData=response?.data?.data;this.userData.firstName=userData.firstName;this.userData.lastName=userData.lastName;this.email=userData.email;this.userType=userData.userType;this.userData.workshopName=userData.workshopName;this.userData.workshopAddress1=userData.workshopAddress1;this.userData.workshopAddress2=userData.workshopAddress2;this.userData.workshopAddress3=userData.workshopAddress3;this.userData.workshopPhoneNumber=userData.workshopPhoneNumber;this.userData.workshopPostCode=userData.workshopPostCode;this.userData.numberOfBays=userData.numberOfBays;this.userData.displayOnMap=userData.displayOnMap;this.userData.isSignUpForEmail=userData.isSignUpForEmail;this.userData.motorFactors=userData.userMotorFactors;let motorFactors=[];userData.userMotorFactors.forEach(u=>{motorFactors.push({id:u.motorFactorId,name:u.motorFactorName,accountNo:u.accountNo,branch:u.branch,jobTitle:u.jobTitle,selection:{label:u.motorFactorName,value:u.motorFactorId},error:null})});this.userData.motorFactors=motorFactors;this.userMotorFactorsDict=userData.userMotorFactorsDict}).catch(error=>{error?.response?.data?.errors?onsole.error("There was an error!",error.response.data.errors):error?.response?.data?onsole.error("There was an error!",error.response.data):console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},addMotorFactor(){this.userData.motorFactors.push({id:null,name:"",accountNo:"",branch:"",jobTitle:""})},removeMotorFactor(index){this.userData.motorFactors.splice(index,1)},getValuesFromLocalStorage(){this.accessToken=localStorage.getItem("accessToken");this.tokenExpiration=localStorage.getItem("tokenExpiration");this.userId=Number(localStorage.getItem("userId"))},save(){let isValid=!0;if(this.userData.motorFactors.forEach(mf=>{const containsDuplicate=this.userData.motorFactors.some(mf2=>mf!=mf2&&mf2.accountNo==mf.accountNo&&mf.id==mf2.id);containsDuplicate?(mf.error="Duplicate motor factor",isValid=!1):mf.error=null}),isValid){var reqBody=JSON.parse(JSON.stringify(this.userData));reqBody.email=this.email;reqBody.userType=this.userType;let motorFactors=[];reqBody.motorFactors.forEach(mf=>{(mf.error=null,mf.id)&&motorFactors.push({motorFactorId:mf.id,accountNo:mf.accountNo,branch:mf.branch,jobTitle:mf.jobTitle,userType:this.userType})});reqBody.motorFactors=motorFactors;reqBody.numberOfBays||delete reqBody.numberOfBays;this.isLoading=!0;const editApi=`${this.membershipHost}/api/User/EditUser`;axios.post(editApi,reqBody).then(()=>{this.getUserDateById(this.userId)}).catch(error=>{console.log(error)}).finally(()=>{this.isLoading=!1})}},mfSearch:_.debounce(function(mf){if(mf.name.length==0){mf.showSuggestions=!1;return}mf.showSuggestions=!0;mf.loadingSuggestions=!0;const mfApi=`${this.membershipHost}api/Account/GetMotorFactors?query=${mf.name}`;axios.get(mfApi).then(response=>{mf.suggestions=response.data.data}).catch(error=>{console.log(error)}).finally(()=>{mf.loadingSuggestions=!1})},300),selectMf(mf,s){mf.selection=s;mf.name=s.label;mf.id=s.value;mf.suggestions=[];mf.showSuggestions=!1},onMfFocus(mf){mf.name.length>0&&this.mfSearch(mf)},onMfUnfocus(mf){mf.selection?(mf.name=mf.selection.label,mf.id=mf.selection.value):(mf.name="",mf.id=null);mf.showSuggestions=!1}}});myAccountPage.mount("#my-comma-my-account")};
if(document.getElementById("voucher")){let cartApp=Vue.createApp({data:function(){return{promoCode:null,accessToken:"",tokenExpiration:"",hostName:"",userType:"",userId:0,isLoading:!1,isSucceeded:!1,errorMessage:"",isErrorExists:!1}},mounted(){document.addEventListener("click",this.handleClickOutside);this.getValuesFromLocalStorage();const isUserTypeIsOwner=this.userType.toLowerCase()==="owner"?!0:!1;!this.accessToken||!isUserTypeIsOwner||this.tokenExpiration<(new Date).toISOString()||!this.userId?window.location.href=document.getElementById("signInUrl").value:(axios.defaults.headers.common.Authorization=`Bearer ${this.accessToken}`,this.hostName=document.getElementById("hostName").value)},methods:{getValuesFromLocalStorage(){this.accessToken=localStorage.getItem("accessToken");this.tokenExpiration=localStorage.getItem("tokenExpiration");this.userId=Number(localStorage.getItem("userId"));this.userType=localStorage.getItem("userType")},applayVoucher(){const applayVoucherUrl=`${this.hostName}api/PromoCode/Applay/${this.promoCode}`;this.isLoading=!0;axios.put(applayVoucherUrl).then(response=>{response.status==200&&response?.data?.statusCode>=200&&response?.data?.statusCode<=300?(this.isSucceeded=!0,this.isErrorExists=!1,this.message=response?.data?.data,this.promoCode=null):(this.isSucceeded=!1,this.message=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors))}).catch(error=>{console.error("There was an error!",error),this.isErrorExists=!0,this.isSucceeded=!1,this.message="There was an error!"}).finally(()=>{this.isLoading=!1})}}});cartApp.mount("#voucher")};
if(document.getElementById("comma-product-page")){const signInFinder=Vue.createApp({data(){return{findStockList:`${window.location.protocol}//${window.location.host}/find-a-comma-stockist/`,activePacksizeImage:null,selectedPacksize:null,activeAccordion:"",activeAccordionId:null}},methods:{promoSlider(){const allSliders=document.querySelectorAll(".carousel-slider");allSliders.forEach(slider=>{var sliderItem=new Swiper(slider,{autoplay:{delay:5e3,disableOnInteraction:!1,pauseOnMouseEnter:!0},centeredSlides:!0,slidesPerView:"auto",pagination:{el:".swiper-pagination",clickable:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"}})})},setActivePacksize(skuPartNumber){this.selectedPacksize=skuPartNumber;console.log("Selected SKU Part Number:",skuPartNumber)},isChecked(skuPartNumber){return this.selectedPacksize===skuPartNumber},copySku(size){const{sku,legacySku}=size;navigator.clipboard.writeText(legacySku||sku).then(()=>{console.log("SKU copied to clipboard:",legacySku||sku)})},formatSku(size){const{sku,legacySku}=size;let formattedSku="";return(sku||legacySku)&&(formattedSku=`(${legacySku?legacySku+":":""}${sku})`),formattedSku},getSelectedSize(){return product.value.packSizes.find(size=>size.sku===selectedPacksize)},toggleAccordion(accordionId){const allAccordionItems=document.querySelectorAll(".accordion-item");allAccordionItems.forEach(item=>{const content=item.querySelector(".accordion-content"),icon=item.querySelector(".accordion-item-icon-product span");item.id!==accordionId&&(item.classList.remove("active"),content?.style&&(content.style.display="none"),icon.textContent="+")});const clickedItem=document.getElementById(accordionId),clickedContent=clickedItem.querySelector(".accordion-content"),clickedIcon=clickedItem.querySelector(".accordion-item-icon-product span");clickedItem?.classList.contains("active")?(clickedItem.classList.remove("active"),clickedContent?.style&&(clickedContent.style.display="none"),clickedIcon&&(clickedIcon.textContent="+")):(clickedItem?.classList.add("active"),clickedContent?.style&&(clickedContent.style.display="block"),clickedIcon&&(clickedIcon.textContent="-"))}},mounted(){this.promoSlider()}});signInFinder.mount("#comma-product-page")};
if(document.getElementById("comma-60club")){let club60Finder=Vue.createApp({data:function(){return{pageIndex:1,pageSize:200,allProducts:[],orderList:[],productsCount:0,userId:0,isUserPending:!1,hostName:"",userPoints:0,errorMessage:"",accessToken:"",tokenExpiration:"",isErrorExists:!1,isLoading:!1,dropId:"",dropContentId:"",brand:"",windowWidth:window.innerWidth,isClubMember:!1,monthlyPurchaseInLitres:0,competitons:[],competitonsCount:0,isVisible:!1}},mounted(){if(document.addEventListener("click",this.handleClickOutside),this.getValuesFromLocalStorage(),!this.accessToken||!this.userId||this.tokenExpiration<(new Date).toISOString())window.location.href=document.getElementById("signInUrl").value;else{this.isLoading=!0;this.hostName=document.getElementById("hostName").value;axios.defaults.headers.common.Authorization=`Bearer ${this.accessToken}`;let requestBody={pageIndex:this.pageIndex,pageSize:this.pageSize,productTypeFilter:"60th Club",customerId:this.userId,isGroupByCategory:!0};this.GetUserDate();this.getProducts(requestBody);this.GetCompetitons();window.addEventListener("resize",this.handleResize)}},beforeDestroy(){window.removeEventListener("resize",this.handleResize);document.removeEventListener("click",this.handleClickOutside)},watch:{isLoading(newValue){newValue||this.$nextTick(()=>{this.handleResize()})}},methods:{handleClickOutside(event){let target=event?.target;if(target.isConnected&&(target.id||(target=event.target?.parentNode),this.dropId&&this.dropId!==target.id)){for(const select of document.querySelectorAll(".dropdown-content"))select.classList.remove("show");for(const select of document.querySelectorAll(".rewards-drop-arrow"))select.classList.remove("rotate-180deg")}},handleResize(){document.getElementById("myDiv")&&this.initChart(this.monthlyPurchaseInLitres)},isFiniteNumber(val){return isFinite(val)},initChart(value){const progressFill=document.getElementById("progressFill"),tooltip=document.getElementById("tooltip"),max=60,percentage=value/max*100;progressFill.style.width=percentage+"%";tooltip.textContent=value+" L";const progressBar=document.querySelector(".progress-bar"),barWidth=progressBar.clientWidth;let newLeft=barWidth*percentage/100+20;value>max&&(newLeft=barWidth/1+20);tooltip.style.left=`${newLeft}px`},GetUserDate(){if(this.userId){const getUserDataUrl=`${this.hostName}api/user/me`;axios.get(getUserDataUrl).then(response=>{this.monthlyPurchaseInLitres=response.data.data.monthlyPurchaseInLitres,this.isClubMember=response.data.data.isClubMember}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error.response.data.errors:error?.response?.data?error.response.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})}},enterToCompetition(itemId,selectetItemCopyId){this.isLoading=!0;const enterToCompetitionUrl=`${this.hostName}api/Giveaway/EnterToGiveaway?giveawayId=${itemId}&userId=${this.userId}`;axios.post(enterToCompetitionUrl).then(response=>{response.status==200&&response?.data?.statusCode>=200&&response?.data?.statusCode<=300?(this.GetCompetitons(),setTimeout(()=>{let element=document.getElementById(selectetItemCopyId);element&&(element.style.display="block",setTimeout(()=>{element.style.display="none"},5e3))},200)):(this.errorMessage=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors))}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error?.response?.data?.errors:error?.response?.data?error?.response?.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},getProducts(requestBody){this.isLoading=!0;const getProductsUrl=`${this.hostName}api/product/getproducts`;this.allProducts=[];axios.post(getProductsUrl,requestBody).then(response=>{if(response.status==200&&response?.data?.statusCode>=200&&response?.data?.statusCode<=300){const productList=response.data?.data?.data;this.productsCount=response.data?.data?.count;for(let i=0;i<productList.length;++i){let productGroup={category:productList[i].category,count:productList[i].category.toLowerCase()=="60th club"?productList[i].productCount:productList[i].productColorCount,isOrderedByName:!0,products:[]};for(let j=0;j<productList[i].products.length;++j)if(productList[i].products[j].productColors.length>0)for(let k=0;k<productList[i].products[j].productColors.length;++k){let sizes=productList[i].products[j].stockLevel==-1?productList[i].products[j].productSizes:productList[i].products[j].productSizes.filter(s=>s.sizeStock>0);const productObject={productId:productList[i].products[j].id,name:productList[i].products[j].name+` (${productList[i].products[j]?.productColors[k]?.color})`,description:productList[i].products[j].description,category:productList[i].category.toLowerCase(),productColorId:productList[i].products[j].productColors[k].id,imageUrl:productList[i].products[j].productColors[k]?.url??productList[i].products[j].logo,productSizes:sizes,selectedSize:sizes[0]?.size,selectedSizeId:sizes[0]?.id,productPrice:productList[i].products[j].unitPrice,productCode:productList[i].products[j].productCode,quantity:1,tc1:productList[i].products[j].tc1,tc2:productList[i].products[j].tc2,tc3:productList[i].products[j].tc3,tc4:productList[i].products[j].tc4,tc5:productList[i].products[j].tc5,tcLink:productList[i].products[j].tcLink,packSize:productList[i].products[j].packSize,maxQuantity:productList[i].products[j]?.stockLevel==-1?-1:sizes[0]?.sizeStock??productList[i].products[j].stockLevel,isMadeToOrder:productList[i].products[j]?.stockLevel==-1,freeItemQuantity:productList[i].products[j]?.freeItemQuantity,remainingFreeItemQuantity:productList[i].products[j]?.remainingFreeItemQuantity,showNotification:!1};productGroup.products.push(productObject)}else{const productObject={productId:productList[i].products[j].id,name:productList[i].products[j].name,description:productList[i].products[j].description,category:productList[i].category.toLowerCase(),imageUrl:productList[i].products[j].logo,productPrice:productList[i].products[j].unitPrice,productCode:productList[i].products[j].productCode,quantity:1,tc1:productList[i].products[j].tc1,tc2:productList[i].products[j].tc2,tc3:productList[i].products[j].tc3,tc4:productList[i].products[j].tc4,tc5:productList[i].products[j].tc5,tcLink:productList[i].products[j].tcLink,packSize:productList[i].products[j].packSize,maxQuantity:productList[i].products[j]?.stockLevel,isMadeToOrder:productList[i].products[j]?.stockLevel==-1,freeItemQuantity:productList[i].products[j]?.freeItemQuantity,remainingFreeItemQuantity:productList[i].products[j]?.remainingFreeItemQuantity,showNotification:!1};productGroup.products.push(productObject)}productGroup.products=productGroup.products.sort(function(a,b){return a.name.localeCompare(b.name)});this.allProducts.push(productGroup)}}else this.errorMessage=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors)}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error?.response?.data?.errors:error?.response?.data?error?.response?.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},GetCompetitons(){this.isLoading=!0;const getCompetitonsUrl=`${this.hostName}api/Giveaway/GetActiveGiveaways`;axios.post(getCompetitonsUrl,{pageIndex:1,pageSize:100,isActive:!0,checkUserEntrance:!0}).then(response=>{response.status==200&&response?.data?.statusCode>=200&&response?.data?.statusCode<=300?(this.competitons=response.data?.data?.data,this.competitonsCount=response.data?.data?.count):(this.errorMessage=response?.data?.errors[0]?.messages.reduce((a,b)=>a+" "+b,""),this.isErrorExists=!0,console.error("There was an error!",response?.data?.errors))}).catch(error=>{this.errorMessage=error?.response?.data?.errors?error?.response?.data?.errors:error?.response?.data?error?.response?.data:error?.message,this.isErrorExists=!0,console.error("There was an error!",error)}).finally(()=>{this.isLoading=!1})},sizeChanged(param,sizeId){param.maxQuantity!==-1&&(param.maxQuantity=param.productSizes.find(c=>c.id==sizeId).sizeStock);param.selectedSize=param.productSizes.find(c=>c.id==sizeId).size;param.selectedSizeId=sizeId},addToBasket(param){const cartItems=JSON.parse(localStorage.getItem("orders"))||[],matchedItem=cartItems.find(x=>x.order.productId===param.productId&&x.order.productColorId===param.productColorId&&x.order.selectedSizeId===param.selectedSizeId);matchedItem?matchedItem.order.quantity+=param.quantity:cartItems.push({orderId:cartItems.length+1,order:param});localStorage.setItem("orders",JSON.stringify(cartItems));eventBus.trigger("cart-updated");this.triggerNotification(param)},triggerNotification(param){param.showNotification=!0;setTimeout(()=>{param.showNotification=!1},1e3)},increaseQuantity(param){param.maxQuantity>0&&param.quantity<param.maxQuantity?++param.quantity:param.maxQuantity==-1&&++param.quantity},decreaseQuantity(param){param.quantity>1&&--param.quantity},addOrRemoveClass(clickedElement,parentName){const element=document.getElementById(parentName);element.classList.contains("hide-product-section")?(clickedElement.currentTarget.children[2].classList.remove("rotate-180deg"),element.classList.remove("hide-product-section")):(clickedElement.currentTarget.children[2].classList.add("rotate-180deg"),element.classList.add("hide-product-section"))},getValuesFromLocalStorage(){this.accessToken=localStorage.getItem("accessToken");this.tokenExpiration=localStorage.getItem("tokenExpiration");this.userId=Number(localStorage.getItem("userId"));this.userPoints=Number(localStorage.getItem("currentPoints"));this.orderList=JSON.parse(localStorage.getItem("orders"));this.isUserPending=localStorage.getItem("isPending")==="true";this.orderList||(this.orderList=[])},orderProductsByName(productGroup,index){this.allProducts[index].products=productGroup.products.reverse();productGroup.isOrderedByName=!productGroup.isOrderedByName},toggleDropdownMenu(dropContentId,dropBtnId){if(this.dropContentId&&this.dropContentId!=dropContentId){const previewsElement=document.getElementById(this.dropContentId),previewsDropBtnElement=document.getElementById(this.dropId);previewsElement.classList.contains("show")&&(previewsElement.classList.remove("show"),previewsDropBtnElement.firstElementChild.classList.remove("rotate-180deg"))}const element=document.getElementById(dropContentId),dropBtnElement=document.getElementById(dropBtnId);this.dropId=dropBtnId;this.dropContentId=dropContentId;element.classList.contains("show")?(element.classList.remove("show"),dropBtnElement.firstElementChild.classList.remove("rotate-180deg")):(element.classList.add("show"),dropBtnElement.firstElementChild.classList.add("rotate-180deg"))}}});club60Finder.mount("#comma-60club")};
//# sourceMappingURL=/sb/nmap/app-js-bundle.js.v638774343445518287