PageSourceSearch

https://clearway.pro/netcat_template/template/default/js/common.js

js clearway.pro collected 2026-10-09 21:59:25 UTC 22,790 bytes, 698 lines download raw bytes

1$(function () {
2
3    // PHONE
4
5    $('.mask-phone').mask('+ 7 (000)-000-00-00');
6
7    $(window).scroll(function () {
8        if ($(window).scrollTop() >= 300) {
9            $('.header').addClass('fixed');
10            $('.main').addClass('fixed');
11        }
12        else {
13            $('.header').removeClass('fixed');
14            $('.main').removeClass('fixed');
15        }
16    });
17
18    $(".city__filter").keyup(function () {
19        var _this = this;
20        var _text = $(this).val();
21        if (_text === "") {
22            $(this).parent().parent().find('.non_active_city').addClass('hide');
23            $(this).parent().parent().find('.inside_city').removeClass('hide');
24            $(this).parent().parent().find('.million_city').removeClass('hide');
25        } else {
26
27            $(this).parent().parent().find('.non_active_city').addClass('hide');
28            $(this).parent().parent().find('.inside_city').addClass('hide');
29            $.each($(".non_active_city"), function () {
30                if ($(this).text().toLowerCase().indexOf($(_this).val().toLowerCase()) === -1) {
31                } else {
32                    $(this).removeClass('hide');
33                }
34            })
35            $.each($(".inside_city"), function () {
36                if ($(this).text().toLowerCase().indexOf($(_this).val().toLowerCase()) === -1) {
37                } else {
38                    $(this).removeClass('hide');
39                }
40            });
41        }
42    });
43
44    // CUSTOM SELECT
45
46    $(".js-select").select2();
47
48    // ADAPTIVE MENU
49
50    $('.hamburger-header').click(function () {
51        $('.mobile-menu').addClass('open');
52        $('body').addClass('hidden')
53    });
54
55    $('.hamburger-menu').click(function () {
56        $('.mobile-menu').removeClass('open');
57        $('body').removeClass('hidden')
58    });
59
60    // SCROLL TO ANY SECTION
61
62    $('.scroll[href*="#"]').on('click', function (e) {
63        e.preventDefault();
64
65        $('html, body').animate({
66            scrollTop: $($(this).attr('href')).offset().top
67        }, 500, 'linear');
68    });
69
70    // TABS JQUERY 
71
72    $(".tab_item").not(":first").hide();
73    $(".wrapper .tab").click(function () {
74        $(".wrapper .tab").removeClass("active").eq($(this).index()).addClass("active");
75        $(".tab_item").hide().eq($(this).index()).fadeIn()
76    }).eq(0).addClass("active");
77
78    // MODAL MAGNIFIC POPUP INIT
79
80    $('.modal-init').magnificPopup({
81        type: 'inline',
82        fixedContentPos: true,
83        removalDelay: 500,
84        callbacks: {
85            beforeOpen: function () {
86                this.st.mainClass = this.st.el.attr('data-effect');
87            }
88        },
89        midClick: true
90    });
91
92    $('.gallery-slider').each(function () { // the containers for all your galleries
93        $(this).magnificPopup({
94            delegate: 'a:not(.slick-cloned)', // the selector for gallery item
95            type: 'image',
96            gallery: {
97                enabled: true
98            }
99        });
100    });
101
102    /*  btn more  */
103    $(document).ready(function() {
104    function toggleReviews() {
105        const $btnMore = $('.btn-more');
106        const $hiddenReviews = $('.hidden-desktop');
107        
108        // На мобильных ничего не делаем
109        if (window.innerWidth <= 767) return;
110        
111        // На десктопах: скрываем/показываем
112        $btnMore.on('click', function() {
113            const isHidden = $hiddenReviews.first().is(':hidden');
114            
115            $hiddenReviews.css('display', isHidden ? 'block' : 'none');
116            $(this).text(isHidden ? 'Свернуть' : 'Смотреть ещё');
117        });
118    }
119
120    // Инициализация при загрузке
121    toggleReviews();
122    
123    // Реакция на изменение размера
124    $(window).on('resize', function() {
125        toggleReviews();
126    });
127});
128    /*  end btn more  */
129
130    // SLICK SLIDER INIT
131
132    $('.doc-slider').slick({
133        rows: false,
134        infinite: true,
135        slidesToShow: 4,
136        responsive: [
137            { breakpoint: 1920, settings: { slidesToShow: 3, } },
138            { breakpoint: 1023, settings: { slidesToShow: 2, } },
139            { breakpoint: 600, settings: { slidesToShow: 1.03, } },
140        ]
141    })
142
143    $('.reviews-slider').slick({
144        slidesToShow: 2,
145        adaptiveHeight: true,
146        responsive: [{
147            breakpoint: 992,
148            settings: {
149                slidesToShow: 2,
150            }
151        },
152        {
153            breakpoint: 767,
154            settings: {
155                slidesToShow: 1,
156                adaptiveHeight: false,
157            }
158        }
159        ]
160    })
161
162    $(document).ready(function () {
163        function initSlider() {
164            if ($(window).width() <= 767) {
165                // Мобильный режим (включаем слайдер)
166                
167                if (!$('.reviews-section__wrapper').hasClass('slick-initialized')) {
168                    $('.reviews-section__wrapper').slick({
169                        slidesToShow: 1,
170                        arrows: true,
171                        infinite: false,
172                        adaptiveHeight: false
173                    });
174                    console.log('Слайдер включен (мобильный режим)');
175                }
176            } else {
177                // Десктопный режим (отключаем слайдер)
178                if ($('.reviews-section__wrapper').hasClass('slick-initialized')) {
179                    $('.reviews-section__wrapper').slick('unslick');
180                    console.log('Слайдер отключен (десктопный режим)');
181                }
182            }
183        }
184
185        // Инициализация при загрузке
186        initSlider();
187
188        // Обработчик изменения размера с оптимизацией
189        let resizeTimer;
190        $(window).on('resize', function () {
191            clearTimeout(resizeTimer);
192            resizeTimer = setTimeout(function () {
193                initSlider();
194            }, 100);
195        });
196    });
197
198    $(document).ready(function () {
199        function initSlider() {
200            if ($(window).width() <= 767) {
201                // Мобильный режим (включаем слайдер)
202                
203                if (!$('.stati-section__wrapper').hasClass('slick-initialized')) {
204                    $('.stati-section__wrapper').slick({
205                        slidesToShow: 1,
206                        arrows: true,
207                        infinite: false,
208                        adaptiveHeight: true
209                    });
210                    console.log('Слайдер включен (мобильный режим)');
211                }
212            } else {
213                // Десктопный режим (отключаем слайдер)
214                if ($('.stati-section__wrapper').hasClass('slick-initialized')) {
215                    $('.stati-section__wrapper').slick('unslick');
216                    console.log('Слайдер отключен (десктопный режим)');
217                }
218            }
219        }
220
221        // Инициализация при загрузке
222        initSlider();
223
224        // Обработчик изменения размера с оптимизацией
225        let resizeTimer;
226        $(window).on('resize', function () {
227            clearTimeout(resizeTimer);
228            resizeTimer = setTimeout(function () {
229                initSlider();
230            }, 100);
231        });
232    });
233
234    $(document).ready(function(){
235  // Инициализируем слайдер только на мобильных
236  function initSlider() {
237    if ($(window).width() <= 768) {
238      $('.doc-slider-all').slick({
239        infinite: true,
240        slidesToShow: 1,
241        arrows: false,
242        responsive: [
243          {
244            breakpoint: 480,
245            settings: {
246              slidesToShow: 1.1,
247              centerMode: false,
248              arrows: false
249            }
250          }
251        ]
252      });
253    }
254  }
255  
256  // При загрузке страницы
257  initSlider();
258  
259  // При изменении размера окна
260  $(window).on('resize', function(){
261    if ($(window).width() > 768 && $('.doc-slider-all').hasClass('slick-initialized')) {
262      $('.doc-slider-all').slick('unslick');
263    } else if ($(window).width() <= 768 && !$('.doc-slider-all').hasClass('slick-initialized')) {
264      initSlider();
265    }
266  });
267});
268
269
270    $('.lic-slider').slick({
271        rows: false,
272        slidesToShow: 4,
273        responsive: [{
274            breakpoint: 1200,
275            settings: {
276                slidesToShow: 3,
277            }
278        },
279        {
280            breakpoint: 1023,
281            settings: {
282                slidesToShow: 2,
283            }
284        },
285        {
286            breakpoint: 600,
287            settings: {
288                slidesToShow: 1,
289                dots: true,
290            }
291        },
292        ]
293    })
294
295    $('.gallery-slider').slick({
296        rows: false,
297        slidesToShow: 2,
298        responsive: [{
299            breakpoint: 1200,
300            settings: {
301                slidesToShow: 2,
302            }
303        },
304        {
305            breakpoint: 1023,
306            settings: {
307                slidesToShow: 2,
308            }
309        },
310        {
311            breakpoint: 600,
312            settings: {
313                slidesToShow: 1,
314                dots: true,
315            }
316        },
317        ]
318    })
319
320    // if ($(window).width() < 1025) {
321    //     $('.voice .row').find('.col-lg-9').remove()
322    // }
323
324    if ($(window).width() < 1023) {
325        $('.menu-toggler-js').click(function (e) {
326
327            const _this = $(this)[0];
328
329            $('.menu-toggler-js').each(function (index, element) {
330                if (_this !== element) {
331                    if ($(this).next().hasClass('show')) {
332                        $(this).next().slideToggle();
333                        $(this).next().removeClass('show');
334                    }
335                }
336            });
337
338            $(this).next().slideToggle();
339            $(this).next().toggleClass('show');
340        });
341
342        /* const menuTogglerjs = document.querySelectorAll('.menu-toggler-js');
343
344        document.addEventListener('click', (e) => {
345            if(!e.target.classList.contains('menu-toggler-js')) { 
346                if(!e.target.closest('.menu-toggler-js')){
347                	
348                        menuTogglerjs.forEach(item => {
349                            item.nextElementSibling.classList.remove('show');
350                            item.nextElementSibling.style.display = 'none';
351                        });
352                	
353                }
354            }
355        }); */
356    }
357
358    // var slider = $(".voice .row");
359
360    // slider.slick({
361    //     slidesToShow: 1,
362    //     arrows: false,
363    //     rows: false,
364    //     adaptiveHeight: true,
365    //     dots: true,
366    //     focusOnSelect: false,
367    //     speed: 900,
368    //     // autoplay: true,
369    //     // autoplaySpeed: 3000,
370    //     mobileFirst: true,
371    //     responsive: [
372    //         {
373    //             breakpoint: 2000,
374    //             settings: 'unslick'
375    //         },
376    //         {
377    //             breakpoint: 1600,
378    //             settings: 'unslick'
379    //         },
380    //         {
381    //             breakpoint: 1200,
382    //             settings: 'unslick'
383    //         },
384    //         {
385    //             breakpoint: 1024,
386    //             settings: 'unslick'
387    //         },
388    //         {
389    //             breakpoint: 767,
390    //             settings: {
391    //                 slidesToShow: 3,
392    //                 adaptiveHeight: false,
393    //             }
394    //         },
395    //     ]
396    // });
397
398    //slider.slick('refresh');
399
400    var slider2 = $(".best .row");
401
402    slider2.not(".slick-initialized").slick({
403        slidesToShow: 1,
404        arrows: false,
405        rows: false,
406        dots: true,
407        focusOnSelect: false,
408        speed: 900,
409        // autoplay: true,
410        // autoplaySpeed: 3000,
411        mobileFirst: true,
412        responsive: [
413            {
414                breakpoint: 2000,
415                settings: 'unslick'
416            },
417            {
418                breakpoint: 1600,
419                settings: 'unslick'
420            },
421            {
422                breakpoint: 1200,
423                settings: 'unslick'
424            },
425            {
426                breakpoint: 1024,
427                settings: 'unslick'
428            },
429            {
430                breakpoint: 767,
431                settings: {
432                    slidesToShow: 2,
433                }
434            },
435        ]
436    });
437
438    $(window).on('resize', function () {
439        //slider.slick('resize');
440        slider2.slick('resize');
441    });
442
443});
444
445
446new WOW().init({
447    mobile: false,
448    offset: -10000
449});
450
451/*$("form").submit(function () {
452    $.ajax({
453        type: "POST",
454        url: "/netcat/add.php",
455        dataType: "html",
456        nameFunction: "request",
457        data: $(this).serialize(),
458        cache: false,
459        success: function (response) {
460            $('.result_wrapper').html(response);
461            $('.close-popup').trigger('click');
462            $('.sended_btn').trigger('click');
463        },
464        error: function (response) {
465            $('.result_wrapper').html(response);
466            $('.close-popup').trigger('click');
467            $('.sended_btn').trigger('click');
468        }
469    });
470    return false;
471});*/
472
473$(".c__filter").keyup(function () {
474    var _this = this;
475    var _text = $(this).val();
476    if (_text === "") {
477        $(this).parent().parent().parent().find('.non_active_city').addClass('hide');
478        $(this).parent().parent().parent().find('.inside_city').removeClass('hide');
479        $(this).parent().parent().parent().find('.million_city').removeClass('hide');
480    } else {
481
482        $(this).parent().parent().parent().find('.non_active_city').addClass('hide');
483        $(this).parent().parent().parent().find('.inside_city').addClass('hide');
484        $.each($(".non_active_city"), function () {
485            if ($(this).text().toLowerCase().indexOf($(_this).val().toLowerCase()) === -1) {
486            } else {
487                $(this).removeClass('hide');
488            }
489        })
490        $.each($(".inside_city"), function () {
491            if ($(this).text().toLowerCase().indexOf($(_this).val().toLowerCase()) === -1) {
492            } else {
493                $(this).removeClass('hide');
494            }
495        });
496    }
497});
498
499$(".select_city").click(function () {
500    $.ajax({
501        type: "POST",
502        url: "/ajax/",
503        data: { "city": '1' },
504        cache: false,
505        success: function (data) {
506            $(".city-list").html(data);
507        }
508    });
509});
510
511$(".select_city-sub").click(function () {
512    $.ajax({
513        type: "POST",
514        url: "/ajax/",
515        data: { "city": '2' },
516        cache: false,
517        success: function (data) {
518            $(".city-list").html(data);
519        }
520    });
521});
522
523// Popups
524let scrollWidthFunc = () => {
525    let scrollWidth = window.innerWidth - document.body.clientWidth;
526    document.querySelector('html').style.paddingRight = scrollWidth + 'px';
527    if (document.querySelector('header').classList.contains('fixed')) {
528        document.querySelector('header').style.paddingRight = scrollWidth + 'px';
529    }
530}
531function popupClose(popupActive) {
532    popupActive.classList.remove('open');
533    setTimeout(() => {
534        popupActive.classList.contains("open") || popupActive.classList.remove("active");
535    }, 400);
536    document.body.classList.remove('lock');
537    document.querySelector('html').style.paddingRight = 0;
538    document.querySelector('html').classList.remove('lock');
539    document.querySelector('header').removeAttribute('style');
540}
541const popupOpenBtns = document.querySelectorAll('.popup-btn');
542const popups = document.querySelectorAll('.popup');
543const closePopupBtns = document.querySelectorAll('.close-popup');
544closePopupBtns.forEach(function (el) {
545    el.addEventListener('click', function (e) {
546        popupClose(e.target.closest('.popup'));
547    });
548});
549popupOpenBtns.forEach(function (el) {
550    el.addEventListener('click', function (e) {
551        e.preventDefault();
552        const path = e.currentTarget.dataset.path;
553        const currentPopup = document.querySelector(`[data-target="${path}"]`);
554        if (currentPopup) {
555            popups.forEach(function (popup) {
556                popupClose(popup);
557                popup.addEventListener('click', function (e) {
558                    if (!e.target.closest('.popup__content')) {
559                        popupClose(e.target.closest('.popup'));
560                    }
561                });
562            });
563            currentPopup.classList.add('active');
564            setTimeout(() => {
565                currentPopup.classList.add("open");
566            }, 10);
567            /*для таблицы цен*/
568            /*if (currentPopup.getAttribute('data-target') == 'popup_ser') {
569                var elt = e.target.closest('tr');
570                currentPopup.querySelector('.de_second').innerText = elt.querySelector('td:first-of-type').innerText;
571                currentPopup.querySelector('.de_third').innerText = elt.querySelector('button.popup-btn').innerText;
572            }*/
573            scrollWidthFunc();
574            document.querySelector('html').classList.add('lock');
575        }
576    });
577});
578/* end popups */
579
580/*const forms = document.querySelectorAll('.form-js');
581 
582const orderResult = document.querySelector('.popup-response');
583const resultWrapper = orderResult.querySelector('.result-wrapper');
584forms.forEach(form => {
585    form.addEventListener('submit', function (event) {
586        event.preventDefault();
587        const numericValue = form.querySelector('input[type="tel"]').value;
588        const button = form.querySelector('button[type="submit"]');
589        if (numericValue.length >= 16 && numericValue) {
590            const buttonOldName = button.innerHTML;
591            button.innerHTML = `
592<style>
593` + button.tagName + `.refreshButton, ` + button.tagName + `.refreshButton:hover{
594    background-color: ` + window.getComputedStyle(button).backgroundColor + `;
595    background: ` + window.getComputedStyle(button).backgroundColor + `;
596    width: ` + window.getComputedStyle(button).width + `;
597    text-align: center;
598}
599` + button.tagName + `.refreshButton svg.formsend-svg{
600    fill: ` + window.getComputedStyle(button).color + `;
601}
602</style>
603<svg class="formsend-svg" viewBox="0 0 24 8" xmlns="http://www.w3.org/2000/svg" width="48" height="` + window.getComputedStyle(button).fontSize + `" fill="inherit">
604<style>
605    @keyframes loader-18 {
606        0% {
607            transform: scale(1) rotateZ(0)
608        }
609
610        50% {
611            transform: scale(1.5) rotateZ(180deg)
612        }
613
614        100% {
615            transform: scale(1) rotateZ(360deg)
616        }
617    }
618</style>
619<g fill="inherit" style="animation:loader-18 1s ease-out infinite both;transform-origin:4px;animation-delay: 0s;">
620    <circle cx="4" cy="4" r="1.5" fill="inherit" />
621</g>
622<g fill="inherit" style="animation:loader-18 1s ease-out infinite both; transform-origin:11px;animation-delay: .3s;">
623    <circle cx="11" cy="4" r="1.5" fill="inherit" />
624</g>
625<g fill="inherit" style="animation:loader-18 1s ease-out infinite both;transform-origin:18px;animation-delay: .6s;">
626    <circle cx="18" cy="4" r="1.5" fill="inherit" />
627</g>
628</svg>`;
629            button.disabled = true;
630            button.classList.add("refreshButton");
631            fetch('/send.php', {
632                method: 'POST',
633                body: new FormData(form)
634            })
635                .then(response => response.text())
636                .then(response => {
637                    resultWrapper.innerHTML = response;
638                    orderResult.classList.add('open');   
639                })
640                .catch(error => {
641                    resultWrapper.innerHTML = response;
642                    orderResult.classList.add('open');    
643                })
644                .finally(() => {
645                    button.innerHTML = buttonOldName;
646                    button.disabled = false;
647                    button.classList.remove("refreshButton");
648                });
649        } else {
650            form.querySelectorAll('input[type="tel"], input[type="text"]').forEach(input => {
651                if (!input.value) {
652                    input.classList.add("error", true);
653                    if (!input.previousElementSibling || input.previousElementSibling.className !== 'error-message') {
654                        input.insertAdjacentHTML('beforebegin', '<p class="error-message">Пожалуйста, заполните это поле</p>');
655                        setTimeout(() => {
656                            input.classList.remove("error", true);
657                            input.previousElementSibling.remove();
658                        }, 1200)
659                    }
660                }
661                if (input.type === 'tel' && input.value.length <= 15) {
662                    if (!input.classList.contains("error")) {
663                        input.classList.add("error", true);
664                        input.insertAdjacentHTML('beforebegin', '<p class="error-message">Пожалуйста, заполните правильный номер телефона</p>');
665                        setTimeout(() => {
666                            input.classList.remove("error", true);
667                            input.previousElementSibling.remove();
668                        }, 1200)
669                    } 
670                }
671
672            })   
673            document.querySelectorAll('input[type="tel"], input[type="text"]').forEach(input => {
674                input.addEventListener('input', function () {
675                    if (this.value && (this.classList.contains("error") || (this.t
675ype === 'tel' && this.value.length >= 17))) {
676                        this.classList.remove("error");
677                        if (this.previousElementSibling && this.previousElementSibling.className === 'error-message') {
678                            this.previousElementSibling.remove();
679                        }
680                    }
681                });
682            });
683        }
684    });
685});
686
687document.addEventListener('click', function (e) {
688    if (e.target === orderResult) {
689        orderResult.classList.remove('open');
690    }
691});
692
693document.querySelectorAll("input[name='f_urlMessage']").forEach(i => {
694    i.value = window.location.href;
695});
696document.querySelectorAll("input[name='f_title_url_message']").forEach(i => {
697    i.value = document.title;
698});*/

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.