',{id:"cartDialogText"})));$('#cartDialog').dialog({'title':'Item Added to Cart','resizable':false,'modal':true,'autoOpen':false,'draggable':false,'width':'90%','height':'auto','show':'drop','classes':{'ui-dialog':'cart'}});$("#cartDialog").siblings(".ui-dialog-titlebar").children("span.ui-dialog-title").append("
");$('body').on('click','#cartDialogContinueButton',function(){$("#cartDialog").dialog("close");});$('body').on('click','#cartDialogCheckoutButton',function(){viewCart();});}
function viewCart(){var sPath=(window.location.pathname).toLowerCase();if(sPath=="/store/viewcart.php"||sPath=="/store/viewcart/"){return false;}else{window.location.href="/store/viewcart/";}}
function updateCartItems(cartType,focusTarget,removedRowID){if(cartType==undefined){cartType="store";}
if(focusTarget==undefined){focusTarget=null;}
if(removedRowID==undefined){removedRowID=false;}
blackoutActivity(true);$.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){if(r.status!="error"){if(typeof r.allowed!=="undefined"){$('#checkout-restrictions').text(JSON.stringify(r.allowed));updateCheckoutRestrictions();}
var cartNotifications=$("#cartAlertArea").children(".cartRemovalAlert").last().clone();$('.store.viewcart #cartItems').html(htmlSanitize(r.html)).ready(function(){updateSubtotal();blackoutActivity(false);if(typeof updateCartBadge==='function'){updateCartBadge();}
if(typeof updateItemCount==='function'){updateItemCount();}
if(r.cartAlerts){r.cartAlerts.forEach(function(alert){createCartAlert(alert.message.replace(/-/g,"‑"),alert.lineNum);});}
if(removedRowID!=false){var row=$(cartNotifications).data("row");if(row==1){if($('.store.viewcart #cartItems .row .partnumber').length==0){$("#cartItems").append(cartNotifications);}else
$("#cartItems .row[data-row=1]").before($(cartNotifications));}else{var next=$("#cartItems .row[data-row="+($(cartNotifications).data("row")-1)+"]");$(next).after($(cartNotifications));}
if($('.store.viewcart #cartItems .row .partnumber').length==0){$("#fullSubtotalHolder, #subtotalHolder").html("$0.00");$("#subtotalHolder").data("subtotal",0);if($("#shippingInput").css("display")=="none"){$('.shippingEstimate.row').addClass('priceShown');$("#shippingPrice").html("$0.00");}}
$(cartNotifications).blur(function(){if($("#blackout:visible").length==0){$(this).fadeOut(500);showOrHideCartTable();}
else{$(this).focus();}});$(cartNotifications).focus();}
else{showOrHideCartTable();}
$("#cartAlertArea").children(".cartRemovalAlert").remove();});blackoutActivity(false);}},data:{action:"view_cart",rawObject:"false"}});}
async function loadSavedForLater(){$.ajax({url:"/assets/php/cart/carthelper.php",data:{action:"loadSavedForLater"},success:function(r){if(r.success&&r.html){$('#saved-for-later').html(htmlSanitize(r.html));$(".saveforlater, .savelaterlist").show();}},failure:function(r){console.error(r);}});}
function showOrHideCartTable(){if($('.store.viewcart #cartItems .row .partnumber').length==0){if($('#cartTable').css("display")=="block"||$('#cartTable').data('fading-in')){fadeOutCartTable();}}
else{if($('#cartTable').css("display")=="none"||$('#cartTable').data('fading-out')){fadeInCartTable();}}}
function fadeInCartTable(){$('#cartTable, #cartBottom, #mobileCheckoutButtonsTop .mobileTop, #emptyCart').stop(true);$('#cartTable').data('fading-in',true);$('#emptyCart').fadeOut(250,function(){$('#cartBottom').fadeIn(250).ready(function(){$('#cartTable, #mobileCheckoutButtonsTop .mobileTop').fadeIn('slow',function(){$('#cartTable').data('fading-in',false);});});});}
function fadeOutCartTable(){$('#cartTable, #cartBottom, #mobileCheckoutButtonsTop .mobileTop, #emptyCart').stop(true);$('#cartTable').data('fading-out',true);$('#cartTable, #cartBottom, #mobileCheckoutButtonsTop .mobileTop').fadeOut(250,function(){$('#emptyCart').fadeIn(250,function(){$('#cartTable').data('fading-out',false);});});}
async function updateCheckoutInfo(){const res=await $.ajax({url:'/assets/php/cart/checkouthelper.php',data:{action:'updateCheckoutItems'}});let{cartInfo,cartItems}=res.message;$('#cartTable').html(cartItems.html);$('#cart_json').html(JSON.stringify(cartInfo));$("#tableholder.active").css({"max-height":$("#tableholder.active").prop("scrollHeight")+30});if($(".store.checkout").length>0)updateSubtotal();}
function updateCart(rowID,callback){var row=$(".row[data-row="+rowID+"]");var cartLineID=$(row).data("rowid");var lineQty=0;$('.lineQty[data-rowid='+cartLineID+']').each(function(i,e){let qty=parseInt($(e).val());lineQty+=(qty===0?0:qty||1);});var partnumber=$(row).find('.partnumber').text().split('#')[1].trim(' ');if(lineQty!=""&&lineQty>0){return $.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){if(r.readyState==4)errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){var backorderQty1=r.backorderQty1??0;var backorderQty2=r.backorderQty2??0;var backorderMessage=r.backorder_message;var buildToOrder=(r.build_to_order=="true");var expectedAvailDate=r.expectedAvailDate;var qty=r.lineQty;var message=r.message;var promoPrice=r.promoPrice;var promoCode=r.promo_code;var price=r.price;fireWebsiteEvent("cart_update");if(r.status==="redirect"){window.location.href=orderErrorUrlPrefix+encodeURIComponent(r.message);return;}
if(r.status==="error"){$('.notificationArea[data-row='+rowID+'] .errorMessage').html("Your cart has been adjusted to match current inventory");if($('.notificationArea[data-row='+rowID+']').css("display")!="flex"){$('.notificationArea[data-row='+rowID+']').css("display","flex");$('#cartAlertArea').css("display","flex");if(message.includes(partnumber)){message=message.substring(0,message.indexOf(partnumber))+"
"+message.substring(message.indexOf(partnumber),message.indexOf(partnumber)+partnumber.length)+" "+message.substring(message.indexOf(partnumber)+partnumber.length);}
if(message!="That item is no longer in your cart."){createCartAlert(message.replace(/-/g,"‑"),rowID);}}
if(qty<=0){updateCartItems();return;}}else{closeCartNotification(rowID);const cartLines=$('.row[data-rowid='+cartLineID+']');const backorderQuantities={0:backorderQty1,1:backorderQty2};for(i in backorderQuantities){if(backorderQuantities[i]<=0){$(cartLines[i])?.find('.backorderline').html("");}else{let backorderHtml=`Qty Backordered: ${backorderQuantities[i]}`;if(backorderMessage!=null){backorderHtml+=`
${backorderMessage}`;}else{if(buildToOrder===true&&expectedAvailDate!="0"){backorderHtml+="
Build to order";}
if(expectedAvailDate!="0"){backorderHtml+=`
Estimated Shipping Date: ${expectedAvailDate}`;}}
$(cartLines[i])?.find('.backorderline').html(htmlSanitize(backorderHtml));}}}
if(r.qty_over_discount>0){var promoRows=$(".row[data-rowid="+cartLineID+"]");if($(promoRows).length==1){blackoutActivity(true);updateCartItems();return;}
$(promoRows).each(function(i,e){var subtotal=promoPrice*r.discountQty;if(i==0){$(e).find(".inputQty").val(r.discountQty);$(e).find(".cartLineSubtotal").text('$'+formatCurrency(subtotal));$(e).find(".promo_price").text('$'+formatCurrency(promoPrice));}else{$(e).find(".inputQty").val(r.qty_over_discount);$(e).find(".cartLineSubtotal").text('$'+formatCurrency(r.qty_over_discount*price));}});}else{var subtotal=promoCode?promoPrice*qty:price*qty;var splitRows=$(".row[data-rowid="+cartLineID+"]");if($(splitRows).length>1){$(splitRows).eq(1).remove();rowID=$(splitRows).eq(0).data("row");}
if(!r.promo_code&&$(splitRows).eq(0).find(".promo_price").length>0){blackoutActivity(true);updateCartItems();}
$('#lineQty'+rowID).val(qty);$('#orgLineQty'+rowID).val(qty);$('#itemPrice'+rowID).text('$'+formatCurrency(price));$('#promoPrice'+rowID).text('$'+formatCurrency(promoPrice));$('#lineSubtotal'+rowID).text('$'+formatCurrency(subtotal));$('#cartItems .row[data-row='+rowID+']').data('qty',qty);}
updateSubtotal();if(typeof updateCartBadge==='function'){updateCartBadge();}
if(typeof updateItemCount==='function'){updateItemCount();}
if(typeof callback==='function'){callback();}},data:{action:"update_cart",row:cartLineID,lineqty:lineQty}});}else if(lineQty<=0&&lineQty!==""){removeItemFromCart(rowID);}else if(lineQty!=""){$('.inputQty'+rowID).val('1');$('#errorDialog').dialog("option","title",'Alert');$('#errorDialog').dialog("option","width","70%");$('#errorDialog').dialog("option","height",'auto');$('#errorDialogText').replaceWith($('
',{id:"errorDialogText",style:"text-align:left;",text:"Please enter a valid Qty."}).prepend($('',{class:"ui-icon ui-icon-alert",style:"float:left; margin:0 7px 20px 0"})));$("#errorDialog").dialog("option","show",'drop');$("#errorDialog").dialog("option","buttons",{'Close':function(){$(this).dialog("close");updateCart(rowID,callback);$('#lineQty'+rowID).focus();}});$("#errorDialog").dialog("open");}
return null;}
function closeCartNotification(rowID){$('.notificationArea[data-row='+rowID+']').fadeOut("slow");$('.cartNotificationMessage[data-row='+rowID+']').fadeOut("slow",function(){$(this).remove();});}
function createCartAlert(message,rowID,type){if(type==undefined){type="default";}
let target=".cartNotificationMessage";if(rowID)target+="[data-row='"+rowID+"']";$(target).remove();var html="";if(type=="default")html=''+message+"
";else html=''+message+"
";$('#cartAlertArea').append(htmlSanitize(html));$('body').on("click",".cartNotificationMessage .icon",function(){$('.cartNotificationMessage').fadeOut("slow");})}
function updateSubtotal(){var PostalCode=$('#ShippingPostalCode').val();$.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){if(r.status!="error"&&r.status!="errorItems"){var promo_savings=parseFloat(r.promo_savings);var subtotal=parseFloat(r.subtotal);if($(".store.checkout").length>0){if(ACCEPTAFFIRM&&subtotal>=250){$('.checkout_base.checkoutBtn').parent().parent().parent().show();$(".selectText:contains(Affirm)").closest(".listelement").show();$('#affirm_button').show();}else{$(".selectText:contains(Affirm)").closest(".listelement").hide();if(!ACCEPTCREDITCARD){$('.checkout_base.checkoutBtn').parent().parent().parent().hide();}
$('#affirm_button').hide();}
const hide=subtotal<=0;if(hide){const payOptions=$(".pay_with_list").children(":visible").not(":contains(PayPal)");if(payOptions.length>0){$($(payOptions[0]).find("input")).prop("checked",true).trigger("change");}}
$(".selectText:contains(PayPal)").closest(".listelement").toggleClass("hide",hide);}
$('#subtotalHolder').text('$'+formatCurrency(subtotal));$('#subtotalHolder').data("subtotal",subtotal);if(promo_savings===null||promo_savings===undefined||promo_savings===0.00){$('.cartprice').css("text-decoration","none");$("#promo_row").remove();}else{if($('#promo_savings').exists()){$('#promo_savings').html('($'+formatCurrency(promo_savings)+')');}else{$('.promocodediv').closest('tr').before($('',{id:"promo_row"}).append($('',{colspan:2}).append($('',{id:"promoTitle",style:"float:left;",text:"Promo Savings"})).append($('',{id:"promo_savings",style:"float:right",text:`$${formatCurrency(promo_savings)}`}))));}}
if($(".store.checkout").length>0)$(".activedeliveryoption").click();if(PostalCode!=""&&PostalCode!=null&&PostalCode!="undefined"){estimateShipping();}}else{if(r.status!="errorItems")
errorDialogAlert(r.message);subtotal=0;$('#subtotalHolder').text('$'+formatCurrency(subtotal));$('#subtotalHolder').data("subtotal",subtotal);$('#fullSubtotalHolder').html('$'+formatCurrency(subtotal));}
updateCheckoutRestrictions();},data:{action:"update_subtotal"}});}
function removeItemFromCart(rowID){let $rowObj=$(".row[data-row="+rowID+"]");var row=$rowObj.data("rowid");var lineQty=Math.max(0,$('#lineQty'+rowID).data('currentval')??$('#lineQty'+rowID).text());if(isNaN(lineQty))lineQty=1;let promoCode=$rowObj.data("promo-code")||null;let itemPrice=$rowObj.data("fullprice")||null;let discount=$rowObj.data("discount")||null;jQuery.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){errorDialogAlert("Error Occured: "+r.responseText);$("#loaderDialog").dialog("close");},success:function(r){$("#loaderDialog").dialog("close");if(r.status=="success"){fireWebsiteEvent('cart_remove');rowID=$(".row[data-rowid="+row+"]").eq(0).data("row");if(r.partnumber){ecRemoveProductFromCart({'partnumber':r.partnumber,'quantity':lineQty});const name=$(".row[data-rowid="+row+"]").data("partname");const categories=$(".row[data-rowid="+row+"]").data("categories").split("/");const brand=$(".row[data-rowid="+row+"]").find('.product_brand').text();let itemdata={"item_id":r.partnumber.toString(),"item_name":name,"affiliation":DIVISION+" Online Store","coupon":promoCode,"currency":"USD","discount":discount?parseFloat(discount):null,"index":null,"item_brand":brand,"item_category":categories[0]||null,"item_category2":categories[1]||null,"item_category3":categories[2]||null,"item_category4":categories[3]||null,"item_category5":categories[4]||null,"item_list_id":null,"item_list_name":null,"item_variant":null,"price":itemPrice?parseFloat(itemPrice):null,"quantity":parseInt(lineQty)};ga4event({"event":"gtmEcomEvent","event_name":"remove_from_cart","non_interaction_hit":false,"ecommerce":{"items":[itemdata]}});createCartAlert("Item "+htmlSanitize(r.partnumberHTML)+" removed from cart ",rowID,"remove");}
updateCartItems(undefined,undefined,rowID);}else{errorDialogAlert(r.message);}},data:{action:"remove_from_cart",row:row,lineqty:lineQty}});}
function estimateShipping(shipMethod=null){blackoutActivity(true);var PostalCode=$('#ShippingPostalCode').val();var countryCode=$('#ShippingCountry').val();var ShippingMethod=shipMethod;var subTotal=parseFloat($('#subtotalHolder').data("subtotal"));var shipAddress=$.trim($('#ShippingAddress').val());var shipAddress2=$.trim($('#ShippingAddress2').val());var shipCity=$.trim($('#ShippingCity').val());var shipState=$.trim($('#ShippingState').val());var ShippingOptions=$(".deliveryvalue").map(function(){return $(this).text();}).get();$.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){blackoutActivity(false);},success:function(r){if(r.success){lastValidCountry=countryCode;lastValidPostalCode=PostalCode;$("#ShippingCountry").siblings(".invalidinput").hide();if($('#ShippingPostalCode').hasClass("invalidborder")){$('#ShippingPostalCode').removeClass("invalidborder");$('#ShippingPostalCode').parent().find("label").html("");}
var salesTax=parseFloat(r.salesTax);var subtotal=parseFloat(subTotal);let total=subtotal+salesTax+r.shippingCost;total=formatCurrency(total,false);$('#shippingHandling').val(formatCurrency(r.shippingCost,false));$('#shippingInput').hide();$('.viewcart #ShippingCountry').hide();$('.shippingEstimate.row').addClass('priceShown');if(r.shippingCost==0.00){$('#shippingPrice').html('Free');$('.store.checkout #shHolder, .store.confirm #shHolder').html('Free');$('#fullSubtotalHolder').text("$"+formatCurrency(subtotal));}else{$('#shippingPrice').html('$'+formatCurrency(r.shippingCost)+'');$('.store.checkout #shHolder, .store.confirm #shHolder').html('$'+formatCurrency(r.shippingCost)+'');}
$('#salesTax').val(formatCurrency(salesTax,false));$('#salesTaxHolder').html('$'+formatCurrency(salesTax)+'');$("#taxCode").val(r.taxCode);$('#total').val(formatCurrency(total,false));$('#totalHolder').css("font-weight","bold");$('#totalHolder').html('$'+formatCurrency(total)+'');$('#fullSubtotalHolder').html('$'+formatCurrency(total)+'');$('#cartSH').remove();$('#cartSalesTax').remove();$('#cartTotal').remove();$('#form').append([$(' ',{type:"hidden",id:"cartSH",name:"cartSH",value:r.shippingCost}),$(' ',{type:"hidden",id:"cartSalesTax",name:"cartSalesTax",value:salesTax}),$(' ',{type:"hidden",id:"cartTotal",name:"cartTotal",value:total})]);if(!($(".deliveryoption").first().text()).includes("Truck Freight")&&($(".store.checkout").length>0||$(".store.confirm").length>0)){if(r.SaturdayOption!=null){if(typeof r.SaturdayOption=="string"){let $sat=$(".deliveryvalue:contains(SAT)");if(r.SaturdayOption=="SAT Failed"){$sat.parent().hide();if($sat.parent().hasClass("activedeliveryoption"))
$(".deliveryoption").first().click();}else{$sat.siblings(".deliverycost").text("$"+r.SaturdayOption);$sat.parent().show();}}else{saturdayShipping=(r.SaturdayOption['01']||r.SaturdayOption[0]||"TBA");}}
var holder={};let freeShipCheck=r.cartinfo.every((v)=>{return(v.free_shipping_eligible).toString()=="true";});$(".deliveryoption").each(function(i,e){var num=$(e).children(".deliveryvalue").text();if(r.allOptions!=null&&num in r.allOptions){$(e).children(".deliverycost").text('$'+formatCurrency(r.allOptions[num])+'');$(e).show();}else if($(e).children(".deliveryvalue").text()!="SAT"){$(e).hide();}});if(!r.allOptions['03']&&freeShipCheck)
holder["03"]="Free";$(".deliveryvalue").each(function(i,e){$(e).siblings(".deliverycost").text(holder[$(e).text()]);});$(".deliverycost").hide().css("visibility","visible").fadeIn(250);}else{$(".deliveryoption").children(".deliverycost").text('$'+formatCurrency(r.shippingCost)+'');$(".deliverycost").hide().css("visibility","visible").fadeIn(250);}}else{if(window.location.pathname==='/store/orderconfirm/'&&r.error==='postal_code_mismatch'){window.location=orderErrorUrlPrefix+encodeURIComponent(r.message);return;}else{if($(".store.confirm").length>0){$("#ShippingUnavailable").children(".invalidinput").fadeIn(250);}
if(r.problem){invalidInputCart("#"+r.problem,r.message,false);}else if(r.message){invalidInputCart("#ShippingPostalCode",r.message,true);}else{invalidInputCart("#ShippingPostalCode","Shipping cannot be calculated at this time",true);}
disableDeliveryOptions();}}
blackoutActivity(false);},data:{action:"get_shipping_rate",postalCode:PostalCode,ShippingMethod:ShippingMethod,subtotal:subTotal,ShippingAddress:shipAddress,ShippingAddress2:shipAddress2,ShippingCity:shipCity,ShippingState:shipState,ShippingCountry:countryCode,ShippingOptions:ShippingOptions}});}
function disableDeliveryOptions(){$(".deliveryoption").addClass("optionsdisabled");$(".deliveryoption").removeClass("activedeliveryoption");$(".deliverycost").css({"visibility":"hidden"});$('#shippingHandling').val('');$('.store.checkout #shHolder, .store.confirm #shHolder').html('$---.--');$('#shTitle').html('Shipping & Handling');$('#salesTax').val('');$('#salesTaxHolder').html('$---.--');$("#taxCode").val('');$('#total').val('');$('#totalHolder').html('$---.--');}
function updateShipping(){if($("#ShippingMethod").length>0)
shipMethod=$("#ShippingMethod").val();else if($(".activedeliveryoption").length>0)
shipMethod=$(".activedeliveryoption").children(".deliveryvalue").text();if(shipMethod==""){$('#shippingHandling').val('');$('.store.checkout #shHolder, .store.confirm #shHolder').html('$---.--');$('#shTitle').html('Shipping & Handling');$('#salesTax').val('');$('#salesTaxHolder').html('$---.--');$('#total').val('');$('#totalHolder').html('$---.--');}else{estimateShipping(shipMethod);}}
function getShippingMethods(country,callback){$.ajax({url:"/assets/php/cart/carthelper.php",success:function(r){let html=$('');for(const key in r.methods){let element=r.methods[key]
method=$('
',{"class":"deliveryoption optionsdisabled"}).append([$('
',{"class":"deliverytext"}).text(element.desc),$('',{"class":"deliveryvalue"}).text(element.code),$('',{"class":"deliverycost"}).text("TBA")]);if(element.code=="SAT")
method.hide();html.append(method)}
$('#checkoutShippingInfo .deliveryoptions').html($(html).html());if(callback)
callback(r.methods);},data:{"action":"get_shipping_methods","country":country}});}
function formatCurrency(num,showThousands){if(showThousands==undefined){showThousands=true;}
if(num==null){num="N/A";}
num=num.toString().replace(/\$|\,/gi,'');if(isNaN(num))num="0";sign=(num==(num=Math.abs(num)));num=Math.floor(num*100+0.50000000001);cents=num%100;num=Math.floor(num / 100).toString();if(cents<10)
cents="0"+cents;for(var i=0;i=0;i=i-2){CheckNumbers[index]=(parseInt(CardNumber.charAt(i))*2);index=index+1;}
var CheckSum=0;for(var iCount=0;iCount9)
CheckSum+=parseInt((CheckNumbers[iCount]+"").charAt(0))+parseInt((CheckNumbers[iCount]+"").charAt(1));else
CheckSum+=CheckNumbers[iCount];}
var OriginalSum=0;for(var y=CardLength-1;y>=0;y=y-2){OriginalSum=OriginalSum+parseInt(CardNumber.charAt(y));}
if((OriginalSum+CheckSum)%10==0)
return true;else
return false;}
function createErrorDialog(){if(!$('#errorDialog').exists()){const $s=$('',{id:"errorDialog",style:"display:none;"}).append($('
',{id:"errorDialogText",style:"text-align:left;",text:"There has been an error!"}).prepend($('',{class:"ui-icon ui-icon-alert",style:"float:left; margin:0 7px 20px 0"})))
$('body').append($s);$("#errorDialog").dialog({resizable:false,title:'Alert',height:'auto',modal:true,autoOpen:false,draggable:false,classes:{'ui-dialog':'cart errorDialog'},buttons:{"Close":function(){$(this).dialog("close");},Cancel:function(){$(this).dialog("close");}},open:function(){$('body').css('overflow','hidden');},close:function(){$('body').css('overflow','auto');}});}}
function errorDialogAlert(message,focusInput,title,closeCallback){if(!$('#errorDialog').exists()){createErrorDialog();}
if(title==undefined)title="Alert";$('#errorDialog').dialog("option","title",title);$('#errorDialog').dialog("option","width","70%");$('#errorDialog').dialog("option","height",'auto');$('#errorDialogText').replaceWith($('',{id:"errorDialogText",style:"text-align:left;"}).append($('',{class:"ui-icon ui-icon-alert",style:"float:left; margin:0 7px 0 0;"})));$('#errorDialogText').append($('',{text:message}));$("#errorDialog").dialog("option","show",'drop');if(typeof(focusInput)!='undefined'&&focusInput!=null){$("#errorDialog").dialog("option","buttons",{'Close':function(){$(this).dialog("option","hide",'explode');$(this).dialog("close");$('#'+focusInput).focus();if(typeof(closeCallback)==='function'){closeCallback();}}});}else{$("#errorDialog").dialog("option","buttons",{'Close':function(){$(this).dialog("option","hide",'explode');$(this).dialog("close");if(typeof(closeCallback)==='function'){closeCallback();}}});}
$('#errorDialog').dialog('option','position','center');$("#errorDialog").dialog("open");hideDrawer();}
function createLoaderDialog(){if(!$('#loaderDialog').exists()){const $s=$('',{id:"loaderDialog",style:"display:none;"}).append($('
',{id:"loaderDialogText",style:"text-align:left;"}))
$('body').append($s);}}
function loaderDialog(title){title=title||"Loading";if(!$("#loaderDialog").exists()){createLoaderDialog();}
var dialog=$("#loaderDialog");dialog.dialog({resizable:false,height:"auto",width:50,modal:true,draggable:false,title:title});dialog.activity();}
function createCustomerDialog(){if(!$('#custDialog').exists()){const $s=$('
',{id:"custDialog",style:"display:none;"}).append($('
',{id:"custDialogText",style:"text-align:left;"}))
$('body').append($s);$("#custDialog").dialog({resizable:false,title:'Alert',height:'auto',modal:true,autoOpen:false,draggable:false,classes:{'ui-dialog':'cart'},buttons:{"Close":function(){$(this).dialog("close");},Cancel:function(){$(this).dialog("close");}},open:function(){$('body').css('overflow','hidden');},close:function(){$('body').css('overflow','auto');}});}
else{$("#custDialog #custDialogText").empty();}}
function customerDialogAlert(message){if(!$('#custDialog').exists()){createCustomerDialog();}
$('#custDialog').dialog("option","title",'Alert');$('#custDialog').dialog("option","width","90%");$('#custDialog').dialog("option","height",'auto');$('#custDialogText').replaceWith($('
',{id:"custDialogText",style:"text-align:left;"}).text(message).prepend($('',{class:"ui-icon ui-icon-alert",style:"float:left; margin:0 7px 20px 0;"})));$("#custDialog").dialog("option","show",'drop');$("#custDialog").dialog("option","buttons",{'Close':function(){$(this).dialog("option","hide",'explode');$(this).dialog("close")}});$("#custDialog").dialog("open");}
function radioSelectorDrawer(message,options,title){if(typeof message==='string'){message=[message];}
let div=$('');for(const m of message){div.append($('
').text(m));}
message=div;radioSelectorOnConfirm={};const radioGroup=$('
',{class:'radio-group'});let i=0;for(let option of options){if(typeof option==='string'){option={value:option};}
if(typeof option.onConfirm==='function'){radioSelectorOnConfirm[i]=option.onConfirm;}
let selectorId='radioSelectorDrawer'+i;radioGroup.append($('
',{class:'radio-opt'}).append($('
',{type:'radio',id:selectorId,value:i++,name:'radioSelectorDrawer',checked:i===1})).append($('
',{for:selectorId,text:option.value})));}
const html=`
${message.prop('outerHTML')}
${radioGroup.prop('outerHTML')}
Confirm
`;showDrawer(title,html);}
function selectorDrawer(message,options,title='Selector',buttons={}){if(typeof message==='string'){message=[message];}
let div=$('');for(const m of message){div.append($('
').text(m));}
message=div;let $buttonHtml=null;if(Object.keys(buttons).length>0){$buttonHtml=$('
',{class:"buttons"});if(buttons.confirm){onSelectorConfirm=buttons.confirm.onClick;const confirmText=$('
').text(buttons.confirm.text?buttons.confirm.text:'Confirm');$buttonHtml.append($('',{class:"primary-btn selector-confirm",name:"confirm"}).html(confirmText.prop('outerHTML')))}
if(buttons.dismiss){onSelectorDismiss=buttons.dismiss.onClick;const dismissText=$('').text(buttons.dismiss.text?buttons.dismiss.text:'Dismiss');$buttonHtml.append($('',{class:"secondary-btn selector-dismiss",name:"confirm"}).html(dismissText.prop('outerHTML')))}}
let optionsSelector=$('',{class:'selector'});let i=0;for(let option of options){optionsSelector.append($('').val(i++).text(option));}
let button=$buttonHtml??'';if(button){button=htmlSanitize(button.html());}
const html=`
${message.prop('outerHTML')}
${optionsSelector.prop('outerHTML')}
${button}
`;showDrawer(title,html);}
function checkout(pay_option){if(pay_option===undefined){pay_option="card";}
var postalCode=lastValidPostalCode;var country=lastValidCountry;blackoutActivity(true);$.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){blackoutActivity(false);errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){if(r.status!="error"){if(r.status=="successUpdate"){blackoutActivity(false);errorDialogAlert(r.message);updateCartItems();}else{if(r.products){ecBeginCheckout(r.products,pay_option);let items=r.products.map((p)=>{return{name:p.name,partnumber:p.partnumber,price:parseFloat(p.price),quantity:parseInt(p.quantity)};});fireWebsiteEvent("begin_checkout",{items:items});ga4BeginCheckout(r.products);}
let el={};if(postalCode){el['ShippingPostalCode']=postalCode;}
if(country){el['ShippingCountry']=country;}
if(pay_option==='affirm'){el['pay_with']='affirm';}
window.location.href='/store/checkout/'+buildUri(el);}}else{blackoutActivity(false);errorDialogAlert(r.message,null,"Checkout Error",()=>{location.reload();});}},data:{action:"checkout_check"}});}
function getPayPalSDKButton(){if(typeof paypal!="object"){return false;}
return paypal.Buttons({style:{color:'white',shape:'rect',height:48},onClick:async(data,actions)=>{$('.wrapper').css('pointerEvents','none');const allowed=await isValidCheckoutMethod('paypal');if(!allowed){return{status:"error",message:"Your cart contains items that cannot be purchased with PayPal."}}
const res=await checkoutPayPalPromise();if(res.status==='error'||res.status==='successUpdate'){paypalErrorHandler(res.message);return actions.reject();}
if(res.products){ecBeginCheckout(res.products,'paypal');let items=res.products.map(({name,partnumber,price,brand,quantity})=>{return{name,partnumber,price:parseFloat(price),brand,quantity:parseInt(quantity)};});fireWebsiteEvent('begin_checkout',{items});ga4BeginCheckout(res.products);}
return actions.resolve();},createOrder:async(data,actions)=>{const res=await processPayPalPromise();if(!res||!res.success){throw res.message;}
$('.wrapper').css('pointerEvents','auto');return res.message;},onApprove:async(data,actions)=>{processingPayPalDisplay();const res=await fetch('/assets/php/cart/restapi/paypalresthelper.php',{method:'post',headers:{'content-type':'application/json'},body:JSON.stringify({action:'getOrder',orderId:data.orderID})});const resJson=await res.json();window.location.href=`/store/orderconfirm/?token=${encodeURIComponent(resJson.orderId)}`;},onCancel:(data)=>{if(!data.orderID){return;}
return cancelPayPalPromise(data.orderID);},onError:paypalErrorHandler});}
function paypalErrorHandler(err){blackoutActivity(false);$('.wrapper').css('pointerEvents','auto');const msg=(typeof err==='string')?err:'An unknown error occurred.';errorDialogAlert(msg);if($('.store.viewcart').length>0)updateCartItems();}
function checkoutPayPalPromise(){return new Promise(function(resolve,reject){$.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){reject(r);},success:function(r){resolve(r);},data:{action:"checkout_check"}});});}
function isShippingInfoSet(){list=[];var valid=true;if($('#email').val()==""){list.push({"element":$("#email"),"message":"Enter email"});valid=false;}
if(!isEmail($('#email').val())){list.push({"element":$("#email"),"message":"Enter valid email. E.g. johndoe@gmail.com"});valid=false;}
if($('#ShippingFirstName').val()==""){list.push({"element":$("#ShippingFirstName"),"message":"Enter first name"});valid=false;}
if($('#ShippingLastName').val()==""){list.push({"element":$("#ShippingLastName"),"message":"Enter last name"});valid=false;}
if($('#ShippingAddress').val()==""){list.push({"element":$("#ShippingAddress"),"message":"Enter shipping address"});valid=false;}
if(/^(?:Post(?:al)? (?:Office )?|P[. ]?O\.? )?Box/i.test($.trim($('#ShippingAddress').val()))){list.push({"element":$("#ShippingAddress"),"message":"We Cannot Ship To PO Boxes, Sorry For the Inconvenience"});valid=false;}
if(/^POBOX/i.test($('#ShippingAddress').val())){list.push({"element":$("#ShippingAddress"),"message":"We Cannot Ship To PO Boxes, Sorry For the Inconvenience"});valid=false;}
if($('#ShippingCity').val()==""){list.push({"element":$("#ShippingCity"),"message":"Enter shipping city"});valid=false;}
if($('#ShippingState').val()==""){list.push({"element":$("#ShippingState"),"message":"Enter shipping state"});valid=false;}
if($('#ShippingPostalCode').val()==""){list.push({"element":$("#ShippingPostalCode"),"message":"Invalid postal code"});valid=false;}
if($('#ShippingPhone').val()==""){list.push({"element":$("#ShippingPhone"),"message":"Enter shipping phone number"});valid=false;}
if($('.activedeliveryoption').length==0){valid=false;}
invalidInputList(list);if(valid){var ShippingPhone=$('#ShippingPhone').val().split(' ').join('');re=/[^0123456789]+/gi;ShippingPhone=ShippingPhone.replace(re,"");$('#ShippingPhone').val(ShippingPhone)
return true;}
return false;}
function isBillingInfoSet(){list=[];var valid=true;if($('#BillingFirstName').val()==""){list.push({"element":$('#BillingFirstName'),"message":"Enter first name"});valid=false;}
if($('#BillingLastName').val()==""){list.push({"element":$('#BillingLastName'),"message":"Enter last name"});valid=false;}
if($('#BillingAddress').val()==""){list.push({"element":$('#BillingAddress'),"message":"Enter billing address"});valid=false;}
if($('#BillingCity').val()==""){list.push({"element":$('#BillingCity'),"message":"Enter billing city"});valid=false;}
if(!$('#BillingCountry').val()){list.push({"element":$('#BillingCountry'),"message":"Enter billing country"});valid=false;}
if($('#BillingState').val()==""){list.push({"element":$('#BillingState'),"message":"Enter billing state"});valid=false;}
if($('#BillingPostalCode').val()==""){list.push({"element":$('#BillingPostalCode'),"message":"Invalid postal code"});valid=false;}
if($('#BillingPhone').val()==""){list.push({"element":$('#BillingPhone'),"message":"Enter billing phone number"});valid=false;}
if(valid){var BillingPhone=$('#BillingPhone').val().split(' ').join('');re=/[^0123456789]+/gi;BillingPhone=BillingPhone.replace(re,"");$('#BillingPhone').val(BillingPhone)
return true;}
invalidInputList(list);return false;}
function billingSame(){if($('#BillingSame').is(":checked")){$('#billingInfo').fadeOut(500);if(isShippingInfoSet()){$('#BillingPhone').val($('#ShippingPhone').val().split(' ').join(''));if($('#BillingCountry').val()!==$('#ShippingCountry').val()){$('#BillingCountry').val($('#ShippingCountry').val()).trigger('change');}
$('#BillingFirstName').val($('#ShippingFirstName').val());$('#BillingLastName').val($('#ShippingLastName').val());$('#BillingAddress').val($('#ShippingAddress').val());$('#BillingAddress2').val($('#ShippingAddress2').val());$('#BillingCountry').val($('#ShippingCountry').val());$('#BillingCountry').change();$('#BillingCity').val($('#ShippingCity').val());$('#BillingState').val($('#ShippingState').val());$('#BillingPostalCode').val($('#ShippingPostalCode').val());}else{$('#BillingPhone').val('');if($('#BillingCountry').val()!=='US'){$('#BillingCountry').val('US').trigger('change');}
$('#BillingFirstName').val('');$('#BillingLastName').val('');$('#BillingAddress').val('');$('#BillingAddress2').val('');$('#BillingCountry').val('');$('#BillingCity').val('');$('#BillingState').val('');$('#BillingPostalCode').val('');}}else{$('#BillingPhone').val('');if($('#BillingCountry').val()!=='US'){$('#BillingCountry').val('US').trigger('change');}
$('#BillingFirstName').val('');$('#BillingLastName').val('');$('#BillingAddress').val('');$('#BillingAddress2').val('');$('#BillingCountry').val('');$('#BillingCity').val('');$('#BillingState').val('');$('#BillingPostalCode').val('');$('#billingInfo').fadeIn(500);}}
function pay_with(){if($("input[name=pay_with_name]:radio").length==0){invalidInputCart($('#pay_with_div'),"The items in your cart cannot be purchased together due to payment restrictions. See the cart page for more information.",false);}
else{$('#pay_with_div').removeClass("invalidborder").siblings(".invalidinput").fadeOut(250);}
switch($("input[name=pay_with_name]:radio:checked").val()){case"affirm":checkAffirmCountry();$('#card_info_table').hide();$('#pay_button').hide();$("#paypal-button-container").hide();$('#affirm_button').show();$("#form").attr("action","");$("#form").attr("method","");$("#form").attr("onsubmit","checkoutHandler()");break;case"paypal":$('#card_info_table').hide();$('#pay_button').hide();$('#affirm_button').hide();$("#paypal-button-container").show();$("#form").attr("action","");$("#form").attr("method","");$("#form").attr("onsubmit","checkoutHandler()");break;default:$('#affirm_button').hide();$("#paypal-button-container").hide();$('#card_info_table').show();$('#pay_button').show();$("#form").attr("action","/store/checkout.php");$("#form").attr("method","POST");$("#form").attr("onsubmit","");break;}}
async function paymentCheck(){if($('#pay_button').prop('disabled')||$('#pay_button').hasClass("disabled"))return;$('#pay_button').prop('disabled',true);setTimeout(function(){$('#pay_button').prop('disabled',false);},1000);re=/[^0123456789]+/gi;var now=new Date();var shipInfoIsSet=isShippingInfoSet();if($('#BillingSame').prop("checked")){if(shipInfoIsSet){$('#billingInfo').hide();if($('#BillingCountry').val()!==$('#ShippingCountry').val()){$('#BillingCountry').val($('#ShippingCountry').val()).trigger('change');}
$('#BillingPhone').val($('#ShippingPhone').val().split(' ').join(''));$('#BillingFirstName').val($('#ShippingFirstName').val());$('#BillingLastName').val($('#ShippingLastName').val());$('#BillingAddress').val($('#ShippingAddress').val());$('#BillingAddress2').val($('#ShippingAddress2').val());$('#BillingCity').val($('#ShippingCity').val());$('#BillingState').val($('#ShippingState').val());$('#BillingPostalCode').val($('#ShippingPostalCode').val());}}
var billInfoIsSet=isBillingInfoSet();list=[];var valid=true;if(!billInfoIsSet||!shipInfoIsSet)valid=false;if(valid){let validCheckoutMethod=await isValidCheckoutMethod("credit");if(!validCheckoutMethod){list.push({element:$('#pay_with_div'),message:"Your cart contains items that cannot be purchased with Credit Card."});valid=false;}}
if(!valid){invalidInputList(list);return;}
let afterValidate=function(){$('#checkout').val("");$('#checkout').val("checkout");processingDisplay();simpleWebPaySubmit();};if(await validateAddresses(paymentCheck)){afterValidate();}}
async function isValidCheckoutMethod(method){let r=await $.ajax({url:"/assets/php/cart/carthelper.php",data:{action:"validate_checkout_method",method:method}});if(r.status=="success")return r.allowed;else return false;}
function applyPromo(cartType){if(cartType==undefined){cartType="store";}
var promo_code=$('#promo_code_input').val();$('input#promo_code').css('background-color','none');$.ajax({url:"/assets/php/cart/checkouthelper.php",error:function(r){errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){if(r.status!="error"){if(r.promo){$('.promo_input').hide();$('.promo_holder').show();$("#promo_code").show().html(promo_code.toUpperCase());}
updateCheckoutInfo();}else{var promoC=$("#promo_code_input");invalidInputCart($(promoC));$(promoC).siblings(".invalidinput").css("display","block").fadeIn(250);}},data:{action:"apply_promo",promo_code:promo_code}});}
function clearPromo(cartType){if(cartType==undefined){cartType="store";}
$('input#promo_code').val('');var promo_code="";$('input#promo_code').css('background-color','none');$.ajax({url:"/assets/php/cart/checkouthelper.php",error:function(r){errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){if(r.status!="error"){updateCartItems(cartType);$('.promo_holder').hide();$('.promo_input').show();updateCheckoutInfo();}else{errorDialogAlert(r.message);}},data:{action:"apply_promo",promo_code:promo_code}});}
async function new_place_order(){re=/[^0123456789]+/gi;var now=new Date();var shipInfoIsSet=isShippingInfoSet();if($('#BillingSame').prop("checked")){if(shipInfoIsSet){$('#billingInfo').hide();if($('#BillingCountry').val()!==$('#ShippingCountry').val()){$('#BillingCountry').val($('#ShippingCountry').val()).trigger('change');}
$('#BillingPhone').val($('#ShippingPhone').val().split(' ').join(''));$('#BillingFirstName').val($('#ShippingFirstName').val());$('#BillingLastName').val($('#ShippingLastName').val());$('#BillingAddress').val($('#ShippingAddress').val());$('#BillingAddress2').val($('#ShippingAddress2').val());$('#BillingCity').val($('#ShippingCity').val());$('#BillingState').val($('#ShippingState').val());$('#BillingPostalCode').val($('#ShippingPostalCode').val());}}
var billInfoIsSet=isBillingInfoSet();var list=[];var valid=billInfoIsSet&&shipInfoIsSet&&checkAffirmCountry();if(valid){let validCheckoutMethod=await isValidCheckoutMethod("affirm");if(!validCheckoutMethod){list.push({element:$('#pay_with_div'),message:"Your cart contains items that cannot be purchased with Affirm."});valid=false;}}
if(!valid){invalidInputList(list);return;}
let afterValidate=function(){Cookies.set(DIVISION+'NewsletterAuthorization',$("#newsletterAuthorization").prop("checked"),{path:'/'});$('#checkout').val("");$('#checkout').val("checkout");processingDisplay();if($("input[name=pay_with_name]:radio:checked").val()=="card"){processCredit();}else{AFFIRM();}};if(await validateAddresses(new_place_order)){afterValidate();}}
function processCredit(cardToken=null,cardExp=null,last4=null,carbComplianceAck=false){var orderIsProcessing=Cookies.get(DIVISION+"ProcessingOrder")=="true";if(orderIsProcessing){blackoutActivity(false);errorDialogAlert("Our records show that you have another order being processed right now. We have cancelled any new order requests to avoid charging your card twice.");return;}
var inOneMinute=new Date(new Date().getTime()+1*60*1000);Cookies.set(DIVISION+"ProcessingOrder","true",{path:'/',expires:inOneMinute});var email=$('#email').val();var shipPhone=$.trim($('#ShippingPhone').val()).split(' ').join('');var shipFName=$.trim($('#ShippingFirstName').val());var shipLName=$.trim($('#ShippingLastName').val());var shipAddress=$.trim($('#ShippingAddress').val());var shipAddress2=$.trim($('#ShippingAddress2').val());var shipCity=$.trim($('#ShippingCity').val());var shipState=$.trim($('#ShippingState').val());var shipCtry=$.trim($('#ShippingCountry').val());var shipPostal=$('#ShippingPostalCode').val()
var shipMeth=$('.activedeliveryoption').find(".deliveryvalue").text();var billPhone=$.trim($('#BillingPhone').val()).split(' ').join('');var billFName=$.trim($('#BillingFirstName').val());var billLName=$.trim($('#BillingLastName').val());var billAddress=$.trim($('#BillingAddress').val());var billAddress2=$.trim($('#BillingAddress2').val());var billCity=$.trim($('#BillingCity').val());var billState=$.trim($('#BillingState').val());var billCtry=$.trim($('#BillingCountry').val());if($('#BillingSame').prop('checked')&&billCtry==='US'){billCtry=shipCtry;}
var billPostal=$('#BillingPostalCode').val();var cartSH=$('#cartSH').val();var cartSalesTax=$('#cartSalesTax').val();var cartTotal=$('#cartTotal').val();Cookies.set(DIVISION+'NewsletterAuthorization',$("#newsletterAuthorization").prop("checked"),{path:'/'});fireWebsiteEvent('begin_checkout',{email:email});if(cartSH===undefined){blackoutActivity(false);invalidInputNoBorder($("#checkoutCartDiv").find(".orderfailed"),"We cannot verify your cart's shipping and handling. Please refresh the page and reenter your information.");updateShipping();Cookies.set(DIVISION+"ProcessingOrder",null,{path:'/',expires:-1});return false;}else if(cartSalesTax===undefined){blackoutActivity(false);invalidInputNoBorder($("#checkoutCartDiv").find(".orderfailed"),"We cannot verify your cart's sales tax. Please refresh the page and reenter your information.");updateShipping();Cookies.set(DIVISION+"ProcessingOrder",null,{path:'/',expires:-1});return false;}else if(cartTotal===undefined){blackoutActivity(false);invalidInputNoBorder($("#checkoutCartDiv").find(".orderfailed"),"We cannot verify your cart's total. Please refresh the page and reenter your information.");updateShipping();Cookies.set(DIVISION+"ProcessingOrder",null,{path:'/',expires:-1});return false;}
let payload={action:'processCardToken',email:email,shipPhoneNumber:shipPhone,shipFirstName:shipFName,shipLastName:shipLName,shipAddress:shipAddress,shipAddress2:shipAddress2,shipCity:shipCity,shipState:shipState,shipCountry:shipCtry,shipPostalCode:shipPostal,shipMethod:shipMeth,billPhoneNumber:billPhone,billFirstName:billFName,billLastName:billLName,billAddress:billAddress,billAddress2:billAddress2,billCity:billCity,billState:billState,billCountry:billCtry,billPostalCode:billPostal,cartInfo:$("#cart_json").html(),cartTotal:$("#totalHolder").html(),bypassAddressValidation:addressValidationDisabled,pageUri:window.location.href,pageName:document.title,last4:last4};let cardExpMonth=cardExp.slice(0,2);let cardExpYear=cardExp.slice(-2);payload.cardToken=cardToken;payload.cardExpMonth=cardExpMonth;payload.cardExpYear=cardExpYear;if(carbComplianceAck){payload.shipToExclusionAcknowledged=true;}
$.ajax({url:"/api/cart/checkout.php",error:function(r){blackoutActivity(false);Cookies.set(DIVISION+"ProcessingOrder",null,{path:'/',expires:-1});errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){Cookies.set(DIVISION+"ProcessingOrder",null,{path:'/',expires:-1});if(r.success){window.location.href="/store/receipt/";}else{if(r.message==='Order Mismatch'){window.location.href=orderErrorUrlPrefix+'Your cart has changed. Please review and try again.';return;}
if(r.error==='shippingExclusions'){carbComplianceDrawer(r.shippingExclusionHtml,function(){blackoutActivity();challengeRecaptcha(function(){processCredit(cardToken,cardExp,last4,true)});});blackoutActivity(false);return;}
blackoutActivity(false);cartErrorDrawer(r.message);}},data:payload});}
function AFFIRM(carbComplianceAck=false){function toInteger(a){var b;a=a.replace(/[$,]/g,"");if(a.indexOf('.')>0){b=a.replace(/[.]/g,"");}
else{b=a*100;}
return b;}
var cart_object=JSON.parse($("#cart_json").html());var confirm_location=`https://${location.hostname}/api/cart/checkout.php?affirmAction=affirmComplete`;var cancel_location=`https://${location.hostname}/store/viewcart/?affirmAction=incomplete`;var items=[];for(var item in cart_object){if(cart_object[item].promoPrice&&cart_object[item].promo_code){items.push({"display_name":cart_object[item].name,"sku":cart_object[item].partnumber,"unit_price":toInteger(cart_object[item].promoPrice),"qty":cart_object[item].quantity,"item_image_url":img(cart_object[item].imgfile),"item_url":"https://"+websiteurl+"/"+cart_object[item].partnumber});}else{items.push({"display_name":cart_object[item].name,"sku":cart_object[item].partnumber,"unit_price":toInteger(cart_object[item].price),"qty":cart_object[item].quantity,"item_image_url":img(cart_object[item].imgfile),"item_url":"https://"+websiteurl+"/"+cart_object[item].partnumber});}}
var email=$('#email').val(),shipPhone=$.trim($('#ShippingPhone').val().split(' ').join('')),shipFirstName=$.trim($('#ShippingFirstName').val()),shipLastName=$.trim($('#ShippingLastName').val()),shipAddress=$.trim($('#ShippingAddress').val()),shipAddress2=$.trim($('#ShippingAddress2').val()),shipCity=$.trim($('#ShippingCity').val()),shipState=$.trim($('#ShippingState').val()),shipCountry=$.trim($('#ShippingCountry').val()),shipPostalCode=$('#ShippingPostalCode').val(),shipCode=$('.activedeliveryoption').find(".deliveryvalue").text(),billPhone=$.trim($('#BillingPhone').val()),billFirstName=$.trim($('#BillingFirstName').val()),billLastName=$.trim($('#BillingLastName').val()),billAddress=$.trim($('#BillingAddress').val()),billFirstName
billAddress2=$.trim($('#BillingAddress2').val()),billCity=$.trim($('#BillingCity').val()),billState=$.trim($('#BillingState').val()),billCountry=$.trim($('#BillingCountry').val()),billPostalCode=$('#BillingPostalCode').val(),cartSH=$('#cartSH').val(),cartSalesTax=$('#cartSalesTax').val(),cartTaxCode=$('#taxCode').val(),cartTotal=$('#cartTotal').val();if($('#BillingSame').prop('checked')&&billCountry==='US'){billCountry=shipCountry;}
let shipToExclusionAcknowledged=carbComplianceAck?true:'';var affirmCookieData={pageUri:window.location.href,pageName:document.title,hutk:Cookies.get('hubspotutk'),signup:$("#newsletterAuthorization").prop("checked")};fireWebsiteEvent('begin_checkout',{email:email});$.ajax({url:"/api/cart/checkout.php",data:{action:"preAffirm",email,shipPhone,shipFirstName,shipLastName,shipAddress,shipAddress2,shipCity,shipState,shipCountry,shipPostalCode,shipCode,billPhone,billFirstName,billLastName,billAddress,billAddress2,billCity,billState,billCountry,billPostalCode,cartInfo:$("#cart_json").html(),cartTotal:$("#totalHolder").html(),pageUri:window.location.href,pageName:document.title,affirmCookieData,bypassAddressValidation:addressValidationDisabled,shipToExclusionAcknowledged:shipToExclusionAcknowledged}}).done(function(response){if(response.success){var order_id=response.message;blackoutActivity(false);affirm.checkout({"config":{"financial_product_key":"SX0EOCQCQ10MO5VE"},"merchant":{"name":DIVISIONFULLNAME,"user_cancel_url":cancel_location+"&affirm_order_id="+order_id,"user_confirmation_url":confirm_location,"user_confirmation_url_action":'POST'},"items":items,"order_id":order_id,"shipping":{"name":{"first":shipFirstName,"last":shipLastName},"address":{"line1":shipAddress,"line2":shipAddress2,"city":shipCity,"state":shipState,"zipcode":shipPostalCode},"phone_number":shipPhone,"email":email},"billing":{"name":{"first":billFirstName,"last":billLastName},"address":{"line1":billAddress,"line2":billAddress2,"city":billCity,"state":billState,"zipcode":billPostalCode},"phone_number":billPhone,"email":email},"shipping_amount":toInteger(cartSH),"tax_amount":toInteger(cartSalesTax),"total":toInteger(cartTotal)});affirm.checkout.post();}else{blackoutActivity(false);if(response.message==='Order Mismatch'){window.location.href=orderErrorUrlPrefix+'Your cart has changed. Please review and try again.';return;}
if(response.error==='shippingExclusions'){carbComplianceDrawer(response.shippingExclusionHtml,function(){blackoutActivity();AFFIRM(true)});blackoutActivity(false);return;}
cartErrorDrawer(response.message);}}).fail(function(ex){blackoutActivity(false);errorDialogAlert("Sorry, there was an error while trying to process your Order. Please wait a minute and try again.");});}
async function confirmPayPal(){if($('#ShippingName').val()==""||$('#ShippingAddress').val()==""||$('#ShippingCity').val()==""||$('#ShippingPostalCode').val()==""){errorDialogAlert('The Shipping Address is incomplete! Please try another form of payment or try to run PayPal again.',null,'Shipping Error');return;}
const shipMeth=$('.activedeliveryoption').find(".deliveryvalue").text();const cartSH=$('#cartSH').val();const cartSalesTax=$('#cartSalesTax').val();const cartTotal=$('#cartTotal').val();if(!shipMeth||cartSH===undefined||cartSalesTax===undefined||cartTotal===undefined){errorDialogAlert('Sorry, at this time we are not able to calculate shipping for that postal code. Please try again later.',null,'Shipping Error');return;}
if($('#ShippingPhone').val()!=null){let ShippingPhone=$('#ShippingPhone').val().split(' ').join('');re=/[^0123456789]+/gi;ShippingPhone=ShippingPhone.replace(re,"");$('#ShippingPhone').val(ShippingPhone);}
$('#checkout').val("");$('#checkout').val("checkout");$('#shippingHandling').val(cartSH);$('#salesTax').val(cartSalesTax);$('#total').val(cartTotal);const afterValidate=function(){processingPayPalDisplay();processPaymentPayPal();};if(await validateAddresses(confirmPayPal)){afterValidate();}}
async function processPayPalPromise(){let res=null;try{res=await $.ajax({url:'/api/cart/checkout.php',data:{action:'ProcessPayPal',cartInfo:$("#cart_json").html(),cartTotal:$("#totalHolder").html()}});}catch(error){return false;}
return res;}
function cancelPayPalPromise(token){return new Promise(function(resolve,reject){$.ajax({url:"/assets/php/cart/checkouthelper.php",error:function(r){reject(r);},success:function(r){resolve(r);},data:{action:"CancelPaymentPayPal",token:token}});});}
async function processPaymentPayPal(carbComplianceAck=false){const shipMeth=$('.activedeliveryoption').find('.deliveryvalue').text();let shipToExclusionAcknowledged=carbComplianceAck?true:'';Cookies.set(`${DIVISION} NewsletterAuthorization`,$('#newsletterAuthorization').prop('checked'),{path:'/'});let res=null;try{res=await $.ajax({url:'/api/cart/checkout.php',data:{action:'ProcessPaymentPayPal',shipMethod,cartInfo:$("#cart_json").html(),cartTotal:$("#totalHolder").html(),pageUri:window.location.href,pageName:document.title,shipToExclusionAcknowledged:shipToExclusionAcknowledged,bypassAddressValidation:addressValidationDisabled}});}catch(error){blackoutActivity(false);errorDialogAlert(`Error Occured: ${error.responseText || 'Unknown Error. Please try again.'}`,null,'Order Confirm Error',()=>{window.location.href='/store/viewcart/';});return;}
if(!res.success){if(res.message==='Order Mismatch'){window.location.href=orderErrorUrlPrefix+'Your cart has changed. Please review and try again.';return;}
if(res.error==='shippingExclusions'){carbComplianceDrawer(res.shippingExclusionHtml,function(){blackoutActivity();processPaymentPayPal(true)});blackoutActivity(false);return;}
blackoutActivity(false);cartErrorDrawer(res.message);return;}
window.location.href='/store/receipt/';}
function processingDisplay(){blackoutActivity(true);}
function processingPayPalDisplay(){blackoutActivity(true);}
async function validateAddresses(bypassCallback=null){let onOrderConfirmPage=true;const addressesToValidate=[{type:'Shipping',skip:$('#ShippingPostalCode').attr('skip-validate')??false,address:{line1:$('#ShippingAddress').val(),city:$('#ShippingCity').val(),state:$('#ShippingState').val(),postalCode:$('#ShippingPostalCode').val(),country:$('#ShippingCountry').val()}}];if($('#BillingSame').length>0){onOrderConfirmPage=false;if(!$('#BillingSame').prop('checked')){addressesToValidate.push({type:'Billing',skip:$('#BillingPostalCode').attr('skip-validate')??false,address:{line1:$('#BillingAddress').val(),city:$('#BillingCity').val(),state:$('#BillingState').val(),postalCode:$('#BillingPostalCode').val(),country:$('#BillingCountry').val()}});}}
for(const valid of addressesToValidate){if(valid.skip){continue;}
const type=valid.type;const address=valid.address;if(!(await validateAddress(address.line1,address.city,address.state,address.country,address.postalCode))){const suggestedAddresses=await findCityStateByPostalCode(address.postalCode,address.country);const options=[];const onConfirmNewAddress=async function(val){$(`#${type}City`).val(suggestedAddresses[val].city);$(`#${type}State`).val(suggestedAddresses[val].state);if(onOrderConfirmPage){$('#ShippingCityLabel').text(suggestedAddresses[val].city);$('#ShippingStateLabel').text(suggestedAddresses[val].state);try{const response=await $.ajax({url:"/api/cart/checkout.php",data:{action:"updateCityStateOnOrder",city:suggestedAddresses[val].city,state:suggestedAddresses[val].state}});if(!response.success){cartErrorDrawer(response.message);}}catch(ex){cartErrorDrawer('An unknown error occured. Please try again.');}}
hideDrawer();bypassCallback();};for(const addr of suggestedAddresses){options.push({value:`${addr.city}, ${addr.state} ${addr.postalCode}`,onConfirm:onConfirmNewAddress});}
options.push({value:`${address.city}, ${address.state} ${address.postalCode}`,onConfirm:function(val){$(`#${type}PostalCode`).attr('skip-validate',true);addressValidationDisabled=true;hideDrawer();if(typeof bypassCallback==='function'){bypassCallback();}}});if(options.length>0){radioSelectorDrawer(`The ${type.toLowerCase()} postal code you entered does not match the city and/or state. Please select the desired option below:`,options,'Verify Address');}
return false;}}
return true;}
async function validateAddress(line1,city,state,country,postalCode){if(!country){return false;}
if(!['United States','US'].includes(country.trim())){return true;}
let response=null;try{response=await $.ajax({url:"/api/cart/checkout.php",data:{action:"validateAddress",line1,city,state,postalCode,country}});if(!response.success){throw response.message;}
return response.valid;}catch(err){cartErrorDrawer(err);}
return false;}
async function findCityStateByPostalCode(postalCode,country){let response=null;try{response=await $.ajax({url:"/api/cart/checkout.php",data:{action:"findCityStateByPostalCode",postalCode:postalCode,country:country}});if(!response.success){throw response.message;}
return response.addresses;}catch(err){cartErrorDrawer(err);}
return[];}
function openInfoDialog(dialogID,event,inDrawer){var title=$("#"+dialogID).children("#"+dialogID+"-title").val();if(!inDrawer)$("#"+dialogID).dialog({classes:{'ui-dialog':"attribute_popover"},title:title,width:"330px",modal:true});else $('#servicesInfoSection').html($('',{text:title}).after($(`#${dialogID}`).html()))
event.preventDefault();event.stopPropagation();return false;}
function addToBuyLater(rowID){blackoutActivity();var row=$(".row[data-row="+rowID+"]").data("rowid");var lineQty=$('#lineQty'+rowID).val();jQuery.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){blackoutActivity(false);errorDialogAlert("Error Occured: "+r.responseText);$("#loaderDialog").dialog("close");},success:function(r){blackoutActivity(false);if(r.status!="error"){updateCartItems();$("#saved-for-later").html(htmlSanitize(r.html)).ready(function(){checkSave();updateSaveForLaterCount();});}else{errorDialogAlert(r.message);}},data:{action:"add_to_buy_later",row:row,lineqty:lineQty}});}
function moveToCart(event){var cartBtn=event.target;var $cartLine=$(cartBtn).closest(".saved-for-later-product");var partNumber=$cartLine.data('partnumber');var rowId=$cartLine.data('row');jQuery.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){errorDialogAlert("Error Occured: "+r.responseText);$("#loaderDialog").dialog("close");},success:function(r){$("#loaderDialog").dialog("close");if(r.status!="error"){let item={partnumber:r.item.partnumber,name:r.item.name,quantity:parseInt(r.qty),price:Math.min(...r.item.pricing.map((e)=>{return parseFloat(e.price)}))};fireWebsiteEvent("cart_add",{items:item});ecAddProductToCart({'partnumber':partNumber,'quantity':r.qty});$cartLine.remove().ready(function(){updateCartItems();updateSaveForLaterCount();checkSave();});}else{errorDialogAlert(r.message);}},data:{action:"move_to_cart",rowId:rowId}});$(".page").css({"min-height":""})}
function deleteFromBuyLater(event){var cartBtn=event.target;var $cartLine=$(cartBtn).closest(".saved-for-later-product");var rowId=$cartLine.data('row');jQuery.ajax({url:"/assets/php/cart/carthelper.php",error:function(r){errorDialogAlert("Error Occured: "+r.responseText);$("#loaderDialog").dialog("close");},success:function(r){$("#loaderDialog").dialog("close");if(r.status!="error"){$cartLine.remove().ready(function(){updateSaveForLaterCount();});}else{errorDialogAlert(r.message);}
checkSave();},data:{action:"delete_from_buy_later",rowId:rowId}});$(".page").css({"min-height":""});}
function checkSave(){$(".page").css({"min-height":$(".page").height()});if($(".saved-for-later-product").length==0){$(".saveforlater, .savelaterlist").hide();}else{$(".saveforlater, .savelaterlist").fadeIn(250);}}
function updateCheckoutRestrictions(){if(!$(".store.viewcart").length)return;let restrictions=JSON.parse($('#checkout-restrictions').text());let subtotal=parseFloat($("#subtotalHolder").data("subtotal"));$('.cartNotificationMessage').fadeOut("fast");$('.payment-block').removeClass("hide");if(!restrictions){if(subtotal==0){$(".payment-block-paypal").addClass("hide");$(".payment-block-affirm").not('.payment-block-credit').addClass("hide");$(".payment-block-apple-pay").addClass("hide");}
else if(subtotal<250){$(".payment-block-affirm").not('.payment-block-credit').addClass("hide");}}
else{let target="";let cartMessage="Items in your cart have the following restrictions: ";let restrictionCount=Object.keys(restrictions).length;for(var i of Object.keys(restrictions)){if(restrictionCount==1){target=".payment-block-"+i;}
for(var k of restrictions[i].items){cartMessage+=" Item "+k+" can only be purchased via "+restrictions[i].display_name+".
";}}
$(".payment-block").addClass("hide");if(target&&(subtotal>0||target==".payment-block-credit")&&(subtotal>=250||target!=".payment-block-affirm")){$(target).removeClass("hide");}
createCartAlert(cartMessage);}
if(!ACCEPTCREDITCARD)$(".payment-block-credit").addClass("hide");if(!ACCEPTPAYPAL)$(".payment-block-paypal").addClass("hide");if(!ACCEPTAFFIRM)$(".payment-block-affirm").not('.payment-block-credit').addClass("hide");if(!ACCEPTAPPLEPAY)$(".payment-block-apple-pay").addClass("hide");if($(".alt-checkout-methods").find(".payment-block").not(".hide").length){$(".alt-checkout-methods").removeClass("hide");if($(".payment-block-credit").not(".hide").length){$(".alt-checkout-methods .alt_payment").removeClass("hide");}
else{$(".alt-checkout-methods .alt_payment").addClass("hide");}}
else{$(".alt-checkout-methods").addClass("hide");}}
function updateSaveForLaterCount(){var savedItemsCount=$('.saved-for-later-product').length;var savedItemsCounter=savedItemsCount+" Item"+(savedItemsCount!=1?'s':'');$('#saved-for-later-count').text(savedItemsCounter);}
function get_states(addr_type,callback){blackoutActivity(true);country=$('#'+addr_type+'Country').val();$('.'+addr_type+'state').remove();$.ajax({url:"/assets/php/cart/carthelper.php",data:{action:"get_states",country:country},error:function(r){errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){var states=r.states;for(var i in states){$('#'+addr_type+'State').append($(' ',{value:states[i]["value"],text:states[i]["name"],class:addr_type+'state'}));}
blackoutActivity(false);if(callback)callback();}});}
$(function(){if($("#promo_code").text()!=""){$(".promo_holder").show();$('.promocodediv').show();$(".promocodedesc").hide();}else{$(".promo_input").show();}
$('.checkoutInfoDiv').css({"visibility":"visible"}).hide().fadeIn(250);$(".page").css({"min-height":window.innerHeight/2})
$(".promocodedesc").click(function(){$(".promocodedesc").hide();$(".promocodediv").show();});var _self=this;_self.card_types=[{name:'American Express',code:'ax',pattern:/^3[47]/,valid_length:[15],formats:[{length:15,format:'xxxx xxxxxxx xxxx'}]},{name:'Visa',code:'vs',pattern:/^4/,valid_length:[16],formats:[{length:16,format:'xxxx xxxx xxxx xxxx'}]},{name:'Mastercard',code:'mc',pattern:/^5[1-5]/,valid_length:[16],formats:[{length:16,format:'xxxx xxxx xxxx xxxx'}]},{name:'Discover',code:'dc',pattern:/62212[6-9]|6221[3-9]|622[1-8]|62291|62292[1-5]|6011|61/,valid_length:[16],formats:[{length:16,format:'xxxx xxxx xxxx xxxx'}]}];this.isValidLength=function(cc_num,card_type){for(var i in card_type.valid_length){if(cc_num.length<=card_type.valid_length[i]){return true;}}
return false;};this.getCardType=function(cc_num){for(var i in _self.card_types){var card_type=_self.card_types[i];if(cc_num.match(card_type.pattern)&&_self.isValidLength(cc_num,card_type)){return card_type;}}};this.getCardFormatString=function(cc_num,card_type){for(var i in card_type.formats){var format=card_type.formats[i];if(cc_num.length<=format.length){return format.format;}}};this.formatCardNumber=function(cc_num,card_type){var numAppendedChars=0;var formattedNumber='';if(!card_type){return cc_num;}
var cardFormatString=_self.getCardFormatString(cc_num,card_type);for(var i=0;i=cardFormatString.length){return cc_num;}
if(cardFormatString.charAt(cardFormatIndex)!=='x'){numAppendedChars++;formattedNumber+=cardFormatString.charAt(cardFormatIndex)+cc_num.charAt(i);}else{formattedNumber+=cc_num.charAt(i);}}
return formattedNumber;};var shipPhone,billPhone;$("#ShippingPhone, #BillingPhone").on('input',function(e){$(this).val($(this).val().replace(/[^0-9\s]/g,''));var target=e.target.id;var start=this.selectionStart;if($(this).val().length>12){$(this).val($(this).val().substr(0,12));}
var spacesBefore=$(this).val().substring(0,start).split(" ").length-1;var val=$(this).val();var newval='';val=val.replace(/\s/g,'');for(var i=0;i0&&i<7){newval=newval.concat(' ');}
newval=newval.concat(val[i]);}
if(((start%4==0&&start<=4)||start%8==0&&start>7)&&start>0){if(target=="ShippingPhone"&&$(this).val().length>shipPhone.length){start+=1;}
if(target=="BillingPhone"&&$(this).val().length>billPhone.length){start+=1;}}
$(this).val(newval);var spacesAfter=$(this).val().substring(0,start).split(" ").length-1;start+=(spacesAfter-spacesBefore);if(target=="BillingPhone"){if($(this).val().length==13){$(this).val(billPhone)}
billPhone=$(this).val();}
if(target=="ShippingPhone"){if($(this).val().length==13){$(this).val(shipPhone)}
shipPhone=$(this).val();}
this.setSelectionRange(start,start);});$('#email').on("change",function(){if(!isEmail($(this).val())){invalidInputCart($(this));}else{$(this).removeClass("invalidborder");$(this).siblings(".invalidinput").fadeOut(250)}})
$('#ShippingPhone, #BillingPhone').on("change",function(){if($(this).val().length<12){invalidInputCart($(this));}else if($(this).hasClass("invalidborder")){$(this).removeClass("invalidborder");$(this).siblings(".invalidinput").fadeOut(250)}})
$('body').on('keyup','.invalidborder',function(){$(this).trigger("change").focus()})
$('.store.checkout #cartTable').css('visibility','visible').hide().fadeIn(300);$("#no_affirm").fadeIn(300);var windowWidth=$(window).width();if(windowWidth>1000||(windowWidth>440&&windowWidth<768)){$("#desktop-cap").show();$("#mobile-cap").hide();}else{$("#desktop-cap").hide();$("#mobile-cap").show();}
$(document).on("click",".deliveryoption",function(){setTimeout(()=>{if($("#ShippingPostalCode").val()!=""&&!$(this).hasClass("optionsdisabled")){$(this).addClass("activedeliveryoption");$(".deliveryoption").not($(this)).removeClass("activedeliveryoption");updateShipping();}},0);});$(".viewitems").click(function(){if($(this).hasClass("addborder"))$(this).toggleClass("addborder")
else setTimeout(()=>{$(this).toggleClass("addborder");},500);$(this).find(".dropper").toggleClass("rotate rotate-reset");$(this).siblings("#tableholder").toggleClass("active")
if($(this).siblings("#tableholder").css("max-height")!="0px"){$(this).siblings("#tableholder").css({"max-height":"0px","padding-bottom":"0px"});}else{$(this).siblings("#tableholder").css({"max-height":$(this).siblings("#tableholder").prop("scrollHeight")+30});}});$(".viewitems").trigger('click');var resizeTimer;$(window).on('resize',function(e){clearTimeout(resizeTimer);resizeTimer=setTimeout(function(){$("#tableholder.active").css({"max-height":$("#tableholder.active").prop("scrollHeight")+30});},250);});$("#mobile-cap").closest("td").click(function(){$(this).find(".invalidinput").fadeOut(250);});if($("#promo_savings").length>0){$(".promocodedesc").click();}
if($(".confirm").length>0){if($("#ShippingCountry").val()==="US"){$(".deliveryoption").removeClass("optionsdisabled");$(".deliveryoption").first().addClass("activedeliveryoption")
$(".deliveryoption").first().click();}else{getShippingMethods($("#ShippingCountry").val(),function(methods){if(Object.keys(methods).length>0){$(".deliveryoption").removeClass("optionsdisabled");$(".deliveryoption").first().addClass("activedeliveryoption")
$(".deliveryoption").first().click();}
else{$(".deliveryoption").addClass("optionsdisabled");$("#pay").attr("onclick",false).addClass("optionsdisabled");$(".payBtn").addClass("optionsdisabled");errorDialogAlert("Sorry, but we are unable to ship to the selected country at this time.","ShippingPostalCode");}});}}
if($(".store.checkout").length>0){$(".labeloverlay").generateLabel();$(".promo_input").generateLabel();$(".promo_input").children("#promo_code").change(function(){if($(this).hasClass("invalidborder")){$(this).removeClass("invalidborder");}
$(this).siblings(".invalidinput").fadeOut(250);});}
if($(".store.viewcart").length>0)
$("#ShippingPostalCode").generateLabel();$(".cart-disclaimer, .explain").click(function(){cartdisclaimer();});$("#checkoutLeft, #checkoutRight").find('input[type=text],select').not('#ShippingPhone, #email, #BillingPhone').each(function(){$(this).on("input",function(){if($(this).val()&&$(this).val().length>0){$(this).removeClass("invalidborder");$(this).siblings(".invalidinput").fadeOut(250)}});});$("#promo_code_input").keyup(function(e){if(e.keyCode=='13')$(".promoBtn").click();});$('body').on('click','.selector-drawer .selector-confirm',function(){if(typeof onSelectorConfirm==='function'){onSelectorConfirm($('.selector-drawer .selector').val());}});$('body').on('click','.selector-drawer .radio-selector-confirm',function(){const i=$('.selector-drawer .radio-group input[type=radio]:checked').val();if(typeof radioSelectorOnConfirm[i]==='function'){radioSelectorOnConfirm[i](i);}});$('body').on('click','.selector-drawer .selector-dismiss',function(){if(typeof onSelectorDismiss==='function'){onSelectorDismiss();}});$('body').on('click','.address-drawer .confirm',function(){if(typeof onBadAddressConfirm==='function'){onBadAddressConfirm();}});$('body').on('click','.address-drawer .dismiss',function(){if(typeof onBadAddressDismiss==='function'){onBadAddressDismiss();}});$('body').on('click','.carb-compliance-confirm',async function(){if(typeof carbComplianceCallback!=='function'){return;}
hideDrawer();let value=$('.carb-compliance input[type=radio][name=carbCompliance]:checked').val();let address={line1:$(".carbComplianceLine1").val(),line1:$(".carbComplianceLine2").val(),city:$(".carbComplianceCity").val(),postalCode:$(".carbCompliancePostalCode").val(),state:$(".carbComplianceState").val(),country:$(".carbComplianceCountry").val()};if(value==='removeItems'){const res=await $.ajax({url:'/api/cart/checkout.php',data:{action:'removeShipToExclusionItems',shippingAddress:address}});if(typeof ga==='function'){ga('send','event','carb_compliance','selection','removeitems');ga4event({event:'gtmEvent',event_name:'cart_action',event_category:'Carb Compliance',event_action:'selection',event_label:'Item Removed'});}
if(res.success){window.location.reload();}else{cartErrorDrawer(res.message);}}else if(value==='nonHighway'){carbComplianceCallback();if(typeof ga==='function'){ga('send','event','carb_compliance','selection','nonhighway');ga4event({event:'gtmEvent',event_name:'cart_action',event_category:'Carb Compliance',event_action:'selection',event_label:'Non-Highway Selected'});}}else{drawerError('Please select an option.');}});$('body').on('click','.whats-this-btn',function(){$(this).siblings('.whats-this').slideDown(300);$(this).hide();});$('body').on('click','.carb-compliance .edit-shipping',function(){if(window.location.pathname==='/store/checkout/'){hideDrawer();}else if(window.location.pathname==='/store/orderconfirm/'){window.location='/store/viewcart/';}else{window.location.reload();}});$('body').on('click','.carb-compliance .radio-option',function(){const radioBtn=$(this).children('input.radio-btn');radioBtn.prop('checked',true);radioBtn.change();});$('body').on('change','.carb-compliance .radio-option input.radio-btn',function(e){if($(e.target).val()==='nonHighway'){$('.drawer-content .carb-compliance-confirm').text('Confirm & Pay');}else{$('.drawer-content .carb-compliance-confirm').text('Confirm');}});$('.no-special').on('keyup',function(e){const val=$(this).val();$(this).val(val.replace(/[\t\r\n<>|;]/g,''));});$('body').on('click','input.selectable',function(){this.select();});$('body').on('click','.cartCheckoutButton',function(){viewCart();});});function cartdisclaimer(){$.ajax({url:"/assets/php/cart/carthelper.php",data:{action:"cart_info_drawer"},error:function(r){errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){showDrawer("Shipping and Returns Info",htmlSanitize(r.html));}});}
function invalidInputList(list){$(list).each(function(i,el){invalidInputCart(el["element"],el["message"]);});if(list.length>0){$([document.documentElement,document.body]).animate({scrollTop:$(".invalidinput").first().closest("div:not(.fullrow, .fullcontainer, .halfcontainer, .thirdcontainer)").offset().top},500);}}
function invalidInputCart(el,errorMessage=null,border=true){if($(".store.checkout").length>0){var $errorDiv=$(el).closest(".fullcontainer, .halfcontainer, .thirdcontainer").find(".invalidinput");$(el).closest(".fullcontainer, .halfcontainer, .thirdcontainer").find(".invalidinput").fadeIn(250);if(border)addBorder($(el));}else{var $errorDiv=$(el).parent().find(".invalidinput");$(el).parent().find(".invalidinput:hidden").fadeIn(250);if(border)addBorder($(el));}
if(errorMessage)
$errorDiv.text(errorMessage);$errorDiv.show();}
function invalidInputNoBorder(el,errorMessage){$(el).fadeIn(250).html(errorMessage);}
function addBorder(el){$(el).addClass("invalidborder");}
function getGeoInfo(fields,successCallback,failureCallback){if(fields===undefined||(typeof successCallback!="function")){return;}
if(typeof failureCallback!="function"){failureCallback=function(){};}
if(typeof GEOAPIKEY==="undefined"||!GEOAPIKEY){failureCallback({status:"error",message:"GEOAPIKEY is undefined or null"});return;}
if(!navigator||!navigator.geolocation){failureCallback({status:"error",message:"navigator.geolocation is undefined or null"});return;}
navigator.geolocation.getCurrentPosition(function success(pos){const latitude=pos.coords.latitude;const longitude=pos.coords.longitude;$.ajax({url:"https://api.ipgeolocation.io/ipgeo",type:"GET",success:function(r){successCallback(r);},error:function(r){failureCallback({status:"error",message:r.responseText});},data:{apiKey:GEOAPIKEY,lat:latitude,lon:longitude,fields:fields}});},function error(err){failureCallback({status:"error",message:err.message});});}
function checkAffirmCountry(noToast=false){valid=true;if($('#ShippingCountry').val()!="US"||$('#BillingCountry').val()!="US"){if($("input[name=pay_with_name]:radio:checked").val()=="affirm"){valid=false;if(!noToast){toast(JSON.parse($('#checkout_data').text())['affirm_country_error'],5000);}
$(".pay_with_list li:first-child input").click();}
$("#pay_with_affirm").parents("li").hide();$("#pay_with_affirm").prop('disabled',true);}else if(parseFloat($('#subtotalHolder').data('subtotal')>=250)){$("#pay_with_affirm").parents("li").show();$("#pay_with_affirm").prop('disabled',false);}
return valid;}
function cartErrorDrawer(error,refreshCart=true){const errorDictionary={"Credit Card Offline":"We apologize for any inconvenience, but due to scheduled maintenance we are unable to process credit card payments at this moment. Credit card processing should resume in approximately one hour","Empty Cart":"Your cart is empty.","Error Processing":"An error occured processing your payment. If this issue persists, please contact our customer service department.","Invalid Checkout Method":"Your cart contains items that cannot be purchased with your selected checkout method.","Invalid Recaptcha":"Recaptcha completion not detected.","Order Mismatch":"Your cart has changed. Please review and try again.",}
showDrawer("Order Error",(errorDictionary[error]||error));if(refreshCart)updateCartItems();}
function carbComplianceDrawer(html,callback=null){carbComplianceCallback=callback;showDrawer('Carb Compliance',html);if(typeof ga==='function'){ga('send','event','carb_compliance','popup','visible');ga4event({event:'gtmEvent',event_name:'cart_action',event_category:'Carb Compliance',event_action:'popup',event_action:'visible'});}}
var requestedResource;var timeout;$(function(){$('#sms-signup').on("click",async function(e){let res=await $.ajax({url:"/assets/php/account/dashboardhelper.php",dataType:"json",data:{action:"sms_optin_html",title:""}});if(res.success)
showDrawer("Text me order updates!",res.html,{},initOptinListeners)})
if($(".login-form .redirect_data").val()){requestedResource=$(".login-form .redirect_data").val();}
if(!$("body").hasClass("account")){$(".login-drawer-enabled").on("click",function(event){event.preventDefault();$(this).attr("href")?loginDrawer(null,$(this).attr("href")):loginDrawer();});}else{$("#mobile-menu .login-drawer-enabled").on("click",function(event){event.preventDefault();$(this).attr("href")?loginDrawer(null,$(this).attr("href")):loginDrawer();});}
if(typeof $.fn.slick==='function'){$(".reviewsContainer .review-images").not(".slick-initialized").slick({infinite:false,slidesToShow:2,slidesToScroll:1,dots:false,arrows:false,mobileFirst:true,touchThreshold:75,responsive:[{breakpoint:576,settings:{slidesToShow:3,}},{breakpoint:1119,settings:{slidesToShow:5}}]});}
var countdowndiv=$(".leftColumn").find(".countdown");if($(".myaccount").length>0&&countdowndiv.length>0){var countdown=parseInt($(countdowndiv).text());var countdowninterval=setInterval(function(){if(countdown==0){clearInterval(countdowninterval);window.location.href="/";}else{$(countdowndiv).text(--countdown);}},1000);}
$('.logout').on('click',logout);});function facebookSDK(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}
js=d.createElement(s);js.id=id;js.src="//connect.facebook.net/en_US/sdk.js";fjs.parentNode.insertBefore(js,fjs);}
function loginDrawer(helper,redirect){requestedResource=redirect?redirect:requestedResource;helper=helper?helper:"generate_login_html";$.ajax({url:"/assets/php/generalhelpers.php",dataType:"json",data:{action:helper,keepFresh:Math.random()},error:function(r){errorDialogAlert("Error Occured: "+r.responseText);},success:function(r){var header=(helper==="generate_login_html"?"Account Login":"Create New Account");var classes=["login-pwd"];if(helper==="generate_login_html")classes.push("login-form");else classes.push("register-form");showDrawer(header,r.html,{className:classes},()=>{loginListeners(r.login_ids);if(helper==="generate_newaccount_html"){userPasswordListeners();}});}});}
var googleSiteKey;function loginListeners(login_ids,loginFunction){$(".drawer-content .no-account a").on("click",function(event){event.preventDefault();loginDrawer("generate_newaccount_html");});$(".drawer-content .hasAccount a").on("click",function(event){event.preventDefault();loginDrawer();});$(".show-password").off("click").on("click",function(){showPassword($(this).closest("div").find("input"));});$(".login-pwd input").off("focusout").on("focusout",function(){label=$(this).parent().find("label");if(label.hasClass("autofilled")){if($(this).val().length===0){label.removeClass("autofilled");}}else{if($(this).val().length>0){label.addClass("autofilled");}}});setTimeout(function(){$(".login-pwd .form-group").generateLabel();$(".login-pwd .formInput").each(function(){if($(this).css("animation-name")==="autofillStart"){label=$(this).parent().find("label");label.addClass("autofilled");}})},600)
$(".login-pwd .form-group").generateLabel();if(login_ids!=undefined){if(login_ids.FACEBOOKAPPID){window.fbAsyncInit=function(){FB.init({appId:login_ids.FACEBOOKAPPID,cookie:true,xfbml:true,version:'v17.0'});}
facebookSDK(document,'script','facebook-jssdk');}}
$('.login-button').on('click',function(){if(typeof loginFunction==='undefined'){challengeRecaptcha(loginattempt,$(this));}else{loginFunction();}});}
function loginEnterKeydown(){$(".login-pwd .enterkey-submit").off("keydown").on("keydown",function(event){if(event.keyCode==13){$(".accountBtn").click();}});}
function userPasswordListeners(passwordClass,confirmPasswordClass,buttonClass){if(passwordClass==undefined)passwordClass=".userPassword";if(confirmPasswordClass==undefined)confirmPasswordClass=".userPasswordConfirm";if(buttonClass==undefined)buttonClass=".accountBtn";$(".show-password").off("click").on("click",function(){showPassword($(this).closest("div").find("input"));});$(passwordClass+", "+confirmPasswordClass).off().on('input',function(){var candidate=$(passwordClass).val();var complexity=Math.floor(new Set(candidate).size/5);if(candidate.length>=8){if($('.passwordIndicator.passLength').hasClass("passwordInsufficient"))
$('.passwordIndicator.passLength').removeClass("passwordInsufficient").addClass("passwordSufficient");}else{if($('.passwordIndicator.passLength').hasClass("passwordSufficient"))
$('.passwordIndicator.passLength').removeClass("passwordSufficient").addClass("passwordInsufficient");}
var specialRegex=new RegExp(/\S*(?=\S*[\W])\S*$/g);if(specialRegex.exec(candidate)!=null){complexity++;if($('.passwordIndicator.passSpecial').hasClass("passwordInsufficient"))
$('.passwordIndicator.passSpecial').removeClass("passwordInsufficient").addClass("passwordSufficient");}else{if($('.passwordIndicator.passSpecial').hasClass("passwordSufficient"))
$('.passwordIndicator.passSpecial').removeClass("passwordSufficient").addClass("passwordInsufficient");}
var lowerRegex=new RegExp(/[a-z]/g);var upperRegex=new RegExp(/[A-Z]/g);if(lowerRegex.exec(candidate)!=null&&upperRegex.exec(candidate)!=null){complexity++;if($('.passwordIndicator.passAlpha').hasClass("passwordInsufficient"))
$('.passwordIndicator.passAlpha').removeClass("passwordInsufficient").addClass("passwordSufficient");}else{if($('.passwordIndicator.passAlpha').hasClass("passwordSufficient"))
$('.passwordIndicator.passAlpha').removeClass("passwordSufficient").addClass("passwordInsufficient");}
var numRegex=new RegExp(/[0-9]+/g);if(numRegex.exec(candidate)!=null){complexity++;if($('.passwordIndicator.passNumber').hasClass("passwordInsufficient"))
$('.passwordIndicator.passNumber').removeClass("passwordInsufficient").addClass("passwordSufficient");}else{if($('.passwordIndicator.passNumber').hasClass("passwordSufficient"))
$('.passwordIndicator.passNumber').removeClass("passwordSufficient").addClass("passwordInsufficient");}
if(candidate.length>=8&&complexity>=3&&candidate==$(confirmPasswordClass).val()&&!$(buttonClass).hasClass("needsCaptcha")){$('.invalid-input').remove();$('.invalidborder').removeClass("invalidborder");$(buttonClass).removeClass("disabled");}else if(candidate.length==0){$('.invalid-input').remove();$('.invalidborder').removeClass("invalidborder");}else{if(complexity<3&&candidate==$(confirmPasswordClass).val()&&candidate.length>0){invalidInput(passwordClass);invalidInput(confirmPasswordClass,'Please make your password more complex');}
$(buttonClass).addClass("disabled");}})}
function fbLoginStart(){FB.login(function(response){if(response.authResponse){var accessToken=response.authResponse.accessToken;if(typeof ga==='function'){ga('send','event','accountlogin','login','facebook');ga4event({event:'gtmEvent',event_name:'account_login',event_action:'login',event_category:'Facebook'});}
FB.api('/me',{fields:'email, first_name, last_name'},function(response){socialLoginAttempt(response.email,response.first_name,response.last_name,"facebook",accessToken);});}
else{if(typeof ga==='function'){ga('send','event','accountlogin','cancel','facebook');ga4event({event:'gtmEvent',event_name:'account_login',event_action:'cancel',event_category:'Facebook'});}}},{scope:'public_profile,email'});}
async function googleLogin(payload){const jwtCred=payload.credential;try{let response=await $.ajax({url:'/assets/php/account/accounthelper.php',dataType:'json',cache:false,data:{action:'sociallogin',socialType:'google',accessToken:jwtCred}});if(response.success){const user=response.user;loginSuccessAction({},{email:user.email,firstname:user.firstName,lastname:user.lastName});}else{invalidInput(".social-logins",response.message);}}catch(ex){invalidInput(".social-logins","Error Occured: "+ex.responseText);}}
function socialLoginAttempt(email,firstname,lastname,socialType,accessToken){$.ajax({url:"/assets/php/account/accounthelper.php",dataType:"json",data:{action:"sociallogin",firstName:firstname,lastName:lastname,email:email,socialType:socialType,accessToken:accessToken,keepFresh:Math.random()},error:function(r){invalidInput(".social-logins","Error Occured: "+r.responseText);},success:function(r){if(r.success){loginSuccessAction({},{email,firstname,lastname});}else{invalidInput(".social-logins",r.message);}}});}
async function loginSuccessAction(redirectObj={},eventObj={}){if(Object.keys(eventObj).length>0){await fireWebsiteEvent('login',eventObj);await hubspotFormSubmit('Consumer Website Login Form',eventObj);}
if(requestedResource){loginredirect(redirectObj);}else{if(typeof updateWidgetCartButtons==='function'){updateWidgetCartButtons();}
if(typeof updateCartBadge==='function'){updateCartBadge();}
if($(".drawer-expand").length){hideDrawer();}
loginChangeEvents();}}
function loginValidate(){$(".invalid-input").remove();$(".form-group").removeClass("invalidborder");var username=$(".login-form .login-username").val();if(username==""){invalidInput('.login-form .login-username','Please enter your email address.');return false;}else if(!isEmail(username)){invalidInput('.login-form .login-username','Please enter a valid email address.');return false;}
if($(".login-form .login-password").val()==""){invalidInput('.login-form .login-password','You must enter your password.');return false;}
return true;}
function loginError(type,message){if(type==="recaptcha"){$("body").hasClass("account")?$(".mainarea").activity(false):$(".drawer").activity(false);$(".login-form .account-captcha-table").css('display','block');recaptchaprompt(message);}else if(type==="locked"){$("body").hasClass("account")?$(".mainarea").activity(false):$(".drawer").activity(false);$(".login-form .account-captcha-table").css('display','none');invalidInput(".last-form-item",message);}else{$("body").hasClass("account")?$(".mainarea").activity(false):$(".drawer").activity(false);invalidInput('.last-form-item',message);}}
function loginattempt(){var username=$(".login-form .login-username").val();if(!loginValidate()){return;}
let wishlistId=$('.login-redirect.wishlist').val();$.ajax({url:"/assets/php/account/accounthelper.php",dataType:"json",data:{action:"login","email":username,"password":$(".login-form .login-password").val(),keepFresh:Math.random()},error:function(r){invalidInput(".last-form-item","Error Occured: "+r.responseText);},success:function(r){if(r.success){if(typeof ga==='function'){ga('send','event','accountlogin','login',DIVISION);ga4event({event:'gtmEvent',event_name:'account_login',event_action:'login',event_category:DIVISION});}
if(!wishlistId){loginSuccessAction({},{email:username});}else{loginSuccessAction({wishlist:wishlistId},{email:username});}}else{loginError(r.type,r.message);}}});}
function recaptchaprompt(message){invalidInput(".last-form-item",message);}
function loginredirect(redirectObj={}){if(Object.keys(redirectObj).length>0){if(typeof redirectObj.wishlist!=='undefined'){window.location.href='/account/wishlist/'+redirectObj.wishlist+'/';}
return;}
if(requestedResource){window.location.href=requestedResource;}else{document.location.reload();}}
function logout(){attemptingSignout=true;$.ajax({url:"/assets/php/account/accounthelper.php",dataType:"json",data:{action:"signout","email":trimmer($(".login-form .register-email").val()),keepFresh:Math.random()},error:function(r){errorDialogAlert("Error Occured: "+r.responseText);$(btnDOM).attr('disabled',false);},success:function(r){if(r.status=="success"){location.reload();}else{errorDialogAlert(r.message);}}});}
function createAccount(){$('.invalid-input').remove();$(".form-group").removeClass("invalidborder");var email=trimmer($('.register-form .register-email').val());var firstname=trimmer($(".register-form .register-fname").val());var lastname=trimmer($(".register-form .register-lname").val());var btnDOM=$('.register-form .register-button');var checkInvalids=false;$(btnDOM).attr('disabled',true);if(!isEmail(email)){checkInvalids=true;$(btnDOM).attr('disabled',false);invalidInput('.register-form .register-email','Please enter a valid email address.');}
if(firstname==""){$(btnDOM).attr('disabled',false);checkInvalids=true;invalidInput('.register-form .register-fname','Please enter your first name.');}
if(lastname==""){$(btnDOM).attr('disabled',false);checkInvalids=true;invalidInput('.register-form .register-lname','Please enter your last name.');}
if(trimmer($('.register-form .userPassword').val())==""){$(btnDOM).attr('disabled',false);checkInvalids=true;invalidInput('.register-form .userPassword','Please enter a password.');}
if(trimmer($('.register-form .userPasswordConfirm').val())==""){$(btnDOM).attr('disabled',false);checkInvalids=true;invalidInput('.register-form .userPasswordConfirm','Please enter your confirm password.');}else if(trimmer($('.register-form .userPassword').val())!=trimmer($('.register-form .userPasswordConfirm').val())){$(btnDOM).attr('disabled',false);checkInvalids=true;invalidInput('.register-form .userPasswordConfirm','The passwords you entered do not match.');}
if(!checkInvalids){$.ajax({url:"/assets/php/account/accounthelper.php",dataType:"json",data:{action:"createaccount","email":email,"firstName":firstname,"lastName":lastname,"password":trimmer($(".register-form .userPassword").val()),"userPasswordConfirm":trimmer($(".register-form .userPasswordConfirm").val()),"newsletterauthorization":$(".register-form .newsletterauthorization").prop("checked"),pageUri:window.location.href,pageName:document.title,keepFresh:Math.random()},error:function(r){invalidInput(".last-form-item","Error Occured: "+r.responseText);$(btnDOM).attr('disabled',false);},success:function(r){if(r.success){fireWebsiteEvent('account_created',{email:email});$("body").hasClass("account")?$(".mainarea").activity():$(".drawer").activity();$(".drawer-content").hide();$(".drawer-title-container .title-container").text("Successfully created!");setTimeout(function(){loginSuccessAction();},1000);$(btnDOM).attr('disabled',false);}else{$(btnDOM).attr('disabled',false);invalidInput($('.register-form .userPasswordConfirm'),r.message);}}});}}
function forgotPassword(){$(".invalid-input").remove();$(".forgot-password-form .drawer-content").removeClass("invalidborder");var email=$(".forgot-password-form .forgotpassword-email").val()
if(email==""){invalidInput(".forgot-password-form .forgotpassword-email","Please enter an email address");}else if(!isEmail(email)){invalidInput(".forgot-password-form .forgotpassword-email","Please enter a valid email address");}else{$.ajax({url:"/assets/php/account/accounthelper.php",dataType:"json",data:{action:"forgotpassword","email":$(".forgot-password-form .forgotpassword-email").val(),keepFresh:Math.random()},error:function(r){drawerError(r.message)},success:function(r){if(r.success){var html='An email has been sent with instructions for resetting your password.
';$(".drawer-content").fadeOut(function(){$(".drawer-content").html(html).fadeIn();});}else{drawerError(r.message,'.drawer-content-block:first-child')}}});}}
function forgotPasswordHtml(){$.ajax({url:"/assets/php/generalhelpers.php",dataType:"json",data:{action:"forgot_password_drawer",keepFresh:Math.random()},error:function(r){errorDialogAlert("Error Occured: "+r.responseText);$(btnDOM).attr('disabled',false);},success:function(r){showDrawer("Forgot Password?",r.html,{className:["login-pwd","forgot-password-form"]},()=>{$(".forgot-password-form .form-group").generateLabel();});}});}
function resetPassword(){$(".invalid-input").remove();$(".form-group").removeClass("invalidborder");var email=$(".userPasswordEmail").val();var password=$('.userPassword').val();var passwordconfirm=$('.userPasswordConfirm').val();var checkInvalids=false;if(email==""){invalidInput('.userPassword','Please enter a value for Email Address.');checkInvalids=true;}
if(password==""){invalidInput('.userPassword','Please enter a value for password.');checkInvalids=true;}
if(passwordconfirm==""){invalidInput('.userPasswordConfirm','Please enter a value for confirm password.');checkInvalids=true;}else if(password!=passwordconfirm){invalidInput('.userPasswordConfirm','Your passwords do not match');checkInvalids=true;}
if(!checkInvalids){$.ajax({url:"/assets/php/account/accounthelper.php",dataType:"json",data:{action:"resetpassword","password":$(".userPassword").val(),"passwordconfirm":$(".userPasswordConfirm").val(),"token":$("#token").val(),keepFresh:Math.random()},error:function(r){invalidInput(".userPasswordConfirm","Error Occured: "+r.responseText);},success:function(r){if(r.success){$("body").hasClass("account")?$(".mainarea").activity():$(".drawer").activity();requestedResource="/account/login/";loginredirect();}else{invalidInput(".userPasswordConfirm",r.message);}}});}}
function verifyAccount(){$.ajax({url:"/assets/php/account/accounthelper.php",dataType:"json",data:{action:"requestverification",keepFresh:Math.random()},error:function(r){errorDialogAlert("Error Occured: "+r.responseText);$(btnDOM).attr('disabled',false);},success:function(r){if(r.success){toast(' Check your email for instructions',3000);}else{errorDialogAlert(r.message);}}});}
function trimmer(txt){return(txt+"").replace(/^\s+|\s+$/gi,'');}
function showPassword(el){var span=el.next();if($(el).attr("type")==="password"){$(el).prop("type","text");span.text("hide");}else{$(el).prop("type","password");span.text("show");}}
function updateLoginLinks(mobileclass){var user=Cookies.get(DIVISION+'WebsiteCustomerSessionName');$(".login-drawer-enabled").attr("href","/account/").off("click").removeClass("login-drawer-enabled");if(mobileclass){$(mobileclass+" .username").text(user);$(mobileclass+" .mobile-logout").show();$(mobileclass+" .loggedin").show();$(mobileclass+" .loggedout").hide();if($("#mobile-menu").is(":visible")){mobiMenu();}}}
var loginChangeActions=[];function loginChangeEvents(){var uniqueActions=[];loginChangeActions.forEach((elementFnc)=>{if(!uniqueActions.includes(elementFnc.function)){uniqueActions.push(elementFnc.function)
if(typeof elementFnc.function=='function'){elementFnc.function(...elementFnc.args);}else if(elementFnc.args=="click"){$(elementFnc.function).click();}}});}
function sendDeletionEmail(){$(".delete-information.primary-btn").click(function(){$.ajax({url:"/assets/php/account/accounthelper.php",dataType:"json",data:{action:"deleteinformation",keepFresh:Math.random()},error:function(r){$('.drawer').activity(false);errorDialogAlert("Error Occured: "+r.message);},success:function(r){$('.drawer').activity(false);if(r.success){var $d=$("
",{"class":"message",text:r.message});$cards=$(".leftColumn").children(".card").fadeOut(250,function(){$($cards).first().empty().append($d).fadeIn(250);});hideDrawer();}else{$('.drawer').activity(false);errorDialogAlert(r.message);}}});hideDrawer();});}
async function initOptinListeners(){if($('.optin .optin-box').length>0){const orderHeader=$('#order-header-data').length>0?JSON.parse($('#order-header-data').text()):"";const email=orderHeader.email||"";$('.optin-box').on("click",function(){const $optin=$(this).closest(".optin");const $lists=$optin.find(".optin-box").filter((i,e)=>{return $(e).is(":checked")});if($lists.length>0)$optin.siblings(".optin-details").find(".subscribe").removeClass("disabled");else $optin.siblings(".optin-details").find(".subscribe").addClass("disabled");});$('.optin-details .subscribe').on("click",function(){const $optinDetails=$(this).closest(".optin-details");const $optin=$optinDetails.siblings(".optin");const lists=Array.from($optin.find(".optin-box").map((i,e)=>{if($(e).is(":checked"))return $(e).attr("name")}));if(lists.length==0){invalidInput(".optin","Please ensure at least one option is selected");return;}
const phone=$(this).siblings(".optin-number").val();if(!isValidPhoneNumber(phone)){invalidInput(".optin-number","Phone number is not valid",false);return;}
$.ajax({url:"/api/integrations/klaviyo.php",dataType:"json",error:function(r){},success:function(r){if(r.success){$('.drawer-title-container .title-container').text("Thanks for signing up!");const $activeForm=$optin.closest(".form-active");const listName=lists.length==2?"sms_all":lists[0];$activeForm.hide();$activeForm.siblings(".form-submitted-"+listName).removeClass("hide");}
else{toast(' Unknown Error Occurred');}},data:{action:"subscribe",event_name:"Consumer Website Receipt SMS Opt-In",opt_ins:lists,customer_properties:JSON.stringify({"email":email,"phone_number":phone,"sms_consent":true})}});});}}
/*
* NETEYE Activity Indicator jQuery Plugin
*
* Copyright (c) 2010 NETEYE GmbH
* Licensed under the MIT license
*
* Author: Felix Gnass [fgnass at neteye dot de]
* Version: 1.0.0
*/
(function($){$.fn.activity=function(opts){this.each(function(){var $this=$(this);var el=$this.data("activity");if(el){clearInterval(el.data("interval"));el.remove();$this.removeData("activity");}if(opts!==false){opts=$.extend({color:$this.css("color")},$.fn.activity.defaults,opts);el=render($this,opts).css("position","absolute").prependTo(opts.outside?"body":$this);var h=$this.outerHeight()-el.height();var w=$this.outerWidth()-el.width();var margin={top:opts.valign=="top"?opts.padding:opts.valign=="bottom"?h-opts.padding:Math.floor(h/2),left:opts.align=="left"?opts.padding:opts.align=="right"?w-opts.padding:Math.floor(w/2)};var offset=$this.offset();if(opts.outside){el.css({top:offset.top+"px",left:offset.left+"px"});}else{margin.top-=el.offset().top-offset.top;margin.left-=el.offset().left-offset.left;}el.css({marginTop:margin.top+"px",marginLeft:margin.left+"px"});animate(el,opts.segments,Math.round(10/opts.speed)/10);$this.data("activity",el);}});return this;};$.fn.activity.defaults={segments:12,space:3,length:7,width:4,speed:1.2,align:"center",valign:"center",padding:4};$.fn.activity.getOpacity=function(opts,i){var steps=opts.steps||opts.segments-1;var end=opts.opacity!==undefined?opts.opacity:1/steps;return 1-Math.min(i,steps)*(1-end)/steps;};var render=function(){return $("").addClass("busy");};var animate=function(){};function svg(tag,attr){var el=document.createElementNS("http://www.w3.org/2000/svg",tag||"svg");if(attr){$.each(attr,function(k,v){el.setAttributeNS(null,k,v);});}return $(el);}if(document.createElementNS&&document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect){render=function(target,d){var innerRadius=d.width*2+d.space;var r=(innerRadius+d.length+Math.ceil(d.width/2)+1);var el=svg().width(r*2).height(r*2);var g=svg("g",{"stroke-width":d.width,"stroke-linecap":"round",stroke:d.color}).appendTo(svg("g",{transform:"translate("+r+","+r+")"}).appendTo(el));for(var i=0;i
").append(el).width(2*r).height(2*r);};if(document.createElement("div").style.WebkitAnimationName!==undefined){var animations={};animate=function(el,steps,duration){if(!animations[steps]){var name="spin"+steps;var rule="@-webkit-keyframes "+name+" {";for(var i=0;i").css("behavior","url(#default#VML)").appendTo("body");if(s.get(0).adj){var sheet=document.createStyleSheet();$.each(["group","shape","stroke"],function(){sheet.addRule(this,"behavior:url(#default#VML);");});render=function(target,d){var innerRadius=d.width*2+d.space;var r=(innerRadius+d.length+Math.ceil(d.width/2)+1);var s=r*2;var o=-Math.ceil(s/2);var el=$("",{coordsize:s+" "+s,coordorigin:o+" "+o}).css({top:o,left:o,width:s,height:s});for(var i=0;i",{path:"m "+innerRadius+",0 l "+(innerRadius+d.length)+",0"}).css({width:s,height:s,rotation:(360/d.segments*i)+"deg"}).append($("",{color:d.color,weight:d.width+"px",endcap:"round",opacity:$.fn.activity.getOpacity(d,i)})));}return $("",{coordsize:s+" "+s}).css({width:s,height:s,overflow:"hidden"}).append(el);};animate=function(el,steps,duration){var rotation=0;var g=el.get(0);el.data("interval",setInterval(function(){g.style.rotation=++rotation%steps*(360/steps);},duration*1000/steps));};}$(s).remove();}})(jQuery);
var DRAWERMOVEMENTSPEED=500;var DRAWERFADESPEED=300;var DRAWERCOVERAGE=568;var isAnimating=false;function showDrawer(title,html,options,callback,callbackArgument){if(isAnimating){return;}
isAnimating=true;document.body.style.top=document.body.style.top||`-${window.scrollY}px`;document.body.style.position='fixed';document.body.style.width='calc(100vw - 17px)';$("body").off("keydown").on("keydown",function(event){if(event.keyCode==27){hideDrawer();}});if($(".wait").length>0){return;}
$(".drawer-container").find(".drawer-close").css("pointer-events","none");options=options||{};if(options.className&&typeof(options.className)==="string")options.className=[options.className];var width=(options["width"])?options["width"].replace(/\D/g,'')+"px":DRAWERCOVERAGE+"px";$(".drawer").css("max-width",width);if($(".drawer-expand").length>0){$(".drawer-title-container .title-container").fadeOut(DRAWERFADESPEED,function(){$(this).text(title).fadeIn(DRAWERFADESPEED)});$(".drawer-container .drawer .drawer-content").fadeOut(DRAWERFADESPEED,function(){var drawer=$(".drawer-container .drawer");var prevClass=drawer.data("prev-class");for(var i=0;i ');}
$(`${appendToSelector} .error`).fadeOut(function(){$(`${appendToSelector} .error`).html(message).fadeIn();});}
$(function(){$("body").prepend('');$(document).on("click",".drawer-close, .drawer-title-container .fa-times",function(){hideDrawer();});});
(function($){$.fn.generateLabel=function(){$(this).each(function(i,e){var target=[];if($(e).children("input, select").length>0){$(e).children("input, select").each(function(i,f){target[i]=$(f);$(f).data("parameters",$(e).data(("parameters")));});}
else{target[0]=$(e);if($(e).parent().data("parameters"))
$(e).data("parameters",$(e).parent().data("parameters"));}
if($(e).is("input, select")&&!$(e).parent().hasClass("labeloverlay"))
$(e).parent().addClass("labeloverlay");else
$(e).addClass("labeloverlay");$(target).each(function(i,elem){const element=$(elem);var parameters=element.data("parameters");var floatStyle=false;var floatedStyle=false;if(parameters!==undefined){floatStyle=parameters.float;floatedStyle=parameters.floated;}
var text;if(element.is(`input[type=text], input[type=search], input[type=email], input[type=url], input[type=tel], input[type=date], input[type=datetime-local],
input[type=month], input[type=number], input[type=range], input[type=password], input[type=time], input[type=week], select`)){text=element.attr("placeholder")?element.attr("placeholder"):element.parent().siblings(".reportOptionLabel").text();element.parent().siblings(".reportOptionLabel").hide();element.removeAttr("placeholder");}
var f=false;var floating_label=false;if(floatStyle||floatedStyle)
f=createClassHTML(floatStyle,floatedStyle);var secondaryClass="floating-label"+(f!==false?" floating-label"+f:"");if(text)
floating_label=""+text+" ";if(element.siblings(".floating-label").length==0)
element.parent().append(floating_label);if(element.is("select")){if(element.attr('materialio')){element.after(' ');}
element.on("input",element,function(){var text=element.children(":selected").text();if(text===element.siblings(".floating-label, .floated-label").text()||text==="")
element.addClass("hide_selected_text");else
element.removeClass("hide_selected_text");if(element.children(":selected").text()!==element.siblings(".floating-label, .floated-label").text()){if(!element.siblings(".floated-label").hasClass("floated-label"))
element.siblings(".floating-label").addClass("floated-label");}else{if(element.siblings(".floated-label").hasClass("floated-label"))
element.siblings(".floating-label").removeClass("floated-label");}});element.on("focus",element,function(){if(!element.siblings(".floating-label").hasClass("floated-label"))
element.siblings(".floating-label").addClass("floated-label");});element.on("focusout",element,function(){if(element.children(":selected").text()===element.siblings(".floating-label, .floated-label").text())
element.siblings(".floating-label").removeClass("floated-label");});if(element.children(":selected").text()!==element.siblings(".floating-label, .floated-label").text())
element.siblings(".floating-label").addClass("floated-label");if(element.children(":selected").text()===element.siblings(".floating-label, .floated-label").text())
element.addClass("hide_selected_text");}else if(element.is("input")){element.on("focus",element,function(){if(!element.siblings(".floating-label").hasClass("floated-label"))
element.siblings(".floating-label").addClass("floated-label");});element.on("focusout",element,function(){if(element.val()==="")
element.siblings(".floating-label").removeClass("floated-label");});if((element.prop("disabled")&&element.val()!=="")||element.val()!=="")
element.siblings(".floating-label").addClass("floated-label");}});});$(".floating-label, .floated-label").show();return $(this);};function createClassHTML(start,after){if(!start&&!after)
return;var style="";var initial_style="";var alternate_style="";var f=$(".floating-label"+f+"").length+1;Object.entries(start).forEach(entry=>{alternate_style+=entry[0]+":"+entry[1]+";\n";});Object.entries(after).forEach(entry=>{initial_style+=entry[0]+":"+entry[1]+";\n";});if(initial_style!==""){style+=".labeloverlay input:focus ~ .floating-label"+f+","+".labeloverlay input:not(:focus):valid ~ .floating-label"+f+"{ "+initial_style+" font-size: 11px; opacity: 1; padding-left: 3px; padding-right: 3px; }"+".labeloverlay input:-webkit-autofill ~ .floating-label"+f+", .labeloverlay input:autofill ~ .floating-label"+f+"{ "+initial_style+" font-size: 11px; opacity: 1; }"+".labeloverlay .floated-label"+f+"{ "+initial_style+"font-size: 11px;opacity: 1; padding-left: 3px; padding-right: 3px; }"+".labeloverlay select + .floated-label"+f+"{ "+initial_style+" }"+".labeloverlay select ~ .floated-label"+f+"{ "+initial_style+" }";}
if(alternate_style!=="")style+=".labeloverlay .floating-label.floating-label"+f+", .labeloverlay .floated-label.floating-label"+f+"{ "+alternate_style+" }";style=$("