{"version":3,"sources":["addtocart.ts","main.ts","quickcart.ts"],"names":["AddToCart","_ref","promoProps","elementIDs","itemProps","invtProps","_classCallCheck","this","OCForm1","document","querySelector","_objectSpread","addToCartBtn","subscribeBtn","productSubAddToCartBtn","productSubSubscribeBtn","addOnProductID","_createClass","key","value","name","Promise","resolve","reject","ajaxObj","XMLHttpRequest","open","setRequestHeader","send","onreadystatechange","responseText","errorMessage","readyState","DONE","exec","concat","productIndex","showHideLoader","justAddedArray","productIDFields","productID","mainExtensionIndices","errorCount","justAddedItemID","justAddedInvtID","justAddedExtensionCode","justAddedExtension","justAddedExtensionGroup","justAddedQuantity","ajaxParamItemID","ajaxParamQuantity","ajaxParamProductIDExtensionGroups","ajaxParamExtensions","undefined","length","checked","quantity","productIDExtensionGroups","Number","isInteger","parseFloat","toString","isNaN","HAH","product","getProductID","indexOf","stkItem","invtIDQtyAvail","qtyAvail","alert","domParentSelect","selectIndex","ajaxParams","ajaxResults","mainExtensionGroupArray","split","extensionValue","i","getElementById","selectedIndex","options","push","text","itemID","invtID","descr","Name","image","Thumb","extensionGroup","extension","price","Price","listprice","ListPrice","qty","promoType","toUpperCase","j","bogoPairs","toLowerCase","mainSku","subSku","gwpSku","replace","freeGiftRemarkCopy","gwpProps","hasGwpInCart","sku","imgPath","listPrice","points","listpoints","listPoints","style","display","innerText","bannerCopy","checkValidity","mainItemID","addOnExtensionGroupArray","extensionGroupIndex","p","itemsObj","addOn","hasOwnProperty","k","Override","mainExt","addOnExt","addOnExtTxt","encodeURIComponent","quickCartObj","updateQuickCart","_this","$","subsItemIndex","collectionPItemCount","_loop","collectionAddToCartBtn","collectionAddToCartBtnPrefix","on","ajaxAddToCart","_loop2","addEventListener","parseInt","_i2","addToCartObj","classOptions","jQuery","ajaxGetCart","then","results","updateCartHTML","error","console","log","doExtensionChange","tmpItemID","groundShipIDs","InstockOverride","stockMessage","addOnPrice","addOnListPrice","Instock","elementIndex","productIDs","addOnElementIndex","tmpInvtID","isSubs","doGetStockMessage","innerHTML","e","getPrice","toUSD","checkAddOnStock","type","returnValue","itemListPrices","itemPrices","toFixed","showHideATC","status","hideElement","showElement","stockInvtID","stockMessageValues","itemStockLevel","reOrdQty","reOrdQtyOverride","customInStockMessage","defaultInStockMessage","defaultOutOfStockMessage","defaultLowStockMessage","addOnInvID","addOnExtGroups","tmpExtValue","tmpExtGroups","addOnExtensionOptionsLength","stkItemAddOn","stockAddOnMessageValues","qtyAvailAddOn","visibility","tmpExtensions","indexValue","ready","bindElementHandlers","QuickCart","lightboxProps","cartItems","lightboxCart","lbSumQty","lbSubtotal","lbItemContainerPrefix","lbImagePrefix","lbProdNamePrefix","lbCurrentPricePrefix","lbListPricePrefix","lbExtPrefix","lbQtyPrefix","headerCart","cartSumQty","bubbleCnt","textItems","DIVitemHead","DIVcartSumItemsList","DIVNoItem","ulMarkupDIVcartSumItemsList","hdSubtotal","hdQty","hdItemDescr","hdPrice","get","set","newCartItems","_ref2","skusCount","getXMLDataTableRowCount","$DIVcartSumItemsList","$DIVNoItem","$DIVitemHead","totalCount","getXMLDataFieldValue","$cartSumQuantity","$textItems","$bubbleCount","show","css","html","hide","append","currentBasketID","dsBasketExtensionsCount","productName","productDescription","be","productPrice","formatCurrency","productQuantity","ct","htmlString","lbItemWrapUl","lbItemWrapAfterUl","sumCartQty","dsItemRowCount","populateItemUl","numItemContainer","lbItemContainer","lbItemImage","lbItemName","lbItemCurrentPrice","lbItemListPrice","lbItemQty","attr","tmpExtNameArray","tmpExtGroupNameArray","x","maxNumExtenionPerItem","trackATC","lbSumQtyString","getBMSMTotals","trigger","cartViewAdobeLaunch","cartProductsAW","addToCartGA4","dsItemExtensionCount","dsItemExtension","tmpIndex","basketID","sortIndex","extensionName","tmpVariant","GA4Obj","matchedItem","_cartItems","find","item","altID","addedQty","addedCategory","newQty","addedCategoryID","invtIDCategory","tempItemID","categoryName","categoryID","alternateID","category","parseXMLData","matchedItemExtension","filter","elem","sort","a","b","map","join","item_name","item_id","affiliation","discount","subscription","item_brand","item_category","index","item_list_id","item_list_name","Object","keys","localStorage","filteredArray","JSON","parse","stringify","id","google_business_vertical","mainItem","totalValue_AddToCart","reduce","total","dataLayer","ecommerce","event","currency","items","event_value","event_items","cartView","products","totalCost","currencyCode"],"mappings":"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","file":"../product.min.js","sourcesContent":["/******** cart.js ********/\n\n/******* AddToCart *******/\nclass AddToCart implements AddToCartInterface {\n OCForm1: HTMLFormElement;\n promoProps: PromoProps;\n elementIDs: ElementIDs;\n itemProps: ItemProps;\n invtProps: InvtProps;\n\n constructor({\n promoProps,\n elementIDs,\n itemProps,\n invtProps\n }) {\n this.OCForm1 = document.querySelector('#OCForm1');\n const defaultElementIds = {\n addToCartBtn: '#addToCartBtn',\n subscribeBtn: '#subscribeBtn',\n productSubAddToCartBtn: '#productSubAddToCartBtn',\n productSubSubscribeBtn: '#productSubSubscribeBtn',\n addOnProductID: 'addOnProductID'\n };\n this.promoProps = promoProps || {};\n this.elementIDs = {\n ...defaultElementIds,\n ...elementIDs\n };\n this.itemProps = itemProps || {};\n this.invtProps = invtProps || {};\n }\n getPromoValue(name: string): void {\n return this.promoProps[name];\n }\n setPromoValue(name: string, value: string): void {\n this.promoProps[name] = value;\n }\n ajaxGetCart(): Promise {\n return new Promise((resolve, reject) => {\n const ajaxObj = new XMLHttpRequest()\n const ajaxParams = `&posting=FALSE`\n const ajaxURL = 'ajax/cart.aspx'\n ajaxObj.open('POST', ajaxURL, true)\n ajaxObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;')\n ajaxObj.send(ajaxParams)\n ajaxObj.onreadystatechange = function () {\n if (ajaxObj.readyState === XMLHttpRequest.DONE) {\n const responseText = ajaxObj.responseText\n if (responseText) {\n const errorMessage = /.+<\\/errormessage>/i.exec(responseText);\n if (errorMessage) {\n reject(`Failed to get cart data: ${errorMessage}`)\n } else {\n resolve(responseText)\n }\n } else {\n reject('Failed to get cart data: response is undefined')\n }\n }\n }\n })\n }\n ajaxAddToCart(productIndex: number): void {\n showHideLoader('show', productIndex);\n const justAddedArray = [];\n const productIDFields = this.OCForm1.productID;\n const mainExtensionIndices = [];\n const ajaxObj = new XMLHttpRequest();\n let errorCount = 0;\n let justAddedItemID = '';\n let justAddedInvtID = '';\n let justAddedExtensionCode = '';\n let justAddedExtension = '';\n let justAddedExtensionGroup = '';\n let justAddedQuantity = 0;\n let ajaxParamItemID = '';\n let ajaxParamQuantity = '';\n let ajaxParamProductIDExtensionGroups = '';\n let ajaxParamExtensions = '';\n if (productIDFields.length !== undefined) {\n if (productIDFields.length > 2 && productIndex === 1 && productIDFields[(productIndex + 1)].checked) {\n justAddedItemID = productIDFields[2].value;\n justAddedQuantity = this.OCForm1.quantity[2].value;\n ajaxParamProductIDExtensionGroups = this.OCForm1.productIDExtensionGroups[2].value;\n } else {\n justAddedItemID = productIDFields[productIndex].value;\n justAddedQuantity = this.OCForm1.quantity[productIndex].value;\n ajaxParamProductIDExtensionGroups = this.OCForm1.productIDExtensionGroups[productIndex].value;\n }\n } else {\n justAddedItemID = productIDFields.value;\n justAddedQuantity = this.OCForm1.quantity.value;\n ajaxParamProductIDExtensionGroups = this.OCForm1.productIDExtensionGroups.value;\n }\n if (justAddedQuantity === 0 || justAddedQuantity > 99 || !Number.isInteger(parseFloat(justAddedQuantity.toString())) || isNaN(Number(justAddedQuantity))) {\n errorCount++;\n }\n justAddedInvtID = HAH.product.getProductID(justAddedItemID, productIndex);\n if (justAddedInvtID.indexOf('SELECT') > -1) {\n errorCount++;\n } else {\n const stkItem = this.invtProps[justAddedInvtID].stkItem||0;\n const invtIDQtyAvail = this.invtProps[justAddedInvtID].qtyAvail||0;\n if (stkItem != 0 && invtIDQtyAvail <= 0){\n errorCount++;\n alert('Sold out! Please select another option.')\n }\n }\n if (errorCount === 0) {\n let mainExtensionGroupArray = ajaxParamProductIDExtensionGroups.split(';');\n let extensionValue = '';\n for (let i = 0; i < mainExtensionGroupArray.length; i++) {\n if (mainExtensionGroupArray[i] !== '') {\n let domParentSelect: any = document.getElementById(`${justAddedItemID}${mainExtensionGroupArray[i]}`);\n let selectIndex = domParentSelect.selectedIndex;\n extensionValue = domParentSelect.options[selectIndex].value;\n if (extensionValue !== '') {\n mainExtensionIndices.push(selectIndex);\n ajaxParamExtensions += `&${justAddedItemID}${mainExtensionGroupArray[i]}=${extensionValue}`;\n justAddedExtensionGroup += `${domParentSelect.options[0].text};`;\n justAddedExtension += `${domParentSelect.options[selectIndex].text};`;\n justAddedExtensionCode += (document.getElementById(justAddedItemID + mainExtensionGroupArray[i])).options[(document.getElementById(justAddedItemID + mainExtensionGroupArray[i])).options.selectedIndex].value;\n }\n }\n }\n justAddedArray.push({\n itemID: justAddedItemID,\n invtID: justAddedInvtID,\n descr: this.itemProps[justAddedItemID].Name,\n image: this.itemProps[justAddedItemID].Thumb,\n extensionGroup: justAddedExtensionGroup,\n extension: justAddedExtension,\n price: this.itemProps[justAddedItemID].Price,\n listprice: this.itemProps[justAddedItemID].ListPrice,\n qty: justAddedQuantity\n });\n ajaxParamItemID = justAddedItemID;\n ajaxParamQuantity = justAddedQuantity.toString();\n if (this.promoProps.promoType !== undefined) {\n if (this.promoProps.promoType.toUpperCase() === 'BOGO') {\n for (let j = 0; j < this.promoProps.bogoPairs.length; j++) {\n if (justAddedItemID.toLowerCase().indexOf(this.promoProps.bogoPairs[j].mainSku.toLowerCase()) !== -1 || (this.promoProps.bogoPairs[j].subSku !== '' && justAddedItemID.toLowerCase().indexOf(this.promoProps.bogoPairs[j].subSku.toLowerCase()) !== -1)) {\n justAddedArray.push({\n itemID: this.promoProps.bogoPairs[j].gwpSku,\n invtID: this.promoProps.bogoPairs[j].gwpSku,\n descr: `${this.itemProps[justAddedItemID].Name.replace(' - Subscription', '')} - ${this.promoProps.freeGiftRemarkCopy}`,\n image: this.itemProps[justAddedItemID].Thumb,\n extensionGroup: justAddedExtensionGroup,\n extension: justAddedExtension,\n price: '0',\n listprice: this.itemProps[justAddedItemID].ListPrice,\n qty: justAddedQuantity\n });\n ajaxParamItemID += `,${this.promoProps.bogoPairs[j].gwpSku}`;\n ajaxParamQuantity += `,${justAddedQuantity}`;\n }\n }\n } else if (this.promoProps.promoType.toUpperCase() === 'GWP') {\n if (this.promoProps.gwpProps.hasGwpInCart===false){\n justAddedArray.push({\n itemID: this.promoProps.gwpProps.sku,\n invtID: this.promoProps.gwpProps.sku,\n descr: this.promoProps.gwpProps.name,\n image: this.promoProps.gwpProps.imgPath,\n extensionGroup: '',\n extension: '',\n price: '0',\n listprice: `${this.promoProps.gwpProps.listPrice}`,\n points: '0',\n listpoints: `${this.promoProps.gwpProps.listPoints}`,\n qty: this.promoProps.gwpProps.qty\n });\n ajaxParamItemID += `,${this.promoProps.gwpProps.sku}`;\n ajaxParamQuantity += `,${this.promoProps.gwpProps.qty}`;\n ajaxParamProductIDExtensionGroups += ',';\n this.promoProps.gwpProps.hasGwpInCart=true;\n document.getElementById('lightboxGwpBanner').style.display = 'block';\n document.getElementById('lightboxGwpBannerText').innerText = this.promoProps.gwpProps.bannerCopy;\n } else {\n document.getElementById('lightboxGwpBanner').style.display = 'none';\n }\n }\n }\n if (productIDFields[productIndex + 1] !== undefined) {\n if (productIDFields[productIndex + 1].checked && this.OCForm1.checkValidity()) {\n const mainItemID = productIDFields[productIndex].value;\n justAddedItemID = productIDFields[productIndex + 1].value;\n justAddedInvtID = justAddedItemID;\n ajaxParamItemID += `,${justAddedItemID}`;\n ajaxParamQuantity += `,${justAddedQuantity}`;\n ajaxParamProductIDExtensionGroups += `,${this.OCForm1.productIDExtensionGroups[productIndex + 1].value}`;\n mainExtensionGroupArray = this.OCForm1.productIDExtensionGroups[productIndex + 1].value.split(';');\n for (let i = 0; i < mainExtensionGroupArray.length; i++) {\n if (mainExtensionGroupArray[i] !== '') {\n const addOnExtensionGroupArray = this.OCForm1.productIDExtensionGroups[productIndex].value.split(';');\n let extensionGroupIndex = -1;\n for (let p = 0; p < addOnExtensionGroupArray.length; p++) {\n if (mainExtensionGroupArray[i] === addOnExtensionGroupArray[p]) {\n extensionGroupIndex = p;\n p = addOnExtensionGroupArray.length;\n }\n }\n if (extensionGroupIndex > -1) {\n (document.getElementById(`${productIDFields[productIndex + 1].value}${mainExtensionGroupArray[i]}`)).options.selectedIndex = mainExtensionIndices[extensionGroupIndex];\n } else {\n (document.getElementById(`${productIDFields[productIndex + 1].value}${mainExtensionGroupArray[i]}`)).options.selectedIndex = mainExtensionIndices[i];\n }\n const itemsObj = this.itemProps[productIDFields[productIndex].value];\n if (itemsObj.addOn.hasOwnProperty('Override')) {\n if (justAddedExtensionCode !== '') {\n for (let k = 0; k < itemsObj.addOn.Override.length; k++) {\n if (justAddedExtensionCode.indexOf(itemsObj.addOn.Override[k].mainExt) !== -1) {\n extensionValue = itemsObj.addOn.Override[k].addOnExt;\n justAddedExtension = itemsObj.addOn.Override[k].addOnExtTxt;\n }\n }\n } else {\n extensionValue = itemsObj.addOn.Override[0].addOnExt;\n justAddedExtension = itemsObj.addOn.Override[0].addOnExtTxt;\n }\n } else {\n extensionValue = (document.getElementById(`${productIDFields[productIndex + 1].value}${mainExtensionGroupArray[i]}`)).options[(document.getElementById(`${productIDFields[productIndex + 1].value}${mainExtensionGroupArray[i]}`)).options.selectedIndex].value;\n justAddedExtension = (document.getElementById(`${productIDFields[productIndex + 1].value}${mainExtensionGroupArray[i]}`)).options[(document.getElementById(`${productIDFields[productIndex + 1].value}${mainExtensionGroupArray[i]}`)).options.selectedIndex].text;\n }\n if (extensionValue !== '') {\n justAddedInvtID += extensionValue;\n ajaxParamExtensions += `&${productIDFields[productIndex + 1].value}${mainExtensionGroupArray[i]}=${extensionValue}`;\n justAddedExtensionGroup = (document.getElementById(`${justAddedItemID}${mainExtensionGroupArray[i]}`)).options[0].text;\n }\n }\n }\n if (justAddedInvtID !== '') {\n justAddedArray.push({\n itemID: justAddedItemID,\n invtID: justAddedInvtID,\n descr: this.itemProps[mainItemID].addOn.Name,\n image: this.itemProps[mainItemID].addOn.Thumb,\n extensionGroup: justAddedExtensionGroup,\n extension: justAddedExtension,\n listprice: this.itemProps[mainItemID].addOn.ListPrice,\n price: this.itemProps[mainItemID].addOn.Price,\n qty: justAddedQuantity\n });\n }\n }\n }\n if (errorCount === 0) {\n let ajaxParams = `&posting=TRUE&actionType=CARTADD&productID=${encodeURIComponent(ajaxParamItemID)}&quantity=${encodeURIComponent(ajaxParamQuantity)}&productIDExtensionGroups=${encodeURIComponent(ajaxParamProductIDExtensionGroups)}${ajaxParamExtensions}`;\n let ajaxURL = 'ajax/cart.aspx';\n let ajaxResults = '';\n ajaxObj.open('POST', ajaxURL, true);\n ajaxObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');\n ajaxObj.send(ajaxParams);\n ajaxObj.onreadystatechange = function () {\n if (ajaxObj.readyState === 4) {\n ajaxResults = ajaxObj.responseText + '';\n if (ajaxResults !== '') {\n const tmpErrorMessage = /.+<\\/errormessage>/i.exec(ajaxResults);\n if (tmpErrorMessage) {\n showHideLoader('hide', productIndex);\n } else {\n quickCartObj.updateQuickCart(justAddedArray, ajaxResults, productIndex);\n justAddedArray.length = 0;\n }\n }\n }\n };\n }\n } else {\n showHideLoader('hide', productIndex);\n }\n }\n bindElementHandlers(): void {\n const addToCartBtn = $(this.elementIDs.addToCartBtn);\n const subscribeBtn = $(this.elementIDs.subscribeBtn);\n const productSubAddToCartBtn = $(this.elementIDs.productSubAddToCartBtn);\n const productSubSubscribeBtn = $(this.elementIDs.productSubSubscribeBtn);\n const subsItemIndex = (this.OCForm1[this.elementIDs.addOnProductID] === undefined) ? 1 : 2;\n const collectionPItemCount = this.elementIDs.collectionPItemCount;\n if (collectionPItemCount !== undefined && collectionPItemCount > 0) {\n for (let i = 0; i < collectionPItemCount; i++) {\n let collectionAddToCartBtn = $(this.elementIDs.collectionAddToCartBtnPrefix + i);\n if (collectionAddToCartBtn.length) {\n collectionAddToCartBtn.on('click', () => {\n this.ajaxAddToCart(i);\n });\n }\n }\n }\n if (addToCartBtn.length) {\n addToCartBtn.on('click', () => {\n this.ajaxAddToCart(0);\n });\n }\n if (subscribeBtn.length) {\n subscribeBtn.on('click', () => {\n this.ajaxAddToCart(subsItemIndex);\n });\n }\n if (productSubAddToCartBtn.length) {\n productSubAddToCartBtn.on('click', () => {\n this.ajaxAddToCart(0);\n });\n }\n if (productSubSubscribeBtn.length) {\n productSubSubscribeBtn.on('click', () => {\n this.ajaxAddToCart(subsItemIndex);\n });\n }\n const quantity = this.OCForm1.quantity;\n if (quantity.length !== undefined) {\n for (let i = 0; i < quantity.length; i++) {\n quantity[i].addEventListener('change', () => {\n if (isNaN(parseInt(quantity[i].value)) || parseInt(quantity[i].value) <= 0) {\n quantity[i].value = 1;\n }\n });\n }\n } else {\n quantity.addEventListener('change', () => {\n if (isNaN(parseInt(quantity.value)) || parseInt(quantity.value) <= 0) {\n quantity.value = 1;\n }\n });\n }\n }\n}\n\nconst addToCartObj = new AddToCart(classOptions);\n\njQuery(() => {\n addToCartObj.ajaxGetCart()\n .then((results) => {\n quickCartObj.updateCartHTML({ ajaxResults: results })\n })\n .catch((error: any) => {\n console.log('Error getting cart data.')\n console.error(error)\n })\n})\n\n/******* Interfaces *******/\ninterface AddToCartInterface {\n promoProps: PromoProps;\n elementIDs: ElementIDs;\n itemProps: ItemProps;\n invtProps: InvtProps;\n}\n\ninterface ElementIDs {\n addOnProductID: string;\n addToCartBtn: string;\n productSubAddToCartBtn: string;\n productSubSubscribeBtn: string;\n subscribeBtn: string;\n collectionPItemCount?: number;\n collectionAddToCartBtnPrefix?: string;\n}","var HAH = HAH || {};\n\nHAH.product = (function () {\n return {\n getPrice: function (tmpInvtID: string, type: string): number {\n let returnValue = 0;\n try {\n if (type === 'listprice') {\n returnValue = parseFloat(itemListPrices[tmpInvtID]);\n } else {\n returnValue = parseFloat(itemPrices[tmpInvtID]);\n }\n returnValue = Number(returnValue.toFixed(2));\n } catch (e) { }\n if (isNaN(Number(returnValue))) {\n returnValue = 0;\n }\n return returnValue;\n },\n showHideATC: function (elementIndex: number, status: string): void {\n if (status === 'out') {\n hideElement(`SPANQty${elementIndex}`);\n hideElement('quantity', elementIndex);\n hideElement('qty');\n hideElement('addToCartBtn');\n showElement(`SPANstock${elementIndex}`);\n } else {\n showElement(`SPANQty${elementIndex}`);\n showElement('quantity', elementIndex, '');\n showElement('qty', 0, '');\n showElement('addToCartBtn');\n hideElement(`SPANstock${elementIndex}`);\n }\n },\n doGetStockMessage: function (tmpItemID: string, elementIndex: number, InstockOverride: boolean): string {\n let returnValue = '';\n try {\n let stockInvtID = HAH.product.getProductID(tmpItemID, elementIndex);\n let stockMessageValues = itemStockLevel[stockInvtID].split('|');\n let stkItem = parseInt(stockMessageValues[0]);\n let qtyAvail = parseInt(stockMessageValues[1]);\n let reOrdQty = parseInt(stockMessageValues[2]);\n let reOrdQtyOverride = parseInt(stockMessageValues[3]);\n let customInStockMessage = stockMessageValues[4];\n if (stkItem === 0 || InstockOverride) {\n //dropship items always instock\n returnValue = (customInStockMessage === '') ? defaultInStockMessage : customInStockMessage;\n HAH.product.showHideATC(elementIndex, 'in');\n } else {\n if (qtyAvail <= 0) {\n returnValue = defaultOutOfStockMessage;\n HAH.product.showHideATC(elementIndex, 'out');\n } else if (qtyAvail <= reOrdQtyOverride || qtyAvail <= reOrdQty) {\n returnValue = defaultLowStockMessage;\n HAH.product.showHideATC(elementIndex, 'in');\n } else {\n returnValue = (customInStockMessage === '') ? defaultInStockMessage : customInStockMessage;\n HAH.product.showHideATC(elementIndex, 'in');\n }\n }\n } catch (e) { }\n return returnValue;\n },\n checkAddOnStock: function (tmpItemID: string, elementIndex: number, addOnProductID: string, addOnElementIndex: number, Instock: boolean): void {\n let addOnInvID = addOnProductID;\n let addOnExtGroups = null;\n let tmpExtValue = '';\n try {\n addOnExtGroups = (document.getElementById('OCForm1')).productIDExtensionGroups[addOnElementIndex].value.split(';');\n } catch (e) { }\n let tmpExtGroups = (document.getElementById('OCForm1')).productIDExtensionGroups[elementIndex].value.split(';');\n (document.getElementById(`${addOnProductID}${addOnExtGroups[0]}`)).selectedIndex = (document.getElementById(`${tmpItemID}${tmpExtGroups[0]}`)).selectedIndex;\n let addOnExtensionOptionsLength = (document.getElementById(`${addOnProductID}${addOnExtGroups[0]}`)).options.length;\n for (let k = 0; k < addOnExtensionOptionsLength; k++) {\n if ((document.getElementById(`${addOnProductID}${addOnExtGroups[0]}`)).options[k].value == (document.getElementById(`${tmpItemID}${tmpExtGroups[0]}`)).options[(document.getElementById(`${tmpItemID}${tmpExtGroups[0]}`)).selectedIndex].value) {\n (document.getElementById(`${addOnProductID}${addOnExtGroups[0]}`)).selectedIndex = k;\n }\n }\n for (let i = 0; i < addOnExtGroups.length; i++) {\n if (addOnExtGroups[i] !== '') {\n if ((document.getElementById(`${addOnProductID}${addOnExtGroups[i]}`)).selectedIndex === 0) {\n tmpExtValue = 'SELECT';\n } else {\n tmpExtValue = (document.getElementById(`${addOnProductID}${addOnExtGroups[i]}`)).options[(document.getElementById(`${addOnProductID}${addOnExtGroups[i]}`)).selectedIndex].value;\n }\n addOnInvID += tmpExtValue;\n }\n }\n if (tmpExtValue != 'SELECT') {\n let stockAddOnInvtID = addOnInvID;\n let stockAddOnMessageValues = itemStockLevel[stockAddOnInvtID].split('|');\n let stkItemAddOn = parseInt(stockAddOnMessageValues[0]);\n let qtyAvailAddOn = parseInt(stockAddOnMessageValues[1]);\n if ((stkItemAddOn === 0) || (Instock)) {\n document.getElementById('addition').style.visibility = 'visible';\n } else {\n if (qtyAvailAddOn <= 0) {\n if ((document.getElementById('OCForm1')).productID[addOnElementIndex].checked) {\n (document.getElementById('OCForm1')).productID[addOnElementIndex].checked = false;\n }\n document.getElementById('addition').style.visibility = 'hidden';\n } else {\n document.getElementById('addition').style.visibility = 'visible';\n }\n }\n }\n },\n getProductID: function (tmpItemID: string, elementIndex: number): string {\n let tmpExtensions = null;\n let returnValue = tmpItemID ? tmpItemID : (document.getElementById('productID')).value;\n let indexValue = elementIndex ? elementIndex : 0;\n let tmpExtValue = '';\n try {\n tmpExtensions = (document.getElementById('OCForm1')).productIDExtensionGroups[indexValue].value.split(';');\n } catch (e) { }\n if (tmpExtensions === null) {\n tmpExtensions = (document.getElementById('OCForm1')).productIDExtensionGroups.value.split(';');\n }\n for (let i = 0; i < tmpExtensions.length; i++) {\n if (tmpExtensions[i] !== '') {\n if (tmpItemID) {\n if ((document.getElementById(`${tmpItemID}${tmpExtensions[i]}`)).selectedIndex === 0) {\n tmpExtValue = 'SELECT';\n } else {\n tmpExtValue = (document.getElementById(`${tmpItemID}${tmpExtensions[i]}`)).options[(document.getElementById(`${tmpItemID}${tmpExtensions[i]}`)).selectedIndex].value;\n }\n } else {\n if ((document.getElementById(tmpExtensions[i])).selectedIndex === 0) {\n tmpExtValue = 'SELECT';\n } else {\n tmpExtValue = (document.getElementById(tmpExtensions[i])).options[(document.getElementById(tmpExtensions[i])).selectedIndex].value;\n }\n }\n returnValue += tmpExtValue;\n }\n }\n return returnValue;\n }\n };\n})();\n\n$(document).ready(function () {\n addToCartObj.bindElementHandlers();\n});\nfunction doExtensionChange(tmpItemID: string): void {\n let groundShipIDs: Array, InstockOverride: boolean, stockMessage: string, price: number, listPrice: number, addOnPrice: number, addOnListPrice: number, Instock: boolean;\n let addOnProductID = document.getElementById('addOnProductID') !== null ? (document.getElementById('addOnProductID')).value : '';\n let productIDs = (document.getElementById('OCForm1')).productID;\n let elementIndex: number, addOnElementIndex: number = 0;\n let tmpInvtID = '';\n if (productIDs.length !== undefined) {\n for (let i = 0; i < productIDs.length; i++) {\n if (productIDs[i].value === tmpItemID) {\n elementIndex = i;\n }\n if (productIDs[i].value === addOnProductID) {\n addOnElementIndex = i;\n }\n }\n groundShipIDs = (document.getElementById('OCForm1')).groundShipIDs.value.split(',');\n InstockOverride = false;\n Instock = false;\n if (groundShipIDs !== null) {\n for (let j = 0; j < groundShipIDs.length; j++) {\n if (groundShipIDs[j] === tmpItemID) {\n InstockOverride = true;\n }\n if (groundShipIDs[j] === addOnProductID) {\n Instock = true;\n }\n }\n }\n if (classOptions.itemProps[tmpItemID].isSubs === false) {\n stockMessage = HAH.product.doGetStockMessage(tmpItemID, elementIndex, InstockOverride);\n }\n if (stockMessage !== '') {\n try {\n document.getElementById(`SPANstock${elementIndex}`).innerHTML = stockMessage;\n } catch (e) { }\n }\n tmpInvtID = HAH.product.getProductID(tmpItemID, elementIndex);\n price = HAH.product.getPrice(tmpInvtID);\n listPrice = HAH.product.getPrice(tmpInvtID, 'listprice');\n if (parseFloat(price.toString()) > parseFloat(listPrice.toString())) {\n document.getElementById(`currentPrice${elementIndex}`).innerHTML = `${toUSD(price)}`;\n } else {\n if (price !== 0 && listPrice !== 0 && price !== listPrice) {\n document.getElementById(`currentPrice${elementIndex}`).innerHTML = `${toUSD(listPrice)}${toUSD(price)}`;\n } else {\n if (price !== 0) {\n document.getElementById(`currentPrice${elementIndex}`).innerHTML = toUSD(price);\n } else {\n document.getElementById(`currentPrice${elementIndex}`).innerHTML = 'Select an Option';\n }\n }\n }\n classOptions.itemProps[tmpItemID].ListPrice = listPrice;\n classOptions.itemProps[tmpItemID].Price = price;\n if (addOnProductID !== null) {\n HAH.product.checkAddOnStock(tmpItemID, elementIndex, addOnProductID, addOnElementIndex, Instock);\n tmpInvtID = HAH.product.getProductID(addOnProductID, addOnElementIndex);\n addOnPrice = HAH.product.getPrice(tmpInvtID);\n addOnListPrice = HAH.product.getPrice(tmpInvtID, 'listprice');\n if (parseFloat(addOnPrice.toString()) > parseFloat(addOnListPrice.toString())) {\n document.getElementById('addOnPrice').innerHTML = toUSD(addOnPrice);\n } else {\n if (addOnPrice !== 0 && addOnListPrice !== 0 && addOnPrice !== addOnListPrice) {\n document.getElementById('addOnPrice').innerHTML = `${toUSD(addOnListPrice)} ${toUSD(addOnPrice)}`;\n } else {\n if (addOnPrice !== 0) {\n document.getElementById('addOnPrice').innerHTML = toUSD(addOnPrice);\n } else {\n try {\n document.getElementById('addOnPrice').innerHTML = (document.getElementById('addOnpriceRange')).value;\n } catch (e) { }\n }\n }\n }\n classOptions.itemProps[tmpItemID].addOn.ListPrice = addOnListPrice;\n classOptions.itemProps[tmpItemID].addOn.Price = addOnPrice;\n }\n } else {\n groundShipIDs = (document.getElementById('OCForm1')).groundShipIDs.value.split(',');\n InstockOverride = false;\n if (groundShipIDs !== null) {\n for (let j = 0; j < groundShipIDs.length; j++) {\n if (groundShipIDs[j] === tmpItemID) {\n InstockOverride = true;\n j = groundShipIDs.length;\n }\n }\n }\n stockMessage = HAH.product.doGetStockMessage(tmpItemID, 0, InstockOverride);\n if (stockMessage !== '') {\n try {\n document.getElementById('SPANstock0').innerHTML = stockMessage;\n } catch (e) {\n }\n }\n tmpInvtID = HAH.product.getProductID(tmpItemID, 0);\n price = HAH.product.getPrice(tmpInvtID);\n listPrice = HAH.product.getPrice(tmpInvtID, 'listprice');\n if (parseFloat(price.toString()) > parseFloat(listPrice.toString())) {\n document.getElementById('currentPrice0').innerHTML = `${toUSD(price)}`;\n } else {\n if (price !== 0 && listPrice !== 0 && price !== listPrice) {\n document.getElementById('currentPrice0').innerHTML = `${toUSD(listPrice)}${toUSD(price)}`;\n } else {\n if (price !== 0) {\n document.getElementById('currentPrice0').innerHTML = toUSD(price);\n } else {\n document.getElementById('currentPrice0').innerHTML = 'Select an Option';\n }\n }\n }\n classOptions.itemProps[tmpItemID].ListPrice = listPrice;\n classOptions.itemProps[tmpItemID].Price = price;\n }\n}","/******** quickcart.js ********/\nclass QuickCart {\n promoProps: PromoProps;\n elementIDs: ElementIDs;\n lightboxProps: LightboxProps;\n cartItems: [CartItems?];\n\n constructor({\n promoProps,\n elementIDs,\n lightboxProps,\n cartItems\n }) {\n const defaultElementIds = {\n lightboxCart: {\n lbSumQty: '#lbSumQty',\n lbSubtotal: '#lbSubtotal',\n lbItemContainerPrefix: '#lbItem',\n lbImagePrefix: '#lbImage',\n lbProdNamePrefix: '#lbProdName',\n lbCurrentPricePrefix: '#lbCurrentPrice',\n lbListPricePrefix: '#lbListPrice',\n lbExtPrefix: '#lbExt',\n lbQtyPrefix: '#lbQty'\n },\n headerCart: {\n cartSumQty: '#cartSumQty',\n bubbleCnt: '#bubble-cnt',\n textItems: '#txt-items-span',\n DIVitemHead: '#DIVitemHead',\n DIVcartSumItemsList: '#DIVcartSumItemsList',\n DIVNoItem: '#DIVNoItem',\n ulMarkupDIVcartSumItemsList: '
',\n hdSubtotal: '#hdSubtotal',\n hdQty: '.Qty',\n hdItemDescr: '.ItemDescr',\n hdPrice: '.Price',\n }\n };\n this.promoProps = promoProps || {};\n this.elementIDs = {\n ...defaultElementIds,\n ...elementIDs\n };\n this.lightboxProps = lightboxProps;\n this.cartItems = cartItems;\n }\n\n get _cartItems() {\n return this.cartItems;\n }\n \n set _cartItems(newCartItems) {\n this.cartItems=newCartItems;\n }\n\n getPromoValue(name: string): string {\n return this.promoProps[name];\n }\n\n setPromoValue(name: string, value: string): void {\n this.promoProps[name] = value;\n }\n\n updateCartHTML({ajaxResults}: {\n /** \n * The response returned from a XMLHttpRequest made to cart.aspx.\n */\n ajaxResults: string\n }): void {\n\n /**\n * For example, if the cart has 2 identical pillows and 1 pillow protector, this variable will be '2'.\n */\n const skusCount = getXMLDataTableRowCount('dsBasket', 1, ajaxResults);\n\n const $DIVcartSumItemsList = $(this.elementIDs.headerCart.DIVcartSumItemsList)\n const $DIVNoItem = $(this.elementIDs.headerCart.DIVNoItem)\n const $DIVitemHead = $(this.elementIDs.headerCart.DIVitemHead)\n\n if (skusCount > 0) {\n\n // Update header button/icon\n let totalCount = 0\n \n for (let i = 0; i < skusCount; i++) {\n totalCount += parseInt(getXMLDataFieldValue('dsBasket', 1, i, 'qtyOrd', ajaxResults));\n }\n\n const $bubbleCount = $(this.elementIDs.headerCart.bubbleCnt)\n \n if ($bubbleCount.length) {\n\n const $cartSumQuantity = $(this.elementIDs.headerCart.cartSumQty)\n const $textItems = $(this.elementIDs.headerCart.textItems)\n\n if ($cartSumQuantity.length) {\n $cartSumQuantity.show();\n $cartSumQuantity.css('visibility', 'visible');\n }\n\n $bubbleCount.html(totalCount.toString());\n\n if ($textItems.length) {\n $textItems.html(totalCount > 1 ? 'ITEMS' : 'ITEM');\n }\n }\n \n // Update dropdown\n $DIVNoItem.hide();\n $DIVitemHead.show();\n $DIVcartSumItemsList.show();\n $DIVcartSumItemsList.html('');\n showElement('DIVcartbtns');\n \n for (let i = 0; i < skusCount; i++) {\n\n $DIVcartSumItemsList.append(this.elementIDs.headerCart.ulMarkupDIVcartSumItemsList);\n\n const currentBasketID = getXMLDataFieldValue('dsBasket', 1, i, 'basketID', ajaxResults);\n const dsBasketExtensionsCount = getXMLDataTableRowCount('dsBasketExtensions', 0, ajaxResults);\n\n // Get name\n let productName = getXMLDataFieldValue('dsBasket', 1, i, 'Descr', ajaxResults);\n productName = productName.replace('<br>', '
').replace('<sup>', '').replace('</sup>', '');\n\n // Get description\n let productDescription = `${productName}`;\n for (let be = 0; be < dsBasketExtensionsCount; be++) {\n if (currentBasketID === getXMLDataFieldValue('dsBasketExtensions', 0, be, 'basketID', ajaxResults)) {\n productDescription += `${getXMLDataFieldValue('dsBasketExtensions', 0, be, 'Descr', ajaxResults)}`;\n }\n }\n productDescription += '

';\n\n // Get price\n const productPrice = formatCurrency(getXMLDataFieldValue('dsBasket', 1, i, 'CurySlsPrice', ajaxResults))\n\n // Get quantity \n const productQuantity = getXMLDataFieldValue('dsBasket', 1, i, 'QtyOrd', ajaxResults)\n\n // Update UI values\n $(`${this.elementIDs.headerCart.DIVcartSumItemsList} ul:nth-child(${i + 1}) ${this.elementIDs.headerCart.hdItemDescr}`).html(productDescription);\n $(`${this.elementIDs.headerCart.DIVcartSumItemsList} ul:nth-child(${i + 1}) ${this.elementIDs.headerCart.hdPrice}`).html(productPrice);\n $(`${this.elementIDs.headerCart.DIVcartSumItemsList} ul:nth-child(${i + 1}) ${this.elementIDs.headerCart.hdQty}`).html(productQuantity);\n }\n\n } else {\n $DIVNoItem.show();\n $DIVitemHead.hide();\n $DIVcartSumItemsList.hide();\n hideElement('DIVcartbtns');\n }\n }\n\n populateItemUl(ct: number): void{\n\t\tlet htmlString='';\n\t\tfor (let i = 0; i < ct; i++) {\n\t\t\thtmlString+=this.lightboxProps.lbItemWrapUl.replace(/%K%/g,i.toString())\n\t\t}\t\t\n\t\thtmlString+=this.lightboxProps.lbItemWrapAfterUl\n\t\t$('#lbItemWrap').html(htmlString)\n $('#continueShoppingBtn').on('click', () => {\n hideElement('overlay_LB');\n });\n\t}\n\n updateQuickCart(justAddedArray: JustAddedArray[], ajaxResults: string, productIndex: number): void {\n\n if (ajaxResults !== '') {\n\n let sumCartQty = 0;\n const dsItemRowCount = getXMLDataTableRowCount('dsBasket', 1, ajaxResults);\n\n for (let i = 0; i < dsItemRowCount; i++) {\n sumCartQty += parseInt(getXMLDataFieldValue('dsBasket', 1, i, 'qtyOrd', ajaxResults));\n }\n\n // Update the header cart button/icon and dropdown HTML\n this.updateCartHTML({ ajaxResults: ajaxResults })\n\n this.populateItemUl(justAddedArray.length)\n // Create the lightbox with the items just added to the cart\n for (let ct = 0; ct < this.lightboxProps.numItemContainer; ct++) {\n let lbItemContainer = $(`${this.elementIDs.lightboxCart.lbItemContainerPrefix}${ct}`);\n if (justAddedArray.length > ct) {\n if (lbItemContainer.length) {\n let lbItemImage = $(`${this.elementIDs.lightboxCart.lbImagePrefix}${ct}`);\n let lbItemName = $(`${this.elementIDs.lightboxCart.lbProdNamePrefix}${ct}`);\n let lbItemCurrentPrice = $(`${this.elementIDs.lightboxCart.lbCurrentPricePrefix}${ct}`);\n let lbItemListPrice = $(`${this.elementIDs.lightboxCart.lbListPricePrefix}${ct}`);\n let lbItemQty = $(`${this.elementIDs.lightboxCart.lbQtyPrefix}${ct}`);\n lbItemImage.attr('src', justAddedArray[ct].image);\n lbItemImage.attr('alt', justAddedArray[ct].descr);\n lbItemName.html(justAddedArray[ct].descr);\n if (justAddedArray[ct].extensionGroup !== '') {\n let tmpExtNameArray = justAddedArray[ct].extension.split(';');\n let tmpExtGroupNameArray = justAddedArray[ct].extensionGroup.split(';');\n for (let x = 0; x < this.lightboxProps.maxNumExtenionPerItem; x++) {\n if (tmpExtNameArray[x] !== '' && tmpExtNameArray[x] !== undefined) {\n $(`${this.elementIDs.lightboxCart.lbExtPrefix}${ct}-${x}`).html(tmpExtGroupNameArray[x]+ ': '+tmpExtNameArray[x]);\n } else {\n $(`${this.elementIDs.lightboxCart.lbExtPrefix}${ct}-${x}`).html('');\n }\n }\n }\n if (justAddedArray[ct].price !== justAddedArray[ct].listprice) {\n lbItemListPrice.html(formatCurrency(justAddedArray[ct].listprice));\n lbItemCurrentPrice.html(formatCurrency(justAddedArray[ct].price));\n } else {\n lbItemListPrice.html('');\n lbItemCurrentPrice.html(formatCurrency(justAddedArray[ct].price));\n }\n if (justAddedArray[ct].qty !== '0' && justAddedArray[ct].qty !== '') {\n lbItemQty.html(justAddedArray[ct].qty);\n }\n lbItemContainer.show();\n }\n } else {\n lbItemContainer.hide();\n }\n }\n\n // Tracks clicks in the \"Add to cart\" button\n try{trackATC(dsItemRowCount, ajaxResults, justAddedArray);}catch(e){console.log('track ATC error');}\n\n // Update the \"Just added to your cart\" lightbox\n const lbSumQty = $(this.elementIDs.lightboxCart.lbSumQty);\n if (lbSumQty.length) {\n let lbSumQtyString = `${sumCartQty} item${(sumCartQty > 1 ? 's' : '')}`;\n lbSumQty.html(lbSumQtyString);\n }\n\n const lbSubtotal = $(this.elementIDs.lightboxCart.lbSubtotal);\n if (lbSubtotal.length) {\n lbSubtotal.html(formatCurrency(getXMLDataFieldValue('dsBasket', 0, 0, 'curyTotMerch', ajaxResults)));\n }\n\n const hdSubtotal = $(this.elementIDs.headerCart.hdSubtotal);\n if (hdSubtotal.length) {\n hdSubtotal.html(formatCurrency(getXMLDataFieldValue('dsBasket', 0, 0, 'curyTotMerch', ajaxResults)));\n }\n\n if (this.promoProps.promoType !== undefined) {\n if (this.promoProps.promoType.toUpperCase() === 'BMSM') {\n getBMSMTotals(ajaxResults, sumCartQty);\n }\n }\n\n // Open the \"Just added to your cart\" lightbox\n $('#a_lightbox').trigger('click');\n }\n\n // Hide the loader\n showHideLoader('hide', productIndex);\n }\n}\n\nconst quickCartObj = new QuickCart(classOptions);\n\nfunction trackATC(dsItemRowCount: number, ajaxResults: string, justAddedArray: JustAddedArray[]): void {\n let cartViewAdobeLaunch = []; // Adobe Launch \n let cartProductsAW = []; // Google Remarketing\n let addToCartGA4=[]; //GA4 add-to-cart\n let newCartItems:[CartItems?]=[]; //new cartItems array post add-to-cart\n const dsItemExtensionCount = getXMLDataTableRowCount('dsBasketExtensions', 0, ajaxResults);\n const dsItemExtension=[];\n let tmpIndex=0;\n for (let i = 0; i < dsItemExtensionCount; i++) { \n dsItemExtension.push({\n basketID: getXMLDataFieldValue('dsBasketExtensions', 0, i, 'basketID', ajaxResults),\n sortIndex: parseInt(getXMLDataFieldValue('dsBasketExtensions', 0, i, 'sortIndex', ajaxResults)),\n extensionName: getXMLDataFieldValue('dsBasketExtensions', 0, i, 'name', ajaxResults)\n }); \n }\n for (let i = 0; i < dsItemRowCount; i++) {\n let matchedItem=quickCartObj._cartItems.find(item => item.invtID === getXMLDataFieldValue('dsBasket', 1, i, 'invtid', ajaxResults)&&item.altID === getXMLDataFieldValue('dsBasket', 1, i, 'alternateid', ajaxResults));\n let addedQty=0;\n if (matchedItem==undefined) {\n addedQty=parseInt(getXMLDataFieldValue('dsBasket', 1, i, 'qtyOrd', ajaxResults));\n } else {\n let newQty=parseInt(getXMLDataFieldValue('dsBasket', 1, i, 'qtyOrd', ajaxResults));\n if (newQty>matchedItem.quantity) {addedQty=newQty-matchedItem.quantity};\n }\n let addedCategory = getXMLDataFieldValue('dsBasket', 1, i, 'categoryName', ajaxResults);\n let addedCategoryID = getXMLDataFieldValue('dsBasket', 1, i, 'categoryID', ajaxResults);\n let invtIDCategory: any = {};\n if (addedQty!==0){\n if(addedCategory === ''){\n let tempItemID = justAddedArray[0].itemID;\n addedCategory = classOptions.itemProps[tempItemID].categoryName;\n addedCategoryID = classOptions.itemProps[tempItemID].categoryID;\n //set current category to added items that's not in any category\n invtIDCategory={\n invtID: getXMLDataFieldValue('dsBasket', 1, i, 'invtID', ajaxResults),\n alternateID: getXMLDataFieldValue('dsBasket', 1, i, 'alternateID', ajaxResults),\n category: parseXMLData(addedCategory),\n categoryID: addedCategoryID\n }\n }\n let tmpVariant = '';\n const matchedItemExtension=dsItemExtension.filter(elem=>elem.basketID===getXMLDataFieldValue('dsBasket', 1, i, 'basketID', ajaxResults));\n if (matchedItemExtension!==undefined) {\n matchedItemExtension.sort((a: { sortIndex: number; }, b: { sortIndex: number; }) => a.sortIndex - b.sortIndex);\n tmpVariant=matchedItemExtension.map((item: { extensionName: string; }) => item.extensionName).join(';');\n } \n let GA4Obj={\n item_name: parseXMLData(getXMLDataFieldValue('dsBasket', 1, i, 'Descr', ajaxResults)),\n item_id: getXMLDataFieldValue('dsBasket', 1, i, 'itemid', ajaxResults),\n affiliation: classOptions.affiliation,\n price: parseFloat(getXMLDataFieldValue('dsBasket', 1, i, 'CurySlsPrice', ajaxResults)),\n discount: (getXMLDataFieldValue('dsBasket', 1, i, 'itemid', ajaxResults).toUpperCase().indexOf('-SUB')!==-1)?0:Number((parseFloat(getXMLDataFieldValue('dsBasket', 1, i, 'CuryListPrice', ajaxResults))-parseFloat(getXMLDataFieldValue('dsBasket', 1, i, 'CurySlsPrice', ajaxResults))).toFixed(2)),\n subscription: (getXMLDataFieldValue('dsBasket', 1, i, 'itemid', ajaxResults).toUpperCase().indexOf('-SUB')!==-1)?'yes':'no',\n item_brand: classOptions.item_brand,\n item_category: parseXMLData(addedCategory),\n quantity: addedQty || 1,\n index: tmpIndex,\n item_list_id: parseXMLData(addedCategoryID),\n\t\t item_list_name: parseXMLData(addedCategory)\n };\n if (tmpVariant!=='') GA4Obj['item_variant']=parseXMLData(tmpVariant);\n addToCartGA4.push(GA4Obj);\n tmpIndex++;\n }\n //added basket-category mapping to localStorage as a workaround for items not in any category\n if (Object.keys(invtIDCategory).length !== 0){\n if (localStorage['invtid_category']!==''&&localStorage['invtid_category']!==undefined){\n const invtIDCategoryArray=JSON.parse(localStorage['invtid_category']); \n const filteredArray = invtIDCategoryArray.filter((item: {invtID:string,alternateID:string}) => !(item.invtID === invtIDCategory.invtID && item.alternateID === invtIDCategory.alternateID));\n if (filteredArray.length===0){\n localStorage['invtid_category']=`[${JSON.stringify(invtIDCategory)}]`;\n } else {\n filteredArray.push(invtIDCategory);\n localStorage['invtid_category']=JSON.stringify(filteredArray);\n }\n } else {\n localStorage['invtid_category']=`[${JSON.stringify(invtIDCategory)}]`;\n }\n }\n newCartItems.push({\n invtID: getXMLDataFieldValue('dsBasket', 1, i, 'invtid', ajaxResults),\n altID: getXMLDataFieldValue('dsBasket', 1, i, 'alternateid', ajaxResults),\n quantity: parseInt(getXMLDataFieldValue('dsBasket', 1, i, 'qtyOrd', ajaxResults))\n });\n cartViewAdobeLaunch.push({\n name: parseXMLData(getXMLDataFieldValue('dsBasket', 1, i, 'descr', ajaxResults)),\n sku: getXMLDataFieldValue('dsBasket', 1, i, 'invtid', ajaxResults),\n price: parseFloat(getXMLDataFieldValue('dsBasket', 1, i, 'CurySlsPrice', ajaxResults)).toFixed(2),\n quantity: getXMLDataFieldValue('dsBasket', 1, i, 'qtyOrd', ajaxResults) || 1,\n category: parseXMLData(getXMLDataFieldValue('dsBasket', 1, i, 'categoryname', ajaxResults))\n });\n }\n quickCartObj._cartItems = newCartItems;\n for (let ct = 0; ct < justAddedArray.length; ct++) { \n cartProductsAW.push({\n id: justAddedArray[ct].itemID.replace('-SUB-12', '').replace('-SUB', ''),\n google_business_vertical: 'retail'\n });\n }\n const mainItem={\n id: justAddedArray[0].itemID,\n name: justAddedArray[0].descr,\n category: classOptions.itemProps[justAddedArray[0].itemID].categoryName,\n value: Number(Number(justAddedArray[0].price)*Number(justAddedArray[0].qty)).toFixed(2)\n }\n let totalValue_AddToCart = Number((addToCartGA4.reduce((total: number, item: { price: number; quantity: number; discount: number}) => total + (item.price * item.quantity), 0)).toFixed(2));\n //GA4 add_to_cart\n dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\n dataLayer.push({\n 'event': 'add_to_cart',\n 'ecommerce': {\n 'currency': 'USD',\n 'value': totalValue_AddToCart,\n 'items': addToCartGA4\n },\n 'event_value': totalValue_AddToCart,\n 'event_items': cartProductsAW,\n 'mainItem': mainItem\n });\n //Adobe Launch\n dataLayer.cartView = {\n products: cartViewAdobeLaunch,\n totalCost: getXMLDataFieldValue('dsBasket', 0, 0, 'curyTotMerch', ajaxResults),\n currencyCode: 'USD'\n };\n}\n\n/******* Interfaces *******/\n\ninterface JustAddedArray {\n itemID: string;\n invtID: string;\n descr: string;\n image: string;\n extensionGroup: string;\n extension: string;\n price: string;\n listprice: string;\n qty: string;\n}\n\ninterface ElementIDs {\n lightboxCart: {\n lbSumQty: string;\n lbSubtotal: string;\n lbItemContainerPrefix: string;\n lbImagePrefix: string;\n lbProdNamePrefix: string;\n lbCurrentPricePrefix: string;\n lbListPricePrefix: string;\n lbExtPrefix: string;\n lbQtyPrefix: string;\n },\n headerCart: {\n cartSumQty: string;\n bubbleCnt: string;\n textItems: string;\n DIVitemHead: string;\n DIVcartSumItemsList: string;\n DIVNoItem: string;\n ulMarkupDIVcartSumItemsList: string;\n hdSubtotal: string;\n hdQty: string;\n hdItemDescr: string;\n hdPrice: string;\n }\n}\n"]}