var dPicker;FieldDoctorSettings={minimumOrder:{local:2500,national:4450},deliveryFees:{local:{standard:0,orderAmountForReducedDelivery:0,reduced:0},national:{standard:550,orderAmountForReducedDelivery:6e3,reduced:0},"channel-islands":{standard:2300,orderAmountForReducedDelivery:5900,reduced:1800}},logistics_api:"https://field-doctor-server.herokuapp.com"};class FieldDoctorAPI{async getMinimumOrder(){const local=FieldDoctorSettings.minimumOrder.local,national=FieldDoctorSettings.minimumOrder.national,cart=await this.getCart();for(const cartItem of cart.items)if(cartItem.product_type.toLowerCase()=="trial"||cartItem.title.toLowerCase().includes("jubilee"))return 0;return await this.delivery.local()?local:await this.delivery.national()?national:Math.max(local,national)}async getOrderCost(){return(await fieldDoctorAPI.getCart()).total_price}async getDeliveryCost(){const cartCost=await this.getOrderCost(),reducedDeliveryLimit=await this.delivery.orderVolumeForReducedCost();return cartCost>=reducedDeliveryLimit?await this.delivery.reducedCost():await this.delivery.cost()}async getCart(){return await ShopifyAPI.getCartAsync()}get delivery(){return this._deliveryInfo?this._deliveryInfo:this._deliveryInfo=new DeliveryInformation(loadSavedPostcode())}}class DeliveryInformation{constructor(postcode=""){this.postcode=postcode}setPreferredDate(preferredDate){this.preferredDate=preferredDate,this._api_response=!1}async availableDates(){const data=await this._rawData(),dates=[];for(var i=0;i{$.getJSON(FieldDoctorSettings.logistics_api+"/order/delivery_date",{postcode:this.postcode,preferred_date:this.preferredDate},data=>{resolve(data)})})}async _makePostcodeAPICall(){return new Promise((resolve,reject)=>{$.getJSON(FieldDoctorSettings.logistics_api+"/postcode/status",{postcode:this.postcode},data=>{resolve(data)})})}_loadSavedPostcode(){}_savePostcode(){}}window.fieldDoctorAPI=new FieldDoctorAPI;function createCookie(name,value,days){var expires;if(days){var date=new Date;date.setTime(date.getTime()+days*24*60*60*1e3),expires="; expires="+date.toGMTString()}else expires="";document.cookie=encodeURIComponent(name)+"="+encodeURIComponent(value)+expires+"; path=/"}function readCookie(name){for(var nameEQ=encodeURIComponent(name)+"=",ca=document.cookie.split(";"),i=0;i{propagatePostcodeValue()});async function checkPostcode(postcode,callback,delivery_needed=!1){delivery_needed?$.getJSON(FieldDoctorSettings.logistics_api+"/order/delivery_date",{postcode,preferred_date:readCookie("delivery_date")},function(data){result=data,result.delivery_date=new Date(result.delivery_date),callback(result),$("#deliveryDatesLoading").hide(),$("#deliveryPicker").show();const event=new CustomEvent("postcode-checked",{detail:result});document.dispatchEvent(event)}):(postcode_status={valid:await new FieldDoctorAPI().delivery.local()},callback(postcode_status))}function deliveryDateToString(deliveryDate){const dateFormat={weekday:"long",month:"long",day:"numeric"};return deliveryDate.toLocaleDateString("en-GB",dateFormat)}function retrieveStoredDeliveryDate(callback){const postcode=loadSavedPostcode();checkPostcode(postcode,function(deliveryInfo){callback(postcode?deliveryDateToString(deliveryInfo.delivery_date):"")},!0)}function processPostcode(textField,checkoutID,deliveryMessageID,postcodeWarningID,successCallback){const postcode=textField.value,checkoutOptions=document.getElementById(checkoutID),postcodeWarning=$(textField).parent().find("#"+postcodeWarningID),deliveryMessage=document.getElementById(deliveryMessageID);checkPostcode(postcode,function(deliveryInfo){deliveryInfo.valid?(deliveryMessage&&(deliveryMessage.innerText="Your delivery day will be "+deliveryDateToString(deliveryInfo.delivery_date)),$(checkoutOptions).show(),$(deliveryMessage).show(),$(postcodeWarning).hide(),successCallback&&successCallback()):($(checkoutOptions).hide(),$(deliveryMessage).hide(),$({alpha:1}).animate({alpha:0},{duration:1e3,step:function(){$(textField).css("background-color","rgba(255, 206, 206,"+this.alpha+")")}})),savePostcode(postcode)},!!deliveryMessage)}function arrayRemove(arr,value){return arr.filter(function(ele){return ele!=value})}let storedDatesForManager;document.addEventListener("postcode-checked",function(event){if(checkingPostcode==!1){checkingPostcode=!0;const deliveryInfo=event.detail;let availableDates=deliveryInfo.delivery_dates;storedDatesForManager=availableDates,window.location.href.includes("/tools/")&&populateDateSelect(),deliveryInfo.valid&&postcodeCheckedTimes<1?(showDeliveryDates(availableDates),!dPicker&!window.location.href.includes("/tools/")&&(dPicker=flatpickr("#dPicker",{enable:availableDates,inline:!0,defaultDate:availableDates[0],onChange:function(selectedDates,dateStr,instance){selectDeliveryDate(selectedDates[0])},onReady:function(selectedDates,dateStr,instance){selectDeliveryDate(selectedDates[0])},onDayCreate:function(dObj,dStr,fp,dayElem){dayElem.className.includes("nextMonthDay")&&dayElem.classList.remove("nextMonthDay")}}))):($("#deliveryCalendar").hide(),deliveryDatesShown=!1)}postcodeCheckedTimes++});var deliveryDatesShown=!1;function showDeliveryDates(deliveryDates){const calendar=$("#deliveryCalendar"),calendarDays=$("#deliveryCalendarDays");calendarDays.empty();const selectedDate=readCookie("delivery_date");var selectedDateIndex=deliveryDates.indexOf(selectedDate);selectedDateIndex==-1&&(selectedDateIndex=0);for(var i=0;i
');$(calendarDay).append(''+dayName+"
"),$(calendarDay).append(''+dayOfMonth+"
"),$(calendarDay).append(''+monthName+"
"),calendarDays.append(calendarDay)}deliveryDatesShown?calendar.show():(calendar.slideDown(),deliveryDatesShown=!0)}function deliveryDateSelected(targetElement){$(targetElement).parent().children().removeClass("selected"),$(targetElement).addClass("selected");const date=$(targetElement).attr("date");createCookie("delivery_date",date,1),$.post("/cart/update.js",{attributes:{preferred_delivery_date:date}}),$("#preferred_delivery_date").val(date)}function fadeElement(target){target.style.opacity=1,_fadeElement(target)}function _fadeElement(target){(target.style.opacity-=.02)<=0?(target.style.display="none",target.style.opacity="1"):setTimeout(()=>_fadeElement(target),16)}function selectDeliveryDate(selectedDate){if(selectedDate){var currentDate=new Date(selectedDate);const offset=currentDate.getTimezoneOffset();var offsetDate=new Date(currentDate.getTime()-offset*60*1e3),fDate=offsetDate.toISOString().split("T")[0];createCookie("delivery_date",fDate,1),$.post("/cart/update.js",{attributes:{preferred_delivery_date:fDate}}),appendDeliveryDay(),$("#currentDate")[0].innerHTML=deliveryDateToString(currentDate),$("#preferred_delivery_date").val(fDate)}}function addItem(productID){jQuery.get("/cart.js",function(data,status){data.includes(productID)||jQuery.post("/cart/add.js",{form_type:"product",utf8:"true",id:productID,quantity:1}).always(function(data2){ajaxCart.load()})})}function removeSaturdayDelivery(){jQuery.post("/cart/update.js",{updates:{42782613209343:0}}).always(function(data){ajaxCart.load()})}function pushDateChangeButton(){$("#deliveryButtonContainer").css("display","inline-flex")}
//# sourceMappingURL=/cdn/shop/t/104/assets/postcode-checker.js.map