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