PageSourceSearch

https://www.malligaidentalacademy.com/template/dc6fc71fe6ed41dba8acfc729150c20e/js/eventhandler.js

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

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.