window.checkoutOptionsData = {"url":"https:\/\/enhanced-checkout-options.com\/checkout\/ku31scvrzx","enabled":true,"message":"Subscription is not active.","places":[],"allEnabledOptionSkus":[{"sku":"TEMPORARY_FUEL_SURCHAGE_4_5_","name":"Temporary Fuel Surchage 4.5%"}],"redirectAfterOptionSelect":false,"script":"https:\/\/enhanced-checkout-options.com\/js\/cart.js","currency":{"code":"AUD","format":"${{PRICE}}"}};
let places = window.checkoutOptionsData.places;
window.checkoutApplicationBaseApiUrl = window.checkoutOptionsData.url;
window.checkoutOptionsPlaces = window.checkoutOptionsData.places;
window.reloadData = false;
const addScript = async src => new Promise((resolve, reject) => {
const el = document.createElement('script');
el.src = src;
el.addEventListener('load', resolve);
el.addEventListener('error', reject);
document.body.append(el);
});
const hideTotalsFromCart = () => {
const namesToHide = [];
if (window.checkoutOptionsData && window.checkoutOptionsData.allEnabledOptionSkus) {
window.checkoutOptionsData.allEnabledOptionSkus.forEach(option => {
namesToHide.push(option.name);
});
}
if (namesToHide.length === 0) {
return;
}
const cartTotalsList = document.querySelector('ul.cart-totals');
if (cartTotalsList) {
cartTotalsList.querySelectorAll('.cart-total--custom').forEach(el => el.remove());
}
const items = document.querySelectorAll('tr.cart-item');
items.forEach(item => {
// const nameElement = item.querySelector('.cart-item-name__label');
const nameElement = item.querySelector('.cart-item-name__label, .cart-item-name a, .cart-item-name');
if (nameElement) {
// const name = nameElement.textContent.trim();
const name = nameElement?.textContent.trim().replace(/\s+/g, ' ');
const shouldHide = namesToHide.includes(name);
if (shouldHide) {
item.style.display = 'none';
if (cartTotalsList) {
const priceElement = item.querySelector('.cart-item-value');
const price = priceElement ? priceElement.textContent.trim() : '';
const customTotal = document.createElement('li');
customTotal.className = 'cart-total cart-total--custom';
customTotal.innerHTML = `
${name}:
${price}
`;
cartTotalsList.prepend(customTotal);
}
} else {
item.style.display = '';
}
}
});
const miniCartItems = document.querySelectorAll('.previewCartItem');
miniCartItems.forEach(item => {
const nameElement = item.querySelector('.previewCartItem-name a');
if (nameElement) {
const name = nameElement.textContent.trim();
const shouldHide = namesToHide.includes(name);
if (shouldHide) {
item.style.display = 'none';
} else {
item.style.display = '';
}
}
});
}
const insertPlaceHolders = () => {
hideTotalsFromCart();
window.checkoutOptionsPlaces.map((place, index) => {
if (!place.enabled) return false;
place.selectors.map((sel, index) => {
let element = document.querySelector(sel.selector);
let id = `cart-options-placeholder-${index}`;
if (element && !document.getElementById(id)) {
let placeHolder = document.createElement(sel.tag ?? 'div');
placeHolder.className = sel.class;
placeHolder.id = id;
placeHolder.dataset.checkoutOption = place.id;
placeHolder.innerHTML = [""
, "Loading..."
, "
"].join('');
if (sel.position === 'before') {
element.parentNode.insertBefore(placeHolder, element)
} else if (sel.position === 'inside') {
element.append(placeHolder);
} else {
element.parentNode.insertBefore(placeHolder, element.nextSibling);
}
}
});
});
setTimeout(insertPlaceHolders, 100);
}
insertPlaceHolders();
setTimeout(() => {
fetch('/api/storefront/carts', {
method: "GET",
credentials: "same-origin"
})
.then(response => response.json())
.then(result => {
addScript((document.location.href.indexOf("debug") > 0 ? "http://localhost/js/cart.js" : window.checkoutOptionsData.script) + "?v=3&id=" + result[0].id).then();
window.bigcommerceCartId = result[0].id;
})
.catch(error => console.error(error));
}, 300)
document.addEventListener('DOMContentLoaded', function () {
const cartContent = document.querySelector('[data-cart-content]');
if (!cartContent) return;
let removeTimeout = null;
const observer = new MutationObserver(function () {
clearTimeout(removeTimeout);
removeTimeout = setTimeout(function () {
window.reloadData = true;
const section = document.querySelector('.cart-section');
if (section) {
section.remove();
}
}, 1);
});
observer.observe(cartContent, {
childList: true,
subtree: true
});
});