PageSourceSearch

https://www.0532.ua/assets/c4271ba4/design/js/main.js?v=1789825604

js 0532.ua collected 2026-10-02 10:23:42 UTC 46,779 bytes, 1,565 lines download raw bytes

1$(document).ready(function () {
2$.ajaxPrefilter(function (options) {
3    if (options.crossDomain) {
4        options.headers = {'X-Requested-With': 'XMLHttpRequest'};
5        options.xhrFields = {withCredentials: true};
6    }
7});
8
9(function () {
10    $('.js-hidden-item').hide();
11})();
12
13$(document).on("click", ".arrow-link", function () {
14    $(this).find(".arrow-link__inner").toggleClass("d-none");
15    $(this).closest('.js-hidden-item-container').find(".js-hidden-item").toggle();
16    return false;
17});
18
19$('.dropdown-group')
20    .mouseenter(function () {
21        $(this).addClass('is-open');
22    })
23    .mouseleave(function () {
24        $(this).removeClass('is-open');
25    });
26
27$('.c-special-card__pill').on('click', function () {
28    $(this).parent().siblings('.c-special-card__other').toggleClass('is-open');
29});
30
31$(function () {
32    if ($(window).width() > 920) {
33        $('.js-mini-dropdown')
34            .mouseenter(function () {
35                $(this).addClass('is-open');
36            })
37            .mouseleave(function () {
38                $(this).removeClass('is-open');
39            });
40    } else {
41        $('.js-mini-dropdown').on('click', function () {
42            var $this = $(this);
43            var $miniDropdown = $this.find('.js-mini-dropdown-list');
44            var closeDropDown = function () {
45                $('.dp-open').removeClass('dp-open');
46                $('.js-mini-dropdown-clone').remove();
47            };
48            closeDropDown();
49            $this.addClass('dp-open');
50            $miniDropdown.clone()
51                .css({
52                    position: 'absolute',
53                    display: 'block',
54                    right: 'unset',
55                    left: $this.offset().left - 14,
56                    top: $this.offset().top - 14,
57                    width: $miniDropdown.width(),
58                })
59                .addClass('js-mini-dropdown-clone')
60                .appendTo($('.underhead'));
61            $(document).one('click', closeDropDown);
62            $('.underhead__cols').one('scroll', closeDropDown);
63            return false;
64        });
65    }
66});
67
68$('.underhead__help-arrow').on('click', function () {
69    $(this).siblings('.underhead__col--courses').find('.underhead__cols').css('transform', 'translateX(-50px)');
70});
71
72$('.toggle-block__head .arrow').on('click', function () {
73    $(this).closest('.toggle-block').toggleClass('is-active');
74});
75
76(function articleVideoChecker () {
77    var $videoItems = $('.article-video iframe');
78    $videoItems.each(function() {
79        var $self = $(this),
80            videoItemContainer = $self.closest('.article-video'),
81            videoItemWidth = $self.width(),
82            videoItemHeight = $self.height(),
83            proportion = 0;
84
85        if ((videoItemWidth > videoItemHeight) && videoItemWidth) {
86            proportion = videoItemHeight/videoItemWidth;
87            videoItemContainer.css('padding-top', proportion*100 + '%');
88            videoItemContainer.addClass('absolutly-100');
89        } else {
90            return false;
91        }
92    });
93})();
94
95// catalog mobile top categories
96function mobileTopCategories() {
97
98    var list = $('.right-rate__list'),
99        item = list.find('.rate-item:gt(9)'),
100        moreBtn = list.find('.rate-item__more');
101
102    moreBtn.hide();
103
104    if ($(window).width() < 768) {
105
106        if (item.length > 0) {
107            moreBtn
108                .show();
109
110            list
111                .addClass('js-hidden-item-container');
112
113            item
114                .not('js-hidden-item')
115                .hide()
116                .addClass('js-hidden-item');
117        } else {
118            return false;
119        }
120
121    } else {
122
123        moreBtn
124            .hide();
125
126        list
127            .removeClass('js-hidden-item-container');
128
129        item
130            .show()
131            .removeClass('js-hidden-item');
132    }
133}
134
135$(window)
136    .on('resize', function () {
137        mobileTopCategories();
138    })
139    .triggerHandler('resize');
140
141$(document).on("click", ".checkbox-label, .radio-label", function () {
142    var $this = $(this),
143        $input = $("input.checkbox, input.radio", $this);
144    $input
145        .prop("checked", !$input.prop("checked"))
146        .trigger('change');
147    if ($this.is('.radio-label')) {
148        return false;
149    }
150});
151
152$(document).on("click", ".checkbox-label a.label, radio-label a.label", function (e) {
153    e.preventDefault();
154});
155
156(function () {
157    $('.js-link-complain').on('click', function (e) {
158        if (isUserAuthorized()) {
159            $(this).closest('.action-text').next('.js-complain-container').toggle();
160        } else {
161            showAuthWindow();
162        }
163        return false;
164    });
165
166    $('.js-question-cancel, .js-answer-cancel').on('click', function (e) {
167        e.preventDefault();
168        //
169        // if (isUserAuthorized()) {
170        //     $(this).parent().siblings('.js-question-complain').toggle();
171        // } else {
172        //     showAuthWindow();
173        // }
174        // return false;
175
176        $(this).parent().siblings('.js-question-complain').toggle();
177    });
178})();
179
180$(".chosen-select, .chosen-select_full-width, .chosen-select-add").each(function (index, element) {
181    initChosenByClass(this);
182});
183$('.toppage-search__link').one("click", "a", function () {
184    $(".chosen-select__under-hidden").each(function (index, element) {
185        initChosenByClass(this);
186    });
187});
188
189// COMPANY-PREMIUM DYNAMIC TABS
190var transItem = $('a.js-dynamic-tab');
191var dropdownContainer = $('.tabs-dropdown');
192var tabsContainer = $('.company-tabs');
193var resultWidth = 0;
194var containerWidth = 0;
195var tabMore = $('.tab-more');
196var tabMoreWidth = 0;
197
198tabMore.click(function () {
199    dropdownContainer.slideToggle(300);
200    $(this).toggleClass('active');
201});
202
203function containerWidthCheck() {
204    var p = tabsContainer.outerWidth();
205    return p;
206};
207
208function tabMoreWidthCheck() {
209    tabMoreWidth = tabMore.outerWidth();
210    return tabMoreWidth;
211}
212
213tabMoreWidth = tabMoreWidthCheck();
214
215containerWidth = containerWidthCheck();
216
217function tabHidden() {
218    transItem.each(function () {
219        resultWidth += $(this).outerWidth();
220        if (resultWidth >= (containerWidth - (tabMoreWidth + 2))) {
221            tabMore.show();
222            dropdownContainer.append($(this));
223        }
224    });
225    resultWidth = 0;
226};
227
228function tabShowing() {
229    transItem.each(function () {
230        resultWidth += $(this).outerWidth();
231        if (resultWidth <= containerWidth - (tabMoreWidth + 2)) {
232            $(this).insertBefore(tabMore);
233            tabMore.hide();
234        }
235    });
236    resultWidth = 0;
237};
238
239$(window)
240    .on('resize', function () {
241    containerWidth = containerWidthCheck();
242    tabShowing();
243    tabHidden();
244}).triggerHandler('resize');
245// END OF COMPANY-PREMIUM DYNAMIC TABS
246
247if ("function" === typeof $.fn.fancybox) {
248    $("[data-fancybox]").fancybox({
249        slideShow: false,
250        fullScreen: false,
251        thumbs: true,
252        infobar: true,
253        arrows: true
254    });
255}
256
257$(function () {
258    // hack for iOS browsers and adriver's iframe (old layout)
259    var rightBannerBlock = $('.br-container').not('.w-banner-container').find('div[id*="adriver"]');
260
261    rightBannerBlock.each(function () {
262        var $this = $(this);
263
264        if ($this.closest('.br-wrapper').length === 0) {
265            $this.find('iframe').css({
266                'width': '240px',
267                'height': '400px'
268            });
269        } else {
270            return false;
271        }
272    });
273});
274
275$(function () {
276    $('.footer__arrow').on('click', function () {
277        var footerArrow = $(this);
278
279        footerArrow.closest('.footer').toggleClass('is-open');
280
281        $('html, body').animate({scrollTop:$(document).height()}, 800);
282    });
283});
284function toggleBtnClass (clickElement, activeClassName) {
285    $(clickElement).click(function () {
286        var $this = $(this),
287            thisNeighbor = $this.siblings(clickElement);
288
289        thisNeighbor.removeClass(activeClassName);
290        $this.addClass(activeClassName);
291    })
292}
293
294$('.js-tabs__link').on('click', function () {
295    var link = $(this),
296        linkData = link.data('tab'),
297        contentContainer = link.closest('.js-tabs').find('.js-tabs__content'),
298        activeContentItem = contentContainer.find('.js-tabs__child.is-active');
299
300        activeContentItem.removeClass('is-active');
301        $('.js-tabs__child[data-tab=' + linkData + ']').addClass('is-active');
302});
303
304toggleBtnClass('.js-tabs__link', 'is-active');
305(function () {
306    $('.lvl-rubricator__icon').on('click', function () {
307        $(this).closest('.lvl-rubricator__group, .lvl-rubricator__subgroup').toggleClass('is-open');
308    });
309})();
310
311$(document).ready(function () {
312    var $window = $(window),
313        didScroll = false;
314
315    $window.on('scroll', function() {
316        didScroll = true;
317    }).triggerHandler('scroll');
318
319    setInterval(function() {
320        if (didScroll) {
321            didScroll = false;
322
323            $window.trigger('fastScroll');
324        }
325    }, 250);
326});
327
328$(function () {
329    var searchIcon = $('.search-icon'),
330        searchCloseIcon = $('.search-form__icon--right'),
331        searchInput = $('.search-form .search-form__input'),
332        searchContainer = $('.form-container');
333
334    searchIcon.on('click', function () {
335        searchContainer.addClass('form-container--active');
336        $('html, body').addClass('h-100');
337        $('body').addClass('overflow-hidden');
338        setTimeout(function(){
339            searchInput.focus();
340        }, 300);
341    });
342
343    searchCloseIcon.on('click', function () {
344        searchContainer.removeClass('form-container--active');
345        $('html, body').removeClass('h-100');
346        $('body').removeClass('overflow-hidden');
347    });
348
349    $(document).keydown(function (e) {
350        if (27 == e.keyCode) {
351            searchCloseIcon.click();
352        }
353    });
354});
355
356$(function () {
357    var $header = $('.header--regular');
358
359    if ($header.length) {
360        var $window = $(window),
361            $siteBody = $('body'),
362            topOfHeader = $header.offset().top,
363            lastScrollTop = 0;
364
365        function fixNav() {
366            if ($window.scrollTop() >= topOfHeader) {
367                $siteBody.css('padding-top', $header.outerHeight());
368                $siteBody.addClass('header-is-fixed');
369            } else {
370                $siteBody.removeClass('header-is-fixed');
371                $siteBody.css('padding-top', 0);
372            }
373        }
374
375        function scrollHeader() {
376            var currentScrollTop = window.pageYOffset || document.documentElement.scrollTop;
377
378            if ($siteBody.hasClass('header-is-fixed') && currentScrollTop > 200) {
379                (currentScrollTop > lastScrollTop) ?
380                    $header.css('transform', 'translateY(-110%)') :
381                    $header.css('transform', 'translateY(0)');
382
383                lastScrollTop = Math.max(currentScrollTop, 0);
384            } else {
385                $header.css('transform', 'translateY(0)');
386            }
387        }
388
389        $window.on('fastScroll', fixNav).triggerHandler('fastScroll');
390        $window.on('fastScroll', scrollHeader);
391    }
392});
393
394$('.modal').on('hidden.bs.modal', function () {
395    $('body').css('padding-right', '0');
396});
397
398var didresize = false;
399
400$(window).on('resize', function () {
401    didresize = true;
402}).triggerHandler('resize');
403
404setInterval(function () {
405    if (didresize) {
406        didresize = false;
407
408        $(window).trigger('fastResize');
409    }
410}, 250);
411
412if ($(window).width() < 920) {
413    $('.with-subrubrics .n-catalog-item__more').click(function () {
414        var $this = $(this),
415            $parent = $this.closest('.n-catalog-item');
416
417        if ($parent.hasClass('active')) {
418            $parent.removeClass('active');
419            return false;
420        }
421
422        $parent.closest('.row').find('.n-catalog-item').removeClass('active');
423        $parent.toggleClass('active');
424    });
425} else {
426    $('.n-catalog-item.with-subrubrics')
427        .mouseenter(function () {
428            $(this).addClass('active')
429        })
430        .mouseleave(function () {
431            $(this).removeClass('active')
432        });
433}
434
435if($(window).width() < 920) {
436    $('.c-rubric__arrow').click(function () {
437        var $this = $(this),
438            $thisParent = $this.closest('.c-rubric');
439
440        if ($thisParent.hasClass('is-active')) {
441            $thisParent.removeClass('is-active');
442            return false;
443        }
444
445        $thisParent.closest('.clearfix').find('.c-rubric').removeClass('is-active');
446        $thisParent.toggleClass('is-active');
447    });
448} else {
449    $('.c-rubric')
450        .mouseenter(function () {
451            $(this).addClass('is-active')
452        })
453        .mouseleave(function () {
454            $(this).removeClass('is-active')
455        });
456}
457
458$(function () {
459    var rubricItem = $('.c-rubric'),
460        rubricsParent = rubricItem.closest('.toggling-section__rubrics'),
461        summaryWidth = 0,
462        containerWidth = 0;
463
464    function containerWidthCheck() {
465        var cw = rubricsParent.width();
466        return cw;
467    }
468
469    function rubricHiding() {
470        rubricItem.each(function () {
471            summaryWidth += $(this).outerWidth(true);
472            if (summaryWidth >= (containerWidth - 20)) {
473                $(this).addClass('d-none');
474            }
475        });
476        summaryWidth = 0;
477    }
478
479    function rubricShowing() {
480        rubricItem.each(function () {
481            summaryWidth += $(this).outerWidth(true);
482            if (summaryWidth <= (containerWidth - 20)) {
483                $(this).removeClass('d-none');
484            }
485        });
486        summaryWidth = 0;
487    }
488
489    containerWidth = containerWidthCheck();
490
491    $(window).on('fastResize', function () {
492        containerWidth = containerWidthCheck();
493        rubricShowing();
494        rubricHiding();
495    }).triggerHandler('fastResize');
496
497});
498
499var expectedEvents = $('.expected-events-carousel'),
500    trailersCarousel = $('.trailers-carousel'),
501    companySlides = $('.company-slides-carousel'),
502    companyProducts = $('.company-products-carousel'),
503    widgetsCarousel = $('.widgets-carousel'),
504    cisOfficeCarousel = $('.office-carousel'),
505    filmsCarousel = $('.films-carousel'),
506    attentionItemsCarousel = $('.attention-items-carousel'),
507    companiesSectionCarousel = $('.companies-section-carousel'),
508    cardSlider = $('.card-slider'),
509    cRegSlider = $('.l-slider'),
510    lReviewsSlider = $('.l-reviews-slider'),
511    lSalesSlider = $('.l-sales-slider');
512
513expectedEvents.slick({
514    infinite: false,
515    draggable: false,
516    adaptiveHeight: true,
517    rows: 0,
518    prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="40" height="40"><use xlink:href="#svg-arrow-back"></use></svg></button>',
519    nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="40" height="40"><use xlink:href="#svg-arrow-next"></use></svg></button>',
520    slidesToShow: 4,
521    responsive: [
522        {
523            breakpoint: 1220,
524            settings: {
525                slidesToShow: 3
526            }
527        },
528        {
529            breakpoint: 920,
530            settings: {
531                slidesToShow: 2
532            }
533        },
534        {
535            breakpoint: 768,
536            settings: {
537                slidesToShow: 1
538            }
539        }
540    ]
541});
542
543trailersCarousel.slick({
544    infinite: false,
545    draggable: false,
546    adaptiveHeight: true,
547    rows: 0,
548    prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="40" height="40"><use xlink:href="#svg-arrow-back"></use></svg></button>',
549    nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="40" height="40"><use xlink:href="#svg-arrow-next"></use></svg></button>',
550    slidesToShow: 6,
551    responsive: [
552        {
553            breakpoint: 1220,
554            settings: {
555                slidesToShow: 4
556            }
557        },
558        {
559            breakpoint: 768,
560            settings: {
561                slidesToShow: 2
562            }
563        }
564    ]
565});
566
567companySlides
568    .on("init", function () {
569        $(this).show();
570    })
571    .slick({
572        infinite: true,
573        adaptiveHeight: true,
574        autoplay: true,
575        autoplaySpeed: 5000,
576        draggable: false,
577        rows: 0,
578        prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="20" height="20"><use xlink:href="#svg-circle-arrow-left"></use></svg></button>',
579        nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="20" height="20"><use xlink:href="#svg-circle-arrow-right"></use></svg></button>',
580        responsive: [
581            {
582                breakpoint: 768,
583                settings: {
584                    arrows: false
585                }
586            }
587        ]
588    });
589
590companyProducts
591    .on("init", function () {
592        $(this).show();
593    })
594    .slick({
595        infinite: false,
596        draggable: false,
597        rows: 0,
598        prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="40" height="40"><use xlink:href="#svg-arrow-back"></use></svg></button>',
599        nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="40" height="40"><use xlink:href="#svg-arrow-next"></use></svg></button>',
600        slidesToShow: 4,
601        responsive: [
602            {
603                breakpoint: 1220,
604                settings: {
605                    slidesToShow: 3
606                }
607            },
608            {
609                breakpoint: 920,
610                settings: {
611                    slidesToShow: 2
612                }
613            },
614            {
615                breakpoint: 768,
616                settings: {
617                    slidesToShow: 1
618                }
619            }
620        ]
621    });
622
623cisOfficeCarousel.slick({
624    infinite: false,
625    adaptiveHeight: true,
626    draggable: false,
627    rows: 0,
628    prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="40" height="40"><use xlink:href="#svg-arrow-back"></use></svg></button>',
629    nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="40" height="40"><use xlink:href="#svg-arrow-next"></use></svg></button>',
630    slidesToShow: 2,
631    responsive: [
632        {
633            breakpoint: 1220,
634            settings: {
635                slidesToShow: 1
636            }
637        }
638    ]
639});
640
641widgetsCarousel
642    .on("init", function () {
643        $(this).show();
644    })
645    .slick({
646        autoplay: true,
647        autoplaySpeed: 5000,
648        rows: 0,
649        prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="40" height="40"><use xlink:href="#svg-arrow-back"></use></svg></button>',
650        nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="40" height="40"><use xlink:href="#svg-arrow-next"></use></svg></button>',
651        slidesToShow: 3,
652        responsive: [
653            {
654                breakpoint: 1220,
655                settings: {
656                    slidesToShow: 2
657                }
658            },
659            {
660                breakpoint: 768,
661                settings: {
662                    slidesToShow: 1
663                }
664            }
665        ]
666    });
667
668$(function () {
669    var linksContainer = $('.n-top-links'),
670        linksContainerWidth = linksContainer.outerWidth(),
671        links = linksContainer.find('.n-top-link'),
672        linksWidth = 0,
673        topLinksCarousel = $('.top-links-carousel'),
674        checker = false;
675
676    links.each(function () {
677        var $this = $(this);
678
679        $this.css('width', $this.outerWidth(true));
680        linksWidth += $this.outerWidth(true);
681
682        if (linksWidth >= linksContainerWidth) {
683            checker = true;
684        }
685    });
686
687    if (checker) {
688        topLinksCarousel
689            .slick({
690                infinite: false,
691                rows: 0,
692                variableWidth: true,
693                prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="20" height="20"><use xlink:href="#svg-arrow-back"></use></svg></button>',
694                nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="20" height="20"><use xlink:href="#svg-arrow-next"></use></svg></button>'
695            });
696    }
697
698    topLinksCarousel.css('opacity', '1');
699});
700
701filmsCarousel
702    .on("init", function () {
703        $(this).show();
704    })
705    .slick({
706        infinite: false,
707        draggable: false,
708        prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="40" height="40"><use xlink:href="#svg-arrow-back"></use></svg></button>',
709        nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="40" height="40"><use xlink:href="#svg-arrow-next"></use></svg></button>',
710        slidesToShow: 4,
711        responsive: [
712            {
713                breakpoint: 1220,
714                settings: {
715                    slidesToShow: 3
716                }
717            },
718            {
719                breakpoint: 920,
720                settings: {
721                    slidesToShow: 2
722                }
723            },
724            {
725                breakpoint: 768,
726                settings: {
727                    slidesToShow: 1
728                }
729            }
730        ]
731    });
732
733$(function () {
734    if ($(window).width() < 920) {
735        attentionItemsCarousel
736            .on("init", function () {
737                $(this).show();
738            })
739            .slick({
740                rows: 0,
741                slidesToShow: 2,
742                prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="20" height="20"><use xlink:href="#svg-arrow-back"></use></svg></button>',
743                nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="20" height="20"><use xlink:href="#svg-arrow-next"></use></svg></button>',
744                responsive: [
745                    {
746                        breakpoint: 768,
747                        settings: {
748                            slidesToShow: 1
749                        }
750                    }
751                ]
752            });
753    }
754});
755
756companiesSectionCarousel
757    .on("init", function () {
758        $(this).show();
759    })
760    .slick({
761        infinite: false,
762        draggable: false,
763        prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="25" height="25"><use xlink:href="#svg-arrow-back"></use></svg></button>',
764        nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="25" height="25"><use xlink:href="#svg-arrow-next"></use></svg></button>',
765        slidesToShow: 4,
766        responsive: [
767            {
768                breakpoint: 1220,
769                settings: {
770                    slidesToShow: 3
771                }
772            },
773            {
774                breakpoint: 920,
775                settings: {
776                    slidesToShow: 2
777                }
778            },
779            {
780                breakpoint: 768,
781                settings: {
782                    slidesToShow: 1
783                }
784            }
785        ]
786    });
787
788var cardSliderOptions = {
789    infinite: false,
790    autoplay: true,
791    autoplaySpeed: 5000,
792    draggable: false,
793    rows: false,
794    prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg><use xlink:href="#svg-arrow-left-bold"></use></svg></button>',
795    nextArrow: '<button type="button" class="slick-arrow slick-next"><svg><use xlink:href="#svg-arrow-right-bold"></use></svg></button>'
796};
797
798cardSlider
799    .on('init', function () {
800        $(this).show();
801    })
802    .slick(cardSliderOptions)
803    .slick('refresh');
804
805$(function () {
806    if($(window).width() < 768) {
807        var helperSection = $('.n-white-section--helper');
808
809        helperSection.find('.linked-block').slick(cardSliderOptions);
810        helperSection.find('.slick-track').width('767px');
811    } else {
812        return false;
813    }
814});
815
816cRegSlider
817    .on("init", function () {
818        $(this).show();
819    })
820    .slick({
821        lazyLoad: 'ondemand',
822        infinite: false,
823        slidesToShow: 1,
824        draggable: false,
825        rows: 0,
826        prevArrow: '<button type="button" class="slick-arrow slick-prev"></button>',
827        nextArrow: '<button type="button" class="slick-arrow slick-next"></button>'
828    });
829
830lReviewsSlider
831    .on("init", function () {
832        $(this).show();
833    })
834    .slick({
835        dots: true,
836        infinite: false,
837        draggable: false,
838        rows: 0,
839        slidesToShow: 2,
840        slidesToScroll: 2,
841        prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg><use xlink:href="#svg-arrow-back"></use></svg></button>',
842        nextArrow: '<button type="button" class="slick-arrow slick-next"><svg><use xlink:href="#svg-arrow-next"></use></svg></button>',
843        responsive: [
844            {
845                breakpoint: 1220,
846                settings: {
847                    slidesToShow: 1,
848                    slidesToScroll: 1
849                }
850            },
851            {
852                breakpoint: 920,
853                settings: {
854                    slidesToShow: 1,
855                    slidesToScroll: 1,
856                    arrows: false
857                }
858            }
859        ]
860    });
861
862lSalesSlider
863    .on("init", function () {
864        $(this).show();
865    })
866    .slick({
867        infinite: false,
868        draggable: false,
869        slidesToShow: 3,
870        prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg><use xlink:href="#svg-arrow-back"></use></svg></button>',
871        nextArrow: '<button type="button" class="slick-arrow slick-next"><svg><use xlink:href="#svg-arrow-next"></use></svg></button>',
872        responsive: [
873            {
874                breakpoint: 920,
875                settings: {
876                    slidesToShow: 2,
877                }
878            },
879            {
880                breakpoint: 768,
881                settings: {
882                    slidesToShow: 1,
883                    arrows: false
884                }
885            }
886        ]
887    });
888
889$('.advertisement-slider').slick({
890    arrows: false,
891    dots: true
892});
893
894var bgLazyLoad = new LazyLoad({
895    elements_selector: ".lazy-bg"
896});
897
898var imgLazyLoad = new LazyLoad({
899    elements_selector: ".lazy-img"
900});
901
902$(window).on("load", function () {
903    bgLazyLoad.update();
904    imgLazyLoad.update();
905});
906
907$(window).on("newPageDataLoaded", function () {
908    bgLazyLoad.update();
909    imgLazyLoad.update();
910});
911
912cardSlider.on("afterChange", function () {
913    bgLazyLoad.update();
914});
915
916trailersCarousel.on("afterChange", function () {
917    bgLazyLoad.update();
918});
919
920companiesSectionCarousel.on("afterChange", function () {
921    bgLazyLoad.update();
922});
923
924filmsCarousel.on("afterChange", function () {
925    bgLazyLoad.update();
926});
927
928expectedEvents.on("afterChange", function () {
929    bgLazyLoad.update();
930});
931
932companyProducts.on("afterChange", function () {
933    bgLazyLoad.update();
934});
935
936function findVideos() {
937    $('.progressive-video')
938        .one('click', function () {
939            var $this = $(this),
940                videoId = $('.progressive-video__media', $this).data("videoId");
941            $this
942                .append(createIframe(videoId))
943                .find(".progressive-video__link")
944                    .remove()
945                .end()
946                .find(".progressive-video__button")
947                    .remove();
948        })
949        .each(function () {
950            $(this)
951                .addClass('progressive-video--enabled')
952                .find(".progressive-video__link")
953                .removeProp('href');
954        });
955}
956
957function createIframe(id) {
958    return $('<iframe>', {
959        'allowfullscreen': '',
960        'allow': 'autoplay',
961        'src': generateURL(id),
962        'class': 'progressive-video__media'
963    });
964}
965
966function generateURL(id) {
967    var query = '?rel=0&showinfo=0&autoplay=1';
968
969    return 'https://www.youtube.com/embed/' + id + query;
970}
971
972findVideos();
973
974$(function () {
975    var button = $('.btn-up');
976    var currentPosition;
977    var topPostition = 'scroll-to-top';
978    var rememberedPostition = 'scroll-to-remembered';
979    var scrollingClass = 'scrolling';
980    var $window = $(window);
981    var visibilityClass = 'btn-up--visible';
982
983    $window.on('fastScroll', function () {
984        if (!button.hasClass(scrollingClass)) {
985            if ($window.scrollTop() >= 500) {
986                button
987                    .addClass(visibilityClass)
988                    .addClass(topPostition)
989                    .removeClass(rememberedPostition);
990            } else if ($window.scrollTop() < 500 && !button.hasClass(rememberedPostition)) {
991                button.removeClass(visibilityClass)
992            }
993        } else {
994            return false;
995        }
996    });
997
998    button.on('click', function () {
999        var self = $(this);
1000
1001        if (self.hasClass(topPostition)) {
1002            self
1003                .removeClass(topPostition)
1004                .addClass(scrollingClass);
1005
1006            currentPosition = $(window).scrollTop();
1007
1008            $('body,html').animate({
1009                scrollTop: 0
1010            }, 500, 'swing', function () {
1011                self
1012                    .removeClass(scrollingClass)
1013                    .addClass(rememberedPostition);
1014            });
1015
1016        } else if (self.hasClass(rememberedPostition)) {
1017            self
1018                .removeClass(rememberedPostition)
1019                .addClass(scrollingClass);
1020
1021            $('body,html').animate({
1022                scrollTop: currentPosition
1023            }, 500, 'swing', function () {
1024                self
1025                    .removeClass(scrollingClass)
1026                    .addClass(topPostition);
1027            });
1028        } else {
1029            return false;
1030        }
1031
1032        return currentPosition;
1033    });
1034
1035    $(".logo", "header").on("click", function () {
1036        var logoPath = $('.header .logo').prop("href");
1037
1038        if (("undefined" === typeof logoPath || 0 === logoPath.length) && button.hasClass('scroll-to-top')) {
1039            button.click();
1040        }
1041    });
1042
1043});
1044
1045$(function () {
1046    $('.js-more-news').on('click', function (e) {
1047        e.preventDefault();
1048
1049        $('body,html').animate({
1050            scrollTop: $('#more-news-section').offset().top - 80
1051        }, 500);
1052    });
1053});
1054
1055$(function seoTextHider() {
1056    var seoBlock = $('.seo-text'),
1057        seoMore = $('.seo-more-link');
1058
1059    seoMore.hide();
1060
1061    if ($(window).width() < 920) {
1062        seoBlock.addClass('is-hidden');
1063        seoMore.show();
1064
1065        seoMore.click(function () {
1066            seoBlock.removeClass('is-hidden');
1067            seoMore.hide();
1068        });
1069    }
1070});
1071
1072$(function hashTagsHider() {
1073    var container = $('.hash-tags');
1074
1075    if (container.height() > 48) {
1076        container.addClass('is-collapsed');
1077    }
1078
1079    $('.hash-tags__more').on('click', function () {
1080        container.toggleClass('is-collapsed');
1081    });
1082});
1083
1084$(".js-scroll-to-element").on("click", function () {
1085    var $this = $(this),
1086        scrollToElement = $this.data("scrollTo") || $this.prop("hash"),
1087        scrollToDuration = $this.data("scrollToDuration") || 500;
1088    if ("string" === typeof scrollToElement) {
1089        scrollToElement = {selector: scrollToElement};
1090    }
1091    var $scrollToElement = $(scrollToElement.selector);
1092    if (scrollToElement.hasOwnProperty('parent')) {
1093        $scrollToElement = $scrollToElement.closest(scrollToElement.parent);
1094    }
1095    if ($scrollToElement.length > 0) {
1096        $("html, body").animate({
1097            scrollTop: $scrollToElement.offset().top - 100
1098        }, scrollToDuration);
1099    }
1100});
1101
1102$(function () {
1103    var leadBlock = $('.rule-block__lead'),
1104        ruleTitle = $('.rule-block__title');
1105
1106    leadBlock.on('click', function () {
1107        $(this).parent().toggleClass('is-active');
1108    });
1109
1110    ruleTitle.on('click', function () {
1111        $(this).parent().toggleClass('is-active');
1112    });
1113});
1114
1115if ($(window).width() < 920) {
1116    $(function () {
1117        var rubrics = $('.right-filter-wrapper'),
1118            mobileRubricsTrigger = $('.js-trigger-mobile-rubrics'),
1119            $mobileRubricsContainer = $('<div>', {'class': 'mobile-rubrics'});
1120
1121        $mobileRubricsContainer.append(rubrics).insertAfter($('main'));
1122
1123        if (rubrics.length > 0) {
1124            rubrics.each(function () {
1125                $('.mobile-rubrics').append($(this));
1126            });
1127
1128            mobileRubricsTrigger.on('click', function () {
1129                $(this).closest('.side-tabs').toggleClass('is-active');
1130                $(this).closest('body').find('.mobile-rubrics').toggleClass('is-active');
1131            });
1132        }
1133    });
1134}
1135
1136(function ($) {
1137    var $adTeaserForm = $("#ad-teaser-form"),
1138        $adTypeSelect = $("#ad-type"),
1139        $adSectionSelect = $("#ad-section"),
1140        $adSearchForm = $("#ad-search-form"),
1141        $adAddButton = $("#ad-add-button");
1142
1143    $adTypeSelect.on("change", function (event) {
1144        var adType = $adTypeSelect.val(),
1145            isTypeSelected = "" !== adType;
1146
1147        $adSectionSelect.prop("disabled", !isTypeSelected)
1148        if (!isTypeSelected) {
1149            $adSectionSelect.val("");
1150        }
1151        $adSectionSelect
1152            .trigger("change")
1153            .trigger("chosen:updated");
1154        $adSearchForm
1155            .toggle("existed" === adType)
1156            .find(":text").val("");
1157        $adAddButton.toggle("new" === adType);
1158    });
1159
1160    $adSectionSelect.on("change", function (event) {
1161        var adType = $adTypeSelect.val(),
1162            adSection = $adSectionSelect.val(),
1163            isSectionSelected = "" !== adSection,
1164            $adSectionOption = $adSectionSelect.find("option:selected"),
1165            dataUrlKey = "new" === adType ? "urlAdd" : "urlSearch";
1166
1167        $adTeaserForm.prop("action", isSectionSelected ? $adSectionOption.data(dataUrlKey) : "");
1168        $adSearchForm.find("input, button").prop("disabled", !isSectionSelected || "existed" !== adType);
1169        $adAddButton.prop("disabled", !isSectionSelected || "new" !== adType);
1170    });
1171
1172    $adTeaserForm.on("submit", function (event) {
1173        // Чтобы не отправлять значения этих элементов при отправке формы
1174        $adTypeSelect.prop("disabled", true);
1175        $adSectionSelect.prop("disabled", true);
1176    });
1177})(jQuery);
1178$('.section-toggler').on('click', function () {
1179    var sectionToggler = $(this);
1180
1181    sectionToggler.toggleClass('is-active');
1182    sectionToggler.closest('.toggling-section').toggleClass('is-closed');
1183});
1184 });
1185$(function () {
1186    var sidebar = $('[data-sidebar]');
1187    var button = $('[data-sidebar-button]');
1188    var overlay = $('[data-sidebar-overlay]');
1189
1190    function showSidebar() {
1191        $('html,body').addClass('overflow-hidden');
1192        sidebar.addClass('visible');
1193        overlay.addClass('visible');
1194    }
1195
1196    function hideSidebar() {
1197        $('html,body').removeClass('overflow-hidden');
1198        sidebar.removeClass('visible');
1199        overlay.removeClass('visible');
1200    }
1201
1202    button.click(function () {
1203        if (overlay.hasClass('visible')) {
1204            hideSidebar();
1205        } else {
1206            showSidebar();
1207        }
1208
1209        return false;
1210    });
1211
1212    overlay.click(function () {
1213        hideSidebar();
1214    });
1215
1216    $(document).keyup(function(event){
1217        if(27 == event.keyCode){
1218            hideSidebar();
1219        }
1220    });
1221});
1222
1223function initChosen(element, defaultOptions) {
1224    defaultOptions = defaultOptions || {};
1225    var $element = $(element),
1226        elementOptions = $element.data("chosenOptions") || {},
1227        chosenOptions = $.extend({}, defaultOptions, elementOptions);
1228    $element.chosen(chosenOptions);
1229}
1230
1231function initChosenByClass(element) {
1232    var defaultOptionsBySelector = {
1233            ".chosen-select": {disable_search_threshold: 10},
1234            ".chosen-select_full-width": {disable_search_threshold: 10, width: '100%'},
1235            ".chosen-select-add": {disable_search_threshold: 10, width: '100%'},
1236            ".chosen-select__under-hidden": {disable_search_threshold: 10}
1237        },
1238        $element = $(element),
1239        defaultOptions = {};
1240    $.each(defaultOptionsBySelector, function (defaultOptionSelector, defaultOptionValue) {
1241        if ($element.is(defaultOptionSelector)) {
1242            defaultOptions = defaultOptionValue;
1243            return false;
1244        }
1245    });
1246    initChosen($element, defaultOptions);
1247}
1248
1249$(function () {
1250    var linksContainer = $('.top-links-line'),
1251        projectsContainer = linksContainer.siblings('.dropdown-group'),
1252        calculatedContainerWidth = 0,
1253        checker = false;
1254
1255    if (projectsContainer.length > 0) {
1256        calculatedContainerWidth = linksContainer.closest('.container-fluid').outerWidth() - projectsContainer.outerWidth(true);
1257    } else {
1258        calculatedContainerWidth = linksContainer.closest('.container-fluid').outerWidth();
1259    }
1260
1261    if (linksContainer.outerWidth(true) > calculatedContainerWidth) {
1262        checker = true;
1263    }
1264
1265    if (checker) {
1266        linksContainer
1267            .slick({
1268                infinite: false,
1269                rows: 0,
1270                variableWidth: true,
1271                draggable: false,
1272                prevArrow: '<button type="button" class="slick-arrow slick-prev"><svg width="16" height="16"><use xlink:href="#svg-arrow-back"></use></svg></button>',
1273                nextArrow: '<button type="button" class="slick-arrow slick-next"><svg width="16" height="16"><use xlink:href="#svg-arrow-next"></use></svg></button>'
1274            });
1275    }
1276
1277    if (projectsContainer.length > 0) {
1278        projectsContainer.before('<div class="d-sm-flex align-items-center mb-3"></div>');
1279
1280        projectsContainer.siblings('.d-sm-flex')
1281            .append(projectsContainer)
1282            .append(linksContainer);
1283    } else {
1284        linksContainer.before('<div class="d-sm-flex align-items-center mb-3"></div>');
1285
1286        linksContainer.siblings('.d-sm-flex')
1287            .append(linksContainer);
1288    }
1289
1290    linksContainer.addClass('is-visible');
1291});
1292
1293function jsonrpcWrapper(url, method, params, successCallback, errorCallback) {
1294    var xhr = $.ajax({
1295        url: url,
1296        data: JSON.stringify({
1297            jsonrpc: "2.0",
1298            method: method,
1299            params: params
1300        }),
1301        type: 'POST',
1302        dataType: 'JSON',
1303        contentType: 'application/json-rpc'
1304    });
1305
1306    if ("function" === typeof successCallback) {
1307        xhr.done(function(data, textStatus, jqXHR) {
1308            successCallback(jqXHR);
1309        })
1310        .fail(successCallback);
1311    }
1312    if ("function" === typeof errorCallback) {
1313        xhr.fail(errorCallback);
1314    }
1315
1316    return xhr;
1317}
1318
1319var list = $('.newslist'),
1320    listContainer = $('.newslist__container');
1321
1322function listNeighborHeightCheck() {
1323    return list.parent().siblings('.col-12.col-lg-8').outerHeight();
1324}
1325
1326$(window)
1327    .on('resize', function () {
1328        if (list.parent().hasClass('col-lg-4')) {
1329            var neighborHeight = listNeighborHeightCheck();
1330            list.css('height', neighborHeight-20);
1331            listContainer.css('height', neighborHeight-110);
1332        } else {
1333            list.css('height', '940');
1334            listContainer.css('height', '850');
1335        }
1336    })
1337    .triggerHandler('resize');
1338
1339$(function () {
1340    var $feedbackMoreBtn = $('.feedback-section__more'),
1341        $feedbackSection = $feedbackMoreBtn.closest('.feedback-section'),
1342        $feedbackDropdown = $feedbackSection.find('.feedback-section__dropdown');
1343
1344    $feedbackMoreBtn.on('click', function (e) {
1345        e.preventDefault();
1346        $(this).toggleClass('is-active');
1347        $feedbackSection.toggleClass('dropdown-is-open');
1348        $feedbackDropdown.toggle();
1349    });
1350});
1351
1352$(function () {
1353    var $table = $(".js-cost-table"),
1354        $tableCheckboxes = $table.find("input:checkbox"),
1355        $tableSummary = $(".js-cost-summary"),
1356        tableSummaryPrice = 0,
1357        $document = $(document);
1358
1359    $tableCheckboxes.each(function () {
1360        var $self = $(this),
1361            $checkboxDataPrice = $self.data("servicePrice");
1362
1363        $self.on("change", function () {
1364            if ($self.prop("checked")) {
1365                tableSummaryPrice += parseInt($checkboxDataPrice, 10);
1366                $tableSummary.text(tableSummaryPrice);
1367            } else {
1368                tableSummaryPrice -= parseInt($checkboxDataPrice, 10);
1369                $tableSummary.text(tableSummaryPrice);
1370            }
1371            var eventData = {
1372                $table: $table,
1373                $checkedItems: $tableCheckboxes.filter("[data-service-price]:checked"),
1374                newSummaryPrice: tableSummaryPrice
1375            };
1376            eventData.checkedServices = eventData.$checkedItems.map(function () {
1377                return $(this).data("serviceDescription");
1378            }).get();
1379            $document.triggerHandler("offersTableSelectionChange", [eventData]);
1380        });
1381    });
1382});
1383
1384$('.our-tabs__item').on('click', function () {
1385    var $this = $(this),
1386        $tabData = $this.data('tab'),
1387        $tabContainer = $this.closest('.our-tabs');
1388
1389    $this.siblings('.our-tabs__item').removeClass('is-active');
1390    $this.addClass('is-active');
1391    $tabContainer.find('.our-tabs__content.is-active').removeClass('is-active');
1392
1393    $('.our-tabs__content[data-tab=' + $tabData + ']').addClass('is-active');
1394});
1395
1396(function () {
1397    var $root = $('html, body');
1398
1399    $('.pomogator-link').on('click', function () {
1400        $root.animate({
1401            scrollTop: $($.attr(this, 'href')).offset().top
1402        }, 500);
1403
1404        return false;
1405    });
1406})();
1407
1408$(function () {
1409    $('[data-toggle="popover"]').popover({
1410        container: 'body'
1411    })
1412});
1413
1414$('.right-filter input').change(function () {
1415    $('.js-btn-show-cloned').remove();
1416    var $this = $(this),
1417        $showBtn = $this.closest("form").find(".btn-show").clone().addClass("js-btn-show-cloned");
1418    $this.closest('.check-block').append($showBtn);
1419    $showBtn.show();
1420});
1421
1422$('.toppage-search__link a').click(function () {
1423    $('.toppage-search__container-hidden').slideToggle();
1424});
1425
1426$('.company-infoblock__link a').click(function (event) {
1427    event.preventDefault();
1428    $(this).parent().siblings('.short-text').toggle();
1429    $(this).parent().siblings('.hidden-text').toggle();
1430});
1431
1432$('.product-page__more-img').click(function () {
1433    $(this).hide();
1434    $(this).siblings('.product-page__img_hidden').fadeIn(300);
1435});
1436
1437var loadMore = function (evt) {
1438    evt.preventDefault();
1439    var $this = $(this);
1440    var $loadingIndicator = $($this.data("loadingIndicator") || "div.loader").clone();
1441    var buttonContainerSelector = $this.data("buttonContainer") || ".col-12";
1442    var $container = $this.closest($this.data("container") || ".row");
1443    var loadUrl = $this.prop("href");
1444    if (loadUrl === undefined) {
1445        loadUrl = $this.data("loadDataUrl");
1446    }
1447    $this.after($loadingIndicator).remove();
1448    $loadingIndicator.show();
1449    $.get(loadUrl, function (data) {
1450        var $data = filterExistedLinks(filterExistedScripts($($.parseHTML(data, document, true))));
1451        $data.appendTo($container);
1452        $loadingIndicator.closest(buttonContainerSelector).remove();
1453        $container.trigger("newPageDataLoaded", [$data]);
1454        if ("function" === typeof $.fn.fancybox) {
1455            $("[data-fancybox]", $data).fancybox({
1456                slideShow: false,
1457                fullScreen: false,
1458                thumbs: true,
1459                infobar: true,
1460                arrows: true
1461            });
1462        }
1463    });
1464    return false;
1465};
1466
1467var filterExistedScripts = function ($data) {
1468    var $scripts = $data.filter("script[src]").add($data.find("script[src]")).remove();
1469    if (0 === $scripts.length) {
1470        return $data;
1471    }
1472    var existedScriptSources = $("script[src]").map(function () {
1473        return this.src;
1474    }).get();
1475    $scripts = $scripts.filter(function () {
1476        return -1 !== existedScriptSources.indexOf(this.src);
1477    });
1478
1479    return $data.not($scripts);
1480};
1481
1482var filterExistedLinks = function ($data) {
1483    var $links = $data.filter("link[href]").add($data.find("link[href]")).remove();
1484    if (0 === $links.length) {
1485        return $data;
1486    }
1487    var existedLinkSources = $("link[href]").map(function () {
1488        return this.href;
1489    }).get();
1490    $links = $links.filter(function () {
1491        return -1 !== existedLinkSources.indexOf(this.href);
1492    });
1493
1494    return $data.not($links);
1495};
1496
1497$("body").on("click", "a.loader, span.loader", loadMore);
1498
1499function isUserAuthorized() {
1500    return $('.user.authorized').length > 0;
1501}
1502
1503function showAuthWindow() {
1504    $("#modal-authorization").modal();
1505}
1506
1507// change word 'Tomorrow' to date number while browser window is small
1508$(window)
1509    .on('resize', function (event) {
1510        var $numberBlocks = $('.tabs-item .block-num'),
1511            $textBlocks = $('.tabs-item .block-text'),
1512            needHideTextBlocks = $(window).width() <= 750;
1513        $numberBlocks.toggle(needHideTextBlocks);
1514        $textBlocks.toggle(!needHideTextBlocks);
1515    })
1516    .triggerHandler('resize');
1517
1518$('.userLogout').on('click', function (event) {
1519    event.preventDefault();
1520    $('.header-user__avatar').html($('.loader-image').show());
1521    $.getJSON('/auth/logout', {}, function (response) {
1522        window.location = window.location.href;
1523    });
1524    return false;
1525});
1526
1527$(window).on('load', function () {
1528    $(this).trigger('resize');
1529    $('.card-slider').slick('refresh');
1530});
1531
1532/**
1533 * @deprecated загрузку карты "по требованию" реализовать как в project/frontend/views/catalogfull/index.php (метод showMap, возвращающий Promise
1534 * @returns {ShowingMaps}
1535 */
1536function ShowingMaps() {
1537    this.$buttonShowMap = $('.show__map');
1538    var self = this,
1539        $addressesOnPage = $(".company-addr .addr, .company-info__left .addr");
1540    if (0 === $addressesOnPage.length) {
1541        $addressesOnPage = $('.fun-map').find(".address-info");
1542    }
1543    this.showMap = function (jsonRpcUrl, method = 'GET') {
1544        self.$buttonShowMap = $('.show__map');
1545        if (self.$buttonShowMap.length > 0 && $addressesOnPage.length > 0) {
1546            if (self.$buttonShowMap.hasClass("disabled")) {
1547                return false;
1548            }
1549            self.$buttonShowMap
1550                .addClass("disabled is-processing");
1551            var addresses = $addressesOnPage.map(function () {
1552                return $(this).data("address");
1553            }).get();
1554            $.ajax({method: method, url: jsonRpcUrl, data: {addresses: addresses}})
1555                .done(function (response) {
1556                    if (response) {
1557                        self.$buttonShowMap.parent().html(response);
1558                    }
1559                });
1560
1561            return false;
1562        }
1563    }
1564}
1565var showingMaps = new ShowingMaps();

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.