PageSourceSearch

https://moratelindo.co.id/js/user.js

js moratelindo.co.id collected 2026-10-02 15:54:28 UTC 31,985 bytes, 828 lines download raw bytes

1jQuery(function ($) {
2
3    // + fb widget
4    function fbWidget(d, s, id) {
5        var js, fjs = d.getElementsByTagName(s)[0];
6        if (d.getElementById(id)) {
7            return;
8        }
9        js = d.createElement(s);
10        js.id = id;
11        js.src = "//connect.facebook.net/en_EN/sdk.js#xfbml=1&version=v2.0";
12        fjs.parentNode.insertBefore(js, fjs);
13    }
14
15    if ($('#fb-root').size() > 0) {
16        fbWidget(document, 'script', 'facebook-jssdk');
17    }
18    // - fb widget
19
20
21    var dropDownMenu = {
22        mobileMenuContainer: '.j-menu-container',
23        dropMenuVisible: false,
24        init: function () {
25            this.showHideMenu();
26            this.resize();
27        },
28        showHideMenu: function () {
29            var self = this;
30            $('.j-top-nav-show-slide').on('click', function () {
31                var $cloneNav = $('.j-menu-container .j-top-nav');
32                if (!self.dropMenuVisible) {
33                    $('.j-top-nav').clone().prependTo(self.mobileMenuContainer).addClass('b-top-nav-dropdown').addClass('f-top-nav-dropdown').animate({height: "toggle"}, 700);
34                    self.dropMenuVisible = true;
35                } else {
36                    $cloneNav.animate({height: "toggle"}, 700, function () {
37                        $cloneNav.remove();
38                    });
39                    self.dropMenuVisible = false;
40                }
41                self.toggleIcon();
42            });
43        },
44        toggleIcon: function () {
45            var self = this;
46            $(self.mobileMenuContainer + ' .b-ico-dropdown').on('click', function () {
47                var $liFirstLevel = $(this).parents('.b-top-nav__1level');
48                $liFirstLevel.toggleClass('is-active-top-nav__dropdown');
49                $liFirstLevel.find('.fa').toggleClass('fa-arrow-circle-down').toggleClass('fa-arrow-circle-up');
50                $liFirstLevel.find('.b-top-nav__dropdomn').slideToggle('slow');
51                return false;
52            });
53        },
54        resize: function () {
55            var self = this;
56            $(window).on('resize', function () {
57                if ($(self.mobileMenuContainer + ' .j-top-nav') && self.dropMenuVisible && $(window).width() > BREAK.MD) {
58                    $('.j-top-nav-show-slide').click();
59                    self.dropMenuVisible = false;
60                }
61            });
62        }
63    };
64    dropDownMenu.init();
65
66    var pageDecoration = {
67        groupAnimatecontroller: true,
68        groupAnimateSize: 0,
69        init: function () {
70            var self = this;
71            self.galleryHoverInfo();
72            self.animateCategoryIcons();
73            self.fadeInAnimation();
74            self.fadeInGroup();
75            self.imagesAppearance();
76            self.toHeightScreen($('.slider-carousel-roundabout'));
77            self.toHeightScreen($('.slider-video-container'), 92);
78            self.hoverDependence($('.b-blog-short-post__item_img a'), $('.b-blog-short-post__item_text a'), $('.b-blog-short-post__item'));
79            self.togleActive();
80        },
81        galleryHoverInfo: function () {
82            $('body').on('mouseenter', '.j-item-hover-action',function () {
83                $(this).find('.b-item-hover-action, [class*="b-item-hover-action--"]').addClass('is-visible fadeIn animated');
84            }).on('mouseleave', '.j-item-hover-action', function () {
85                $(this).find('.b-item-hover-action, [class*="b-item-hover-action--"]').removeClass('is-visible fadeIn animated');
86            });
87
88            // Touch Events for Tablet & Mobile
89            $('.view').on('touchstart', function () {
90                $(this).find('.info').on('touchstart', function (event) {
91                    event.stopPropagation();
92                });
93                $(this).toggleClass('is-active');
94            })
95        },
96        animateCategoryIcons: function () {
97            $('.b-categories-icons__item').hover(function () {
98                $(this).addClass('is-active-categories-icons__item');
99            }, function () {
100                $(this).removeClass('is-active-categories-icons__item');
101            });
102        },
103        fadeInAnimation: function () {
104            var self = this;
105            $('.fade-in-animate').on('scrollSpy:enter',function () {
106                var el = $(this);
107                if (!(el.attr('data-animate-group'))) {
108                    el.addClass('visible');
109                }
110            }).scrollSpy();
111            $('.j-data-element').on('scrollSpy:enter',function () {
112                var animateType = $(this).data('animate');
113                $(this).addClass('animated ' + animateType);
114            }).scrollSpy();
115        },
116        fadeInGroup: function () {
117            var self = this;
118            $('[data-animate-group-wrap]').on('scrollSpy:enter',function () {
119                var el = $('.fade-in-animate', $(this)),
120                    countEl = el.length;
121                var i = 0;
122                var timerEl = setInterval(function () {
123                    if (i === countEl - 1) {
124                        clearInterval(timerEl);
125                    }
126                    el.eq(i).addClass('visible');
127                    i++;
128                }, 250)
129            }).scrollSpy();
130        },
131        imagesAppearance: function () {
132            $('.wrap-img-appearance').on('scrollSpy:enter',function () {
133                var $elements = $(this).find('img');
134                var index = 0;
135
136                function eachEl() {
137                    var animateType = $elements.eq(index).data('animate');
138                    $elements.eq(index).addClass('animated').addClass(animateType);
139                    index++;
140                    if (index >= $elements.length) {
141                        clearTimeout(time);
142                    }
143                }
144
145                var time = setInterval(eachEl, 250);
146            }).scrollSpy();
147        },
148        setElHeight: function (height, $el, k) {
149            if (k) {
150                $el.css('height', height - k);
151            }
152            else {
153                $el.css('height', height);
154            }
155        },
156        toHeightScreen: function ($el, k) {
157            var self = this;
158            if ($el.length) {
159                $(window).on('resize', function () {
160                    self.setElHeight($(window).outerHeight(), $el, k);
161                });
162                self.setElHeight($(window).outerHeight(), $el, k);
163            }
164        },
165        hoverDependence: function (el1, el2, parent) {
166            el1.hover(function () {
167                    $(this).closest(parent).find(el2).addClass('is-hover');
168                },
169                function () {
170                    $(this).closest(parent).find(el2).removeClass('is-hover');
171                });
172            el2.hover(function () {
173                    $(this).closest(parent).find(el1).addClass('is-hover');
174                },
175                function () {
176                    $(this).closest(parent).find(el1).removeClass('is-hover');
177                });
178        },
179        togleActive: function () {
180            $('.j-toggle-active').on('click', function (e) {
181                e.preventDefault();
182                $(this).toggleClass('is-active');
183            });
184        }
185    };
186    pageDecoration.init();
187
188    var revolutionSlider = {
189        islider: $('.j-fullscreenslider, .j-contentwidthslider, .j-smallslider'),
190        init: function () {
191            var self = this;
192            self.revSliderInit();
193            self.islider.on('rerenderRevSlider', function () {
194                self.rerenderSlider();
195            });
196        },
197        revSliderInit: function () {
198            var revapi,
199                self = this;
200
201            this.islider.each(function () {
202                var slider = $(this);
203                var args = {
204                    delay: 6300,
205                    startwidth: 1170,
206                    startheight: 500,
207                    hideThumbs: 10,
208                    navigationArrows: "solo"
209                };
210                if (slider.hasClass('j-smallslider')) {
211                    args.startwidth = "560";
212                    args.startheight = "330";
213                    args.navigationType = "none";
214                    args.navigationStyle = "square";
215                }
216                if (slider.hasClass('j-contentwidthslider')) {
217                    args.startwidth = "1170";
218                }
219                if (slider.hasClass('j-contentwidthslider-innerheight')) {
220                    args.startheight = "316";
221                }
222                if (slider.hasClass('j-arr-nexttobullets')) {
223                    args.navigationArrows = "nexttobullets";
224                }
225                if (slider.hasClass('j-arr-hide')) {
226                    args.navigationArrows = "none";
227                }
228                if (slider.hasClass('b-video-slider')) {
229                    args.navigationVOffset = 153;
230                    args.autoHeight = 'on';
231                    args.startheight = 1024;
232                }
233                if (slider.hasClass('j-pagination-hide')) {
234                    args.navigationType = "none";
235                }
236                if (slider.attr('data-height')) {
237                    args.startheight = slider.data('height');
238                }
239                if (slider.attr('data-thumb-amount')) {
240                    args.navigationType = "thumb";
241                    args.thumbAmount = slider.data('thumb-amount');
242                    args.thumbWidth = 176;
243                    args.thumbHeight = 105;
244                    args.hideThumbs = 0;
245                    delete args.startwidth;
246                    delete args.startheight;
247                }
248                if (slider.closest('.b-slider').hasClass('b-slider--thumb')) {
249                    var mass = [];
250                    var img = slider.find('img');
251                    img.each(function () {
252                        mass.push($(this).attr('src'));
253                    });
254                    revapi = slider.revolution(args);
255                    self.islider.bind('revolution.slide.onloaded', function () {
256                        slider.next('.tp-bullets').find('.bullet').each(function (i) {
257                            $(this).css('background', 'url(' + mass[i] + ') no-repeat scroll 0px 0px / cover transparent');
258                        });
259                        self.islider.unbind('revolution.slide.onloaded');
260                    });
261                } else {
262                    revapi = slider.revolution(args);
263                }
264            });
265        },
266        rerenderSlider: function () {
267            var self = this;
268            self.islider.revnext();
269            setTimeout(function () {
270                self.islider.revnext();
271            }, 2000);
272        }
273    };
274    revolutionSlider.init();
275
276    var backgroundVideo = {
277        init: function () {
278            var self = this;
279            if ((navigator.userAgent.match(/iPhone/i)) ||
280                (navigator.userAgent.match(/iPad/i)) ||
281                (navigator.userAgent.match(/iPod/i))) {
282                $('.b-bg-video').addClass('device-ios');
283            }
284            self.videoControls();
285            self.videoScrollSpy();
286        },
287        videoControls: function () {
288            $('.j-video-controls i').on('click', function () {
289                var video = $("#video1")[0];
290                if (video.paused) {
291                    video.play();
292                } else {
293                    video.pause();
294                }
295                $(this).hide().siblings().css('display', 'inline-block');
296            });
297        },
298        videoScrollSpy: function () {
299            var $video1 = $('#video1');
300
301            $video1.on('scrollSpy:enter', function () {
302                if ($(this)[0].paused) {
303                    $(this)[0].play();
304                }
305                $('#video1-play').hide();
306                $('#video1-pause').show();
307            });
308
309            $video1.on('scrollSpy:exit', function () {
310                $(this)[0].pause();
311                $('#video1-play').show();
312                $('#video1-pause').hide();
313            });
314
315            $video1.scrollSpy();
316        }
317
318    };
319    backgroundVideo.init();
320
321    var formEls = {
322        init: function () {
323            var self = this;
324            self.select();
325            self.sliderRange();
326            self.inputFile();
327            self.placeholder();
328            self.inputNumber();
329            self.inputNumberMore();
330            self.inputNumberLess();
331            $(window).on('resize', function () {
332                self.resize();
333            });
334
335        },
336        select: function () {
337            $(".j-select").each(function () {
338                $(this).selectmenu({
339                    width: $(this).css('width'),
340                    disabled: $(this).prop('disabled')
341                });
342            });
343        },
344        sliderRange: function () {
345            $(".j-slider-range").each(function () {
346                var rangeSlider = $(this);
347                rangeSlider.slider({
348                    range: true,
349                    min: 0,
350                    max: 999,
351                    values: [ 200, 700 ],
352                    slide: function (event, ui) {
353                        rangeSlider.find('.max').text("$" + ui.values[ 1 ]);
354                        rangeSlider.find('.min').text("$" + ui.values[ 0 ]);
355                    }
356                });
357                var handle = rangeSlider.find('.ui-slider-handle');
358                handle.filter(':first').append('<span class="min"></span>');
359                handle.filter(':last').append('<span class="max"></span>');
360                handle.find('.min').text("$" + rangeSlider.slider("values", 0));
361                handle.find('.max').text("$" + rangeSlider.slider("values", 1));
362            });
363        },
364        inputFile: function () {
365            var wrapper = $(".file_upload"),
366                inp = wrapper.find("input"),
367                btn = wrapper.find("button"),
368                lbl = wrapper.find("div");
369
370            btn.focus(function () {
371                inp.focus()
372            });
373            // Crutches for the :focus style:
374            inp.focus(function () {
375                wrapper.addClass("focus");
376            }).blur(function () {
377                wrapper.removeClass("focus");
378            });
379
380            var file_api = ( window.File && window.FileReader && window.FileList && window.Blob ) ? true : false;
381
382            inp.change(function () {
383                var file_name;
384                if (file_api && inp[ 0 ].files[ 0 ])
385                    file_name = inp[ 0 ].files[ 0 ].name;
386                else
387                    file_name = inp.val().replace("C:\\fakepath\\", '');
388
389                if (!file_name.length)
390                    return;
391
392                if (lbl.is(":visible")) {
393                    lbl.text(file_name);
394                } else
395                    btn.text(file_name);
396            }).change();
397        },
398        placeholder: function () {
399            $('input, textarea').placeholder();
400        },
401        inputNumber: function () {
402            $('input[type=number]').each(function () {
403                var el = $(this);
404                $('<div class="input-number-box"></div>').insertAfter(el);
405                var parent = el.find('+ .input-number-box');
406                parent.append(el);
407                var classes = el.attr('class');
408                parent.append('<input class="input-number" type="text">');
409                el.hide();
410                var newEl = el.next();
411                newEl.addClass(classes);
412                var attrValue;
413
414                function setInputAttr(attrName) {
415                    if (el.attr(attrName)) {
416                        attrValue = el.attr(attrName);
417                        newEl.attr(attrName, attrValue);
418                    }
419                }
420
421                setInputAttr('value');
422                setInputAttr('placeholder');
423                setInputAttr('min');
424                setInputAttr('max');
425                setInputAttr('step');
426
427                parent.append('<div class="input-number-more"></div>');
428                parent.append('<div class="input-number-less"></div>');
429            });
430
431        },
432        inputNumberMore: function () {
433            $('body').on('click', '.input-number-more', function () {
434                var el = $(this);
435                var input = el.closest('.input-number-box').find('.input-number');
436                var max = input.attr('max');
437                var value;
438
439                if (input.attr('value')) {
440                    value = parseFloat(input.attr('value'));
441                } else if (input.attr('placeholder')) {
442                    value = parseFloat(input.attr('placeholder'));
443                }
444                if (!( $.isNumeric(value) )) {
445                    value = 0;
446                }
447
448                var step;
449                if (input.attr('step')) {
450                    step = parseFloat(input.attr('step'));
451                } else {
452                    step = 1;
453                }
454                var newValue = value + step;
455                if (newValue > max) {
456                    newValue = max;
457                }
458                input.val(newValue);
459                var inputNumber = el.closest('.input-number-box').find('[type=number]');
460                inputNumber.val(newValue);
461            });
462        },
463        inputNumberLess: function () {
464            $('body').on('click', '.input-number-less', function () {
465                var el = $(this);
466                var input = el.closest('.input-number-box').find('.input-number');
467                var min = input.attr('min');
468                var value;
469
470                if (input.attr('value')) {
471                    value = parseFloat(input.attr('value'));
472                } else if (input.attr('placeholder')) {
473                    value = parseFloat(input.attr('placeholder'));
474                }
475                if (!( $.isNumeric(value) )) {
476                    value = 0;
477                }
478
479                var step;
480                if (input.attr('step')) {
481                    step = parseFloat(input.attr('step'));
482                } else {
483                    step = 1;
484                }
485                var newValue = value - step;
486                if (newValue < min) {
487                    newValue = min;
488                }
489                input.val(newValue);
490                var inputNumber = el.closest('.input-number-box').find('[type=number]');
491                inputNumber.val(newValue);
492            });
493        },
494        resize: function () {
495            $(".file_upload input").triggerHandler("change");
496        }
497    };
498    formEls.init();
499
500    var totalPrice = {
501        boxEL: ".j-price-count-box",
502        counterEL: ".j-product-count",
503        parentEL: "tr:not(:first-child)",
504        priceEL: ".j-product-price",
505        totalEL: ".j-product-total",
506        priceTotal: ".j-price-total",
507        totalCount: 0,
508        init: function () {
509            var self = this;
510            self.getTotalPrice();
511            self.changeCounterEl();
512        },
513        getTotalPrice: function () {
514            var self = this;
515            self.totalCount = 0;
516            $(self.parentEL).each(function () {
517                var el = $(this);
518                var currentPrice = parseFloat(el.find(self.priceEL).text()).toFixed(2) * parseFloat(el.find(self.counterEL).val());
519                el.find(self.totalEL).text(currentPrice.toFixed(2));
520                self.totalCount += currentPrice;
521            });
522            self.totalPrice(self.totalCount);
523        },
524        totalPrice: function () {
525            var self = this;
526            $(self.priceTotal).text(self.tolalCount);
527        },
528        changeCounterEl: function () {
529            var self = this;
530            $(self.counterEL).change(function () {
531                self.getTotalPrice();
532            });
533        }
534    };
535    totalPrice.init();
536
537    var menu = {
538        init: function () {
539            var self = this;
540            self.onHover();
541            self.multiLvlMenu();
542        },
543        onHover: function () {
544            $('.b-top-nav__1level').hover(function () {
545                if ($(window).width() > (BREAK.MD - 1)) {
546                    var dropEL = $(this).find('.b-top-nav__dropdomn');
547                    if (dropEL.length !== 0) {
548                        var leftPosition = dropEL.offset().left;
549                        var rightPosition = dropEL.offset().left + dropEL.outerWidth();
550
551                        if (leftPosition < 0) {
552                            dropEL.addClass('nav-position-right');
553                        } else {
554                            dropEL.removeClass('nav-position-right');
555                        }
556
557                        if (rightPosition > $(window).width()) {
558                            dropEL.addClass('nav-position-left');
559                        } else {
560                            dropEL.removeClass('nav-position-left');
561                        }
562                    }
563                }
564            });
565        },
566        multiLvlMenu: function () {
567            $('body').on('click', '.b-top-nav__with-multi-lvl', function () {
568                if ($(window).width() < (BREAK.MD)) {
569                    if ($(this).hasClass('is-active-multi-lvl')) {
570                        $(this).removeClass('is-active-multi-lvl');
571                        $(this).find(' >
571 .b-top-nav__multi-lvl-box').slideUp();
572                    } else {
573                        $(this).addClass('is-active-multi-lvl');
574                        $(this).find(' > .b-top-nav__multi-lvl-box').slideDown();
575                    }
576                }
577            });
578            $('body').on('click', '.b-top-nav__multi-lvl', function (e) {
579                e.stopPropagation();
580            });
581        }
582
583    };
584    menu.init();
585
586    var masonryFilter = {
587        massMasonry: [],
588        dataFilterVal: "all",
589        init: function () {
590            var self = this;
591            self.filterEl('.j-filter', '.j-filter-content');
592            self.masonry();
593        },
594        masonry: function () {
595            var self = this;
596            var msnry;
597            var i = 0;
598            $('.j-masonry').each(function () {
599                var el = $(this),
600                    newClass = 'j-masonry-' + i;
601
602                el.addClass(newClass).attr('data-masonry-id', i);
603                i++;
604                el.imagesLoaded(function () {
605                    var container = document.querySelector('.' + newClass);
606
607                    msnry = new Masonry(container,
608                        {
609                            itemSelector: '.j-masonry-item',
610                            columnWidth: '.' + newClass + ' .masonry-gridSizer',
611                            transitionDuration: '1.2s'
612                        });
613                    self.massMasonry.push(msnry);
614                    el.data('masonry', msnry);
615                });
616            });
617        },
618        filterEl: function (filterNav, filterContent) {
619            var self = this;
620            $(filterNav + ' a').click(function (e) {
621                e.preventDefault();
622                var el = $(this);
623                var activeClass = "is-category-filter-active";
624                $(filterNav + ' li').removeClass(activeClass);
625                el.closest('li').addClass(activeClass);
626                self.dataFilterVal = el.attr('data-filter');
627                self.filterStart(self.dataFilterVal, filterContent);
628            });
629        },
630        filterStart: function (dataFilterVal, filterContent) {
631            var self = this;
632            if (dataFilterVal == "all") {
633                $(filterContent + ' [class*="j-filter-"]').show().stop(true, false).animate({
634                    opacity: 1
635                }, 400);
636            } else {
637                var hideItems = $(filterContent + ' [class*="j-filter-"]').not(dataFilterVal);
638                hideItems.stop(true, false).animate({
639                    opacity: 0
640                }, 400);
641                setTimeout(function () {
642                    hideItems.hide();
643                }, 301);
644                $(filterContent + " " + dataFilterVal).show().stop(true, false).animate({
645                    opacity: 1
646                }, 400);
647            }
648            setTimeout(function () {
649                var masonryId = $(filterContent).find('.j-masonry').attr('data-masonry-id');
650                self.massMasonry[masonryId].layout();
651            }, 501);
652        }
653    };
654    masonryFilter.init();
655
656    var carouFredSelTabs = {
657        init: function () {
658            var self = this;
659            self.paramsInit();
660            self.carouFredSelcheckElements();
661            $(window).on('resize', function () {
662                self.resize();
663            });
664        },
665        paramsInit: function () {
666            $('.j-tabs-check-size').carouFredSel({
667                auto: {
668                    play: false
669                },
670                prev: '.j-tabs-btn-prev',
671                next: '.j-tabs-btn-next',
672                items: 'variable',
673                mousewheel: true,
674                responsive: false,
675                infinite: true,
676                circular: true,
677                swipe: {
678                    onMouse: true,
679                    onTouch: true
680                },
681                align: "left",
682                width: "100%",
683                scroll: {
684                    items: 1
685                }
686            });
687        },
688        carouFredSelcheckElements: function () {
689            var alltabs = $('.j-tabs-check-size > li').length;
690            var visibleTabs = $('.j-tabs-check-size').triggerHandler("currentVisible").length;
691            if (visibleTabs < alltabs) {
692                $('.tabs-wrap').addClass('btns-indent');
693                $('.j-tabs-check-size').trigger("updateSizes");
694            } else {
695                $('.tabs-wrap').removeClass('btns-indent');
696            }
697        },
698        resize: function () {
699            this.carouFredSelcheckElements();
700        }
701    };
702    if ($('.j-tabs-check-size').length) {
703        carouFredSelTabs.init();
704    }
705
706    var headerAndTopButtonPosition = {
707        $header: $('header'),
708        headerBreakHeight: 0,
709        $slider: $('.j-fixed-slider'),
710        scrollController: true,
711        headerFixed: false,
712        toTopBtn: $('.j-footer__btn_up'),
713        windowScrollTop: $(window).scrollTop(),
714        menuTopLevel: $('.b-top-nav__1level'),
715        init: function () {
716            var self = this;
717            self.checkHeaderWindowWidth();
718            self.btnToTopInit();
719            self.dropDownMenuAnimation();
720            $(window).on('resize', function () {
721                self.resize();
722            });
723        },
724        checkHeaderWindowWidth: function () {
725            var self = this;
726            self.headerFixed = false;
727            self.windowScrollTop = $(window).scrollTop();
728            if (self.$header.length !== 0) {
729                self.checkHeaderWindowWidthNow();
730                $(window).on('scroll', function () {
731                    self.checkHeaderWindowWidthNow();
732                });
733            }
734        },
735        checkHeaderWindowWidthNow: function () {
736            var self = this;
737            if (window.innerWidth > BREAK.LG) {
738                self.windowScrollTop = $(window).scrollTop();
739                self.checkHeaderPosition();
740                self.btnToTop();
741            } else {
742                $('body').removeClass('is-fixed-header').css('padding-top', '0' + 'px');
743                self.$header.removeClass('animated fadeInDown');
744            }
745        },
746        checkHeaderPosition: function () {
747            var self = this;
748            if (self.windowScrollTop > self.headerBreakHeight && !self.headerFixed) {
749                $('body').addClass('is-fixed-header').css('padding-top', self.$header.outerHeight() + 'px');
750                self.$header.addClass('animated fadeInDown');
751                self.$slider.addClass('is-active').css('top', self.$header.outerHeight() + 'px');
752                self.headerFixed = true;
753            }
754            else if (self.windowScrollTop <= self.headerBreakHeight && self.headerFixed) {
755                $('body').removeClass('is-fixed-header').css('padding-top', '0px');
756                self.$header.removeClass('animated fadeInDown');
757                self.$slider.removeClass('is-active');
758                self.headerFixed = false;
759            }
760        },
761        btnToTopInit: function () {
762            var self = this;
763            var SPEEDTOP = 500; // button to top
764            self.toTopBtn.addClass('b-hidden').css('opacity', 0);
765            self.toTopBtn.css('position', 'fixed');
766            self.toTopBtn.on('click', function () {
767                var offset = $('body').offset();
768                if (offset) {
769                    $('html,body').animate({scrollTop: offset.top}, SPEEDTOP);
770                }
771            });
772        },
773        btnToTop: function () {
774            var self = this;
775            if (self.windowScrollTop >
775 self.headerBreakHeight && self.scrollController) {
776                self.scrollController = false;
777                self.toTopBtn.removeClass('b-hidden');
778                self.toTopBtn.stop(true, true).animate({
779                    opacity: 1
780                }, 1000);
781            } else if (self.windowScrollTop <= self.headerBreakHeight) {
782                self.scrollController = true;
783                self.toTopBtn.addClass('b-hidden').css('opacity', 0);
784                self.toTopBtn.stop(true, true).animate({
785                    opacity: 0
786                }, 1000);
787            }
788        },
789        dropDownMenuAnimation: function () {
790            var self = this;
791            if ($(window).width() > BREAK.LG) {
792                self.menuTopLevel.hover(function () {
793                    $(this).find('.b-top-nav__dropdomn')
794                        .css('display', 'block')
795                        .animate({
796                            opacity: 1
797                        }, 400);
798                }, function () {
799                    $(this).find('.b-top-nav__dropdomn')
800                        .animate({
801                            opacity: 0
802                        }, 400, function(){
803                            $(this).css('display', '');
804                        });
805                })
806            } else {
807                self.menuTopLevel.find('.b-top-nav__dropdomn').css('opacity', '');
808            }
809
810        },
811        resize: function () {
812            this.checkHeaderWindowWidth();
813            this.dropDownMenuAnimation();
814        }
815    };
816    headerAndTopButtonPosition.init();
817
818    $('[data-type="background"]').each(function () {
819        var $bgobj = $(this);
820        $(window).on('scroll', function () {
821            var yPos = -($(window).scrollTop() / $bgobj.data('speed'));
822            var coords = 'center ' + yPos + 'px';
823            $bgobj.css({ backgroundPosition: coords });
824        });
825    });
826});
827
828

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.