1function removeClass(element, className) { 2 element.className = element.className.replace(className,''); 3} 4function addClass(element, className) { 5 element.classList.add(className); 6} 7function getTargetContainer(element) { 8 var targetContainer = (element) ? element.closest("[data-zs-product-id]") : ""; 9 return targetContainer; 10} 11function addToCartSuccess (e) { 12 13 var cartAddSuccess = document.querySelectorAll('[data-cart-add-success="theme-cart-add-success"]')[0]; 14 var cartMsgFour = document.querySelectorAll('[data-theme-message-four]')[0]; 15 var quickLookContainer = document.getElementById("product_quick_look"); 16 addClass(cartAddSuccess,'theme-cart-success'); 17 removeClass(cartAddSuccess,'theme-cart-success-remove'); 18 if(cartMsgFour){ 19 addClass(cartAddSuccess,'theme-cart-added-success'); 20 removeClass(cartAddSuccess,'theme-cart-added-success-remove'); 21 } 22 if(quickLookContainer && cartMsgFour){ 23 closeProductQuickLook(); 24 } 25 var addcartButton = e.detail.target; 26 removeClass(addcartButton,'theme-cart-loading-container'); 27 var cartButtonText = addcartButton.querySelectorAll('[data-theme-cart-button-text="theme-cart-button-text"]')[0]; 28 var cartButtonLoading = addcartButton.querySelectorAll('[data-theme-cart-button-loading="theme-cart-button-loading"]')[0]; 29 30 var cartButtonLoadingFive = addcartButton.querySelectorAll('[data-theme-cart-button-loading-five="theme-cart-button-loading-five"]')[0]; 31 var cartLoadingTwo = addcartButton.querySelectorAll('[data-theme-cart-button-icon="data-theme-cart-button-icon"]')[0]; 32 33 if(cartButtonText){ 34 cartButtonText.style.display = "block"; 35 } 36 if(cartButtonLoading){ 37 cartButtonLoading.style.display = "none"; 38 } 39 if(cartButtonLoadingFive){ 40 cartButtonLoadingFive.style.display = "none"; 41 } 42 if(cartLoadingTwo){ 43 cartLoadingTwo.style.display = "block"; 44 } 45 46 var targetContainer = getTargetContainer(e.detail.target); 47 48 var prodId = (targetContainer && targetContainer != "") ? targetContainer.getAttribute("data-zs-product-id") : ""; 49 50 var errorContainer = targetContainer.querySelectorAll('[data-theme-error="theme-error-message-'+prodId+'"]')[0]; 51 52 var errorContainerList = targetContainer.querySelectorAll('[data-theme-error="theme-error-message-list-'+prodId+'"]')[0]; 53 54 if(errorContainer){ 55 errorContainer.style.display = "none"; 56 errorContainer.innerHTML = ""; 57 } 58 if(errorContainerList){ 59 errorContainerList.style.display = "none"; 60 errorContainerList.innerHTML = ""; 61 } 62 63 var nameContianer = document.querySelectorAll('[data-cart-add-success-prod-name="theme-cart-add-success-prod-name"]')[0]; 64 var imgContainer = document.querySelectorAll('[data-cart-add-success-prod-img="theme-cart-add-success-prod-img"]')[0]; 65 var countContainer = document.querySelectorAll('[ data-cart-add-success-count="theme-cart-add-success-prod-count"]')[0]; 66 67 var thumbnailImages = document.querySelectorAll('[data-thumbnail]'); 68 var thumbanailcontainer = document.querySelectorAll('[data-theme-thumbnail-container="theme-thumbnail-container-'+prodId+'"]')[0]; 69 var detailImage = document.querySelectorAll('[data-detail-image="theme-detail-image"]')[0]; 70 71 var thumbcontainerProdId = document.querySelectorAll('[data-thumbnail-prod-id="'+prodId+'"]')[0]; 72 73 if(thumbcontainerProdId){ 74 var detailImageUrl = thumbcontainerProdId.querySelectorAll('[data-thumbnail-active]'); 75 } 76 var firstImgUrl; 77 if(thumbcontainerProdId){ 78 for(iurl=0;iurl<detailImageUrl.length;iurl++){ 79 var imgUrl = detailImageUrl[iurl].getAttribute('data-thumbnail-active'); 80 if (iurl == 0) { 81 detailImageUrl[iurl].click(); 82 } 83 } 84 } 85 for(ti=0;ti<thumbnailImages.length;ti++){ 86 if(thumbnailImages[ti]){ 87 thumbnailImages[ti].style.display = 'flex'; 88 } 89 } 90 if(thumbanailcontainer){ 91 thumbanailcontainer.style.display = "flex"; 92 } 93 94 if(thumbanailcontainer){ 95 activeThumbnail(); 96 } 97 98 var detail = e.detail; 99 var variantId = detail.target.getAttribute("data-zs-product-variant-id"); 100 var lineItems = detail.cart.items 101 102 var currentLineItem; 103 104 resetSelect(targetContainer); 105 106 for (var lineItem of lineItems) { 107 if (lineItem.variant_id == variantId) { 108 currentLineItem = lineItem; 109 break; 110 } 111 } 112 if(nameContianer){ 113 nameContianer.innerHTML = currentLineItem.name; 114 } 115 if(countContainer){ 116 countContainer.innerHTML = lineItems.length; 117 } 118 if (currentLineItem.images) { 119 var imageUrl = currentLineItem.images[0].url; 120 var imageAlt = currentLineItem.images[0].alternate_text; 121 var imageTitle = currentLineItem.images[0].title; 122 if (!currentLineItem.images[0].is_placeholder_image) { 123 imageUrl += "/5"; 124 } 125 if(imgContainer){ 126 imgContainer.setAttribute('src', imageUrl); 127 imgContainer.setAttribute('alt', imageAlt); 128 imgContainer.setAttribute('title', imageTitle); 129 } 130 } 131 132 var customfields = $D.getAll('[data-custom-field-id]', targetContainer); 133 customfields.forEach( function (field) { 134 var fieldValue = field.getAttribute('data-default-value'); 135 var fieldType = field.getAttribute('data-field-type'); 136 if(fieldType == 'check_box') { 137 field.checked = (fieldValue == "true"); 138 } 139 else if(fieldType == 'dropdown' && fieldValue == "" ){ 140 field.selectedIndex = 0; 141 142 } else if(fieldType == "attachment"){ 143 var customfieldId = field.getAttribute("data-custom-field-id"); 144 var variantElement = field.closest('[data-variant-id]') 145 146 if(variantElement) { 147 field.setAttribute("data-value", "") 148 var attachmentClickElem = $D.get('[data-zs-attachment-upload-custom-field-id="' + customfieldId+ '"]', variantElement); 149 if(attachmentClickElem) { 150 var attachmentClickLabel = $D.get('[data-zs-attachment-label]', attachmentClickElem); 151 if(attachmentClickLabel) {
152 attachmentClickLabel.innerText = i18n.get("product.custom_field.attachment.change_file"); 153 } 154 } 155 156 var nameContainer = $D.get('[data-zs-attachment-name-container="'+ customfieldId +'"]', variantElement); 157 if(nameContainer) { 158 var fileName = $D.get('[data-attachment-file-name]', nameContainer); 159 if(fileName) { 160 fileName.innerText = ""; 161 } 162 163 nameContainer.style.display = "none"; 164 } 165 166 } 167 168 } 169 170 else { 171 field.value = fieldValue; 172 } 173 }); 174 175} 176function closeSuccessMessage() { 177 var cartAddSuccess = document.querySelectorAll('[data-cart-add-success="theme-cart-add-success"]')[0]; 178 if(cartAddSuccess){ 179 addClass(cartAddSuccess,'theme-cart-added-success-remove'); 180 removeClass(cartAddSuccess,'theme-cart-added-success'); 181 } 182} 183function closemessage(){ 184 var cartAddSuccess = document.querySelectorAll('[data-cart-add-success="theme-cart-add-success"]')[0]; 185 var cartFailure = document.querySelectorAll('[data-cart-add-failure="theme-cart-add-failure"]')[0]; 186 if(cartFailure){ 187 addClass(cartFailure,'theme-cart-failure-remove'); 188 removeClass(cartFailure,'theme-cart-failure'); 189 } 190 if(cartAddSuccess){ 191 addClass(cartAddSuccess,'theme-cart-success-remove'); 192 removeClass(cartAddSuccess,'theme-cart-success'); 193 addClass(cartAddSuccess,'theme-cart-added-success-remove'); 194 } 195 closeProductQuickLook(); 196} 197function resetSelect(targetContainer){ 198 var VariantRadio = targetContainer.querySelectorAll('[data-zs-attribute-option]'); 199 var VariantSelect = targetContainer.querySelectorAll('[data-zs-attribute-select]'); 200 if(VariantSelect){ 201 for(vs=0;vs<VariantSelect.length;vs++){ 202 VariantSelect[vs].selectedIndex = 0; 203 } 204 } 205 if(VariantRadio){ 206 for(vs=0;vs<VariantRadio.length;vs++){ 207 VariantRadio[vs].checked = false; 208 removeClass(VariantRadio[vs].parentElement,'chekedLabel'); 209 } 210 } 211 if(typeof product_option != "undefined"){ 212 if(VariantSelect.length!=0 || VariantRadio.length!=0) { 213 var productId = (targetContainer != document) ? targetContainer.getAttribute("data-zs-product-id") : ""; 214 _hideCustomFieldsOfVariants(productId); 215 product_option.resetAddToCart(productId,targetContainer); 216 } 217 } 218 var allStocks = targetContainer.querySelectorAll("[data-variant-id-stock]"); 219 for(sa=0;sa<allStocks.length;sa++){ 220 allStocks[sa].style.display = 'none'; 221 } 222 var dataResetQuantity = targetContainer.querySelectorAll("[data-theme-quantity]"); 223 for(qr=0;qr<dataResetQuantity.length;qr++){ 224 dataResetQuantity[qr].value = 1 ; 225 } 226} 227 228var deliveryLocationLoader,deliveryLocationPinInput,deliveryLocationPinError; 229 230function deliveryLocationPinValidate(inputEl,pinErrorMsg){ 231 if(inputEl && pinErrorMsg){ 232 var inpPattern = /[^0-9a-zA-Z?*-]+/; 233 inputEl.addEventListener('keyup',function(){ 234 var isPattern = inpPattern.test(this.value); 235 pinErrorMsg.innerText = i18n.get('delivery_location_availability.label.error.invalid.postal_code'); 236 isPattern ? pinErrorMsg.style.display = "block" : pinErrorMsg.style.display ="none" 237 }); 238 } 239} 240 241document.addEventListener("DOMContentLoaded", function(event) { 242 resetSelect(document); 243 244 deliveryLocationLoader = document.querySelector('[data-theme-delivery-location-loader]'); 245 246 deliveryLocationPinInput = document.querySelector('[data-zs-delivery-location-postalcode]'); 247 deliveryLocationPinError = document.querySelector('[data-zs-delivery-availability-product-details-error-message]'); 248 deliveryLocationPinValidate(deliveryLocationPinInput,deliveryLocationPinError); 249 250 251 var loader = $D.get('[data-theme-loader]'); 252 var body = document.getElementsByTagName("body")[0]; 253 var contentContainer = $D.get('[data-theme-content-container]'); 254 if(contentContainer){ 255 var contentParent = contentContainer.parentElement; 256 } 257 var live_search_url = "search?q"; 258 if(window.location.href.indexOf("search-products") > -1 || window.location.href.indexOf(live_search_url) > -1){ 259 addClass(contentContainer,'theme-search-page-contianer') 260 } 261 if(!loader && (window.location.href.indexOf("search-products") > -1 || window.location.href.indexOf(live_search_url) > -1)){ 262 var tempLoad = document.createElement('div'); 263 addClass(tempLoad,'theme-loader'); 264 addClass(tempLoad,'theme-loader-show'); 265 tempLoad.style.position = "static"; 266 tempLoad.style.marginTop = '80px'; 267 tempLoad.setAttribute('data-theme-temp-load',''); 268 tempLoad.innerHTML = i18n.get("search.wait.message")+' . . .'; 269 if(contentParent){ 270 contentParent.insertBefore(tempLoad,contentContainer); 271 } 272 else{ 273 contentContainer.insertBefore(tempLoad,contentContainer); 274 } 275 var offsetVal = window.pageYOffset; 276 var mainHeader = $D.get('[data-headercontainer]'); 277 var headerSix = mainHeader.classList.contains('zpheader-style-06'); 278 var mobileHeaderFix = mainHeader.classList.contains('theme-mobile-header-fixed'); 279 var verticalHeader = $D.get('[data-theme-header-six-res]'); 280 if(verticalHeader){ 281 var verticalHeaderHeight = verticalHeader.clientHeight; 282 } 283 if(mainHeader){ 284 var mainHeaderHeight = mainHeader.clientHeight; 285 } 286 if(headerSix && mainHeader && tempLoad && (contentContainer.parentNode.nodeName == 'BODY')){ 287 addClass(tempLoad,'theme-temp-load-padding'); 288 } 289 } 290}); 291function addToCartFailure (e) { 292 var cartAddFailure = document.querySelectorAll('[data-cart-add-failure="theme-cart-add-failure"]')[0]; 293 var cartMsgFour = document.querySelectorAll('[data-theme-message-four]')[0]; 294 var quickLookContainer = document.getElementById("product_quick_look"); 295 addClass(cartAddFailure,'theme-cart-failure'); 296 removeClass(cartAddFailure,'theme-cart-failure-remove'); 297 if(cartMsgFour){ 298 addClass(cartAddFailure,'theme-cart-added-failure'); 299 removeClass(cartAddFailure,'theme-cart-added-failure-remove'); 300 } 301 if(quickLookContainer && cartMsgFour){ 302 closeProductQuickLook(); 303 } 304 var addcartButton = e.detail.target; 305 removeClass(addcartButton,'theme-cart-loading-container'); 306 var cartButtonText = addcartButton.querySelectorAll('[data-theme-cart-button-text="theme-cart-button-text"]')[0]; 307 var cartButtonLoading = addcartButton.querySelectorAll('[data-theme-cart-button-loading="theme-cart-button-loading"]')[0]; 308 var cartButtonLoadingFive = addcartButton.querySelectorAll('[data-theme-cart-button-loading-five="theme-cart-button-loading-five"]')[0]; 309 var cartLoadingTwo = addcartButton.querySelectorAll('[data-theme-cart-button-icon="data-theme-cart-button-icon"]')[0]; 310 var cartResponse = (e.detail.response.cart_details != null) ? e.detail.response.cart_details.message : e.detail.response.error.message; 311 var cartFailureDetail = document.querySelectorAll('[data-theme-failure-reason="theme-failure-reason"]')[0]; 312 cartFailureDetail.innerHTML = cartResponse; 313 314 if(cartButtonText){ 315 cartButtonText.style.display = "block"; 316 } 317 if(cartLoadingTwo){ 318 cartLoadingTwo.style.display = "block"; 319 } 320 if(cartButtonLoading){ 321 cartButtonLoading.style.display = "none"; 322 } 323 if(cartButtonLoadingFive){ 324 cartButtonLoadingFive.style.display = "none"; 325 } 326} 327function closeFailureMessage() { 328 var cartAddFailure = document.querySelectorAll('[data-cart-add-failure="theme-cart-add-failure"]')[0]; 329 if(cartAddFailure){ 330 addClass(cartAddFailure,'theme-cart-failure-added-remove'); 331 removeClass(cartAddFailure,'theme-cart-added-failure'); 332 } 333} 334function updateToCartSuccess (e) { 335 var cartupdateloading = document.querySelector("[data-theme-loader]"); 336 var cartUpdateSuccess = document.querySelectorAll('[data-cart-update-success="theme-cart-update-success"]')[0]; 337 var cartMsgFour = document.querySelectorAll('[data-theme-message-four]')[0]; 338 var cartNameContainer = document.querySelectorAll('[data-cart-update-success-product-name="theme-cart-update-success-product-name"]')[0]; 339 var updateCartButton = e.detail.target; 340 if(updateCartButton.hasAttribute("data-zs-update")){ 341 removeClass(updateCartButton,'theme-cart-updating'); 342 }else if(cartupdateloading){ 343 hideLoader() 344 } 345 addClass(cartUpdateSuccess,'theme-cart-success'); 346 removeClass(cartUpdateSuccess,'theme-cart-success-remove'); 347 if(cartMsgFour){ 348 addClass(cartUpdateSuccess,'theme-cart-page-success'); 349 removeClass(cartUpdateSuccess,'theme-cart-page-success-remove'); 350 } 351 var errorflagId = e.detail.target.getAttribute('data-zs-product-variant-id'); 352 var errorContainerCart = document.querySelectorAll('[data-quantity-error-cart="'+errorflagId+'"]')[0]; 353 errorContainerCart.style.display = 'none'; 354 355 setTimeout(function() { 356 addClass(cartUpdateSuccess,'theme-cart-success-remove'); 357 removeClass(cartUpdateSuccess,'theme-cart-success'); 358 if(cartMsgFour){ 359 removeClass(cartUpdateSuccess,'theme-cart-page-success'); 360 addClass(cartUpdateSuccess,'theme-cart-page-success-remove'); 361 } 362 }, 3000); 363 364 var detail = e.detail; 365 var variantId = detail.target.getAttribute("data-zs-product-variant-id"); 366 var lineItems = detail.cart.line_items; 367 368 var currentLineItem; 369 370 for (var lineItem of lineItems) { 371 if (lineItem.item_id == variantId) { 372 currentLineItem = lineItem; 373 break; 374 } 375 } 376 377 if(cartNameContainer){ 378 cartNameContainer.innerHTML = currentLineItem.name; 379 } 380} 381function showUpdate(cartitem){ 382 var updateButton = document.querySelectorAll('[data-theme-update="'+cartitem+'"]')[0]; 383 updateButton.style.display = 'block'; 384} 385function updateToCartFailure (e) { 386 var cartupdateloading = document.querySelector("[data-theme-loader]"); 387 var cartUpdateFailure = document.querySelectorAll('[data-cart-update-failure="theme-cart-update-failure"]')[0]; 388 var cartMsgFour = document.querySelectorAll('[data-theme-message-four]')[0]; 389 var updateCartButton = e.detail.target; 390 391 var cartResponse = (e.detail.response.cart_details != null) ? e.detail.response.cart_details.message : e.detail.response.error.message; 392 var cartFailureDetail = document.querySelectorAll('[data-theme-update-failure-reason="theme-update-failure-reason"]')[0]; 393 cartFailureDetail.innerHTML = cartResponse; 394 395 if(updateCartButton.hasAttribute("data-zs-update")){ 396 removeClass(updateCartButton,'theme-cart-updating'); 397 }else if(cartupdateloading){ 398 hideLoader() 399 } 400 addClass(cartUpdateFailure,'theme-cart-failure'); 401 removeClass(cartUpdateFailure,'theme-cart-failure-remove'); 402 403 if(cartMsgFour){ 404 addClass(cartUpdateFailure,'theme-cart-page-failure'); 405 removeClass(cartUpdateFailure,'theme-cart-page-failure-remove'); 406 } 407 setTimeout(function() { 408 addClass(cartUpdateFailure,'theme-cart-failure-remove'); 409 removeClass(cartUpdateFailure,'theme-cart-failure') 410 if(cartMsgFour){ 411 removeClass(cartUpdateFailure,'theme-cart-page-failure'); 412 addClass(cartUpdateFailure,'theme-cart-page-failure-remove'); 413 } 414 }, 3000); 415 if(updateCartButton.hasAttribute("data-zs-update")){ 416 updateCartButton.style.display = 'block'; 417 } 418} 419 420function deleteFromCartSuccess (e) { 421 var cartDeleteSuccess = document.querySelectorAll('[data-cart-delete-success="theme-cart-delete-success"]')[0]; 422 var cartMsgFour = document.querySelectorAll('[data-theme-message-four]')[0]; 423 addClass(cartDeleteSuccess,'theme-cart-success'); 424 removeClass(cartDeleteSuccess,'theme-cart-success-remove'); 425 if(cartMsgFour){ 426 addClass(cartDeleteSuccess,'theme-cart-page-success'); 427 removeClass(cartDeleteSuccess,'theme-cart-page-success-remove'); 428 } 429 var deleteButtonElem = e.detail.target; 430 removeClass(deleteButtonElem,'theme-cart-item-removing'); 431 setTimeout(function() { 432 addClass(cartDeleteSuccess,'theme-cart-success-remove'); 433 removeClass(cartDeleteSuccess,'theme-cart-success'); 434 if(cartMsgFour){ 435 removeClass(cartDeleteSuccess,'theme-cart-page-success'); 436 addClass(cartDeleteSuccess,'theme-cart-page-success-remove'); 437 } 438 }, 3000); 439 var lineItemCount = parseInt(document.querySelectorAll('[data-zs-view-cart-count]')[0].textContent); 440 var cartTableHead = document.querySelectorAll('[data-cart-table]'); 441 var cartNotEmptyMessage = document.querySelectorAll('[data-zs-cart-empty-message]'); 442 var cartEmptyShoppingButton = document.querySelectorAll('[data-cart-empty-shopping-button]'); 443 var cartEmptyCheckoutButton = document.querySelectorAll('[data-cart-empty-checkout-button]'); 444 var cartEmptyContinueLink = document.querySelectorAll('[data-zs-continue-shopping]'); 445 // NON DELIVERABLE PRODUCT LIST 446 447 var commonNonDeliCont = document.querySelector('[data-zs-cart-delivery-availability-common-error-message]'); 448 var nonDeliverProdListCont = document.querySelector('[data-zs-cart-non-deliverable-items]'); 449 var deletedProdId = deleteButtonElem.getAttribute('data-zs-product-variant-id'); 450 if(nonDeliverProdListCont){ 451 var deletedNonDeliProd = nonDeliverProdListCont.querySelector('[data-zs-delivery-availability-cart-item-id="'+deletedProdId+'"]'); 452 var nonDeliverProdList = nonDeliverProdListCont.children; 453 } 454 if(deletedNonDeliProd){ 455 deletedNonDeliProd.remove(); 456 } 457 if(commonNonDeliCont && nonDeliverProdList && nonDeliverProdList.length == 0){
458 commonNonDeliCont.style.display = 'none'; 459 var checkout_button = cartEmptyCheckoutButton[0].querySelector("[data-zs-checkout]"); 460 if(checkout_button){ 461 checkout_button.removeAttribute("disabled"); 462 } 463 } 464 465 if (lineItemCount == 0) { 466 addClass(cartTableHead[0],'theme-cart-empty'); 467 removeClass(cartNotEmptyMessage[0],'theme-cart-error-message-not-empty'); 468 addClass(cartNotEmptyMessage[0],'theme-cart-error-empty-message'); 469 addClass(cartEmptyShoppingButton[0],'theme-cart-empty-shopping-button'); 470 addClass(cartEmptyCheckoutButton[0],'theme-cart-empty-checkout-buton'); 471 addClass(cartEmptyContinueLink[0],'theme-continue-link'); 472 if(commonNonDeliCont){ 473 commonNonDeliCont.style.display = 'none'; 474 } 475 } 476} 477 478function deleteFromCartFailure (e) { 479 var cartDeleteFailure = document.querySelectorAll('[data-cart-delete-failure="theme-cart-delete-failure"]')[0]; 480 var cartMsgFour = document.querySelectorAll('[data-theme-message-four]')[0]; 481 var cartResponse = (e.detail.response.cart_details != null) ? e.detail.response.cart_details.message : e.detail.response.error.message; 482 var cartFailureDetail = document.querySelectorAll('[data-theme-delete-failure-reason="theme-delete-failure-reason"]')[0]; 483 cartFailureDetail.innerHTML = cartResponse; 484 485 addClass(cartDeleteFailure,'theme-cart-failure'); 486 removeClass(cartDeleteFailure,'theme-cart-failure-remove'); 487 if(cartMsgFour){ 488 addClass(cartDeleteFailure,'theme-cart-page-failure'); 489 removeClass(cartDeleteFailure,'theme-cart-page-failure-remove'); 490 } 491 var deleteButtonElem = e.detail.target; 492 removeClass(deleteButtonElem,'theme-cart-item-removing'); 493 setTimeout(function() { 494 addClass(cartDeleteFailure,'theme-cart-failure-remove'); 495 removeClass(cartDeleteFailure,'theme-cart-failure'); 496 if(cartMsgFour){ 497 removeClass(cartDeleteFailure,'theme-cart-page-failure'); 498 addClass(cartDeleteFailure,'theme-cart-page-failure-remove'); 499 } 500 }, 3000); 501} 502 503function addToCartWithInvalidVariant (e) { 504 505 var targetContainer = getTargetContainer(e.detail.target); 506 507 var prodId = (targetContainer && targetContainer != "") ? targetContainer.getAttribute("data-zs-product-id") : ""; 508 509 var quickViewScroll = document.querySelector("[data-theme-quickview-scroll]"); 510 511 var attributes = targetContainer.querySelectorAll("[data-zs-attribute-select]"); 512 attributesLength = attributes.length; 513 514 for (atr=0;atr<attributesLength;atr++) { 515 516 var attribute = attributes[atr]; 517 var attributeTagName = attribute.tagName; 518 519 var errorAttr = targetContainer.querySelectorAll("[data-error-select-flag='" + prodId + "']"); 520 521 var errorAttrVal = attribute.getAttribute("data-zs-attribute-name"); 522 var errorContainer = targetContainer.querySelector('[data-variant-error="theme-data-error-'+errorAttrVal+'"]'); 523 524 if(errorContainer){ 525 errorContainer.style.display = "none"; 526 } 527 528 if (attribute.selectedIndex === 0 && attributeTagName == 'SELECT') { 529 errorContainer.style.display = "block"; 530 } 531 532 if(attributeTagName != 'SELECT'){ 533 var radioSelect = attribute.querySelectorAll('[data-zs-attribute-option]'); 534 radioSelectLength = radioSelect.length; 535 for(rs=0;rs<radioSelectLength;rs++){ 536 radioSelected = radioSelect[rs].checked; 537 if(radioSelected){ 538 errorContainer.style.display = "none"; 539 break; 540 } 541 } 542 if(!radioSelected){ 543 errorContainer.style.display = "block"; 544 } 545 } 546 547 } 548 var errorContainerCommon = targetContainer.querySelectorAll('[data-theme-error="theme-error-message-'+prodId+'"]')[0]; 549 if(errorContainerCommon){ 550 errorContainerCommon.className = ' theme-variant-select-error'; 551 errorContainerCommon.style.display = 'flex'; 552 errorContainerCommon.innerHTML = i18n.get("product.message.error.select_variant"); 553 } 554 if(quickViewScroll){ 555 quickViewScroll.scrollTop = quickViewScroll.scrollHeight; 556 } 557 558} 559
560function invalidProductQuantity (e) { 561 562 // INVALID IN ADD TO CART 563 564 var targetContainer = getTargetContainer(e.detail.quantityElement); 565 566 var prodId = (targetContainer && targetContainer != "") ? targetContainer.getAttribute("data-zs-product-id") : ""; 567 568 if(e.detail.view != 'cart'){ 569 var errorContainer = targetContainer.querySelectorAll('[data-theme-error="theme-error-message-'+prodId+'"]')[0]; 570 var errorContainerList = targetContainer.querySelectorAll('[data-theme-error="theme-error-message-list-'+prodId+'"]')[0]; 571 if(errorContainer){ 572 errorContainer.style.display = "block"; 573 errorContainer.className = ' theme-variant-select-error'; 574 errorContainer.innerHTML = i18n.get("product.message.error.invalid_quantity"); 575 } 576 if(errorContainerList){ 577 errorContainerList.style.display = 'block'; 578 errorContainerList.style.width = '100%'; 579 errorContainerList.className = ' theme-variant-select-error'; 580 errorContainerList.innerHTML = i18n.get("product.message.error.invalid_quantity"); 581 if(errorContainer){ 582 errorContainer.style.display = "none"; 583 } 584 } 585 } 586 587 if(e.detail.view == 'cart'){ 588 var errorFlagInput = e.detail.quantityElement; 589 errorFlagInputId = errorFlagInput.getAttribute('data-zs-product-variant-id'); 590 var errorContainerCart = document.querySelectorAll('[data-quantity-error-cart="'+errorFlagInputId+'"]')[0]; 591 errorContainerCart.style.display = 'block'; 592 } 593 594 var cartButtonText = document.querySelectorAll('[data-theme-cart-button-text="theme-cart-button-text"]'); 595 var cartButtonLoading = document.querySelectorAll('[data-theme-cart-button-loading="theme-cart-button-loading"]'); 596 cartButtonTextLength = cartButtonText.length; 597 cartButtonLoadingLength = cartButtonLoading.length; 598 for(ct=0;ct<cartButtonTextLength;ct++){ 599 cartButtonText[ct].style.display = "block"; 600 } 601 for(cl = 0;cl<cartButtonLoadingLength;cl++){ 602 cartButtonLoading[cl].style.display = "none"; 603 } 604 605} 606 607function selectAttribute (e) { 608 609 var targetContainer = getTargetContainer(e.detail.target); 610 611 var productId = (targetContainer && targetContainer != "") ? targetContainer.getAttribute("data-zs-product-id") : ""; 612 613 var errorContainer = targetContainer.querySelectorAll('[data-theme-error="theme-error-message-'+productId+'"]')[0]; 614 615 616 var stockCartAttribute = targetContainer.querySelectorAll('[data-nostock-cart-add="theme-nostock-cart-add"]'); 617 stockCartAttributeLength = stockCartAttribute.length; 618 619 for(sa=0;sa<stockCartAttributeLength;sa++){ 620 var stockCartAttributeDisplay = stockCartAttribute[sa].style.display; 621 if(stockCartAttributeDisplay == 'none'){ 622 623 addClass(errorContainer,'theme-error-no-cart-button'); 624 } 625 else{ 626 627 removeClass(errorContainer,'theme-error-no-cart-button'); 628 } 629 } 630 631 errorContainer.style.display = 'none'; 632 errorContainer.innerHTML = ""; 633 634 635 var attributes = targetContainer.querySelectorAll("[data-zs-attribute-select]"); 636 attributesLength = attributes.length; 637 638 for (atr=0;atr<attributesLength;atr++) { 639 640 641 var attributeTagName = attributes[atr].tagName; 642 643 var attribute = attributes[atr]; 644 645 var errorAttrVal = attribute.getAttribute("data-zs-attribute-name"); 646 var errorVariantContainer = targetContainer.querySelector('[data-variant-error="theme-data-error-'+errorAttrVal+'"]'); 647 648 649 650 if (attributes[atr].selectedIndex != 0 && attributeTagName == 'SELECT') { 651 errorVariantContainer.style.display = "none"; 652 } 653 if(attributeTagName != 'SELECT'){ 654 var radioSelect = attributes[atr].querySelectorAll('[data-zs-attribute-option]'); 655 radioSelectLength = radioSelect.length; 656 for(rs=0;rs<radioSelectLength;rs++){ 657 radioSelected = radioSelect[rs].checked; 658 if(radioSelected){ 659 errorVariantContainer.style.display = "none"; 660 } 661 } 662 } 663 // SHOW ADD CART BUTTON IF NO STOCK INFO 664 665 if(attributeTagName == 'SELECT'){ 666 var stockCartAttribute = document.querySelectorAll('[data-nostock-cart-add="theme-nostock-cart-add"]'); 667 var noStockQuantity = document.querySelectorAll("[data-nostock-quantity]"); 668 if (attributes[atr].selectedIndex == 0) { 669 for (sa=0;sa<stockCartAttribute.length;sa++){ 670 stockCartAttribute[sa].style.display = 'flex'; 671 } 672 for (sq=0;sq<noStockQuantity.length;sq++){ 673 noStockQuantity[sq].style.display = 'flex'; 674 } 675 } 676 } 677 } 678} 679
680function invalidAttributeGroup (e) { 681 682 var targetContainer = getTargetContainer(e.detail.target); 683 684 var selectedOption = e.detail.selectedOption; 685 var selectedOptionLabel = selectedOption.parentElement; 686 if(selectedOption.tagName != 'OPTION'){ 687 removeClass(selectedOptionLabel,'chekedLabel'); 688 } 689 690 var prodId = (targetContainer && targetContainer != "") ? targetContainer.getAttribute("data-zs-product-id") : ""; 691 var errorContainer = targetContainer.querySelectorAll('[data-theme-error="theme-error-message-'+prodId+'"]')[0]; 692 693 errorContainer.className = ' theme-variant-select-error'; 694 errorContainer.style.display = 'inline-block'; 695 errorContainer.innerHTML = i18n.get("product.message.error.selected_invalid_group"); 696 697 // REMOVE FLOATER EFFECT OF ERROR MESSAGE IF CART BUTTON HIDDEN 698 699 var stockCartAttribute = document.querySelectorAll('[data-nostock-cart-add="theme-nostock-cart-add"]'); 700 stockCartAttributeLength = stockCartAttribute.length; 701 for(sa=0;sa<stockCartAttributeLength;sa++){ 702 var stockCartAttributeDisplay = stockCartAttribute[sa].style.display; 703 if(stockCartAttributeDisplay == 'none'){ 704 addClass(errorContainer,'theme-error-no-cart-button'); 705 } 706 else{ 707 removeClass(errorContainer,'theme-error-no-cart-button'); 708 } 709 } 710 711 // REMOVE FLOATER EFFECT OF ERROR MESSAGE IF CART BUTTON HIDDEN END 712 713} 714 715function addToCartLoading (e) { 716 var addcartButton = e.detail.target; 717 addClass(addcartButton,'theme-cart-loading-container'); 718 var cartButtonText = addcartButton.querySelectorAll('[data-theme-cart-button-text="theme-cart-button-text"]')[0]; 719 var cartButtonLoading = addcartButton.querySelectorAll('[data-theme-cart-button-loading="theme-cart-button-loading"]')[0]; 720 var cartButtonLoadingFive = addcartButton.querySelectorAll('[data-theme-cart-button-loading-five="theme-cart-button-loading-five"]')[0]; 721 var cartLoadingTwo = addcartButton.querySelectorAll('[data-theme-cart-button-icon="data-theme-cart-button-icon"]')[0]; 722 if(cartButtonText){ 723 cartButtonText.style.display = "none"; 724 } 725 if(cartButtonLoading){ 726 cartButtonLoading.style.display = "block"; 727 } 728 if(cartButtonLoadingFive){ 729 cartButtonLoadingFive.style.display = "flex"; 730 } 731 if(cartLoadingTwo){ 732 cartLoadingTwo.style.display = "none"; 733 } 734} 735function updateToCartLoading (e) { 736 var updateCartButton = e.detail.target; 737 var cartupdateloading = document.querySelector("[data-theme-loader]"); 738 if(updateCartButton.hasAttribute("data-zs-update")){ 739 addClass(updateCartButton,'theme-cart-updating'); 740 updateCartButton.style.display = 'none'; 741 }else if(cartupdateloading){ 742 showLoader() 743 } 744} 745 746function deleteFromCartLoading (e) { 747 var deleteButtonElem = e.detail.target; 748 addClass(deleteButtonElem,'theme-cart-item-removing'); 749} 750 751function imageOrder (e){ 752 var imageIds = e.detail.image_ids; 753 754 prodId = e.detail.productId; 755 var thumbanailcontainer = document.querySelectorAll('[data-theme-thumbnail-container="theme-thumbnail-container-'+prodId+'"]')[0]; 756 if(thumbanailcontainer){ 757 var allImages = thumbanailcontainer.querySelectorAll("[data-zs-image-id]"); 758 } 759 var first = true; 760 var imageIdLength; 761 if(imageIds.indexOf('-1') >= 0 ){ 762 imageIdLength = imageIds.length - 1; 763 } 764 else{ 765 imageIdLength = imageIds.length; 766 } 767 if(imageIdLength == 1){ 768 if(thumbanailcontainer){ 769 thumbanailcontainer.style.display = 'none'; 770 } 771 } 772 else{ 773 if(thumbanailcontainer){ 774 thumbanailcontainer.style.display = 'flex'; 775 } 776 } 777 if(thumbanailcontainer){ 778 for (var i = 0; i < allImages.length; i++) { 779 var image = allImages[i]; 780 var imageId = image.getAttribute("data-zs-image-id"); 781 var previousDisplay = image.style.display; 782 if (previousDisplay !== "none") { 783 image.setAttribute("data-show-display", image.style.display); 784 } 785 image.style.display = "none"; 786 addClass(image,'hb-grid-hide'); 787 if (imageIds.indexOf(imageId) > -1) { 788 image.style.display = image.getAttribute("data-show-display"); 789 if (first) { 790 image.querySelector("img").click(); 791 first = false; 792 } 793 removeClass(image,'hb-grid-hide'); 794 } 795 if(imageIds.length == 0 || (imageIds.length == 1 && imageIds[0] == "-1")){ 796 image.style.display = "flex"; 797 removeClass(image,'hb-grid-hide'); 798 } 799 } 800 } 801} 802 803function selectedVariant(e){ 804 var currentStock = e.detail.variant_id; 805 var currentElementId = e.detail.productId; 806 var allStocks = document.querySelectorAll("[data-variant-id-stock]"); 807 var stockCartAttribute = document.querySelectorAll('[data-nostock-cart-add="theme-nostock-cart-add"]'); 808 var noStockQuantity = document.querySelectorAll("[data-nostock-quantity]"); 809 _hideCustomFieldsOfVariants(e.detail.productId); 810 _displayCustomFieldOfVariant(currentStock, e.detail.productId); 811 for(var i=0; i < allStocks.length; i++){ 812 stocks = allStocks[i]; 813 stock = stocks.getAttribute("data-variant-id-stock"); 814 stocks.style.display = 'none'; 815 if(stock == currentStock){ 816 817 var stockAvail = stocks.getAttribute('data-stock-avail'); 818 if(stockAvail == 'true'){ 819 stocks.style.display = "inline-block"; 820 for (sa=0;sa<stockCartAttribute.length;sa++){ 821 stockCartAttribute[sa].style.display = 'none'; 822 }
823 for(sq=0;sq<noStockQuantity.length;sq++){ 824 noStockQuantity[sq].style.display = 'none'; 825 } 826 addClass(stocks,'theme-out-of-stock'); 827 } 828 else{ 829 stocks.style.display = "none"; 830 for (sa=0;sa<stockCartAttribute.length;sa++){ 831 stockCartAttribute[sa].style.display = 'flex'; 832 } 833 for(sq=0;sq<noStockQuantity.length;sq++){ 834 noStockQuantity[sq].style.display = 'flex'; 835 } 836 removeClass(stocks,'theme-out-of-stock'); 837 } 838 } 839 } 840 841 // REMOVE CUSTOM FIELD ERRORS WHEN CLICK THE VARIANTS 842 843 var variantContainer = $D.get('[data-variant-id="'+ currentStock +'"]'); 844 if(variantContainer){ 845 var targetContainer = getTargetContainer(variantContainer); 846 if(targetContainer) { 847 var customFields = $D.getAll('[data-custom-field-id]', targetContainer); 848 customFields.forEach( function (field) { 849 _removeErrorElement(field); 850 }); 851 } 852 } 853 854 // END REMOVE CUSTOM FIELD ERRORS WHEN CLICK THE VARIANTS 855 856 // Start - To update additional offers on variant change 857 var currentContainer = $D.get('[data-zs-product-id="'+currentElementId+'"]'); 858 if(currentContainer){ 859 var additionalOfferContainer = currentContainer.querySelectorAll('[data-zs-pricelist-variantid]'); 860 if(additionalOfferContainer){ 861 for(i=0;i<additionalOfferContainer.length;i++){ 862 additionalOfferContainer[i].style.display = "none"; 863 additionalOfferContainer[i].classList.remove('theme-prod-pricelist-active'); 864 } 865 var activeVariant = $D.get('[data-zs-pricelist-variantid ="' + e.detail.variant_id + '"]'); 866 if(e.detail.variant_id != -1 && activeVariant){ 867 activeVariant.style.display = "block"; 868 activeVariant.classList.add('theme-prod-pricelist-active'); 869 } 870 } 871 } 872 // End - To update additional offers on variant change 873} 874 875function showMoreToggle (el,status) { 876 var toggleContainer = document.querySelector('.theme-prod-pricelist-active .theme-prod-pricelist-morelist-outter'); 877 var toggleContent = document.querySelector('.theme-prod-pricelist-active .theme-prod-pricelist-morelist'); 878 if(status == 'show'){ 879 el.style.display = 'none'; 880 el.parentNode.querySelector('.theme-prod-pricelist-hide-btn').style.display = 'block'; 881 toggleContainer.style.height = toggleContent.clientHeight + "px"; 882 }else if(status == 'hide'){ 883 el.style.display = 'none'; 884 el.parentNode.querySelector('.theme-prod-pricelist-show-btn').style.display = 'block'; 885 toggleContainer.style.height = '0px'; 886 } 887} 888 889function multiCurrencyLoaded(e){ 890 var baseCurrency = document.querySelector('[data-theme-base-currency]'); 891 var currencyListContainer = document.querySelector('[data-theme-currency-list-ul]'); 892 var currencyListClick = document.querySelector('[data-theme-currency-list-container]'); 893 var currencyContainerHeight = document.querySelector('[data-theme-currency-list-container]'); 894 var currencyPlaceHeight = document.querySelector('[data-theme-currency-placeholder-non-res]'); 895 var curHeight = currencyListContainer.clientHeight; 896 if(window.innerWidth > 992){ 897 if(curHeight != 0){ 898 currencyPlaceHeight.style.height = curHeight+'px'; 899 currencyContainerHeight.style.height = curHeight+'px'; 900 } 901 } 902 var targetCurrency = e.detail.currency_code; 903 if(targetCurrency){ 904 currencyListContainer.insertBefore(targetCurrency,currencyListContainer.childNodes[0]); 905 } 906 else{ 907 if(baseCurrency){ 908 currencyListContainer.insertBefore(baseCurrency,currencyListContainer.childNodes[0]); 909 } 910 } 911 currencyListClick.removeEventListener('click',openCurrency); 912 currencyListClick.addEventListener('click',openCurrency); 913 if(window.innerWidth < 992 ){ 914 currencyListContainer.addEventListener('click',function(){ 915 currencyListClick.removeEventListener('click',openCurrency); 916 }); 917 } 918} 919 920function openCurrency(){ 921 var currencyList = document.querySelectorAll('[data-theme-currency-list]'); 922 var currencyListContainer = document.querySelector('[data-theme-currency-list-ul]'); 923 var currencyHideOverlay = document.querySelector('[data-theme-currency-hide-overlay]'); 924 var currencyHideMobile = document.querySelector('[data-theme-currency-hide-mobile]'); 925 var currencyMobileOpenTop = document.querySelector('[data-theme-currency-open-top]'); 926 var resMenu = document.querySelector('[data-non-res-menu="zptheme-menu-non-res"]'); 927 for(cur=0;cur<currencyList.length;cur++){ 928 if(currencyList[cur].style.display == 'flex'){ 929 currencyList[cur].style.display = 'none'; 930 currencyListContainer.firstChild.style.display = "flex"; 931 removeClass(currencyListContainer,'theme-currency-open'); 932 currencyHideOverlay.style.display = "none"; 933 removeClass(resMenu,'theme-change-zindex'); 934 currencyMobileOpenTop.style.display = "none"; 935 } 936 else{ 937 currencyList[cur].style.display = 'flex'; 938 addClass(currencyListContainer,'theme-currency-open'); 939 currencyHideOverlay.style.display = "block"; 940 currencyHideMobile.style.display = "block"; 941 currencyMobileOpenTop.style.display = "flex"; 942 addClass(resMenu,'theme-change-zindex'); 943 } 944 } 945} 946 947function resetMultiCurrency(e){ 948 var baseCurrency = document.querySelector('[data-theme-base-currency
948]'); 949 var currencyListContainer = document.querySelector('[data-theme-currency-list-ul]'); 950 var allCurrency = currencyListContainer.children; 951 var targetCurrency = e.detail.currency_code; 952 if(targetCurrency){ 953 currencyListContainer.insertBefore(targetCurrency,currencyListContainer.childNodes[0]); 954 } 955 else{ 956 if(baseCurrency){ 957 currencyListContainer.insertBefore(baseCurrency,currencyListContainer.childNodes[0]); 958 for(ac=0;ac < allCurrency.length ; ac++){ 959 allCurrency[ac].style.display = "none"; 960 } 961 baseCurrency.style.display = "flex"; 962 } 963 } 964} 965 966function _displayCustomFieldOfVariant(variantId, productId) { 967 //display customn fields of appropriate variant 968 var variantElements = $D.getAll('[data-variant-id="'+ variantId +'"]'); 969 var customFieldMainContainers = $D.getAll('[data-custom-field-main-container]'); 970 var customFieldQuickview = $D.get('[data-theme-custom-field-quickview]'); 971 variantElements.forEach(function(variant) { 972 $D.css(variant, 'display', ''); 973 }); 974 975 customFieldMainContainers.forEach( function(customFieldMainContainer) { 976 var targetContainer = productId ? customFieldMainContainer.closest('[data-zs-product-id="'+ productId +'"]') : customFieldMainContainer.closest('[data-zs-product-id]'); 977 if(targetContainer){ 978 $D.css(customFieldMainContainer, 'display', ''); 979 } 980 }); 981 982 if(customFieldQuickview){ 983 $D.css(customFieldQuickview, 'padding-block-start', '29px'); 984 } 985} 986 987function _hideCustomFieldsOfVariants(productId) { 988 var customFieldMainContainers = $D.getAll('[data-custom-field-main-container]'); 989 var customFieldQuickview = $D.get('[data-theme-custom-field-quickview]'); 990 $D.getAll('[data-variant-id]').forEach(function(variant) { 991 var targetContainer = productId ? variant.closest('[data-zs-product-id="'+ productId +'"]') : variant.closest('[data-zs-product-id]'); 992 if(targetContainer) { 993 $D.css(variant, 'display', 'none'); 994 } 995 }); 996 997 customFieldMainContainers.forEach( function(customFieldMainContainer) { 998 var targetContainer = productId ? customFieldMainContainer.closest('[data-zs-product-id="'+ productId +'"]') : customFieldMainContainer.closest('[data-zs-product-id]'); 999 if(targetContainer){ 1000 $D.css(customFieldMainContainer, 'display', 'none'); 1001 } 1002 }); 1003 1004 if(customFieldQuickview){ 1005 $D.css(customFieldQuickview, 'padding-block-start', '0'); 1006 } 1007} 1008 1009 1010function customFieldValidation(e) { 1011 var detail = e.detail; 1012 if(detail.custom_fields) { 1013 detail.custom_fields.forEach( function (field) { 1014 _removeErrorElement(field); 1015 }); 1016 } 1017 1018 if(detail.error_custom_fields) { 1019 detail.error_custom_fields.forEach( function (error, index) { 1020 var data = { 1021 element : error.field, 1022 message : error.message 1023 } 1024 if(index == 0) { 1025 data.scroll = true; 1026 data.scrollposition = "center"; 1027 data.scrollViewElem = error.field.parentNode; 1028 } 1029 addErrorMsg(data); 1030 }); 1031 } 1032} 1033 1034function showSearchLoader(e){ 1035 var resultTarget = e.detail.element; 1036 var mainHeader = $D.get('[data-headercontainer]'); 1037 var mobileHeaderFix = mainHeader.classList.contains('theme-mobile-header-fixed'); 1038 var searchButton = e.detail.submitElem; 1039 if(searchButton){ 1040 var searchDots = searchButton.parentNode.querySelector('[data-theme-search-loader-dots]'); 1041 } 1042 if(searchButton && searchDots){ 1043 addClass(searchDots,'theme-show-search-loader-dots'); 1044 searchButton.style.display = "none"; 1045 } 1046 showLoader() 1047 if(resultTarget){ 1048 addClass(resultTarget,'theme-searching-opacity'); 1049 } 1050 if(mainHeader){ 1051 var mainHeaderHeight = mainHeader.clientHeight; 1052 } 1053} 1054function hideSearchLoader(e){ 1055 var loader = $D.get('[data-theme-loader]'); 1056 var tempLoad = $D.get('[data-theme-temp-load]'); 1057 var searchButton = e.detail.submitElem; 1058 if(searchButton){ 1059 var searchDots = searchButton.parentNode.querySelector('[data-theme-search-loader-dots]'); 1060 } 1061 if(searchButton && searchDots){ 1062 removeClass(searchDots,'theme-show-search-loader-dots'); 1063 searchButton.style.display = "block"; 1064 } 1065 if(tempLoad){ 1066 tempLoad.parentNode.removeChild(tempLoad); 1067 } 1068 var resultTarget = e.detail.element; 1069 hideLoader(); 1070 if(resultTarget){ 1071 removeClass(resultTarget,'theme-searching-opacity'); 1072 } 1073 window.scrollTo({top:0, behaviour:'smooth'}); 1074 mobileFilter(); 1075} 1076 1077function showLoader(){ 1078 var loader = $D.get('[data-theme-loader]'); 1079 var body = document.getElementsByTagName("body")[0]; 1080 var offsetVal = window.pageYOffset; 1081 var header = $D.get('[data-header]'); 1082 var mainHeader = $D.get('[data-headercontainer]'); 1083 var headerAni = header.classList.contains('theme-header-animate'); 1084 var headerSix = mainHeader.classList.contains('zpheader-style-06'); 1085 if(loader){ 1086 addClass(loader,'theme-loader-show'); 1087 addClass(body,'theme-loader-body-hidden'); 1088 } 1089 if(header){ 1090 var headerHeight = header.clientHeight; 1091 } 1092 if(header && offsetVal > headerHeight && headerAni && !headerSix){ 1093 loader.children[0].style.marginTop = (offsetVal+headerHeight)+'px'; 1094 } 1095 else if(mainHeader && headerSix){ 1096 loader.children[0].style.marginTop = (offsetVal+80)+'px' 1097 } 1098} 1099 1100function hideLoader(){ 1101 var loader = $D.get('[data-theme-loader]'); 1102 var body = document.getElementsByTagName("body")[0]; 1103 if(loader){ 1104 removeClass(loader,'theme-loader-show'); 1105 removeClass(body,'theme-loader-body-hidden'); 1106 } 1107} 1108 1109function uploadAttachmentCustomFieldsSuccess(e) { 1110 var data = e.detail; 1111 var attachment_element = e.detail.field; 1112 var variantElement = data.variant_element; 1113 1114 var customfieldId = attachment_element.getAttribute("data-custom-field-id"); 1115 1116 attachment_element.setAttribute("data-value", data.document_id) 1117 1118 var attachmentClickElem = $D.get('[data-zs-attachment-upload-custom-field-id="' + customfieldId+ '"]', variantElement); 1119 if(attachmentClickElem) { 1120 var attachmentClickLabel = $D.get('[data-zs-attachment-label]', attachmentClickElem); 1121 if(attachmentClickLabel) {
1122 attachmentClickLabel.innerText = i18n.get("product.custom_field.attachment.change_file"); 1123 } 1124 } 1125 1126 var nameContainer = $D.get('[data-zs-attachment-name-container="'+ customfieldId +'"]', variantElement); 1127 if(nameContainer) { 1128 var fileName = $D.get('[data-attachment-file-name]', nameContainer); 1129 if(fileName) { 1130 fileName.innerText = data.attachment_file_name; 1131 } 1132 1133 $D.css(nameContainer, 'display', ''); 1134 1135 var remove = $D.get('[data-zs-remove-attachment]', nameContainer); 1136 remove.addEventListener("click", function(e) { 1137 attachment_element.setAttribute("data-value", "") 1138 $D.css(nameContainer, 'display', 'none'); 1139 1140 var attachmentClickLabel = $D.get('[data-zs-attachment-label]', attachmentClickElem); 1141 if(attachmentClickLabel) { 1142 attachmentClickLabel.innerText = i18n.get("product.custom_field.attachment.choose_file"); 1143 } 1144 1145 }); 1146 1147 } 1148 1149 //remove attachment error element 1150 _removeErrorElement(attachment_element) 1151} 1152 1153function elementLoader(e) { 1154 var targetElement = e.detail.element; 1155 var displayOption = e.detail.display; 1156 1157 if(targetElement) { 1158 if(displayOption == "none") { 1159 targetElement.removeAttribute("disabled"); 1160 } else { 1161 targetElement.setAttribute("disabled", true); 1162 1163 } 1164 1165 var svgElement = $D.getByTag('svg', targetElement)[0]; 1166 if(svgElement) { 1167 $D.css(svgElement, 'display', displayOption); 1168 1169 } 1170 } 1171 1172} 1173 1174// Delivery location popup loader 1175 1176function showPopupLoader(e){ 1177 if(deliveryLocationLoader){ 1178 deliveryLocationLoader.style.display = 'flex'; 1179 } 1180} 1181function hidePopupLoader(e){ 1182 if(deliveryLocationLoader){ 1183 deliveryLocationLoader.style.display = 'none'; 1184 } 1185 deliveryLocationPinInput = document.querySelector('[data-theme-popup-postalcode]'); 1186 deliveryLocationPinError = document.querySelector('[data-zs-delivery-availability-popup-error-message]'); 1187 deliveryLocationPinValidate(deliveryLocationPinInput,deliveryLocationPinError); 1188} 1189 1190document.addEventListener("zp-event-add-to-cart-success", addToCartSuccess, false); 1191document.addEventListener("zp-event-add-to-cart-failure", addToCartFailure, false); 1192document.addEventListener("zp-event-update-to-cart-success", updateToCartSuccess, false); 1193document.addEventListener("zp-event-update-to-cart-failure", updateToCartFailure, false); 1194document.addEventListener("zp-event-delete-from-cart-success", deleteFromCartSuccess, false); 1195document.addEventListener("zp-event-delete-from-cart-failure", deleteFromCartFailure, false); 1196document.addEventListener("zp-event-add-to-cart-invalid-variant", addToCartWithInvalidVariant, false); 1197document.addEventListener("zp-event-invalid-product-quantity", invalidProductQuantity, false); 1198document.addEventListener("zp-event-attribute-selected", selectAttribute, false); 1199document.addEventListener("zp-event-attribute-group-invalid", invalidAttributeGroup, false); 1200 1201document.addEventListener("zp-event-add-to-cart-loading", addToCartLoading, false); 1202document.addEventListener("zp-event-update-to-cart-loading", updateToCartLoading, false); 1203document.addEventListener("zp-event-delete-from-cart-loading", deleteFromCartLoading, false); 1204 1205document.addEventListener("zp-event-image-ordered", imageOrder, false); 1206 1207document.addEventListener("zp-event-selected-variant", selectedVariant, false); 1208 1209document.addEventListener("zp-event-multi-currency-loaded", multiCurrencyLoaded, false); 1210 1211document.addEventListener("zp-event-multi-currency-value-reset", resetMultiCurrency, false); 1212 1213document.addEventListener("zs-event-custom-field-validation-error", customFieldValidation, false); 1214 1215document.addEventListener("zp-event-search-pending",showSearchLoader, false); 1216 1217document.addEventListener("zp-event-search-success",hideSearchLoader, false); 1218 1219document.addEventListener("zs-event-custom-field-attachment-success",uploadAttachmentCustomFieldsSuccess, false); 1220document.addEventListener("zs-event-button-loader",elementLoader, false); 1221 1222document.addEventListener("zp-event-delivery-availability-popup-on-load",showPopupLoader, false); 1223document.addEventListener("zp-event-delivery-availability-popup-loaded",hidePopupLoader, false); 1224document.addEventListener("zp-event-check-delivery-availability-loading",showPopupLoader, false); 1225document.addEventListener("zp-event-check-delivery-availability-success",hidePopupLoader, false); 1226document.addEventListener("zp-event-check-delivery-availability-failure",hidePopupLoader, false);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.