PageSourceSearch

https://ays-pro.com/templates/ays/js/main.js?v=33

js ays-pro.com collected 2026-10-02 05:13:42 UTC 35,776 bytes, 915 lines download raw bytes

1window.onload = function() {
2    
3    /* Ays image lightbox all pages | Start */
4    /* 
5      Selector > ays-image-lightbox
6      Attribute > data-src
7    */
8    var aysImages = document.querySelectorAll('.ays-image-lightbox');
9
10    if (aysImages.length > 0) {
11        for (var i = 0; i < aysImages.length; i++) {
12            aysImages[i].addEventListener('click', function (event) {
13                var _this = this;
14                var dataSrc = _this.getAttribute('data-src');
15                var imgPreladerSrc = "https://ays-pro.com/images/articles/aro/loaders/tail-spin.svg";
16
17                if (dataSrc != null && dataSrc != "") {
18                    var aysImagesOverlayBox = document.querySelectorAll('.ays-image-lightbox-container');
19
20                    if (aysImagesOverlayBox.length > 0) {
21                        var mainDiv = document.querySelector(".ays-image-lightbox-container");
22                        var createdImgTag = document.querySelector(".ays-image-lightbox-img");
23
24                        createdImgTag.src = dataSrc;
25                        mainDiv.style.display = "flex";
26                    } else {
27                        var bodyTag = document.getElementsByTagName("body")[0];
28
29                        var overlayContainer = document.createElement('div');
30                        overlayContainer.setAttribute('class', 'ays-image-lightbox-container');
31
32                        var imgBox = document.createElement('div');
33                        imgBox.setAttribute('class', 'ays-image-lightbox-img-box');
34
35                        var imgTag = document.createElement('img');
36                        imgTag.classList.add("ays-image-lightbox-img");
37                        imgTag.src = dataSrc;
38
39                        imgTag.addEventListener("load", function () {
40                            this.style.zIndex = "102";
41                        });
42
43                        var imgPreloader = document.createElement('img');
44                        imgPreloader.classList.add("ays-image-lightbox-preloader");
45                        imgPreloader.src = imgPreladerSrc;
46
47                        var closeTag = document.createElement('span');
48                        closeTag.setAttribute('class', 'ays-image-lightbox-close-button');
49                        closeTag.setAttribute('onclick', 'aysImageLightboxClose()');
50
51                        imgBox.appendChild(imgTag);
52                        overlayContainer.appendChild(imgBox);
53                        overlayContainer.appendChild(closeTag);
54                        overlayContainer.appendChild(imgPreloader);
55                        bodyTag.appendChild(overlayContainer);
56
57                        document.querySelector(".ays-image-lightbox-close-button").innerHTML = "&times;";
58
59                        var mainDiv = document.querySelector(".ays-image-lightbox-container");
60                        mainDiv.style.display = "flex";
61                    }
62                }
63            });
64        }
65    }
66
67    /* Ays image lightbox all pages | End */
68
69    // Xcho reviews slider start
70
71    var prevButton = document.querySelector('.xays_prev');
72    var nextButton = document.querySelector('.xays_next');
73    var slideshowContainer = document.querySelector('.xays_slideshow_container');
74    var dotElements = document.querySelectorAll('.xays_dot');
75
76    prevButton?.addEventListener('click', function () {
77        plusSlides(-1);
78    });
79
80    nextButton?.addEventListener('click', function () {
81        plusSlides(1);
82    });
83
84    slideshowContainer?.addEventListener('mouseover', function () {
85        stopTimer();
86    });
87
88    slideshowContainer?.addEventListener('mouseleave', function () {
89        sliderTimer();
90    });
91
92    for (var i = 0; i < dotElements.length; i++) {
93        dotElements[i].addEventListener('click', (function (index) {
94            return function () {
95                currentSlide(index + 1);
96            };
97        })(i));
98    }
99
100    // Xcho reviews slider end
101
102    // Popup landing page open video start
103    var playButton = document.getElementById('ays-pro-pb-video-play-button');
104    var videoBox = document.getElementById('ays-pro-pb-video-box');
105    var closeButton = document.getElementById('ays-pro-pb-popup-close-button');
106    var plansButton = document.getElementById('ays-pro-pb-popup-plans-bttn-iframe');
107    var videoPopupBox = document.getElementById('ays-pro-pb-video-popup-box');
108    var otherTypesBox = document.querySelector('.ays-pro-pb-option-other-types-box');
109
110    playButton?.addEventListener('mouseover', function () {
111        this.style.transform = 'rotate(-240deg)';
112        this.style.transition = '0.5s';
113    });
114
115    playButton?.addEventListener('mouseleave', function () {
116        this.style.transform = 'rotate(0deg)';
117        this.style.transition = '0.5s';
118    });
119
120    videoBox?.addEventListener('click', function () {
121        document.querySelector('#ays-pro-pb-video-popup-box').style.display = 'flex';
122        document.querySelector('body').style.overflow = 'hidden';
123    });
124
125    var closeEventElements = [closeButton, plansButton, videoPopupBox];
126   // console.log(closeEventElements);
127    for (var i = 0; i < closeEventElements.length; i++) {
128        closeEventElements[i]?.addEventListener('click', function () {
129            document.querySelector('#ays-pro-pb-iframe-video').src = 'about:blank';
130            document.querySelector('#ays-pro-pb-video-popup-box').style.display = 'none';
131            document.querySelector('body').style.overflow = 'auto';
132        });
133    }
134
135    // Popup landing page open all types
136    otherTypesBox?.addEventListener('click', function () {
137        var thisParent = this.closest('.ays-pro-pb-plugin-options-row');
138        var typesRow2 = thisParent.querySelector('.ays-pro-pb-plugin-options-row_2');
139
140        if (!typesRow2.classList.contains('display-none')) {
141            typesRow2.classList.add('display-none');
142        } else {
143            typesRow2.classList.remove('display-none');
144        }
145    });
146
147    // Popup landing page open video end
148
149
150    // Easy form js start
151    /* -- video popup start -- */
152    var playButtonBoxes = document.querySelectorAll('.ays-pro-ef-video-play-button-box-sg');
153    var videoContainer = document.querySelector('.ays-pro-ef-about-video-container-sg');
154    var closeButtons = document.querySelectorAll('.ays-pro-ef-popup-close-button-sg, .ays-pro-ef-popup-plans-bttn-iframe-sg, .ays-pro-ef-video-popub-box-sg');
155    var videoPopupBox = document.querySelector('.ays-pro-ef-video-popub-box-sg');
156
157    for (var i = 0; i < playButtonBoxes.length; i++) {
158        playButtonBoxes[i].addEventListener('mouseover', function () {
159            this.style.transform = 'rotate(-240deg)';
160            this.style.transition = '0.5s';
161        });
162
163        playButtonBoxes[i].addEventListener('mouseleave', function () {
164            this.style.transform = 'rotate(0deg)';
165            this.style.transition = '0.5s';
166        });
167    }
168
169    videoContainer?.addEventListener('click', function () {
170        document.querySelector('.ays-pro-ef-iframe-video-sg').src = 'https://www.youtube.com/embed/2K_uiNo33zc';
171        document.querySelector('.ays-pro-ef-video-popub-box-sg').style.display = 'flex';
172        document.querySelector('body').style.overflow = 'hidden';
173    });
174
175    for (var i = 0; i < closeButtons.length; i++) {
176        closeButtons[i].addEventListener('click', function () {
177            document.querySelector('.ays-pro-ef-iframe-video-sg').src = 'about:blank';
178            document.querySelector('.ays-pro-ef-video-popub-box-sg').style.display = 'none';
179            document.querySelector('body').style.overflow = 'auto';
180        });
181    }
182
183    document.addEventListener("keydown", function (e) {
184        var popUpDiv = document.querySelector(".ays-pro-ef-video-popub-box-sg");
185        if (e.key == 27 && document.querySelector(".ays-pro-ef-video-popub-box-sg:visible")) {
186            var closeButton = document.querySelector(".ays-pro-ef-popup-close-button-sg");
187            closeButton.click();
188        }
189    });
190
191    /* -- video popup end -- */
192
193    // Popup for youtube videos in each product page 
194
195    var playButtonBoxesForYoutube = document.querySelectorAll(".ays-pro-play-button-box-for-youtube");
196    var youtubePopupCloseButtons = document.querySelectorAll(".ays-pro-youtube-popup-close-button, .ays-pro-youtube-popup-plans-bttn-iframe, .ays-pro-youtube-video-popub-box");
197
198    for (var i = 0; i < playButtonBoxesForYoutube.length; i++) {
199        playButtonBoxesForYoutube[i].addEventListener("click", function () {
200            var youTubeLink = this.getAttribute("data-yt-link");
201            var currentParent = this.closest('.ays-pro-sm-content-row-sg');
202            var currentParentSibling = document.querySelector('.ays-pro-youtube-video-popub-box');
203            currentParentSibling.style.display = "flex";
204            currentParentSibling.querySelector('.ays-pro-youtube-iframe-video').src = youTubeLink;
205            document.querySelector('body').style.overflow = 'hidden';
206        });
207    }
208
209    for (var i = 0; i < youtubePopupCloseButtons.length; i++) {
210        youtubePopupCloseButtons[i].addEventListener("click", function () {
211            var currentParent = this.closest('.ays-pro-youtube-video-popub-box');
212            currentParent.style.display = "none";
213            currentParent.querySelector('.ays-pro-youtube-iframe-video').src = "about:blank";
214            document.querySelector('body').style.overflow = 'auto';
215        });
216    }
217
218    document.addEventListener("keydown", function (e) {
219        var popUpDiv = document.querySelector(".ays-pro-youtube-video-popub-box");
220        if (e.key == 27 && document.querySelector(".ays-pro-youtube-video-popub-box:visible")) {
221            var closeButton = document.querySelector(".ays-pro-youtube-popup-close-button");
222            closeButton.click();
223        }
224    });
225
226    //Popup for youtube videos in each product page 
227
228    /* -- buttons hover styles start -- */
229
230    var hoverButtons = document.querySelectorAll(".ays-pro-ef-docs-demo-button-sg, .ays-pro-sm-docs-demo-button-sg, .ays-pro-cb-docs-demo-button-sg");
231
232    for (var i = 0; i < hoverButtons.length; i++) {
233        hoverButtons[i].addEventListener("mouseover", function () {
234            var imageHoverUrl = this.getAttribute("data-image-hover-link");
235            var hoverText = this.querySelector("span");
236            var hoverImg = this.querySelector("img");
237
238            this.style.background = "#fff";
239            this.style.border = "1px solid #344157";
240            hoverText.style.color = "#344157";
241
242            hoverImg.setAttribute("src", imageHoverUrl);
243        });
244
245        hoverButtons[i].addEventListener("mouseleave", function () {
246            var imageMainUrl = this.getAttribute("data-image-link");
247            var hoverText = this.querySelector("span");
248            var hoverImg = this.querySelector("img");
249
250            this.style.background = "#344157";
251            this.style.border = "1px solid #fff";
252            hoverText.style.color = "#fff";
253
254            hoverImg.setAttribute("src", imageMainUrl);
255        });
256    }
257
258    /* -- buttons hover styles end -- */
259
260
261    /* -- change demo start -- */
262    var chooseDemoButtons = document.querySelectorAll(".ays-pro-all-demo-buttons-sg");
263
264    for (var i = 0; i < chooseDemoButtons.length; i++) {
265        chooseDemoButtons[i].addEventListener("click", function () {
266            var allDemoButtons = document.querySelectorAll(".ays-pro-all-demo-buttons-sg");
267            for (var j = 0; j < allDemoButtons.length; j++) {
268                allDemoButtons[j].classList.remove("ays-pro-all-active-demo-buttons-sg");
269            }
270            this.classList.add("ays-pro-all-active-demo-buttons-sg");
271
272            var demoContainer = this.closest(".ays-pro-all-demos-container-sg");
273            var demoImg = demoContainer.querySelector(".ays-pro-all-demos-content-sg > img");
274            var demoLink = demoContainer.querySelector(".ays-pro-all-demos-link-box-sg a");
275            demoLink.href = this.getAttribute("data-link");
276            var imageMainUrl = this.getAttribute("data-image-url");
277            demoImg.src = imageMainUrl;
278        });
279    }
280    /* -- change demo end -- */
281
282    /* -- review slider start -- */
283    var sliderChangeButtons = document.querySelectorAll(".ays-pro-ef-choose-circle-sg");
284
285    for (var i = 0; i < sliderChangeButtons.length; i++) {
286        sliderChangeButtons[i].addEventListener("click", function () {
287            if (!this.classList.contains("ays-pro-ef-active-choose-circle-sg")) {
288                var reviewsContainer = document.querySelector(".ays-pro-ef-reviews-container-sg");
289                var reviewRows = document.querySelectorAll(".ays-pro-ef-active-row-sg");
290                var next = this.dataset.efReviewSg;
291
292                for (var j = 0; j < sliderChangeButtons.length; j++) {
293                    sliderChangeButtons[j].classList.remove("ays-pro-ef-active-choose-circle-sg");
294                }
295                this.classList.add("ays-pro-ef-active-choose-circle-sg");
296
297                for (var k = 0; k < reviewRows.length; k++) {
298                    reviewRows[k].classList.remove("ays-pro-ef-active-row-sg");
299                }
300                reviewsContainer.querySelector('.ays-pro-ef-reviews-container-content-sg[data-ef-review-sg="' + next + '"]').classList.add("ays-pro-ef-active-row-sg");
301            }
302        });
303    }
304    /* -- review slider end -- */
305    // Easy form js end
306
307    var pricingTableFirstRow = document.querySelector(".ays-pro-all-list-plans-table-sg > thead");
308
309    window.onscroll = function () {
310        if (pricingTableFirstRow) {
311          if (window.scrollY === pricingTableFirstRow.offsetTop || window.scrollY === pricingTableFirstRow.offsetTop - 70) {
312            pricingTableFirstRow.style.boxShadow = "0px 9px 5px -6px #80808073";
313          } else {
314            pricingTableFirstRow.style.boxShadow = "none";
315          }
316        }
317    };
318      
319
320    /* -- New landing pages -- */
321
322    var hoverButtonsSurvey = document.querySelectorAll(".ays-pro-sm-docs-demo-button-sg");
323    for (var i = 0; i < hoverButtonsSurvey.length; i++) {
324        hoverButtonsSurvey[i].addEventListener("mouseover", function () {
325            var hoverText = this.querySelector("span");
326            var hoverImg = this.querySelector("img");
327
328            this.style.background = "#fff";
329            this.style.border = "1px solid #344157";
330            hoverText.style.color = "#344157";
331
332            if (hoverText.textContent.toLowerCase() == "documentation") {
333                hoverImg.setAttribute("src", "https://ays-pro.com/images/easyform/svg/documentation_dark.svg");
334            } else {
335                hoverImg.setAttribute("src", "https://ays-pro.com/images/easyform/svg/demo_icon_dark.svg");
336            }
337        });
338
339        hoverButtonsSurvey[i].addEventListener("mouseleave", function () {
340            var hoverText = this.querySelector("span");
341            var hoverImg = this.querySelector("img");
342
343            this.style.background = "#344157";
344            this.style.border = "1px solid #fff";
345            hoverText.style.color = "#fff";
346
347            if (hoverText.textContent.toLowerCase() == "documentation") {
348                hoverImg.setAttribute("src", "https://ays-pro.com/images/easyform/svg/documentation.svg");
349            } else {
350                hoverImg.setAttribute("src", "https://ays-pro.com/images/easyform/svg/demo_icon.svg");
351            }
352        });
353    }
354
355
356    /* -- change steps start -- */
357    var stepBttn = document.querySelectorAll(".ays-pro-cb-user-manual-step-sg");
358    var stepImg = document.querySelector(".ays-pro-cb-user-manual-result-box-sg img");
359
360    for (var i = 0; i < stepBttn.length; i++) {
361        stepBttn[i].addEventListener("click", function () {
362            var newStepId = this.getAttribute("step-id");
363            for (var j = 0; j < stepBttn.length; j++) {
364                stepBttn[j].style.backgroundColor = "#fff";
365            }
366            this.style.backgroundColor = "#ffdfdf";
367            stepImg.setAttribute("src", newStepId);
368        });
369    }
370    /* -- change steps end -- */
371
372
373    var sliderChangeButtonSurvey = document.querySelectorAll(".ays-pro-sm-choose-circle-sg");
374    var reviewsContainer = document.querySelector(".ays-pro-sm-reviews-container-sg");
375    var reviewRows = document.querySelectorAll(".ays-pro-sm-active-row-sg");
376
377    for (var i = 0; i < sliderChangeButtonSurvey.length; i++) {
378        sliderChangeButtonSurvey[i].addEventListener("click", function () {
379            if (!this.classList.contains("ays-pro-sm-active-choose-circle-sg")) {
380                var next = this.getAttribute("data-sm-review-sg");
381                for (var j = 0; j < sliderChangeButtonSurvey.length; j++) {
382                    sliderChangeButtonSurvey[j].classList.remove("ays-pro-sm-active-choose-circle-sg");
383                }
384                this.classList.add("ays-pro-sm-active-choose-circle-sg");
385                for (var k = 0; k < reviewRows.length; k++) {
386                    reviewRows[k].classList.remove("ays-pro-sm-active-row-sg");
387                }
388                reviewsContainer.querySelector('.ays-pro-sm-reviews-container-content-sg[data-sm-review-sg="' + next + '"]').classList.add("ays-pro-sm-active-row-sg");
389            }
390        });
391    }
392
393    /* -- New landing pages -- */
394
395    // FAQ Hasmik
396    var acc = document.getElementsByClassName("ays-pro-asked-question__header");
397    var i;
398
399    for (i = 0; i < acc.length; i++) {
400        acc[i].addEventListener("click", function () {
401
402            var panel = this.nextElementSibling;
403
404
405            if (panel.style.maxHeight) {
406                panel.style.maxHeight = null;
407                this.children[1].children[0].style.transform = "rotate(0deg)";
408            } else {
409                panel.style.maxHeight = panel.scrollHeight + "px";
410                this.children[1].children[0].style.transform = "rotate(180deg)";
411            }
412        });
413    }
414
415    //end FAQ Hasmik
416    
417    
418    
419    if (typeof jQuery !== 'undefined') {
420        // Checkout page JS start XCHO
421        jQuery(document).on('focus', '.ays-pro-sign-up-page-labels-box-inputs input,.b2j-contact-group-class input', function(){
422            var thisParent = jQuery(this).parents('.ays-pro-sign-up-page-labels-boxes-parent,.control-group');
423            thisParent.find('.ays-pro-sign-up-page-labels-box-texts label,.control-label').css('color', '#525FFF');
424        });
425        jQuery(document).on('blur', '.ays-pro-sign-up-page-labels-box-inputs input,.b2j-contact-group-class input', function(){
426            var thisParent = jQuery(this).parents('.ays-pro-sign-up-page-labels-boxes-parent,.control-group');
427            thisParent.find('.ays-pro-sign-up-page-labels-box-texts label,.control-label').css('color', '#000000');
428        });
429        
430        jQuery(document).on('input', '.ays-pro-sign-up-page-labels-email-box-input input#ays_email', function(){        
431            jQuery(this).parents('.ays-pro-sign-up-page-labels-email-box').removeClass('ays-pro-sign-up-email-has-error');
432        });
433        // Checkout page JS end
434        
435            // Apply coupon start
436        jQuery(document).on('click', '#ays_apply_coupon', function(){        
437            var $this = jQuery(this);
438            var $thisLabelBox = $this.parents('.ays-pro-sign-up-page-labels-boxes');
439            var $thisMainParent = $this.parents('.ays-pro-sign-up-page-labels-coupon-box');
440            var $thisGlobalParent = $this.parents('.ays-pro-sign-up-page-main-box');
441            var callUrl = $this.attr('data-call-url');
442            var prodId = $thisGlobalParent.find("#ays_p_id").val();
443            var prodType = $thisGlobalParent.find("#ays_p_type").val();
444            
445            var getCoupon = $thisMainParent.find('#ays_coupon').val();
446            getCoupon = getCoupon.trim();
447    
448            if(!getCoupon || getCoupon == ''){
449                $thisLabelBox.addClass('ays-pro-sign-up-has-error');
450                $thisMainParent.find('.ays-pro-sign-up-page-message-box-for-coupon').text('Coupon field is empty');
451                $thisMainParent.find('.ays-pro-sign-up-page-message-box-for-coupon').addClass('ays-pro-sign-up-page-message-box-for-fail');
452            }
453            else{            
454                $thisLabelBox.removeClass('ays-pro-sign-up-has-error');
455                var loaderImage = $thisMainParent.find('.ays-pro-sign-up-page-labels-coupon-apply-loader')
456                loaderImage.removeClass('display-none-loader');
457                $this.addClass('disabled-button');
458    
459                
460                var prodPrintedPrice = $thisMainParent.find('.ays-pro-sign-up-page-product-price-for-coupon .ays-pro-sign-up-page-product-just-price-for-coupon').text();
461                prodPrintedPrice = prodPrintedPrice.trim().replace('$', '');
462    
463                var sendData = {
464                    prod_id: prodId,
465                    prod_type: prodType,
466                    user_coupon: getCoupon,
467                };
468            
469                jQuery.ajax({
470                    url: callUrl,
471                    type: 'post',
472                    dataType: 'json',
473                    data: sendData,
474                    success:function (response) {
475                        loaderImage.addClass('display-none-loader');
476                        if(response.status){
477                            var discountPercent = typeof response.coupon_discount != 'undefined' && response.coupon_discount ? +response.coupon_discount : 0;
478                            var productDBPrice = typeof response.product_price != 'undefined' && response.product_price ? +response.product_price : 0;
479                            if(discountPercent > 0 && productDBPrice > 0){
480                                var readyPrice = productDBPrice - ((productDBPrice * discountPercent) / 100);
481                                readyPrice = readyPrice.toFixed();
482                                $thisMainParent.find('.ays-pro-sign-up-page-product-price-for-coupon .ays-pro-sign-up-page-product-just-price-for-coupon').text(readyPrice);
483                                $thisMainParent.find('.ays-pro-sign-up-page-message-box-for-coupon').text(response.message);
484                                $thisMainParent.find('.ays-pro-sign-up-page-message-box-for-coupon').addClass('ays-pro-sign-up-page-message-box-for-success');
485                                setTimeout(function(){
486                                    $thisMainParent.find('.ays-pro-sign-up-page-message-box-for-coupon').removeClass('ays-pro-sign-up-page-message-box-for-success');
487                                }, 5000)
488                            }
489                        }
490                        else{
491                            $thisMainParent.find('.ays-pro-sign-up-page-message-box-for-coupon').text(response.message);
492                            $thisMainParent.find('.ays-pro-sign-up-page-message-box-for-coupon').addClass('ays-pro-sign-up-page-message-box-for-fail');                        
493                            $this.removeClass('disabled-button');
494                            setTimeout(function(){
495                                $thisMainParent.find('.ays-pro-sign-up-page-message-box-for-coupon').removeClass('ays-pro-sign-up-page-message-box-for-fail');
496                            }, 5000)
497                        }
498                    }
499                });
500            }
501        });
502        // Apply coupon end
503    }
504};
505
506// Xachik reviews slider start
507var startTimer;
508if (document.getElementById("xays_slideshow_container") !== null)
509    sliderTimer();
510
511function sliderTimer() {
512    stopTimer();
513    startTimer = setInterval(function () {
514        var getDataId = document.getElementById("xays_slideshow_container").getAttribute("data-id");
515        var z = parseInt(getDataId);
516        z++;
517        showSlides(z);
518    }, 3500);
519}
520
521function stopTimer() {
522    clearInterval(startTimer);
523}
524
525function plusSlides(n) {
526    stopTimer();
527    var getDataId = document.getElementById("xays_slideshow_container").getAttribute("data-id");
528    var z = parseInt(getDataId);
529    showSlides(z += n);
530}
531
532
533function currentSlide(n) {
534    stopTimer();
535    var getDataId = document.getElementById("xays_slideshow_container").getAttribute("data-id");
536    var z = parseInt(getDataId);
537    showSlides(z = n);
538}
539
540function showSlides(n) {
541    var i;
542    var getMainDiv = document.getElementById('xays_slideshow_container');
543    var z = parseInt(getMainDiv.getAttribute("data-id"));
544    var slides = document.getElementsByClassName("xays_slides");
545    var dots = document.getElementsByClassName("xays_dot");
546
547    if (n > slides.length) {
548        n = 1;
549        getMainDiv.setAttribute("data-id", n);
550    }
551    if (n < 1) {
552        n = slides.length;
553        getMainDiv.setAttribute("data-id", n);
554    }
555    getMainDiv.setAttribute("data-id", n);
556    for (i = 0; i < slides.length; i++) {
557        slides[i].style.display = "none";
558    }
559    for (i = 0; i < dots.length; i++) {
560        dots[i].className = dots[i].className.replace(" active", "");
561    }
562
563    slides[n - 1].style.display = "flex";
564    dots[n - 1].className += " active";
565
566}
567// Xachik reviews slider end
568
569function aysImageLightboxClose() {
570    var mainDiv = document.querySelector(".ays-image-lightbox-container");
571    mainDiv.style.display = "none";
572
573    var imgTag = document.querySelector(".ays-image-lightbox-img");
574    imgTag.style.zIndex = "100";
575}
576
577
578/* New Homepage Design JS | 2026 | Start */
579
580function initReviewsSlider() {
581    var slider = document.querySelector('[data-ays-pro-homepage-reviews]');
582
583    if (!slider) {
584        return;
585    }
586
587    var slides = slider.querySelectorAll('[data-ays-pro-homepage-review-slide]');
588    var controls = slider.querySelectorAll('[data-ays-pro-homepage-review-control]');
589    var currentIndex = 0;
590    var timer = null;
591    var interval = 6500;
592    var reducedMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
593
594    function showReview(index) {
595        var normalizedIndex = (index + slides.length) % slides.length;
596        var i;
597
598        if (normalizedIndex === currentIndex) {
599            return;
600        }
601
602        for (i = 0; i < slides.length; i++) {
603            slides[i].classList.remove('ays-pro-homepage-review-slide-active');
604            slides[i].setAttribute('aria-hidden', 'true');
605            controls[i].classList.remove('ays-pro-homepage-review-control-active');
606            controls[i].setAttribute('aria-current', 'false');
607        }
608
609        slides[normalizedIndex].classList.add('ays-pro-homepage-review-slide-active');
610        slides[normalizedIndex].setAttribute('aria-hidden', 'false');
611        controls[normalizedIndex].classList.add('ays-pro-homepage-review-control-active');
612        controls[normalizedIndex].setAttribute('aria-current', 'true');
613        currentIndex = normalizedIndex;
614    }
615
616    function stopAutoplay() {
617        if (timer !== null) {
618            window.clearInterval(timer);
619            timer = null;
620        }
621    }
622
623    function startAutoplay() {
624        stopAutoplay();
625
626        if (reducedMotion || document.hidden) {
627            return;
628        }
629
630        timer = window.setInterval(function () {
631            showReview(currentIndex + 1);
632        }, interval);
633    }
634
635    function selectReview(index) {
636        showReview(index);
637        startAutoplay();
638    }
639
640    function bindControl(control) {
641        control.addEventListener('click', function () {
642            selectReview(parseInt(control.getAttribute('data-ays-pro-homepage-review-control'), 10));
643        });
644    }
645
646    var i;
647    for (i = 0; i < controls.length; i++) {
648        bindControl(controls[i]);
649    }
650
651    slider.addEventListener('mouseenter', stopAutoplay);
652    slider.addEventListener('mouseleave', startAutoplay);
653    slider.addEventListener('focusin', stopAutoplay);
654    slider.addEventListener('focusout', function () {
655        window.setTimeout(function () {
656            if (!slider.contains(document.activeElement)) {
657                startAutoplay();
658            }
659        }, 0);
660    });
661    slider.addEventListener('keydown', function (event) {
662        if (event.key === 'ArrowLeft') {
663            event.preventDefault();
664            selectReview(currentIndex - 1);
665        } else if (event.key === 'ArrowRight') {
666            event.preventDefault();
667            selectReview(currentIndex + 1);
668        }
669    });
670    document.addEventListener('visibilitychange', function () {
671        if (document.hidden) {
672            stopAutoplay();
673        } else {
674            startAutoplay();
675        }
676    });
677
678    startAutoplay();
679}
680
681function initFaqAccordion() {
682    var accordion = document.querySelector('[data-ays-pro-homepage-faq]');
683
684    if (!accordion) {
685        return;
686    }
687
688    var items = accordion.querySelectorAll('[data-ays-pro-homepage-faq-item]');
689    var questions = accordion.querySelectorAll('[data-ays-pro-homepage-faq-question]');
690
691    function setItemState(item, isOpen) {
692        var question = item.querySelector('[data-ays-pro-homepage-faq-question]');
693        var answer = item.querySelector('[data-ays-pro-homepage-faq-answer]');
694
695        if (isOpen) {
696            item.classList.add('ays-pro-homepage-faq-item-active');
697        } else {
698            item.classList.remove('ays-pro-homepage-faq-item-active');
699        }
700
701        question.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
702        answer.setAttribute('aria-hidden', isOpen ? 'false' : 'true');
703    }
704
705    function toggleItem(selectedItem) {
706        var isOpen = selectedItem.classList.contains('ays-pro-homepage-faq-item-active');
707        var i;
708
709        for (i = 0; i < items.length; i++) {
710            setItemState(items[i], false);
711        }
712
713        if (!isOpen) {
714            setItemState(selectedItem, true);
715        }
716    }
717
718    function focusQuestion(index) {
719        var normalizedIndex = (index + questions.length) % questions.length;
720        questions[normalizedIndex].focus();
721    }
722
723    function bindQuestion(question, index) {
724        question.addEventListener('click', function () {
725            toggleItem(question.parentNode);
726        });
727
728        question.addEventListener('keydown', function (event) {
729            if (event.key === 'ArrowDown') {
730                event.preventDefault();
731                focusQuestion(index + 1);
732            } else if (event.key === 'ArrowUp') {
733                event.preventDefault();
734                focusQuestion(index - 1);
735            } else if (event.key === 'Home') {
736                event.preventDefault();
737                focusQuestion(0);
738            } else if (event.key === 'End') {
739                event.preventDefault();
740                focusQuestion(questions.length - 1);
741            }
742        });
743    }
744
745    var i;
746    for (i = 0; i < questions.length; i++) {
747        bindQuestion(questions[i], i);
748    }
749}
750
751function initHomepage() {
752    initReviewsSlider();
753    initFaqAccordion();
754}
755
756if (document.readyState === 'loading') {
757    document.addEventListener('DOMContentLoaded', initHomepage);
758} else {
759    initHomepage();
760}
761
762/* New Homepage Design JS | 2026 | End */
763
764
765/* New Homepage Design JS | 2026 | End */
766
767/* Shared header navigation | 2026 | Start */
768function initSiteNavigation() {
769    var header = document.querySelector('.ays-site-header');
770
771    if (!header || header.getAttribute('data-navigation-ready') === 'true') {
772        return;
773    }
774
775    var menuButton = header.querySelector('.dd_menu_trigger');
776    var drawer = header.querySelector('.ays-site-header__drawer');
777    var overlay = header.querySelector('.jmenu_bg');
778    var submenuButtons = header.querySelectorAll('.ays-submenu-toggle');
779    var mobileMedia = window.matchMedia('(max-width: 1100px)');
780
781    if (!menuButton || !drawer || !overlay) {
782        return;
783    }
784
785    header.setAttribute('data-navigation-ready', 'true');
786
787    function setSubmenuState(button, isOpen) {
788        var parentItem = button.parentNode;
789
790        parentItem.classList.toggle('ays-submenu-open', isOpen);
791        button.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
792    }
793
794    function closeSubmenus(exceptButton) {
795        for (var i = 0; i < submenuButtons.length; i++) {
796            if (submenuButtons[i] !== exceptButton) {
797                setSubmenuState(submenuButtons[i], false);
798            }
799        }
800    }
801
802    function openMenu() {
803        header.classList.add('ays-menu-open');
804        document.body.classList.add('ays-menu-open');
805        menuButton.setAttribute('aria-expanded', 'true');
806        menuButton.setAttribute('aria-label', 'Close navigation menu');
807
808        window.setTimeout(function () {
809            var firstLink = drawer.querySelector('a');
810
811            if (firstLink) {
812                firstLink.focus();
813            }
814        }, 180);
815    }
816
817    function closeMenu(restoreFocus) {
818        header.classList.remove('ays-menu-open');
819        document.body.classList.remove('ays-menu-open');
820        menuButton.setAttribute('aria-expanded', 'false');
821        menuButton.setAttribute('aria-label', 'Open navigation menu');
822        closeSubmenus();
823
824        if (restoreFocus) {
825            menuButton.focus();
826        }
827    }
828
829    function bindSubmenuButton(button) {
830        var parentItem = button.parentNode;
831
832        button.addEventListener('click', function (event) {
833            var shouldOpen = button.getAttribute('aria-expanded') !== 'true';
834
835            event.preventDefault();
836            event.stopPropagation();
837            closeSubmenus(button);
838            setSubmenuState(button, shouldOpen);
839        });
840
841        parentItem.addEventListener('mouseenter', function () {
842            if (!mobileMedia.matches) {
843                closeSubmenus(button);
844                setSubmenuState(button, true);
845            }
846        });
847
848        parentItem.addEventListener('mouseleave', function () {
849            if (!mobileMedia.matches && !parentItem.contains(document.activeElement)) {
850                setSubmenuState(button, false);
851            }
852        });
853
854        parentItem.addEventListener('focusout', function () {
855            window.setTimeout(function () {
856                if (!mobileMedia.matches && !parentItem.contains(document.activeElement)) {
857                    setSubmenuState(button, false);
858                }
859            }, 0);
860        });
861    }
862
863    for (var i = 0; i < submenuButtons.length; i++) {
864        bindSubmenuButton(submenuButtons[i]);
865    }
866
867    menuButton.addEventListener('click', function () {
868        if (header.classList.contains('ays-menu-open')) {
869            closeMenu(false);
870        } else {
871            openMenu();
872        }
873    });
874
875    overlay.addEventListener('click', function () {
876        closeMenu(true);
877    });
878
879    drawer.addEventListener('click', function (event) {
880        var clickedLink = event.target.closest ? event.target.closest('a') : null;
881
882        if (mobileMedia.matches && clickedLink) {
883            closeMenu(false);
884        }
885    });
886
887    document.addEventListener('keydown', function (event) {
888        if (event.key !== 'Escape') {
889            return;
890        }
891
892        if (header.classList.contains('ays-menu-open')) {
893            closeMenu(true);
894        } else {
895            closeSubmenus();
896        }
897    });
898
899    function resetNavigation() {
900        closeMenu(false);
901    }
902
903    if (typeof mobileMedia.addEventListener === 'function') {
904        mobileMedia.addEventListener('change', resetNavigation);
905    } else if (typeof mobileMedia.addListener === 'function') {
906        mobileMedia.addListener(resetNavigation);
907    }
908}
909
910if (document.readyState === 'loading') {
911    document.addEventListener('DOMContentLoaded', initSiteNavigation);
912} else {
913    initSiteNavigation();
914}
915/* Shared header navigation | 2026 | End */

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.