PageSourceSearch

https://www.marianazavaleta.com/template/04273abbc1fb4da4a3362ea754c0fcb3/js/eventhandler.js

js marianazavaleta.com collected 2026-10-07 00:53:46 UTC 47,502 bytes, 1,225 lines download raw bytes

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.