PageSourceSearch

https://fakrorus.ru/templates/fakro/js/script.js

js fakrorus.ru collected 2026-10-06 14:08:49 UTC 124,820 bytes, 3,038 lines download raw bytes

1function getDateMark() {
2    let date = new Date();
3    let day = date.getDate();
4    let month = date.getMonth() + 1;
5    let year = (date.getFullYear() + '').slice(2);
6    let hour = date.getHours();
7    let minute = date.getMinutes();
8    let second = date.getSeconds();
9    return year + setLeadingZero(month) + setLeadingZero(day) + '-' + setLeadingZero(hour) + setLeadingZero(minute) + setLeadingZero(second);
10}
11
12function setLeadingZero(num) {
13    return num < 10 ? '0' + num : num;
14}
15$(function() {
16    var mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent);
17    //Кнопка НАЗАД
18    $('.backlink').click(function(e) {
19        e.preventDefault();
20        window.history.back();
21    });
22
23    //Кнопка скачать PDF
24    $('.product__pdf').click(function() {
25        //let name = $(this).attr('data-name');
26        location.href = '/makepdf.php';
27        return false;
28    });
29
30    //Переключение вкладок на странице монтажников
31    $('.install-tab').click(function() {
32        if ($(this).hasClass('active')) {
33            return false;
34        }
35        $('.install-tab.active').removeClass('active');
36        $(this).addClass('active');
37        let tabName = $(this).attr('data-tab');
38        $('.install-block').hide();
39        $('.install-block[data-tab="' + tabName + '"]').show();
40    });
41
42    // ХЛЕБНЫЕ КРОШКИ НЕ ТОНУТ!!!
43    if (!mobile) {
44        $(".breadcrumbs li.parent").hover(
45            function(e) {
46                e.preventDefault();
47                $(this).find(".breadcrumbs-children").addClass("open");
48            },
49            function() {
50                $(this).find(".breadcrumbs-children").removeClass("open");
51            }
52        );
53    }
54
55    //БАЯН!!!
56    $('.accordion__item-title').click(function() {
57        $(this).toggleClass('active');
58        $(this).next('.accordion__item-text').slideToggle();
59    });
60    //Открытие контента на странице "Строетилеям"
61    $('.installers-content-opener').click(function() {
62        $(this).toggleClass('show');
63        $('.installers-content').slideToggle();
64    });
65    $('.installers-trenings__title').click(function() {
66        let target = $(this).attr('data-training');
67        $('.installers-trenings__info[data-training="' + target + '"]').toggle();
68        $(this).toggleClass('show');
69    });
70
71    //Кнопка Телеграм
72    $('.signtg__image').click(function() {
73        $(this).parent().addClass('show');
74    });
75    $('.signtg__close').click(function() {
76        $(this).parent().removeClass('show');
77    });
78
79    // Кнопка НАВЕРХ
80    $(window).scroll(function() {
81        if ($(this).scrollTop() > 50) {
82            $(".back-to-top").fadeIn();
83        } else {
84            $(".back-to-top").fadeOut();
85        }
86    });
87    $(".back-to-top").click(function() {
88        $("body,html").animate({ scrollTop: 0 }, 800);
89    });
90
91    // ****************************Модальные окна****************************
92    /* Загрузка видео при нажатии на видео-блок */
93    if ($('.youtube').length > 0) {
94        $('.youtube').click(function() {
95            let video = $(this).attr('data-video');
96            let current = $('#modal-video').attr('data-current');
97            if (video != current) {
98                $('#modal-video').attr('data-current', video);
99                let source = '<iframe width="560" height="315"  src="https://www.youtube.com/embed/' + video + '?enablejsapi=1" frameborder="0" allowfullscreen></iframe>';
100                $('#modal-video .iframe-wrapper').html(source);
101            } else {
102                $("#modal-video iframe").each(function() {
103                    $(this)[0].contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
104                });
105            }
106            $('#modal-video').addClass('show');
107            //$('body').css({'padding-right': scrollWidth+'px'});
108            $('body').addClass('noscroll');
109        });
110    }
111    /* Загрузка видео при нажатии на видео-блок */
112    if ($('.dzen').length > 0) {
113        $('.dzen').click(function() {
114            let video = $(this).attr('data-video');
115            let current = $('#modal-video').attr('data-current');
116            if (video != current) {
117                $('#modal-video').attr('data-current', video);
118                let source = '<iframe width="480" height="270" src="https://dzen.ru/embed/' + video + '?from_block=partner&from=zen&mute=0&autoplay=0&tv=0" allow="autoplay; fullscreen; accelerometer; gyroscope; picture-in-picture; encrypted-media" frameborder="0" scrolling="no" allowfullscreen></iframe>';
119                $('#modal-video .iframe-wrapper').html(source);
120            } else {
121                $("#modal-video iframe").each(function() {
122                    $(this)[0].contentWindow.postMessage({ method: "play" }, '*');
123                });
124            }
125            $('#modal-video').addClass('show');
126            $('#modal-video').addClass('_dzen');
127            //$('body').css({'padding-right': scrollWidth+'px'});
128            $('body').addClass('noscroll');
129        });
130    }
131    /*--------------------*/
132    $('body').on('click', '.modal-engage', function(e) {
133        e.preventDefault();
134        var target = $(this).attr('data-target');
135        if (target == 'modal-trenings') {
136            let trening_type = $(this).attr('data-training');
137            $('.training-type').text(trening_type);
138            $('#trening_date')
139                .find('option')
140                .remove()
141                .end();
142            $('.installers-trenings__date[data-training="' + trening_type + '"]').each(function() {
143                let date_value = $(this).text();
144                $('#trening_date').append($('<option>', {
145                    value: date_value,
146                    text: date_value
147                }));
148            });
149        }
150        if (target == 'modal-teachings') {
151            $('#teaching_date')
152                .find('option')
153                .remove()
154                .end();
155            $('.seminar').each(function() {
156                let date_value = $(this).find('.teach-date').text();
157                let tema_value = $(this).find('.teach-tema').text();
158                $('#teaching_date').append($('<option>', {
159                    value: date_value + ' - ' + tema_value,
160                    text: date_value + ' - ' + tema_value
161                }));
162            });
163        }
164        if (target == 'modal-review') {
165            let company_name = $(this).parent().find('.baloon__name').text();
166            let company_address = $(this).parent().find('.baloon__address').text();
167            $('#modal-review .mcf__subtitle').text('на компанию ' + company_name);
168            $('#modal-review input[name="company_name"]').val(company_name);
169            $('#modal-review input[name="company_address"]').val(company_address);
170            console.log($('#modal-review input[name="company_name"]').val());
171            console.log($('#modal-review input[name="company_address"]').val());
172        }
173        $('#' + target).addClass('show');
174        $('body').addClass('noscroll');
175    });
176
177    $('body').on('click', '.modal__close', function() {
178        if ($(this).hasClass('_youtube')) {
179            if ($(this).parent().parent().hasClass('_dzen')) {
180                $("#modal-video iframe").each(function() {
181                    $(this)[0].contentWindow.postMessage({ method: "pause" }, '*');
182                });
183            } else {
184                $("#modal-video iframe").each(function() {
185                    $(this)[0].contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
186                });
187            }
188
189        }
190        if ($(this).hasClass('trening_close')) {
191            setTimeout(function() {
192                $('.modal-trainings-form').find('.modal-trainings-form__thanks').hide();
193                $('.modal-trainings-form').find('.modal-trainings-form__error').hide();
194                $('.modal-trainings-form').find('.modal-trainings-form__wait').hide();
195                $('.modal-trainings-form').find('.modal-trainings-form__content').show();
196            }, 700);
197            /*$('.modal-trainings-form').find('input:text').val('');
198            $('.modal-trainings-form').find('input:email').val('');*/
199        }
200        $('.modal').removeClass('show').removeClass('popup-gallery').removeClass('_dzen');
201        $('.modal').find('.modal__body').removeClass('modal__body_big');
202        $('body').removeClass('noscroll');
203    });
204
205    $('body').on('click', '.modal__underlay', function() {
206        if ($(this).hasClass('_youtube')) {
207            if ($(this).parent().hasClass('_dzen')) {
208                $("#modal-video iframe").each(function() {
209                    $(this)[0].contentWindow.postMessage({ method: "pause" }, '*');
210                });
211            } else {
212                $("#modal-video iframe").each(function() {
213                    $(this)[0].contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
214                });
215            }
216        }
217        if ($(this).hasClass('trening_close')) {
218            setTimeout(function() {
219                $('.modal-trainings-form').find('.modal-trainings-form__thanks').hide();
220                $('.modal-trainings-form').find('.modal-trainings-form__error').hide();
221                $('.modal-trainings-form').find('.modal-trainings-form__wait').hide();
222                $('.modal-trainings-form').find('.modal-trainings-form__content').show();
223            }, 700);
224            //$('.modal-trainings-form').find('input:text').val('');   
225        }
226        $('.modal').removeClass('show').removeClass('popup-gallery').removeClass('_dzen');
227        $('.modal').find('.modal__body').removeClass('modal__body_big').removeClass('modal__body_stream');
228        $('body').removeClass('noscroll');
229    });
230
231    // Всплывающие картинки
232    $('.modal-img').click(function() {
233        if ($(this).hasClass('slick-slide')) return false;
234        var container = $('#modal-media');
235        var src = $(this).attr('data-src') ? $(this).attr('data-src') :
236            ($(this).attr('src') ? $(this).attr('src') : $(this).find('img').attr('src'));
237        var alt = $(this).attr('alt');
238        var html = '<img src="' + src + '" alt="' + alt + '" class="modal__content-image">';
239        container.find('.modal__content').html(html);
240        if ($(this).hasClass('big-modal')) {
241            container.find('.modal__body').addClass('modal__body_big');
242        }
243        container.addClass('show');
244        $('body').addClass('noscroll');
245    });
246
247    //**************************** Якорная навигация ****************************
248    $('.anchors__header:not(.anchors__header_link)').click(function(e) {
249        e.preventDefault();
250        var where = $(this).attr('data-index');
251        var gohere = $('[data-anchor="' + where + '"]').offset().top;
252        $("body,html").animate({ scrollTop: gohere - 50 }, 500);
253    });
254    $('.free-anchor').click(function(e) {
255        e.preventDefault();
256        var where = $(this).attr('data-index');
257        var gohere = $('[data-anchor="' + where + '"]').offset().top;
258        $("body,html").animate({ scrollTop: gohere - 50 }, 500);
259    });
260
261    //Слайдер на странице Новое за старое
262    if ($('.nzastar__projects-slider').length > 0) {
263        $('.nzastar__projects-slider').slick({
264            slidesToShow: 1,
265            arrows: false,
266            dots: false,
267        });
268        $('.nzastar__projects-next').click(function() {
269            $('.nzastar__projects-slider').slick('slickNext');
270        });
271        $('.nzastar__projects-prev').click(function() {
272            $('.nzastar__projects-slider').slick('slickPrev');
273        });
274    }
275    
276    // ****************************Инициализация слайдера на главной странице****************************
277    let mainSlider = $('.main-slider__items');
278    mainSlider.slick({
279        autoplay: true,
280        autoplaySpeed: 6000,
281        arrows: false,
282        dots: true,
283        appendDots: $('.main-slider__dots'),
284        responsive: [{
285            breakpoint: 479,
286            settings: {
287                adaptiveHeight: true
288            }
289        }]
290    });
291    // Кнопки управления слайдера на главной странице
292    $('.main-slider__next').click(function() {
293        mainSlider.slick('slickNext');
294    });
295    $('.main-slider__prev').click(function() {
296        mainSlider.slick('slickPrev');
297    });
298
299
300    // Скрипты свитчера/перключалки/свайпера... вот сколько занимаюсь, а не могу запомнить как эта штука называется, а гуглить лень =) Короче, эта штука под верхним слайдером на главной и стили swipe общие - можно где-нибудь использовать
301    $('.swipe__header').click(function() {
302        if (!$(this).hasClass('swipe__header_link')) {
303            if ($(this).hasClass('active')) return false;
304            let index = $(this).attr('data-index');
305            $(this).parent().parent().find('.swipe__header.active').removeClass('active');
306            if ($(this).hasClass('mpcatalog__header')) {
307                $(this).parent().parent().parent().find('.swipe__item.show').removeClass('show').hide();
308            } else {
309                $(this).parent().parent().find('.swipe__item.show').removeClass('show').hide();
310            }
311
312            $(this).addClass('active');
313            $('.swipe__item[data-index="' + index + '"]').show().addClass('show');
314        }
315    });
316
317
318    // Галерея Реализации и вдохновение
319    $('.mppol__items').slick({
320        slidesToShow: 3,
321        arrows: false,
322        dots: false,
323        appendDots: $('.mppol__gallery-dots'),
324        responsive: [{
325                breakpoint: 991,
326                settings: {
327                    slidesToShow: 2,
328                }
329            },
330            {
331                breakpoint: 584,
332                settings: {
333                    slidesToShow: 1,
334                }
335            },
336        ]
337    });
338
339    $('.mppol__next').click(function() {
340        $('.mppol__items').slick('slickNext');
341    });
342    $('.mppol__prev').click(function() {
343        $('.mppol__items').slick('slickPrev');
344    });
345
346    // Галерея на странице строителям
347    $('.strtlm__slider__items').slick({
348        slidesToShow: 1,
349        arrows: false,
350        dots: false,
351    });
352
353    $('.strtlm__slider-next').click(function() {
354        $('.strtlm__slider__items').slick('slickNext');
355    });
356    $('.strtlm__slider-prev').click(function() {
357        $('.strtlm__slider__items').slick('slickPrev');
358    });
359
360    // ****************************Всплывающее меню каталога****************************
361
362    /*$('.top-menu__item.deeper.catlink').on('click', function(e) {
363    	e.preventDefault();
364    	if (e.target !== this) return;
365    	
366    	e.stopPropagation();
367    	$(this).find('.top-menu__sublists-wrapper').addClass('show');
368    	$('.fake-shadow-menu').addClass('show');
369    });*/
370    if (window.matchMedia("(min-width: 769px)").matches) {
371        // открываем меню каталога при наведении и закрываем при отведении =)
372        $('.top-menu__item.deeper.catlink').hover(
373            function() {
374                $(this).find('.top-menu__sublists-wrapper').fadeIn().addClass('show');
375                $('.top-menu__sublist_catalog').fadeIn().addClass('show');
376                $('.shadow-menu').fadeIn().addClass('show');
377            },
378            function() {
379                $(this).find('.top-menu__sublists-wrapper').hide().removeClass('show');
380                $('.shadow-menu').fadeOut().removeClass('show');
381            }
382        );
383        // открываем подпункты верхних пунктов меню каталога при наведении
384        $('.top-menu__sublist_catalog .top-menu__item.deeper').hover(
385            function() {
386                let cat = $(this).attr('data-cat');
387                $('.top-menu__subitems').show().addClass('show');
388                $('.top-menu__subitems-list.show').hide().removeClass('show');
389                $('.top-menu__item.deeper.active').removeClass('active');
390                $('.top-menu__subitems-list[data-cat="' + cat + '"]').show().addClass('show');
391                $(this).addClass('active');
392            },
393            function() {
394
395            }
396        );
397        // Если нету подпукнтов
398        $('.top-menu__sublist_catalog .top-menu__item.nochild').hover(
399            function() {
400                let cat = $(this).attr('data-cat');
401                $('.top-menu__subitems').hide().removeClass('show');
402                $('.top-menu__subitems-list.show').hide().removeClass('show');
403                $('.top-menu__item.deeper.active').removeClass('active');
404                //$('.top-menu__subitems-list[data-cat="' + cat + '"]').fadeIn().addClass('show');
405                $(this).addClass('active');
406            },
407            function() {
408
409            }
410        );
411        // Стандартное выпадающее меню при наведении
412        $('.top-menu .top-menu__item.deeper:not(.catlink)').hover(
413            function() {
414                $(this).find('.top-menu__sublist').first().fadeIn().addClass('show');
415            },
416            function() {
417                $(this).find('.top-menu__sublist').first().hide().removeClass('show');
418            }
419        );
420
421        $('.top-menu__item.deeper:not(.catlink) .top-menu__item.deeper > a').click(function(e) {
422            e.preventDefault();
423        });
424    } else {
425        // открываем меню каталога при клике
426        $('.top-menu__item.deeper.catlink > a').on('click', function(e) {
427            e.preventDefault();
428            $(this).parent().find('.top-menu__sublists-wrapper').addClass('show');
429            $('.top-menu__sublist_catalog').addClass('show');
430        });
431        // открываем подпункты меню каталога при клике
432        $('.top-menu__sublist_catalog .top-menu__item.deeper').click(function(e) {
433            e.preventDefault();
434            let cat = $(this).attr('data-cat');
435            $('.top-menu__subitems').addClass('show');
436            $('.top-menu__subitems-list.show').removeClass('show');
437            $('.top-menu__item.deeper.active').removeClass('active');
438            $('.top-menu__subitems-list[data-cat="' + cat + '"]').addClass('show');
439            $(this).addClass('active');
440        });
441        // Стандартное выпадающее меню при клике
442        $('.top-menu > .top-menu__item.deeper:not(.catlink)').click(function(e) {
443            e.preventDefault();
444            $(this).find('.top-menu__sublist').first().addClass('show').slideToggle();
445        }).children('.top-menu__sublist').click(function(e) {
446            e.stopPropagation();
447        });
448
449        $('.top-menu > .top-menu__item.deeper:not(.catlink) .top-menu__item.deeper').click(function(e) {
450            e.preventDefault();
451            $(this).find('.top-menu__sublist').first().addClass('show');
452        }).children('.top-menu__sublist').click(function(e) {
453            e.stopPropagation();
454        });
455
456        // возврат при навигации в меню каталога
457        $('.top-menu__sublists-title').click(function() {
458            $('.top-menu__sublists-wrapper').removeClass('show');
459        });
460        $('.top-menu__subitems-list-title').click(function() {
461            $('.top-menu__subitems').removeClass('show');
462            $('.top-menu__subitems-list.show').removeClass('show');
463        });
464
465        $('.top-menu__item.deeper:not(.catlink) .top-menu__item.deeper').click(function() {
466            $(this).find('.top-menu__sublist').slideToggle();
467        });
468    }
469
470    // Открытие подпунктов в стандартном выпадающем меню
471    $('.top-menu__item.deeper:not(.catlink) > .top-menu__item.deeper').click(function(e) {
472        e.preventDefault();
473        $(this).find('.top-menu__sublist').first().addClass('show').slideToggle();
474    }).children('.top-menu__item').click(function(e) {
475        e.stopPropagation();
476    });
477    //console.log(mobile ? 'mobile' : 'not mobile');
478    if (mobile) {
479        $('.top-menu__sublist_catalog .top-menu__item.deeper').click(function(e) {
480            e.preventDefault();
481        });
482        $('.top-menu__item.deeper.catlink > a').on('click', function(e) {
483            e.preventDefault();
484        });
485    }
486
487
488
489    // Открытие/закрытие мобильного меню
490    // Нажатие бургера открывает мобильное меню
491    $('.header__burger').click(function() {
492        $('.mobmenu').addClass('show');
493        $('.shadow').addClass('show');
494        $('body').addClass('noscroll');
495    });
496
497    // нажатие крестика в мобильном меню закрывает мобильное меню и сбрасывает все классы show открытых блоков
498    $('.mobmenu__close').click(function() {
499        $('.mobmenu').removeClass('show');
500        $('.shadow').removeClass('show');
501        $('body').removeClass('noscroll');
502
503        $('.top-menu__sublists-wrapper').removeClass('show');
504        $('.top-menu__sublist_catalog').removeClass('show');
505        $('.top-menu__subitems').removeClass('show');
506        $('.top-menu__subitems-list').removeClass('show');
507    });
508
509    // нажатие на пустом темном простарнстве закрывает мобильное меню и сбрасывает все классы show открытых блоков
510    $('.shadow').click(function() {
511        $('.mobmenu').removeClass('show');
512        $('.shadow').removeClass('show');
513        $('body').removeClass('noscroll');
514
515        $('.top-menu__sublists-wrapper').removeClass('show');
516        $('.top-menu__sublist_catalog').removeClass('show');
517        $('.top-menu__subitems').removeClass('show');
518        $('.top-menu__subitems-list').removeClass('show');
519    });
520
521    // **************************** Обработка форм обратной связи ****************************
522    //Обработка формы обратной связи, которая внизу "Остались вопросы?"
523    $('.callback__form').submit(function(e) {
524        e.preventDefault();
525        let currentForm = $(this);
526        var name = $(this).find('input[name="name"]').val();
527        var email = $(this).find('input[name="email"]').val();
528        var comment = $(this).find('input[name="comment"]').val();
529        var link = window.location.toString();
530        var dateMark = getDateMark();
531        /*grecaptcha.ready(function() {
532          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
533				var captcha = $('.g-recaptcha-response').val();*/
534        $.ajax({
535            url: '/mail.php',
536            type: 'POST',
537            data: ({ name, email, comment, link, dateMark /*'g-recaptcha-response':captcha*/ }),
538            dataType: 'html',
539            beforeSend: function() {
540                console.log('start sending');
541            },
542            success: function(data) {
543                console.log(data);
544                if (data === 'ok') {
545                    currentForm.hide();
546                    currentForm.parent().find('.callback__thanks').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
547                } else if (data === 'wrong') {
548                    currentForm.hide();
549                    currentForm.parent().find('.callback__error').fadeIn();
550                }
551            }
552        });
553        /* });
554        });*/
555        //grecaptcha.reset();	
556        return false;
557    });
558
559    //Обработка формы обратной связи заявки на монтаж
560    $('.modal-montazh-form').submit(function(e) {
561        e.preventDefault();
562        let currentForm = $(this);
563        var name = $(this).find('input[name="name"]').val();
564        var city = $(this).find('input[name="city"]').val();
565        var phone = $(this).find('input[name="phone"]').val();
566        var email = $(this).find('input[name="email"]').val();
567        var type = 'montazh';
568        var link = window.location.toString();
569        /*grecaptcha.ready(function() {
570          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
571				var captcha = $('.g-recaptcha-response').val();*/
572        $.ajax({
573            url: '/mail.php',
574            type: 'POST',
575            data: ({ name, city, phone, email, type, link, /*'g-recaptcha-response':captcha*/ }),
576            dataType: 'html',
577            beforeSend: function() {
578                console.log('start sending');
579            },
580            success: function(data) {
581                console.log(data);
582                if (data === 'ok') {
583                    currentForm.find('.mcf__content').hide();
584                    currentForm.find('.callback__thanks').show();
585                } else if (data === 'wrong') {
586                    currentForm.find('.mcf__content').hide();
587                    currentForm.find('.callback__error').show();
588                }
589            }
590        });
591        /* });
592        });*/
593        //grecaptcha.reset();	
594        return false;
595    });
596
597    //Обработка формы обратной связи на странице "Глухие мансардные окна"
598    $('.gmo__form').submit(function(e) {
599        e.preventDefault();
600        let currentForm = $(this);
601        var name = $(this).find('input[name="name"]').val();
602        var phone = $(this).find('input[name="phone"]').val();
603        var type = 'glush';
604        var link = window.location.toString();
605        /*grecaptcha.ready(function() {
606          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
607				var captcha = $('.g-recaptcha-response').val();*/
608        $.ajax({
609            url: '/mail.php',
610            type: 'POST',
611            data: ({ name, phone, type, link /*'g-recaptcha-response':captcha*/ }),
612            dataType: 'html',
613            beforeSend: function() {
614                console.log('start sending');
615            },
616            success: function(data) {
617                console.log(data);
618                if (data === 'ok') {
619                    currentForm.hide();
620                    currentForm.parent().find('.gmo__consult-thanks').fadeIn();
621                } else if (data === 'wrong') {
622                    currentForm.hide();
623                    currentForm.parent().find('.gmo__consult-error').fadeIn();
624                }
625            }
626        });
627        /* });
628        });*/
629        //grecaptcha.reset();	
630        return false;
631    });
632
633    //Обработка формы обратной связи в модальном окне
634    $('.modal-callback-form').submit(function(e) {
635        e.preventDefault();
636        let currentForm = $(this);
637        var name = $(this).find('input[name="name"]').val();
638        var phone = $(this).find('input[name="phone"]').val();
639        var comment = $(this).find('input[name="comment"]').val();
640        var link = window.location.toString();
641        var dateMark = getDateMark();
642        /*grecaptcha.ready(function() {
643          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
644				var captcha = $('.g-recaptcha-response').val();*/
645        $.ajax({
646            url: '/mail.php',
647            type: 'POST',
648            data: ({ name, phone, comment, link, dateMark /*'g-recaptcha-response':captcha*/ }),
649            dataType: 'html',
650            beforeSend: function() {
651                console.log('start sending');
652            },
653            success: function(data) {
654                console.log(data);
655                if (data === 'ok') {
656                    currentForm.find('.mcf__content').hide();
657                    currentForm.find('.callback__thanks').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
658                } else if (data === 'wrong') {
659                    currentForm.find('.mcf__content').hide();
660                    currentForm.find('.callback__error').fadeIn();
661                }
662            }
663        });
664        /* });
665        });*/
666        //grecaptcha.reset();	
667        return false;
668    });
669
670    //Обработка формы обратной связи на страницах ации Нвое за старое и Выбрать установщика
671    $('.novzastar-modal').submit(function(e) {
672        e.preventDefault();
673        let currentForm = $(this);
674        var name = $(this).find('input[name="name"]').val();
675        var phone = $(this).find('input[name="phone"]').val();
676        var email = $(this).find('input[name="email"]').val();
677        var comment = $(this).find('textarea[name="comment"]').val();
678        var type = 'novzastar_ask';
679        var link = window.location.toString();
680        //var dateMark = getDateMark();
681        /*grecaptcha.ready(function() {
682          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
683				var captcha = $('.g-recaptcha-response').val();*/
684        $.ajax({
685            url: '/mail.php',
686            type: 'POST',
687            data: ({ type, name, email, phone, comment, link /*'g-recaptcha-response':captcha*/ }),
688            dataType: 'html',
689            beforeSend: function() {
690                console.log('start sending');
691            },
692            success: function(data) {
693                console.log(data);
694                if (data === 'ok') {
695                    currentForm.find('.novzastar-modal__content').hide();
696                    currentForm.find('.novzastar-modal__thanks').fadeIn();
697                    ym(89122740, 'reachGoal', 'zadat_vopros');
698                } else if (data === 'wrong') {
699                    currentForm.find('.novzastar-modal__content').hide();
700                    currentForm.find('.novzastar-modal__error').fadeIn();
701                }
702            }
703        });
704        /* });
705        });*/
706        //grecaptcha.reset();	
707        return false;
708    });
709
710    //Обработка формы обратной связи на странице "Архитекторам"
711    $('.mac').submit(function(e) {
712        e.preventDefault();
713        let currentForm = $(this);
714        var name = $(this).find('input[name="name"]').val();
715        var city = $(this).find('input[name="city"]').val();
716        var phone = $(this).find('input[name="phone"]').val();
717        var email = $(this).find('input[name="email"]').val();
718        var comment = $(this).find('textarea[name="comment"]').val();
719        var link = window.location.toString();
720        var dateMark = getDateMark();
721
722        /*grecaptcha.ready(function() {
723          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
724				var captcha = $('.g-recaptcha-response').val();*/
725        $.ajax({
726            url: '/mail.php',
727            type: 'POST',
728            data: ({ type: 'archiram', name, city, phone, email, comment, link, dateMark /*'g-recaptcha-response':captcha*/ }),
729            dataType: 'html',
730            beforeSend: function() {
731                console.log('start sending');
732            },
733            success: function(data) {
734                console.log(data);
735                if (data === 'ok') {
736                    currentForm.find('.mac__content').hide();
737                    currentForm.find('.mac__thanks').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
738                } else if (data === 'wrong') {
739                    currentForm.find('.mac__content').hide();
740                    currentForm.find('.mac__error').fadeIn();
741                }
742            }
743        });
744        /* });
745        });*/
746        //grecaptcha.reset();	
747        return false;
748    });
749
750    //Обработка формы обратной связи на странице "Бессрочная гарантия"
751    /*var files;
752    $('input[type=file]').change(function(){
753    	files = this.files;
754    	console.log(files);
755    });*/
756
757
758
759    $('.limitless2').submit(function(e) {
760        e.preventDefault();
761        let currentForm = $(this);
762        var activity_scope = currentForm.find('input[name="activity_scope"]').val();
763        var serial_number = currentForm.find('input[name="serial_number"]').val();
764        var purchase_date = currentForm.find('input[name="purchase_date"]').val();
765        var size = currentForm.find('input[name="size"]').val();
766        var model = currentForm.find('input[name="model"]').val();
767        var count = currentForm.find('input[name="count"]').val();
768        var comment = currentForm.find('textarea[name="comment"]').val();
769        var delivery_method = currentForm.find('select[name="delivery_method"]').val();
770        console.log(delivery_method);
771
772        var filesSize = 0;
773        $.each($('#files')[0].files, function(key, value) {
774            filesSize += value.size;
775        });
776
777        if (filesSize > 15728640) {
778            alert('Вес файлов превышает 15 Мб!');
779            return false;
780        }
781
782        var link = window.location.toString();
783        var dateMark = getDateMark();
784        var form_data = new FormData(this);
785        form_data.append('dateMark', dateMark);
786        /*grecaptcha.ready(function() {
787          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
788				var captcha = $('.g-recaptcha-response').val();*/
789        form_data.append('link', link);
790        form_data.append('type', 'бессрочная');
791        //form_data.append('g-recaptcha-response', captcha);
792        $.ajax({
793            url: '/mail.php',
794            type: 'POST',
795            cache: false,
796            contentType: false,
797            processData: false,
798            data: form_data,
799            dataType: 'html',
800            beforeSend: function() {
801                console.log('start sending');
802            },
803            success: function(data) {
804                console.log('wow');
805                console.log(data);
806                if (data === 'ok') {
807                    currentForm.find('.limitless__content').hide();
808                    currentForm.find('.limitless__success').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
809                } else if (data === 'wrong') {
810                    currentForm.find('.limitless__content').hide();
811                    currentForm.find('.limitless__error').fadeIn();
812                }
813                $("body,html").animate({ scrollTop: $('.limitless__response').offset().top - 50 }, 500);
814            }
815        });
816        /* });
817        });*/
818        //grecaptcha.reset();	
819        return false;
820    });
821
822    // Обработка формы обратной связи на странице "Архитекторам"
823    $('.archi').submit(function(e) {
824        e.preventDefault();
825        let currentForm = $(this);
826        var name = $(this).find('input[name="name"]').val();
827        var email = $(this).find('input[name="email"]').val();
828        var family = $(this).find('input[name="family"]').val();
829        var city = $(this).find('input[name="city"]').val();
830        var phone = $(this).find('input[name="phone"]').val();
831        var sex = $(this).find('select[name="sex"]').val();
832        if ($(this).find('input[name="request_1"]').is(":checked")) {
833            var cad = 'yep';
834        } else {
835            var cad = 'nope';
836        }
837        if ($(this).find('input[name="request_2"]').is(":checked")) {
838            var price = 'yep';
839        } else {
840            var price = 'nope';
841        }
842        if ($(this).find('input[name="request_3"]').is(":checked")) {
843            var catalog = 'yep';
844        } else {
845            var catalog = 'nope';
846        }
847        if ($(this).find('input[name="request_4"]').is(":checked")) {
848            var fullcatalog = 'yep';
849        } else {
850            var fullcatalog = 'nope';
851        }
852
853        var link = window.location.toString();
854        var dateMark = getDateMark();
855        /*grecaptcha.ready(function() {
856          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
857				var captcha = $('.g-recaptcha-response').val();*/
858        $.ajax({
859            url: '/mail.php',
860            type: 'POST',
861            data: ({ type: 'archi', name, email, family, city, phone, sex, cad, price, catalog, fullcatalog, link, dateMark /*'g-recaptcha-response':captcha*/ }),
862            dataType: 'html',
863            beforeSend: function() {
864                console.log('start sending');
865            },
866            success: function(data) {
867                console.log(data);
868                if (data === 'ok') {
869                    currentForm.find('.archi__inner').hide();
870                    currentForm.find('.archi__success').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
871                } else if (data === 'wrong') {
872                    currentForm.find('.archi__inner').hide();
873                    currentForm.find('.archi__error').fadeIn();
874                }
875                $("body,html").animate({ scrollTop: $('.archi__response').offset().top - 50 }, 500);
876            }
877        });
878        /* });
879        });*/
880        //grecaptcha.reset();	
881        return false;
882    });
883
884    // Обработка формы обратной связи на странице "Строителям"
885    // Обработка формы обратной связи на странице "Архитекторам"
886    $('.stroy').submit(function(e) {
887        e.preventDefault();
888        let currentForm = $(this);
889        var sex = $(this).find('select[name="sex"]').val();
890        var name = $(this).find('input[name="name"]').val();
891        var family = $(this).find('input[name="family"]').val();
892        var street = $(this).find('input[name="street"]').val();
893        var home = $(this).find('input[name="home"]').val();
894        var flat = $(this).find('input[name="flat"]').val();
895        var index = $(this).find('input[name="index"]').val();
896        var city = $(this).find('input[name="city"]').val();
897        var phone = $(this).find('input[name="phone"]').val();
898        var email = $(this).find('input[name="email"]').val();
899        var count_party = $(this).find('input[name="count_party"]').val();
900        var which_time = $(this).find('input[name="which_time"]').val();
901
902        var link = window.location.toString();
903        var dateMark = getDateMark();
904        /*grecaptcha.ready(function() {
905          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
906				var captcha = $('.g-recaptcha-response').val();*/
907        $.ajax({
908            url: '/mail.php',
909            type: 'POST',
910            data: ({ type: 'stroy', sex, name, family, street, home, flat, index, city, phone, email, count_party, which_time, link, dateMark /*'g-recaptcha-response':captcha*/ }),
911            dataType: 'html',
912            beforeSend: function() {
913                console.log('start sending');
914            },
915            success: function(data) {
916                console.log(data);
917                if (data === 'ok') {
918                    currentForm.find('.stroy__inner').hide();
919                    currentForm.find('.stroy__success').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
920                } else if (data === 'wrong') {
921                    currentForm.find('.stroy__inner').hide();
922                    currentForm.find('.stroy__error').fadeIn();
923                }
924                $("body,html").animate({ scrollTop: $('.stroy__response').offset().top - 50 }, 500);
925            }
926        });
927        /* });
928        });*/
929        //grecaptcha.reset();	
930        return false;
931    });
932
933    // ****************************Скрипты страницы продукта****************************
934    // слайдеры сверху слева на странице продукта с основными изображениями
935    $('.product__big-slider').slick({
936        slidesToShow: 1,
937        slidesToScroll: 1,
938        arrows: false,
939        fade: true,
940        asNavFor: '.product__small-slider'
941    });
942    let slidesCountBig = $('.product__small-slider').hasClass('_video') ? 3 : 4;
943    let slidesCountSmall = $('.product__small-slider').hasClass('_video') ? 2 : 3;
944    $('.product__small-slider').slick({
945        slidesToShow: slidesCountBig,
946        slidesToScroll: 1,
947        asNavFor: '.product__big-slider',
948        dots: false,
949        centerMode: true,
950        focusOnSelect: true,
951        arrows: false,
952        responsive: [{
953            breakpoint: 992,
954            settings: {
955                slidesToShow: slidesCountSmall,
956            }
957        }]
958    });
959    // Кнопки управления главного верхнего слайдера на странице продукта
960
961
962    if ($('.product__small-slider-item').length < 2) {
963        $('.product__images-next').hide();
964        $('.product__images-prev').hide();
965    } else if ($('.product__small-slider-item').length < 5) {
966        $('.product__images-next').click(function() {
967            $('.product__big-slider').slick('slickNext');
968        });
969        $('.product__images-prev').click(function() {
970            $('.product__big-slider').slick('slickPrev');
971        });
972    } else {
973        $('.product__images-next').click(function() {
974            $('.product__small-slider').slick('slickNext');
975        });
976        $('.product__images-prev').click(function() {
977            $('.product__small-slider').slick('slickPrev');
978        });
979    }
980
981
982
983    // Всплывашки при наведении на ссылки следующего или предыдущего товара
984    /*$('.baloon').hover(
985    	function() {
986    		let target = $(this).attr('target');
987    		$('.' + target).fadeIn();
988    	},
989    	function() {
990    		let target = $(this).attr('target');
991    		$('.' + target).fadeOut();
992    	}
993    )*/
994
995    //Слайдер на странице глухие мансардные окна
996    if ($('.gmo__gallery-items').length > 0) {
997        let gmoSlider = $('.gmo__gallery-items');
998        gmoSlider.slick({
999            slidesToShow: 1,
1000            arrows: false,
1001            variableWidth: true,
1002            adaptiveHeight: true,
1003            dots: false,
1004            responsive: [{
1005                breakpoint: 480,
1006                settings: {
1007                    variableWidth: false,
1008                }
1009            }]
1010        });
1011        $('.gmo__gallery-next').click(function() {
1012            gmoSlider.slick('slickNext');
1013        });
1014        $('.gmo__gallery-prev').click(function() {
1015            gmoSlider.slick('slickPrev');
1016        });
1017    }
1018
1019    //Слайдер на страницах проектов на ТВ
1020    if ($('.project__slider-items').length > 0) {
1021        let projectSlider = $('.project__slider-items');
1022        projectSlider.slick({
1023            slidesToShow: 3,
1024            arrows: false,
1025            variableWidth: true,
1026            dots: true,
1027            appendDots: $('.project__slider-dots'),
1028            responsive: [{
1029                    breakpoint: 767,
1030                    settings: {
1031                        slidesToShow: 2,
1032                    }
1033                },
1034                {
1035                    breakpoint: 419,
1036                    settings: {
1037                        slidesToShow: 1,
1038                        variableWidth: false,
1039                        variableHeight: true,
1040                    }
1041                }
1042            ]
1043        });
1044        $('.project__slider-next').click(function() {
1045            projectSlider.slick('slickNext');
1046        });
1047        $('.project__slider-prev').click(function() {
1048            projectSlider.slick('slickPrev');
1049        });
1050    }
1051
1052
1053    //гелерея картинок внизу страницы товара
1054    $('.product__gallery-items').slick({
1055        slidesToShow: 3,
1056        arrows: false,
1057        dots: true,
1058        appendDots: $('.product__gallery-dots'),
1059        variableWidth: true,
1060        responsive: [{
1061                breakpoint: 767,
1062                settings: {
1063                    slidesToShow: 2,
1064                }
1065            },
1066            {
1067                breakpoint: 419,
1068                settings: {
1069                    slidesToShow: 1,
1070                    variableWidth: false,
1071                    variableHeight: true,
1072                }
1073            }
1074        ]
1075    });
1076
1077    // Галерея во всплывашке
1078    var newGallery = '';
1079    $('.product__gallery').each(function(index) {
1080        $(this).attr('data-gallery', index);
1081        let items = {};
1082        newGallery += '<div class="popup-gallery__items">';
1083
1084
1085        $(this).find('.product__gallery-item').each(function() {
1086            let slideIndex = $(this).attr('data-slick-index');
1087            items[slideIndex] = $(this).find('img').attr('src');
1088        });
1089        for (const [key, item] of Object.entries(items)) {
1090            newGallery += '<div class="popup-gallery__item" data-slide="' + key + '"><img src="' + item + '"></div>';
1091        }
1092        newGallery += '</div>';
1093        newGallery += '<div class="popup-gallery__prev"></div>' +
1094            '<div class="popup-gallery__next"></div>';
1095        /*popupGallery = '<div class="modal popup-gallery" data-gallery="' + index + '" id="modal-media">' +
1096        	'<div class="modal__underlay"></div>' + 
1097        	'<div class="modal__body">' + 
1098        		'<div class="modal__close modal__close--bg close"></div>' + 
1099        		'<div class="modal__content">' + newGallery + '</div>' + 
1100        	'</div>' + 
1101        '</div>';*/
1102    });
1103
1104    // Отдельные функции для всплывашек в галерее, чтобы при драгинге не всплывали картинки
1105    var start_time;
1106
1107    function start() {
1108        start_time = new Date();
1109    }
1110
1111    function end() {
1112        var now = new Date();
1113        return now - start_time < 200;
1114    }
1115
1116    $('.gmo__gallery-item')
1117        .mousedown(start)
1118        .mouseup(function() {
1119            if (end()) {
1120                let container = $('#modal-media');
1121                let src = $(this).find('img').attr('src');
1122                let alt = $(this).find('img').attr('alt');
1123                let html = '<img src="' + src + '" alt="' + alt + '" class="modal__content-image">';
1124                container.find('.modal__content').html(html);
1125                if ($(this).hasClass('big-modal')) {
1126                    container.find('.modal__body').addClass('modal__body_big');
1127                }
1128                container.addClass('show');
1129                $('body').addClass('noscroll');
1130            } else {
1131
1132                console.log('long');
1133            }
1134        });
1135
1136    $('.project__slider-item')
1137        .mousedown(start)
1138        .mouseup(function() {
1139            if (end()) {
1140                let container = $('#modal-media');
1141                let src = $(this).find('img').attr('src');
1142                let alt = $(this).find('img').attr('alt');
1143                let html = '<img src="' + src + '" alt="' + alt + '" class="modal__content-image">';
1144                container.find('.modal__content').html(html);
1145                if ($(this).hasClass('big-modal')) {
1146                    container.find('.modal__body').addClass('modal__body_big');
1147                }
1148                container.addClass('show');
1149                $('body').addClass('noscroll');
1150            } else {
1151
1152                console.log('long');
1153            }
1154        });
1155
1156
1157    $('.product__gallery-item')
1158        .mousedown(start)
1159        .mouseup(function() {
1160            if (end()) {
1161                var container = $('#modal-media');
1162                container.addClass('popup-gallery');
1163                var index = $(this).attr('data-slick-index');
1164                /*var src =  $(this).find('img').attr('src');
1165                var html = '<img src="' + src + '" alt="" class="modal__content-image">';
1166                container.find('.modal__content').html(html);
1167                container.addClass('show');
1168                $('body').addClass('noscroll');*/
1169                container.find('.modal__content').html(newGallery);
1170                $('.popup-gallery__items').slick({
1171                    autoplay: false,
1172                    arrows: false,
1173                    dots: false,
1174                    slidesToShow: 1,
1175                    //variableWidth: true,
1176                    adaptiveHeight: false
1177
1178                });
1179                $('.popup-gallery__prev').click(function(e) {
1180                    e.preventDefault();
1181                    $('.popup-gallery__items').slick('slickPrev');
1182                });
1183
1184                $('.popup-gallery__next').click(function(e) {
1185                    e.preventDefault();
1186                    $('.popup-gallery__items').slick('slickNext');
1187                });
1188                $('.popup-gallery__items').slick('slickGoTo', index);
1189                container.addClass('show');
1190                $('body').addClass('noscroll');
1191            } else {
1192                console.log('long');
1193            }
1194        });
1195
1196
1197    // ****************************Скрипты страницы категории****************************
1198    // карусель сравнения товаров
1199    let scaleCarousel = $('.category__scale-items-wrapper');
1200
1201    function initProductScaleCarousel() {
1202        scaleCarousel.slick({
1203            slidesToShow: 6,
1204            arrows: true,
1205            dots: false,
1206            waitForAnimate: false,
1207            swipeToSlide: true,
1208            infinite: false,
1209            responsive: [{
1210                    breakpoint: 1199,
1211                    settings: {
1212                        slidesToShow: 4,
1213                    }
1214                },
1215                {
1216                    breakpoint: 991,
1217                    settings: {
1218                        slidesToShow: 3,
1219                    }
1220                },
1221                {
1222                    breakpoint: 767,
1223                    settings: {
1224                        slidesToShow: 2,
1225                    }
1226                },
1227                {
1228                    breakpoint: 584,
1229                    settings: {
1230                        slidesToShow: 1,
1231                    }
1232                },
1233            ]
1234        });
1235    }
1236
1237    $('.category__scale-go').click(function() {
1238        $('.category__scale-items-wrapper').slick('slickNext');
1239    });
1240
1241    // добавляем товар в сравнение
1242    let scaleInit = false;
1243    let scaleCharsNames = [];
1244    $('.category__product').each(function() {
1245        $(this).find('.category__product-char').each(function(index) {
1246            let name = $(this).attr('data-name');
1247            if (scaleCharsNames.indexOf(name) < 0) {
1248                scaleCharsNames.push(name);
1249            }
1250        });
1251    });
1252    scaleCharsNames.push('Цена');
1253    $('.category__product-scale').click(function() {
1254        let parent = $(this).parent();
1255        $(this).hide();
1256        parent.find('.category__product-goscale').fadeIn();
1257        let productId = parent.attr('data-id');
1258        let name = parent.find('.category__product-name').text();
1259        let charsNamesHtml = '<div class="category__scale-item-value"></div>';
1260        let itemHtml = '<div class="category__scale-item" data-id="' + productId + '">';
1261        itemHtml += '<div class="category__scale-item-value">' +
1262            '<div class="category__scale-item-title">' + name + '</div>' +
1263            '<div class="category__scale-item-remove"></div>' +
1264            '</div>';
1265        /*parent.find('.category__product-char').each(function(index) {
1266        	let name = $(this).attr('data-name');
1267        	if (scaleCharsNames.indexOf(name) < 0) {
1268        		scaleCharsNames.push(name);
1269        	}
1270        });
1271        parent.find('.category__product-price').each(function(index) {
1272        	let name = $(this).attr('data-name');
1273        	if (scaleCharsNames.indexOf(name) < 0) {
1274        		scaleCharsNames.push(name);
1275        	}
1276        });*/
1277        $.each(scaleCharsNames, function(index, name) {
1278            let priceBold = name == 'Цена';
1279
1280            charsNamesHtml += '<div class="category__scale-item-value' + (priceBold ? ' bold' : '') + '">' + name + '</div>';
1281
1282            let value = parent.find('[data-name="' + name + '"]').attr('data-value');
1283            if (value) {
1284                if (value.length > 60) {
1285                    itemHtml += '<div class="category__scale-item-value' + (priceBold ? ' bold' : '') + '" style="font-size:10px;line-height:10px;">' + value + '</div>'
1286                } else if (value.length > 40) {
1287                    itemHtml += '<div class="category__scale-item-value' + (priceBold ? ' bold' : '') + '" style="font-size:11px;line-height:11px;">' + value + '</div>'
1288                } else {
1289                    itemHtml += '<div class="category__scale-item-value' + (priceBold ? ' bold' : '') + '">' + value + '</div>';
1290                }
1291
1292            } else {
1293                itemHtml += '<div class="category__scale-item-value category__scale-item-value_empty">-</div>';
1294            }
1295        });
1296        itemHtml += '</div>';
1297        $('.category__scale-charsnames').html('').append(charsNamesHtml);
1298        $('.category__scale-items-wrapper').append(itemHtml);
1299        $('.category__scale').fadeIn();
1300        if (scaleInit) {
1301            scaleCarousel.slick('unslick');
1302            initProductScaleCarousel();
1303        } else {
1304            initProductScaleCarousel();
1305        }
1306        scaleInit = true;
1307    });
1308
1309    // удаляем товар из сравнения
1310    $('.category__scale-items-wrapper').on('click', '.category__scale-item-remove', function() {
1311        scaleCarousel.slick('unslick');
1312        let itemId = $(this).parent().parent().attr('data-id');
1313        scaleCarousel.find('[data-id="' + itemId + '"]').remove();
1314
1315        $('.category__product[data-id="' + itemId + '"]').find('.category__product-goscale').hide();
1316        $('.category__product[data-id="' + itemId + '"]').find('.category__product-scale').show();
1317        if (scaleCarousel.find('.category__scale-item').length == 0) {
1318            scaleCarousel.slick('unslick');
1319            $('.category__scale-charsnames').html('');
1320            $('.category__scale-items-wrapper').html('');
1321            $('.category__scale').fadeOut();
1322            scaleInit = false;
1323        } else {
1324            initProductScaleCarousel();
1325        }
1326    });
1327
1328
1329    // Слайдер на странице МАНСАРДА
1330    $('.mansarda__top-products').slick({
1331        autoplay: true,
1332        autoplaySpeed: 8000,
1333        arrows: false,
1334        dots: true,
1335        appendDots: $('.mansarda__top-dots'),
1336        adaptiveHeight: true,
1337    });
1338    // Кнопки управления слайдера на главной странице
1339    $('.mansarda__top-next').click(function() {
1340        $('.mansarda__top-products').slick('slickNext');
1341    });
1342    $('.mansarda__top-prev').click(function() {
1343        $('.mansarda__top-products').slick('slickPrev');
1344    });
1345
1346    // Переключение способа доставки в форме бессрочной гарантии + Сделать поля необязательными если они скрыты в форме бессрочной гарантии
1347    var current_delivery_type = 1;
1348    $('[name="delivery_method"]').on('change', function() {
1349        let target = $(this).find('option:selected').attr('data-index');
1350        if (current_delivery_type == target) {
1351            return false;
1352        }
1353        current_delivery_type = target;
1354        $('.limitless__section-select').find('input').prop('required', false);
1355        //$('input').prop('required', false);
1356        $('.limitless__section-select').hide();
1357        $('.limitless__section-select[data-index="' + target + '"]').slideDown().find('input').prop('required', true);
1358    });
1359
1360    // ебашим галерею из "шорткода"
1361    if ($('.gallery').length > 0) {
1362        let path = $('.gallery').attr('data-path');
1363        $.ajax({
1364            url: '/photos.php',
1365            type: 'POST',
1366            data: ({ path }),
1367            dataType: 'html',
1368            beforeSend: function() {
1369                console.log('start sending');
1370            },
1371            success: function(data) {
1372                console.log(data);
1373                let names = data.split('#');
1374                names.pop();
1375                console.log(names);
1376                // сперва делаем плиточку
1377                let gallery = '<div class="gallery">';
1378                gallery += '<div class="gallery__cake">';
1379                $.each(names, function(index, value) {
1380                    gallery += '<div class="gallery__cake-item">';
1381                    gallery += '<img src="' + path + '/' + value + '" alt="">';
1382                    gallery += '</div>';
1383                });
1384                gallery += '</div>';
1385                gallery += '</div>';
1386                $('.gallery').html(gallery);
1387
1388                //теперь делаем модальную галерею
1389                let modalGallery = '<div class="gallery__modal">';
1390                $.each(names, function(index, value) {
1391                    modalGallery += '<div class="gallery__modal-item">' +
1392                        '<img src="' + path + '/' + value + '" alt="">' +
1393                        '</div>';
1394                });
1395                modalGallery += '</div>';
1396                modalGallery += '<div class="gallery__modal-prev"></div><div class="gallery__modal-next"></div>';
1397                $('#modal-gallery .modal__content').html(modalGallery);
1398                setTimeout(function() {
1399                    $('.gallery__modal').slick({
1400                        autoplay: false,
1401                        arrows: false,
1402                        dots: false,
1403                        slidesToShow: 1,
1404                        //variableWidth: true,
1405                        adaptiveHeight: true,
1406                        fade: true
1407                    });
1408                }, 100);
1409            }
1410        });
1411
1412        $('.gallery').on('click', '.gallery__cake-item', function() {
1413            let number = $(this).index();
1414            $('.gallery__modal').slick('slickGoTo', number);
1415            $('#modal-gallery').addClass('show');
1416            $('body').addClass('noscroll');
1417
1418        });
1419
1420
1421        $('#modal-gallery').on('click', '.gallery__modal-prev', function(e) {
1422            e.preventDefault();
1423            $('.gallery__modal').slick('slickPrev');
1424        });
1425
1426        $('#modal-gallery').on('click', '.gallery__modal-next', function(e) {
1427            e.preventDefault();
1428            $('.gallery__modal').slick('slickNext');
1429        });
1430    }
1431
1432
1433    //*******************************Где купить?**********************************
1434
1435    if ($('body').hasClass('body_121') || $('body').hasClass('body_122') || $('body').hasClass('body_123') || $('body').hasClass('body_234') || $('body').hasClass('body_235')) {
1436        ymaps.ready(init);
1437    }
1438
1439    var myMap;
1440    var suggestView;
1441    var address;
1442    var centerCoords;
1443    var center = [55.76, 37.64];
1444    if ($('body').hasClass('body_122')) {
1445        center = [51.128207, 71.430411];
1446    }
1447
1448    if ($('body').hasClass('body_123')) {
1449        center = [42.875969, 74.603701];
1450    }
1451
1452    if ($('body').hasClass('body_234')) {
1453        center = [41.311151, 69.279737];
1454    }
1455
1456    if ($('body').hasClass('body_235')) {
1457        center = [53.902735, 27.555691];
1458    }
1459
1460
1461
1462    function init() {
1463        myMap = new ymaps.Map("map", {
1464            center: center,
1465            zoom: 10,
1466            autoFitToViewport: 'always'
1467        });
1468
1469        suggestView = new ymaps.SuggestView('suggest');
1470        address = '';
1471        centerCoords = [];
1472
1473        suggestView.events.add('select', function(e) {
1474            address = e.get('item').value;
1475            console.log(address);
1476            ymaps.geocode(address).then(
1477                function(res) {
1478                    //map.geoObjects.add(res.geoObjects);
1479                    if (address == 'Московская область') {
1480                        centerCoords = [55.755863, 37.617700];
1481                    } else {
1482                        centerCoords = res.geoObjects.get(0).geometry.getCoordinates();
1483                    }
1484
1485                    //map.setCenter(coords);
1486                    //console.log(coords);
1487                },
1488                function(err) {
1489                    // Обработка ошибки.
1490                    console.log('error! - ' + err);
1491                }
1492            );
1493        });
1494
1495        var mapMarks = [];
1496        var currentMapGallery = false;
1497        $('.mapa__go').click(function() {
1498            mapMarks = [];
1499            myMap.geoObjects.removeAll();
1500            $('.mapa__results-items').html('');
1501            $('.mapa__results-total span').text('-');
1502            console.log('bober');
1503            console.log(centerCoords);
1504            myMap.setCenter(centerCoords);
1505            var radius = $('select[name="distance"]').val();
1506            var category = $('select[name="category"]').val();
1507            var stend = $('select[name="stend"]').val();
1508            var sklad = $('select[name="sklad"]').val();
1509            var montazh = $('select[name="montazh"]').val();
1510            var okna = $('input[name="okna"]').is(":checked") ? 1 : 0;
1511            var lestnicy = $('input[name="lestnicy"]').is(":checked") ? 1 : 0;
1512            var gidroparo = $('input[name="gidroparo"]').is(":checked") ? 1 : 0;
1513            var lenty = $('input[name="lenty"]').is(":checked") ? 1 : 0;
1514            $.ajax({
1515                url: '/config.php',
1516                type: 'POST',
1517                data: ({ 'lat': centerCoords[0], 'lng': centerCoords[1], radius, category, stend, sklad, montazh, okna, lestnicy, gidroparo, lenty }),
1518                beforeSend: function() {
1519                    console.log('start');
1520                },
1521                success: function(data) {
1522                    //console.log(data);
1523                    var coords = JSON.parse(data);
1524                    /*console.log(coords.length);
1525                    console.log(coords);*/
1526                    if (coords.length > 0) {
1527                        var htmlResults = '';
1528
1529                        coords.forEach(function(value, index) {
1530                            var phones = value.phones.split(',').map(function(val) {
1531                                let noSpacesString = val.trim();
1532                                let noSymbolsString = val.trim().replace(/[^+\d]/g, '');
1533                                return '<a href="tel:' + noSymbolsString + '">' + noSpacesString + '</a>';
1534                            }).join(', ');
1535
1536                            htmlBaloon = '<div class="baloon">';
1537                            htmlBaloon += '<div class="baloon__name">' + value.name + '</div>';
1538                            htmlBaloon += '<div class="baloon__address">' + value.adres_vis + '</div>';
1539                            htmlBaloon += '<div class="baloon__descr">' + value.comment + '</div>';
1540                            htmlBaloon += '<div class="baloon__url"><a href="http://' + value.url + '" target="_blank">' + value.url + '</a></div>';
1541                            htmlBaloon += '<div class="baloon__phones">' + phones + '</div>';
1542                            htmlBaloon += '<div class="baloon__email"><a href="mailto:' + value.email + '">' + value.email + '</a></div>';
1543                            if (value.whatsapp || value.viber || value.telegram || value.max) {
1544                                htmlBaloon += '<div class="baloon__mes">';
1545                                if (value.whatsapp) {
1546                                    htmlBaloon += '<a href="https://wa.me/' + value.whatsapp + '" target="_blank" class="baloon__mes-item _whatsapp"></a>';
1547                                }
1548
1549                                if (value.viber) {
1550                                    htmlBaloon += '<a href="viber://add?number=' + value.viber + '" target="_blank" class="baloon__mes-item _viber"></a>';
1551                                }
1552
1553                                if (value.telegram) {
1554                                    htmlBaloon += '<a href="https://telegram.me/' + value.telegram + '" target="_blank" class="baloon__mes-item _telegram"></a>';
1555                                }
1556
1557                                if (value.max && value.max.includes('max')) {
1558                                    htmlBaloon += '<a href="' + value.max + '" target="_blank" class="baloon__mes-item _max"></a>';
1559                                }
1560                                htmlBaloon += '</div>';
1561                            }
1562                            if (value.photos) {
1563                                photosNames = value.photos.split(',');
1564
1565                                htmlBaloon += '<div class="baloon__photos" data-object="' + value.id + '">';
1566
1567                                $.each(photosNames, function(index, item) {
1568                                    htmlBaloon += '<div class="baloon__photo"><img src="/dealers/photos/' + value.id + '/' + item + '" data-index="' + index + '"></div>';
1569                                });
1570                                htmlBaloon += '</div>';
1571                            }
1572                            htmlBaloon += '<div class="baloon__review modal-engage" data-target="modal-review">Оставить отзыв</div>';
1573                            htmlBaloon += '</div>';
1574
1575                            let newMark = new ymaps.Placemark([value.lat, value.lng], {
1576                                balloonContent: htmlBaloon,
1577                                id: index
1578                            }, {
1579                                preset: 'islands#darkGreenDotIcon'
1580                            });
1581
1582                            let marksResult = '';
1583                            if (value.okna && value.okna != '0') {
1584                                marksResult += '<div class="mapa__contacts-mark" data-title="Мансардные окна"><img src=/images/icons/okna-green.png alt="Мансардные окна"></div>';
1585                            } else {
1586                                marksResult += '<div class="mapa__contacts-mark" data-title="Мансардные окна"><img src=/images/icons/okna.png alt="Мансардные окна"></div>';
1587                            }
1588
1589                            if (value.lestnicy && value.lestnicy != '0') {
1590                                marksResult += '<div class="mapa__contacts-mark" data-title="Чердачные лестницы"><img src=/images/icons/lestnicy-green.png alt="Чердачные лестницы"></div>';
1591                            } else {
1592                                marksResult += '<div class="mapa__contacts-mark" data-title="Чердачные лестницы"><img src=/images/icons/lestnicy.png alt="Чердачные лестницы"></div>';
1593                            }
1594
1595                            if (value.gidroparo && value.gidroparo != '0') {
1596                                marksResult += '<div class="mapa__contacts-mark" data-title="Гидро-пароизоляционные материалы"><img src=/images/icons/gidroparo-green.png alt="Гидро-пароизоляционные материалы"></div>';
1597                            } else {
1598                                marksResult += '<div class="mapa__contacts-mark" data-title="Гидро-пароизоляционные материалы"><img src=/images/icons/gidroparo.png alt="Гидро-пароизоляционные материалы"></div>';
1599                            }
1600
1601                            if (value.lenty && value.lenty != '0') {
1602                                marksResult += '<div class="mapa__contacts-mark" data-title="Соединительные ленты"><img src=/images/icons/lenty-green.png alt="Соединительные ленты"></div>';
1603                            } else {
1604                                marksResult += '<div class="mapa__contacts-mark" data-title="Соединительные ленты"><img src=/images/icons/lenty.png alt="Соединительные ленты"></div>';
1605                            }
1606
1607                            if (value.ambassador && value.ambassador != '0') {
1608                                marksResult += '<div class="mapa__contacts-mark" data-title="Амбассадор"><img src=/images/icons/ambassador-green.png alt="Амбассадор"></div>';
1609                            } else {
1610                                marksResult += '<div class="mapa__contacts-mark" data-title="Амбассадор"><img src=/images/icons/ambassador.png alt="Амбассадор"></div>';
1611                            }
1612
1613                            htmlResults += '<div class="mapa__result" data-id="' + index + '">';
1614                            htmlResults += '<div class="mapa__distance">~ ' + Math.round(value.distance) + ' км</div>';
1615                            htmlResults += '<div class="mapa__contacts">';
1616                            htmlResults += '<div class="mapa__contacts-name">' + value.name + (value.type == 's' ? ' - сервисный центр' : ' - дилер') + '</div>';
1617                            htmlResults += '<div class="mapa__contacts-address">' + value.adres_vis + '</div>';
1618                            htmlResults += phones;
1619                            if (marksResult.length > 0) {
1620                                htmlResults += '<div class="mapa__contacts-marks">';
1621                                htmlResults += marksResult;
1622                                htmlResults += '</div>';
1623                            }
1624                            htmlResults += '</div>';
1625                            htmlResults += '<div style="display:none;" class="mapa__result-photos" data-id="' + index + '" data-object="' + value.id + '">' + value.photos + '</div>';
1626                            htmlResults += '</div>';
1627
1628                            mapMarks.push(newMark);
1629
1630                            myMap.geoObjects
1631                                .add(newMark);
1632                        });
1633
1634                        $('.mapa__results-items').html(htmlResults);
1635                        $('.mapa__results-total span').text(coords.length);
1636                    } else {
1637                        $('.mapa__results-items').html('<div class="mapa__noresults">Объекты не найдены</div>');
1638                        $('.mapa__results-total span').text('0');
1639                    }
1640                }
1641            });
1642        });
1643
1644        $('.mapa').on('click', '.baloon__photo', function() {
1645            let number = $(this).index();
1646            $('.gallery__modal').slick('slickGoTo', number);
1647            $('#modal-gallery').addClass('show');
1648            $('body').addClass('noscroll');
1649
1650        });
1651
1652        /*$('.mapa').on('click', '.baloon__photo', function() {
1653        	if (currentMapGallery == $(this).parent().attr('data-object')) {
1654
1655        	} else {
1656
1657        	}
1658
1659        	
1660        });*/
1661
1662        $('.mapa__results').on('click', '.mapa__result', function() {
1663            var id = $(this).attr('data-id');
1664            console.log(id);
1665            pm = ymaps.geoQuery(myMap.geoObjects).search('properties.id == "' + id + '"').getCenter(myMap);
1666            myMap.setCenter(pm);
1667            mapMarks[id].balloon.open();
1668
1669            let photosNames = $('.mapa__result-photos[data-id="' + id + '"]').text().split(',');
1670            if (photosNames.length > 0) {
1671                let object = $('.mapa__result-photos[data-id="' + id + '"]').attr('data-object');
1672                let modalGallery = '<div class="gallery__modal">';
1673                $.each(photosNames, function(index, photo) {
1674                    modalGallery += '<div class="gallery__modal-item">' +
1675                        '<img src="/dealers/photos/' + object + '/' + photo + '" alt="">' +
1676                        '</div>';
1677                });
1678                modalGallery += '</div>';
1679                if (photosNames.length > 1) {
1680                    modalGallery += '<div class="gallery__modal-prev"></div><div class="gallery__modal-next">';
1681                }
1682                modalGallery += '</div>';
1683                $('#modal-gallery .modal__content').html(modalGallery);
1684                setTimeout(function() {
1685                    $('.gallery__modal').slick({
1686                        autoplay: false,
1687                        arrows: false,
1688                        dots: false,
1689                        slidesToShow: 1,
1690                        //variableWidth: true,
1691                        adaptiveHeight: true,
1692                        fade: true
1693                    });
1694                }, 100);
1695
1696                $('#modal-gallery').on('click', '.gallery__modal-prev', function(e) {
1697                    e.preventDefault();
1698                    $('.gallery__modal').slick('slickPrev');
1699                });
1700
1701                $('#modal-gallery').on('click', '.gallery__modal-next', function(e) {
1702                    e.preventDefault();
1703                    $('.gallery__modal').slick('slickNext');
1704                });
1705            }
1706
1707        });
1708
1709        $('.mapa__controls-map').click(function() {
1710            if ($(this).hasClass('active')) return false;
1711            $('.mapa__controls-item.active').removeClass('active');
1712            $(this).addClass('active');
1713            $('.mapa__results').removeClass('only').hide();
1714            $('.mapa__map').addClass('only').show();
1715            setTimeout(function() {
1716                myMap.container.fitToViewport();
1717            }, 300);
1718        });
1719
1720        $('.mapa__controls-list').click(function() {
1721            if ($(this).hasClass('active')) return false;
1722            $('.mapa__controls-item.active').removeClass('active');
1723            $(this).addClass('active');
1724            $('.mapa__map').removeClass('only').hide();
1725            $('.mapa__results').addClass('only').show();
1726        });
1727
1728        $('.mapa__controls-all').click(function() {
1729            $('.mapa__controls-item.active').removeClass('active');
1730            $('.mapa__results').removeClass('only').show();
1731            $('.mapa__map').removeClass('only').show();
1732            setTimeout(function() {
1733                myMap.container.fitToViewport();
1734            }, 300);
1735        });
1736    }
1737
1738
1739    $('.mapa__showfilter').click(function() {
1740        $('.mapa__filter').slideToggle();
1741    });
1742
1743
1744    //Слайдер на странице монтажников
1745    if ($('.montazhnik__photos').length > 0) {
1746        $('.montazhnik__photos').each(function() {
1747            let currentMontGal = $(this);
1748            currentMontGal.slick({
1749                slidesToShow: 4,
1750                autoplay: false,
1751                arrows: false,
1752                dots: false,
1753                variableWidth: true,
1754                infinite: true,
1755                slidesToScroll: 1,
1756                responsive: [{
1757                        breakpoint: 480,
1758                        settings: {
1759                            slidesToShow: 3,
1760
1761                        }
1762                    },
1763                    {
1764                        breakpoint: 430,
1765                        settings: {
1766                            slidesToShow: 2,
1767                        }
1768                    }
1769                ]
1770            });
1771            currentMontGal.parent().find('.montazhnik__gallery-next').click(function() {
1772                currentMontGal.slick('slickNext');
1773            });
1774
1775            if (currentMontGal.find('.montazhnik__photo').length <= 4 && window.matchMedia("(min-width: 481px)").matches) {
1776                currentMontGal.parent().find('.montazhnik__gallery-next').hide();
1777            }
1778        });
1779
1780
1781
1782    }
1783
1784
1785
1786    /* ***** Слайдер визуализаций ***** */
1787    if ($('.vis__slider').length > 0) {
1788        var sliders = [];
1789        $('.vis__slider').each(function() {
1790            var index = $(this).attr('data-index');
1791            sliders[index] = $('.vis__slider_' + index);
1792            sliders[index].slick({
1793                autoplay: false,
1794                autoplaySpeed: 6000,
1795                arrows: false,
1796                dots: false,
1797                draggable: false,
1798                swipe: false,
1799                touchMove: false
1800
1801            });
1802            // Кнопки управления слайдера на главной странице
1803            $('.vis-slider__next_' + index).click(function() {
1804                sliders[index].slick('slickNext');
1805            });
1806            $('.vis-slider__prev_' + index).click(function() {
1807                sliders[index].slick('slickPrev');
1808            });
1809        });
1810    }
1811
1812    if ($('.vistions').length > 0) {
1813        $('.vistions').slick({
1814            autoplay: false,
1815            arrows: false,
1816            dots: false,
1817            draggable: false,
1818            swipe: false,
1819            touchMove: false,
1820            adaptiveHeight: true
1821
1822        });
1823        $('.vistions__next').click(function() {
1824            $('.vistions').slick('slickNext');
1825        });
1826        $('.vistions__prev').click(function() {
1827            $('.vistions').slick('slickPrev');
1828        });
1829
1830        $('.visnav__item').click(function() {
1831            var slideNum = $(this).data('slide');
1832            $('.vistions').slick('slickGoTo', slideNum - 1);
1833        });
1834    }
1835
1836
1837
1838    $('.oldsite__close').click(function() {
1839        $.ajax({
1840            url: '/oldsite.php',
1841            type: 'POST',
1842            data: ({ task: 'closeoldsite' }),
1843            dataType: 'html',
1844            beforeSend: function() {
1845                console.log('start sending');
1846            },
1847            success: function(data) {
1848                console.log(data);
1849                if (data == 'ok') {
1850                    $('.oldsite').slideUp();
1851                    $('.shadow-menu').removeClass('_oldsite');
1852                }
1853            }
1854        });
1855    });
1856
1857    $('#modal-tg .modal__close').click(function() {
1858        $.ajax({
1859            url: '/oldsite.php',
1860            type: 'POST',
1861            data: ({ task: 'gotg' }),
1862            dataType: 'html',
1863            beforeSend: function() {
1864                console.log('start sending');
1865            },
1866            success: function(data) {
1867                console.log(data);
1868            }
1869        });
1870    });
1871    $('#modal-tg .modal__underlay').click(function() {
1872        $.ajax({
1873            url: '/oldsite.php',
1874            type: 'POST',
1875            data: ({ task: 'gotg' }),
1876            dataType: 'html',
1877            beforeSend: function() {
1878                console.log('start sending');
1879            },
1880            success: function(data) {
1881                console.log(data);
1882            }
1883        });
1884    });
1885
1886
1887    $('.freshnew').click(function(e) {
1888        e.preventDefault();
1889        let link = $(this).attr('href');
1890        $.ajax({
1891            url: '/oldsite.php',
1892            type: 'POST',
1893            data: ({ task: 'freshnew' }),
1894            dataType: 'html',
1895            beforeSend: function() {
1896                console.log('start sending');
1897            },
1898            success: function(data) {
1899                console.log(data);
1900                if (data == 'ok') {
1901                    window.location.href = link;
1902                }
1903            }
1904        });
1905    });
1906
1907
1908    $('.category__scale-xlsx').click(function(e) {
1909        e.preventDefault();
1910        let link = $(this).attr('href');
1911        let titles = [];
1912        let items = [];
1913        $('.category__scale-charsnames').find('.category__scale-item-value').slice(1).each(function() {
1914            titles.push($(this).text());
1915        });
1916        $('.category__scale-items-wrapper').find('.category__scale-item').each(function() {
1917            let values = [];
1918            $(this).find('.category__scale-item-value').each(function() {
1919                //console.log($(this).text());
1920                values.push($(this).text());
1921            });
1922            items.push(values);
1923        });
1924        console.log(titles);
1925        console.log(items);
1926        $.ajax({
1927            url: '/excell.php',
1928            type: 'POST',
1929            data: ({ titles, items }),
1930            dataType: 'html',
1931            beforeSend: function() {
1932                console.log('start sending');
1933            },
1934            success: function(data) {
1935                console.log(data);
1936                window.location = link;
1937            }
1938        });
1939    });
1940
1941
1942    // Всплывающая галерея на странице продукта для главных картинок сверху
1943    $('.productgal__items').slick({
1944        autoplay: false,
1945        arrows: false,
1946        dots: false,
1947        slidesToShow: 1,
1948        //focusOnSelect: true
1949        //variableWidth: true,
1950        adaptiveHeight: true
1951    });
1952
1953    $('#modal-productgal').on('click', '.productgal-prev', function(e) {
1954        e.preventDefault();
1955        $('.productgal__items').slick('slickPrev');
1956    });
1957
1958    $('#modal-productgal').on('click', '.productgal-next', function(e) {
1959        e.preventDefault();
1960        $('.productgal__items').slick('slickNext');
1961    });
1962
1963    $('.product__big-slider-item')
1964        .mousedown(start)
1965        .mouseup(function() {
1966            if (end()) {
1967                let number = $(this).attr('data-index');
1968                //console.log(number);
1969                $('.productgal__items').slick('slickGoTo', number);
1970                $('#modal-productgal').addClass('show');
1971                setTimeout(function() {
1972                    $('.productgal__item.slick-active').focus();
1973                }, 1000);
1974            } else {
1975                console.log('long');
1976            }
1977        });
1978    $('.product__small-slider-item')
1979        .mousedown(start)
1980        .mouseup(function() {
1981            if (end()) {
1982                let number = $(this).attr('data-index');
1983                //console.log(number);
1984                $('.productgal__items').slick('slickGoTo', number);
1985                $('#modal-productgal').addClass('show');
1986                setTimeout(function() {
1987                    $('.productgal__item.slick-active').focus();
1988                }, 1000);
1989            } else {
1990                console.log('long');
1991            }
1992        });
1993
1994    $('.product__downloadimages').click(function() {
1995        var urls = [
1996
1997        ];
1998
1999        $('.product__big-slider-item').each(function() {
2000            let src = $(this).find('img').attr('src');
2001            urls.push(src);
2002        });
2003        //console.log(urls);
2004
2005        var archiveName = $('h1.product__title').text();
2006        compressed_img(urls, archiveName);
2007
2008        function compressed_img(urls, archiveName) {
2009            var zip = new JSZip();
2010            var count = 0;
2011            var name = archiveName + ".zip";
2012            urls.forEach(function(url) {
2013                JSZipUtils.getBinaryContent(url, function(err, data) {
2014                    var imagePath = url.split('/');
2015                    zip.file(imagePath[imagePath.length - 1], data, { binary: true });
2016                    count++;
2017                    if (count == urls.length) {
2018                        zip.generateAsync({ type: 'blob' }).then(function(content) {
2019                            saveAs(content, name);
2020                        });
2021                    }
2022                });
2023            });
2024        }
2025    });
2026
2027
2028    // Обработка формы обратной связи бланка заказа окна-балкона
2029    $('.modal-order-form').submit(function(e) {
2030        e.preventDefault();
2031        let currentForm = $(this);
2032        var buyer_name = $(this).find('input[name="buyer_name"]').val();
2033        var buyer_address = $(this).find('input[name="buyer_address"]').val();
2034        var window_address = $(this).find('input[name="window_address"]').val();
2035        var buyer_phone = $(this).find('input[name="buyer_phone"]').val();
2036        var firm = $(this).find('input[name="firm"]').val();
2037        var firm_name = $(this).find('input[name="firm_name"]').val();
2038        var firm_address = $(this).find('input[name="firm_address"]').val();
2039        var firm_phone = $(this).find('input[name="firm_phone"]').val();
2040        var size78255 = $('input[name="size78255"]').is(":checked") ? 1 : 0;
2041        var size94255 = $('input[name="size94255"]').is(":checked") ? 1 : 0;
2042        var size114255 = $('input[name="size114255"]').is(":checked") ? 1 : 0;
2043        var roof__degree = $(this).find('input[name="roof__degree"]').val();
2044        var obreshetka = $('input[name="obreshetka"]').is(":checked") ? 1 : 0;
2045        var yteplitel = $('input[name="yteplitel"]').is(":checked") ? 1 : 0;
2046        var stropila = $('input[name="stropila"]').is(":checked") ? 1 : 0;
2047        var gidroplenka = $('input[name="gidroplenka"]').is(":checked") ? 1 : 0;
2048        var paroplenka = $('input[name="paroplenka"]').is(":checked") ? 1 : 0;
2049        var myagkayacherepitsa = $('input[name="myagkayacherepitsa"]').is(":checked") ? 1 : 0;
2050        var metallocherepitsa = $('input[name="metallocherepitsa"]').is(":checked") ? 1 : 0;
2051        var naturalcherepitsa = $('input[name="naturalcherepitsa"]').is(":checked") ? 1 : 0;
2052        var falcevayakrovlya = $('input[name="falcevayakrovlya"]').is(":checked") ? 1 : 0;
2053        var pokritie = $(this).find('input[name="pokritie"]').val();
2054        var rasstoyaniestropil = $(this).find('input[name="rasstoyaniestropil"]').val();
2055        var razmerstropil = $(this).find('input[name="razmerstropil"]').val();
2056        var razmerobreshetki = $(this).find('input[name="razmerobreshetki"]').val();
2057        var montazh1 = $('input[name="montazh1"]').is(":checked") ? 1 : 0;
2058        var montazh2 = $('input[name="montazh2"]').is(":checked") ? 1 : 0;
2059        var montazh3 = $('input[name="montazh3"]').is(":checked") ? 1 : 0;
2060        var montazh = $(this).find('input[name="montazh"]').val();
2061        var okladehvat = $('input[name="okladehvat"]').is(":checked") ? 1 : 0;
2062        var tipoklada = $(this).find('input[name="tipoklada"]').val();
2063        var accessoriesforystanovka = $(this).find('textarea[name="accessoriesforystanovka"]').val();
2064        var accessoriesnaruzhvnytr = $(this).find('textarea[name="accessoriesnaruzhvnytr"]').val();
2065        var srok = $(this).find('input[name="srok"]').val();
2066        var zamechaniya = $(this).find('textarea[name="zamechaniya"]').val();
2067
2068        var link = window.location.toString();
2069        var dateMark = getDateMark();
2070        /*grecaptcha.ready(function() {
2071          	grecaptcha.execute('6LcUPtAZAAAAAFkn-rAIvJZRmDJcGa_uFYkxzzNc', {action: 'submit'}).then(function(token) {
2072				var captcha = $('.g-recaptcha-response').val();*/
2073        $.ajax({
2074            url: '/mail.php',
2075            type: 'POST',
2076            data: ({ type: 'balkon', buyer_name, buyer_address, window_address, buyer_phone, firm, firm_name, firm_address, firm_phone, size78255, size94255, size114255, roof__degree, obreshetka, yteplitel, stropila, gidroplenka, paroplenka, myagkayacherepitsa, metallocherepitsa, naturalcherepitsa, falcevayakrovlya, pokritie, razmerstropil, razmerobreshetki, montazh1, montazh2, montazh3, montazh, okladehvat, tipoklada, accessoriesforystanovka, accessoriesnaruzhvnytr, srok, zamechaniya, link, dateMark /*'g-recaptcha-response':captcha*/ }),
2077            dataType: 'html',
2078            beforeSend: function() {
2079                console.log('start sending');
2080            },
2081            success: function(data) {
2082                console.log(data);
2083                if (data === 'ok') {
2084                    currentForm.find('.mof__content').hide();
2085                    currentForm.find('.callback__thanks').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
2086                } else if (data === 'wrong') {
2087                    currentForm.find('.mof__content').hide();
2088                    currentForm.find('.callback__error').fadeIn();
2089                }
2090            }
2091        });
2092        /* });
2093        });*/
2094        //grecaptcha.reset();	
2095        return false;
2096    });
2097
2098
2099    // Раксрытие гармошки категорий
2100    $('.cats__item.deeper .cats__item-title:not(.final)').click(function() {
2101        $(this).next('.cats__subitems').slideToggle();
2102        $(this).toggleClass('open');
2103    });
2104
2105    $('.cats__item-title.final').click(function() {
2106        $(this).next('.cats__item-products').slideToggle();
2107        $(this).toggleClass('open');
2108    });
2109
2110    var getParams = window.location.search.replace('?', '').split('&').reduce(function(p, e) {
2111        var a = e.split('=');
2112        p[decodeURIComponent(a[0])] = decodeURIComponent(a[1]);
2113        return p;
2114    }, {});
2115
2116    if (getParams['prodid']) {
2117        console.log(getParams['prodid']);
2118        let activeProduct = $('.cats__product[data-id="' + getParams['prodid'] + '"]');
2119        activeProduct.addClass('active');
2120        activeProduct.parent().show();
2121        activeProduct.parent().siblings('.cats__item-title').addClass('open');
2122        activeProduct.parents('.cats__subitems').show();
2123        activeProduct.parents('.cats__item').children('.cats__item-title').addClass('open');
2124    } else {
2125        console.log('no id');
2126    }
2127
2128    if (getParams['prodidsouth']) {
2129        console.log(getParams['prodidsouth']);
2130        let activeProduct = $('.cats__product[data-id="' + getParams['prodidsouth'] + '"]');
2131        activeProduct.addClass('active');
2132        activeProduct.parent().show();
2133        activeProduct.parent().siblings('.cats__item-title').addClass('open');
2134        activeProduct.parents('.cats__subitems').show();
2135        activeProduct.parents('.cats__item').children('.cats__item-title').addClass('open');
2136    } else {
2137        console.log('no idsouth');
2138    }
2139
2140    if ($('._south-search').length > 0) {
2141        let target = $('._south-search').offset().top;
2142        console.log(target);
2143        $('HTML, BODY').animate({ scrollTop: target - 200 }, 300);
2144    }
2145
2146    $('.ostatok__search:not(.south)').submit(function(e) {
2147        e.preventDefault();
2148        let form = $(this);
2149        let searchString = form.find('input[name="search_string"]').val();
2150        if (searchString.length < 3) {
2151            alert('Введите в строку поиска не меньше 3 символов!');
2152            return false;
2153        } else {
2154            $(this).unbind('submit').submit();
2155        }
2156    });
2157    $('.ostatok__search.south').submit(function(e) {
2158        e.preventDefault();
2159        let form = $(this);
2160        let searchString = form.find('input[name="search_string_south"]').val();
2161        if (searchString.length < 3) {
2162            alert('Введите в строку поиска не меньше 3 символов!');
2163            return false;
2164        } else {
2165            $(this).unbind('submit').submit();
2166        }
2167    });
2168
2169    function decode(responseArrayBuffer) {
2170        const
2171            dataView = new DataView(responseArrayBuffer),
2172            decoder = new TextDecoder('windows-1251');
2173        return decoder.decode(dataView);
2174    }
2175
2176    if ($('form.ostatok__search').length > 0) {
2177        const xhrArrayBuffer = new XMLHttpRequest();
2178        xhrArrayBuffer.responseType = 'arraybuffer';
2179        var allProductsFromFile = [];
2180        $.ajax({
2181            url: '/store/internet.csv',
2182            method: 'GET',
2183            xhr: function() {
2184                return xhrArrayBuffer;
2185            },
2186            success: function(data) {
2187                let newData = decode(data);
2188                let allRows = newData.split(/\r?\n|\r/);
2189                for (let singleRow = 0; singleRow < allRows.length; singleRow++) {
2190                    let rowCells = allRows[singleRow].split(';');
2191                    if (rowCells[1]) {
2192                        allProductsFromFile.push(rowCells[1]);
2193                    }
2194                }
2195            }
2196        }).done(function() {
2197            allProductsFromFile = $.unique(allProductsFromFile);
2198        });
2199
2200        const xhrExpectedArrayBuffer = new XMLHttpRequest();
2201        xhrExpectedArrayBuffer.responseType = 'arraybuffer';
2202        var allExpectedProductsFromFile = [];
2203        $.ajax({
2204            url: '/store/expect.csv',
2205            method: 'GET',
2206            xhr: function() {
2207                return xhrExpectedArrayBuffer;
2208            },
2209            success: function(expectedData) {
2210                let newExpectedData = decode(expectedData);
2211                //console.log(newData);
2212                let allExpectedRows = newExpectedData.split(/\r?\n|\r/);
2213                for (let singleExpectedRow = 0; singleExpectedRow < allExpectedRows.length; singleExpectedRow++) {
2214                    let rowExpectedCells = allExpectedRows[singleExpectedRow].split('№%#');
2215                    if (rowExpectedCells[1]) {
2216                        allExpectedProductsFromFile.push(rowExpectedCells[1]);
2217                    }
2218                }
2219            }
2220        }).done(function() {
2221            allExpectedProductsFromFile = $.unique(allExpectedProductsFromFile);
2222        });
2223
2224        var inputQuickResults = [];
2225        $('input[name="search_string"]').on('input', function() {
2226            const allTotalProducts = [...new Set([...allProductsFromFile, ...allExpectedProductsFromFile])];
2227            if ($(this).val().length > 2) {
2228                var str = $(this).val();
2229                inputQuickResults = allTotalProducts.filter((el) => el.toLowerCase().indexOf(str.toLowerCase()) >= 0);
2230                if (inputQuickResults.length > 0) {
2231                    let htmlHints = '';
2232                    inputQuickResults.forEach(function(el) {
2233                        htmlHints += '<a href="?search_string=' + (el.replace(/"/g, '&quot;').replace(/\+/g, '%2B')) + '" class="ostatok__hint">' + el + '</a>';
2234                    });
2235                    $('.ostatok__hints:not(.south)').html(htmlHints);
2236                    $('.ostatok__hints:not(.south)').show();
2237                }
2238            }
2239        });
2240
2241        $(document).mouseup(function(e) {
2242            $(".ostatok__hints").each(function() {
2243                var div = $(this);
2244                if (!div.is(e.target) &&
2245                    div.has(e.target).length === 0) {
2246                    div.hide().removeClass('show');
2247                }
2248            });
2249        });
2250
2251        var allProductsFromFileSouth = [];
2252        $.ajax({
2253            url: '/south/internet.csv',
2254            method: 'GET',
2255            success: function(data) {
2256                let newData = data;
2257                let allRows = newData.split(/\r?\n|\r/);
2258                for (let singleRow = 0; singleRow < allRows.length; singleRow++) {
2259                    let rowCells = allRows[singleRow].split(';');
2260                    if (rowCells[1]) {
2261                        allProductsFromFileSouth.push(rowCells[1]);
2262                    }
2263                }
2264            }
2265        }).done(function() {
2266            allProductsFromFileSouth = $.unique(allProductsFromFileSouth);
2267        });
2268
2269        var inputQuickResultsSouth = [];
2270        $('input[name="search_string_south"]').on('input', function() {
2271            if ($(this).val().length > 2) {
2272                var str = $(this).val();
2273                inputQuickResultsSouth = allProductsFromFileSouth.filter((el) => el.toLowerCase().indexOf(str.toLowerCase()) >= 0);
2274                if (inputQuickResultsSouth.length > 0) {
2275                    let htmlHintsSouth = '';
2276                    inputQuickResultsSouth.forEach(function(el) {
2277                        htmlHintsSouth += '<a href="?search_string_south=' + (el.replace(/"/g, '&quot;').replace(/\+/g, '%2B')) + '" class="ostatok__hint">' + el + '</a>';
2278                    });
2279                    $('.ostatok__hints.south').html(htmlHintsSouth);
2280                    $('.ostatok__hints.south').show();
2281                }
2282            }
2283        });
2284
2285        $(document).mouseup(function(e) {
2286            $(".ostatok__hints").each(function() {
2287                var div = $(this);
2288                if (!div.is(e.target) &&
2289                    div.has(e.target).length === 0) {
2290                    div.hide().removeClass('show');
2291                }
2292            });
2293        });
2294
2295        $('.ostatok__reset').click(function() {
2296            //window.location = window.location.href.split("?")[0];
2297            //location.replace(window.location.href.split("?")[0]);
2298            $(this).hide();
2299            $('.cats__item-title.open').removeClass('open');
2300            $('.cats__subitems').hide();
2301            $('.cats__item-products').hide();
2302            $('.cats__product.active').removeClass('active');
2303            $('._store-search').hide();
2304            $('._south-search').hide();
2305            $('.ostatok__search-input').val('');
2306            history.pushState(null, 'Свободный остаток на складах', window.location.href.split("?")[0]);
2307
2308        });
2309    }
2310
2311    //Слайдер с историями
2312    if ($('.stories__slider').length > 0) {
2313    	var stories__slider = new Swiper(".stories__slider", {
2314		    slidesPerView: 'auto',
2315		    /*spaceBetween: 20,*/
2316		    scrollbar: {
2317		        el: ".swiper-scrollbar",
2318		        draggable: true,
2319		    },
2320            navigation: {
2321                nextEl: '.stories__slider-next',
2322                prevEl: '.stories__slider-prev',
2323            },
2324		    /*breakpoints: {
2325		    	380: {
2326		            slidesPerView: 1,
2327		        },
2328		        584: {
2329		            slidesPerView: 2,
2330		        },
2331		        767: {
2332		            slidesPerView: 3,
2333		        },
2334		        991: {
2335		            slidesPerView: 4,
2336		        },
2337		        1199: {
2338		            slidesPerView: 5,
2339		        },
2340		    },*/
2341		});
2342        Fancybox.bind("[data-fancybox]", {
2343            buttons: [
2344                "close"
2345            ]
2346        });
2347    }
2348    
2349    
2350});
2351
2352
2353
2354////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2355
2356$(document).on('click', '.limitless__button2', function() {
2357    $('input[name="work_address"]').val($('input[name="delivery_address"]').val());
2358});
2359
2360$('.limitless').submit(function(e) {
2361    e.preventDefault();
2362    let currentForm = $(this);
2363
2364    var filesSize = 0;
2365    $.each($('#files')[0].files, function(key, value) {
2366        filesSize += value.size;
2367    });
2368
2369    if (filesSize > 15728640) {
2370        alert('Вес файлов превышает 15 Мб! Пожалуйста загружайте файлы меньшего размера или уменьшите их количество');
2371        return false;
2372    }
2373
2374    if ($('#files')[0].files.length == 0) {
2375        alert('Загрузите хотя бы одно фото');
2376        return false;
2377    }
2378
2379    if (!$('#fakro_agree_second').prop('checked')) {
2380        alert('Поставьте галочку, что Вы согласны на обработку персональной информации');
2381        return false;
2382    }
2383
2384    if ($('#files')[0].files.length > 3) {
2385        alert('Количество файлов больше трёх! Загружайте не более трёх файлов');
2386        return false;
2387    }
2388
2389    var link = window.location.toString();
2390    var dateMark = getDateMark();
2391    var form_data = new FormData(this);
2392
2393    form_data.append('link', link);
2394    form_data.append('dateMark', dateMark);
2395
2396    $.ajax({
2397        url: '/mail2.php',
2398        type: 'POST',
2399        cache: false,
2400        contentType: false,
2401        processData: false,
2402        data: form_data,
2403        dataType: 'html',
2404        beforeSend: function() {
2405            console.log('start sending');
2406        },
2407        success: function(data) {
2408            console.log('wow');
2409            console.log(data);
2410            if (data === 'ok') {
2411                currentForm.find('.limitless__content').hide();
2412                currentForm.find('.limitless__success').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
2413            } else if (data === 'wrong') {
2414                currentForm.find('.limitless__content').hide();
2415                currentForm.find('.limitless__error').fadeIn();
2416            }
2417            $("body,html").animate({ scrollTop: $('.limitless__response').offset().top - 50 }, 500);
2418        }
2419    });
2420
2421    /*$.ajax({
2422        url: 'https://script.google.com/macros/s/AKfycbyhr0cnfPE-Jf_qE1qbLPUYlc_visOCTgYJ3DJva_7psVaK_iKjvCRUijB-Dqk9YNI0fg/exec',
2423        type: 'POST',
2424        cache: false,
2425        contentType: false,
2426        processData: false,
2427        data: form_data,
2428        dataType: 'html',
2429        beforeSend: function() {
2430            console.log('start');
2431        },
2432        success: function(data) {
2433            console.log(data);
2434        }
2435    }).done(function(res, textStatus, jqXHR) {
2436        if (jqXHR.readyState === 4 && jqXHR.status === 200) {
2437            console.log('all ok');
2438        } else {
2439            console.log('Гугл не ответил статусом 200');
2440        }
2441    }).fail(function(res, textStatus, jqXHR) {
2442        console.log('Не удалось выполнить запрос по указанному в скрипте пути');
2443    });*/
2444
2445    return false;
2446});
2447
2448//Тут что-то пошло не так
2449$('.limitless3').submit(function(e) {
2450    e.preventDefault();
2451    let currentForm = $(this);
2452
2453    var filesSize = 0;
2454    $.each($('#files')[0].files, function(key, value) {
2455        filesSize += value.size;
2456    });
2457
2458    if (filesSize > 15728640) {
2459        alert('Вес файлов превышает 15 Мб! Пожалуйста загружайте файлы меньшего размера или уменьшите их количество');
2460        return false;
2461    }
2462
2463    if ($('#files')[0].files.length == 0) {
2464        alert('Загрузите хотя бы одно фото');
2465        return false;
2466    }
2467
2468    if (!$('#fakro_agree_second').prop('checked')) {
2469        alert('Поставьте галочку, что Вы согласны на обработку персональной информации');
2470        return false;
2471    }
2472
2473    if ($('#files')[0].files.length > 3) {
2474        alert('Количество файлов больше трёх! Загружайте не более трёх файлов');
2475        return false;
2476    }
2477
2478    var link = window.location.toString();
2479    var dateMark = getDateMark();
2480    var form_data = new FormData(this);
2481
2482    form_data.append('link', link);
2483    form_data.append('dateMark', dateMark);
2484
2485    form_data.forEach((value, key) => {
2486        console.log(`${key}: ${value}`);
2487    });
2488    console.log(form_data.get('files'));
2489
2490    $.ajax({
2491        url: '/mail3.php',
2492        type: 'POST',
2493        cache: false,
2494        contentType: false,
2495        processData: false,
2496        data: form_data,
2497        dataType: 'html',
2498        beforeSend: function() {
2499            console.log('start sending');
2500        },
2501        success: function(data) {
2502            console.log('wow');
2503            console.log(data);
2504            if (data === 'ok') {
2505                currentForm.find('.limitless__content').hide();
2506                currentForm.find('.limitless__success').append('<div>Номер вашей заявки: <span style="color:#50AC25;">' + dateMark + '</span></div>').fadeIn();
2507            } else if (data === 'wrong') {
2508                currentForm.find('.limitless__content').hide();
2509                currentForm.find('.limitless__error').fadeIn();
2510            }
2511            $("body,html").animate({ scrollTop: $('.limitless__response').offset().top - 50 }, 500);
2512        }
2513    });
2514
2515    /*$.ajax({
2516        url: 'https://script.google.com/macros/s/AKfycbyhr0cnfPE-Jf_qE1qbLPUYlc_visOCTgYJ3DJva_7psVaK_iKjvCRUijB-Dqk9YNI0fg/exec',
2517        type: 'POST',
2518        cache: false,
2519        contentType: false,
2520        processData: false,
2521        data: form_data,
2522        dataType: 'html',
2523        beforeSend: function() {
2524            console.log('start');
2525        },
2526        success: function(data) {
2527            console.log(data);
2528        }
2529    }).done(function(res, textStatus, jqXHR) {
2530        if (jqXHR.readyState === 4 && jqXHR.status === 200) {
2531            console.log('all ok');
2532        } else {
2533            console.log('Гугл не ответил статусом 200');
2534        }
2535    }).fail(function(res, textStatus, jqXHR) {
2536        console.log('Не удалось выполнить запрос по указанному в скрипте пути');
2537    });*/
2538
2539    return false;
2540});
2541
2542
2543document.addEventListener("DOMContentLoaded", () => {
2544
2545    let script = document.createElement('script');
2546
2547    script.src = "/templates/fakro/js/BeerSlider.js"
2548    document.head.append(script);
2549
2550    script.onload = function() {
2551        for (let elem of document.querySelectorAll('.beer-slider ')) {
2552            new BeerSlider(elem);
2553        }
2554    }
2555
2556
2557    if ($('form.limitless').length || $('form.limitless3').length) {
2558        let head2 = document.getElementsByTagName('head')[0];
2559        let link2 = document.createElement('link');
2560        link2.rel = 'stylesheet';
2561        link2.type = 'text/css';
2562        link2.href = '/templates/fakro/css/jquery-ui.css';
2563        link2.media = 'all';
2564        head2.appendChild(link2);
2565
2566        let script2 = document.createElement('script');
2567
2568        script2.src = "/templates/fakro/js/jquery-ui.js"
2569        document.head.append(script2);
2570
2571        script2.onload = function() {
2572
2573
2574            $.datepicker.regional['ru'] = {
2575
2576                closeText: 'Закрыть',
2577
2578                prevText: 'Предыдущий',
2579
2580                nextText: 'Следующий',
2581
2582                currentText: 'Сегодня',
2583
2584                monthNames: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
2585
2586                monthNamesShort: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
2587
2588                dayNames: ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
2589
2590                dayNamesShort: ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],
2591
2592                dayNamesMin: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
2593
2594                weekHeader: 'Не',
2595
2596                dateFormat: 'dd.mm.yy',
2597
2598                firstDay: 1,
2599
2600                isRTL: false,
2601
2602                showMonthAfterYear: false,
2603
2604                yearSuffix: ''
2605
2606            };
2607
2608            $.datepicker.setDefaults($.datepicker.regional['ru']);
2609
2610            $('input[name="buy_date"]').datepicker();
2611            $('input[name="install_date"]').datepicker();
2612            $('input[name="find_date"]').datepicker();
2613
2614        }
2615
2616
2617
2618        let script3 = document.createElement('script');
2619
2620        script3.src = "/templates/fakro/js/jquery.maskedinput.min.js"
2621        document.head.append(script3);
2622
2623        script3.onload = function() {
2624
2625            let shortDate = new Intl.DateTimeFormat("ru", { dateStyle: "short" }).format(new Date());
2626
2627            $('input[name="date1"]').mask("99.99.2099");
2628            $('input[name="date2"]').mask("99.99.2099");
2629
2630            $('input[name="date1"]').val(shortDate);
2631            $('input[name="date2"]').val(shortDate);
2632
2633            $('input[name="phone"]').mask("+7(999)999-9999");
2634
2635
2636        }
2637
2638    }
2639
2640});
2641
2642$('.input-password-toggle').click(function() {
2643    if ($(this).parent().find('input').attr('type') == 'password') {
2644        $(this).html('Скрыть пароль');
2645        $(this).parent().find('input').attr('type', 'text');
2646    } else {
2647        $(this).html('Показать пароль');
2648        $(this).parent().find('input').attr('type', 'password');
2649    }
2650    return false;
2651});
2652
2653$('.modal-trainings-form').submit(function(e) {
2654    e.preventDefault();
2655    let currentForm = $(this);
2656
2657    var link = window.location.toString();
2658    var form_data = new FormData(this);
2659    let training_type = $('.training-type').text();
2660
2661    form_data.append('type', 'training');
2662    form_data.append('link', link);
2663    form_data.append('training_type', training_type);
2664
2665
2666    $.ajax({
2667        url: '/mail.php',
2668        type: 'POST',
2669        cache: false,
2670        contentType: false,
2671        processData: false,
2672        data: form_data,
2673        dataType: 'html',
2674        beforeSend: function() {
2675            console.log('start sending');
2676            currentForm.find('.modal-trainings-form__content').hide();
2677            currentForm.find('.modal-trainings-form__wait').fadeIn();
2678        },
2679        success: function(data) {
2680            console.log('wow');
2681            console.log(data);
2682            if (data === 'ok') {
2683                currentForm.find('.modal-trainings-form__wait').hide();
2684                currentForm.find('.modal-trainings-form__thanks').fadeIn();
2685            } else if (data === 'wrong') {
2686                currentForm.find('.modal-trainings-form__wait').hide();
2687                currentForm.find('.modal-trainings-form__error').fadeIn();
2688            }
2689        }
2690    });
2691
2692    $.ajax({
2693        url: 'https://script.google.com/macros/s/AKfycbxCNKW25KrvqQMzvg_lgYLhaJIYu_BkiWcxqqi59tz_00fUiQzy6CR9S0IrJ2pqVp6jLQ/exec',
2694        type: 'POST',
2695        cache: false,
2696        contentType: false,
2697        processData: false,
2698        data: form_data,
2699        dataType: 'html',
2700        beforeSend: function() {
2701            console.log('start');
2702        },
2703        success: function(data) {
2704            console.log(data);
2705        }
2706    }).done(function(res, textStatus, jqXHR) {
2707        if (jqXHR.readyState === 4 && jqXHR.status === 200) {
2708            console.log('all ok');
2709        } else {
2710            console.log('Гугл не ответил статусом 200');
2711        }
2712    }).fail(function(res, textStatus, jqXHR) {
2713        console.log(res);
2714        console.log(textStatus);
2715        console.log(jqXHR);
2716        console.log('Не удалось выполнить запрос по указанному в скрипте пути');
2717    });
2718
2719    return false;
2720});
2721
2722
2723$('.modal-teachings-form').submit(function(e) {
2724    e.preventDefault();
2725    let currentForm = $(this);
2726
2727    var link = window.location.toString();
2728    var form_data = new FormData(this);
2729
2730    form_data.append('type', 'teachings');
2731    form_data.append('link', link);
2732
2733    $.ajax({
2734        url: '/mail.php',
2735        type: 'POST',
2736        cache: false,
2737        contentType: false,
2738        processData: false,
2739        data: form_data,
2740        dataType: 'html',
2741        beforeSend: function() {
2742            console.log('start sending');
2743            currentForm.find('.modal-teachings-form__content').hide();
2744            currentForm.find('.modal-teachings-form__wait').fadeIn();
2745        },
2746        success: function(data) {
2747            console.log('wow');
2748            console.log(data);
2749            if (data === 'ok') {
2750                currentForm.find('.modal-teachings-form__wait').hide();
2751                currentForm.find('.modal-teachings-form__thanks').fadeIn();
2752            } else if (data === 'wrong') {
2753                currentForm.find('.modal-teachings-form__wait').hide();
2754                currentForm.find('.modal-teachings-form__error').fadeIn();
2755            }
2756        }
2757    });
2758
2759    $.ajax({
2760        url: 'https://script.google.com/macros/s/AKfycbzsZ50W4GRQj4ZzQgwQNDXglwaDLluvsuHaLEyu333M_jyWYDpVOiZDdsM-UjrjR_zkWA/exec',
2761        type: 'POST',
2762        cache: false,
2763        contentType: false,
2764        processData: false,
2765        data: form_data,
2766        dataType: 'html',
2767        beforeSend: function() {
2768            console.log('start');
2769        },
2770        success: function(data) {
2771            console.log(data);
2772        }
2773    }).done(function(res, textStatus, jqXHR) {
2774        if (jqXHR.readyState === 4 && jqXHR.status === 200) {
2775            console.log('all ok');
2776        } else {
2777            console.log('Гугл не ответил статусом 200');
2778        }
2779    }).fail(function(res, textStatus, jqXHR) {
2780        console.log(res);
2781        console.log(textStatus);
2782        console.log(jqXHR);
2783        console.log('Не удалось выполнить запрос по указанному в скрипте пути');
2784    });
2785
2786    return false;
2787});
2788
2789$('.modal-obuchenie-form').submit(function(e) {
2790    e.preventDefault();
2791    let currentForm = $(this);
2792
2793    var link = window.location.toString();
2794    var form_data = new FormData(this);
2795
2796    form_data.append('type', 'obuchenie');
2797    form_data.append('link', link);
2798
2799    $.ajax({
2800        url: '/mail.php',
2801        type: 'POST',
2802        cache: false,
2803        contentType: false,
2804        processData: false,
2805        data: form_data,
2806        dataType: 'html',
2807        beforeSend: function() {
2808            console.log('start sending');
2809            currentForm.find('.modal-teachings-form__content').hide();
2810            currentForm.find('.modal-teachings-form__wait').fadeIn();
2811        },
2812        success: function(data) {
2813            console.log('wow');
2814            console.log(data);
2815            if (data === 'ok') {
2816                currentForm.find('.modal-teachings-form__wait').hide();
2817                currentForm.find('.modal-teachings-form__thanks').fadeIn();
2818            } else if (data === 'wrong') {
2819                currentForm.find('.modal-teachings-form__wait').hide();
2820                currentForm.find('.modal-teachings-form__error').fadeIn();
2821            }
2822        }
2823    });
2824
2825    $.ajax({
2826        url: 'https://script.google.com/macros/s/AKfycbzuujeI7FKlzP-Wd7p53pgxOix0xN7TggQRm8wEF4cjfgV9CvFbaaufJZAogHRYjx4TGg/exec',
2827        type: 'POST',
2828        cache: false,
2829        contentType: false,
2830        processData: false,
2831        data: form_data,
2832        dataType: 'html',
2833        beforeSend: function() {
2834            console.log('start');
2835        },
2836        success: function(data) {
2837            console.log(data);
2838        }
2839    }).done(function(res, textStatus, jqXHR) {
2840        if (jqXHR.readyState === 4 && jqXHR.status === 200) {
2841            console.log('all ok');
2842        } else {
2843            console.log('Гугл не ответил статусом 200');
2844        }
2845    }).fail(function(res, textStatus, jqXHR) {
2846        console.log(res);
2847        console.log(textStatus);
2848        console.log(jqXHR);
2849        console.log('Не удалось выполнить запрос по указанному в скрипте пути');
2850    });
2851
2852    return false;
2853});
2854
2855
2856$('input#searchseminar').on('input', function() {
2857    if ($(this).val().length < 3) {
2858        $('table.searchcity tbody tr').show();
2859        $('.searchseminar__results').hide();
2860        return false;
2861    }
2862    var totalCities = 0;
2863    var str = $(this).val();
2864    var reg = new RegExp(str, 'gi');
2865    $('table.searchcity tbody tr:not(:first)').each(function() {
2866        if ($(this).attr('data-city').search(reg) >= 0) {
2867            $(this).show();
2868            totalCities += 1;
2869        } else {
2870            $(this).hide();
2871        }
2872    });
2873    if (totalCities == 0) {
2874        $('table.searchcity tbody tr:first').hide();
2875        $('.searchseminar__results').show();
2876    } else {
2877        $('table.searchcity tbody tr:first').show();
2878        $('.searchseminar__results').hide();
2879    }
2880
2881});
2882
2883$('.photocomp').submit(function(e) {
2884    e.preventDefault();
2885    let currentForm = $(this);
2886
2887    var filesSize = 0;
2888    $.each($('#files')[0].files, function(key, value) {
2889        filesSize += value.size;
2890    });
2891
2892    if (filesSize > 15728640) {
2893        alert('Вес файлов превышает 15 Мб! Пожалуйста загружайте файлы меньшего размера или уменьшите их количество');
2894        return false;
2895    }
2896
2897    if ($('#files')[0].files.length == 0) {
2898        alert('Загрузите хотя бы одно фото');
2899        return false;
2900    }
2901
2902    /*if($('#files')[0].files.length > 3) {
2903    	alert('Количество файлов больше трёх! Загружайте не более трёх файлов');
2904    	return false;
2905    }*/
2906
2907    var link = window.location.toString();
2908    var form_data = new FormData(this);
2909
2910    form_data.append('type', 'photocomp');
2911    form_data.append('link', link);
2912
2913    $.ajax({
2914        url: '/mail.php',
2915        type: 'POST',
2916        cache: false,
2917        contentType: false,
2918        processData: false,
2919        data: form_data,
2920        dataType: 'html',
2921        beforeSend: function() {
2922            console.log('start sending');
2923            currentForm.hide();
2924            currentForm.parent().find('.photocomp__sending').show();
2925        },
2926        success: function(data) {
2927            console.log('wow');
2928            console.log(data);
2929            currentForm.parent().find('.photocomp__sending').hide();
2930            if (data === 'ok') {
2931                currentForm.parent().find('.photocomp__thanks').show();
2932            } else if (data === 'wrong') {
2933                currentForm.parent().find('.photocomp__error').show();
2934            }
2935        }
2936    });
2937
2938    $.ajax({
2939        url: 'https://script.google.com/macros/s/AKfycbyPNPqkqIBHcEVbai6IkPIS8i9htdeVvnEya_MCY2bez9V8D0azRH2GViFs6-jJTBIQqQ/exec',
2940        type: 'POST',
2941        cache: false,
2942        contentType: false,
2943        processData: false,
2944        data: form_data,
2945        dataType: 'html',
2946        beforeSend: function() {
2947            console.log('start');
2948        },
2949        success: function(data) {
2950            console.log(data);
2951        }
2952    }).done(function(res, textStatus, jqXHR) {
2953        if (jqXHR.readyState === 4 && jqXHR.status === 200) {
2954            console.log('all ok');
2955        } else {
2956            console.log('Гугл не ответил статусом 200');
2957        }
2958    }).fail(function(res, textStatus, jqXHR) {
2959        console.log(res);
2960        console.log(textStatus);
2961        console.log(jqXHR);
2962        console.log('Не удалось выполнить запрос по указанному в скрипте пути');
2963    });
2964
2965    return false;
2966});
2967
2968if ($('.activategarant__form').length > 0) {
2969    $('#files_start').on('change', function() {
2970        let inputFiles = $(this);
2971        let types = ['jpg', 'jpeg', 'png', 'JPG', 'JPEG', 'PNG'];
2972        //let arr = $(this)[0].files[0].name.split('.');
2973        $.each($(this)[0].files, function (key, value) {
2974            let arrName = value.name.split('.');
2975            let ext = arrName[arrName.length - 1];
2976            console.log(ext);
2977            if ($.inArray(ext, types) < 0) {
2978                inputFiles.val('');
2979                alert("Расширение файлов не соответствует разрешенному!");
2980            }
2981        });
2982        $('.novzastar__form-files-info').html('Загружаемых файлов: ' + inputFiles[0].files.length);
2983    });
2984    
2985    $('.activategarant__form').submit(function(e) {
2986        e.preventDefault();
2987        let currentForm = $(this);
2988
2989        let filesSize = 0;
2990        if ($('#files_start')[0].files.length == 0) {
2991            alert('Не выбрано ни одного файла!');
2992            return false;
2993        }
2994        $.each( $('#files_start')[0].files, function( key, value ){
2995            filesSize += value.size;
2996        });
2997
2998        if (filesSize > 15728640) {
2999            alert('Вес файлов превышает 15 Мб!');
3000            return false;
3001        }
3002
3003        var link = window.location.toString();
3004        var form_data = new FormData(this);
3005
3006        form_data.append('type', 'activategarant');
3007        form_data.append('link', link);
3008
3009        $.ajax({
3010            url: '/mail.php',
3011            type: 'POST',
3012            cache: false,
3013            contentType: false,
3014            processData: false,
3015            data: form_data,
3016            dataType: 'html',
3017            beforeSend: function() {
3018                console.log('start sending');
3019                currentForm.find('.activategarant__form-content').hide();
3020                currentForm.find('.activategarant__loading').fadeIn();
3021            },
3022            success: function(data) {
3023                console.log('wow');
3024                console.log(data);
3025                if (data === 'ok') {
3026                    currentForm.find('.activategarant__loading').hide();
3027                    currentForm.find('.activategarant__thanks').fadeIn();
3028                } else if (data === 'wrong') {
3029                    currentForm.find('.activategarant__loading').hide();
3030                    currentForm.find('.activategarant__error').fadeIn();
3031                }
3032            }
3033        });
3034
3035        return false;
3036    });
3037}
3038

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.