PageSourceSearch

https://rotasdeolimpia.com.br/wp-content/themes/look/assets/js/theme-script.js?ver=6.0

js rotasdeolimpia.com.br collected 2026-10-06 04:47:06 UTC 58,270 bytes, 1,572 lines download raw bytes

1/*--------------------------------------------------------------
2 LOOK MAN SCRIPT
3 --------------------------------------------------------------*/
4var look_ruby_to_top;
5var look_ruby_to_top_mobile;
6var look_ruby_tfooter_instagram_popup;
7var look_ruby_sb_instagram_popup;
8var look_ruby_single_image_popup;
9var look_ruby_site_bg_link;
10
11(function ($) {
12    "use strict";
13    var look_ruby = {};
14
15    look_ruby.window = $(window);
16    look_ruby.document = $(document);
17    look_ruby.html = $('html, body');
18    look_ruby.body = $('body');
19    look_ruby.blog_content = $('#ruby-site-content');
20    look_ruby.touch = Modernizr.touch;
21    look_ruby.ios = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
22    look_ruby.window_last_pos = 0;
23    look_ruby.ajax_running = false;
24    look_ruby.direction = '';
25    look_ruby.$wHeight = $(window).height();
26    look_ruby.$delay = 1;
27
28    //slider
29    look_ruby.auto_play = true;
30    look_ruby.auto_play_speed = 5000;
31    look_ruby.play_speed = 400;
32    look_ruby.prev_arrow = '<div class="ruby-slider-prev ruby-slider-nav"></div>';
33    look_ruby.next_arrow = '<div class="ruby-slider-next ruby-slider-nav"></div>';
34    look_ruby.prev_arrow_small = '<div class="ruby-slider-prev-small ruby-slider-nav-small"><i class="fa-rb fa-angle-left" aria-hidden="true"></i></div>';
35    look_ruby.next_arrow_small = '<div class="ruby-slider-next-small ruby-slider-nav-small"><i class="fa-rb fa-angle-right" aria-hidden="true"></i></div>';
36    look_ruby.get_rtl = function () {
37        return look_ruby.body.hasClass('rtl');
38    };
39
40    look_ruby.ajax = {};
41    look_ruby.waypoint_item = [];
42
43    look_ruby.ajax_blog_data = function (blog) {
44        var param = {};
45        param.blog_layout = blog.data('blog_layout');
46        param.posts_per_page = blog.data('posts_per_page');
47        param.blog_page_max = blog.data('blog_page_max');
48        param.blog_page_current = blog.data('blog_page_current');
49        param.big_first = blog.data('big_first');
50        param.blog_sidebar_position = blog.data('blog_sidebar_position');
51        param.category_id = blog.data('category_id');
52
53        return param;
54    };
55
56    $(document).ready(function () {
57        look_ruby_document_ready();
58        look_ruby_document_reload();
59
60
61    });
62
63
64    /**-------------------------------------------------------------------------------------------------------------------------
65     *  document.ready()
66     */
67    function look_ruby_document_ready() {
68
69        //featured slider
70        look_ruby_block_fw_slider();
71        look_ruby_block_fw_slider_2();
72        look_ruby_block_hw_slider();
73        look_ruby_block_fw_carousel();
74        look_ruby_block_fw_carousel_1();
75
76        //hide counter
77        look_ruby_hide_share_counter();
78
79        //instagram popup
80        look_ruby_sb_widget_instagram_popup();
81        look_ruby_tfooter_widget_instagram_popup();
82
83        //back to top
84        look_ruby_back_to_top();
85
86        //smooth scroll
87        look_ruby_enable_smooth_scroll();
88        look_ruby_smooth_scroll_TOC();
89        look_ruby_touch_menu();
90
91        //sticky navigation
92        look_ruby_enable_sticky_navigation();
93
94        //search form popup
95        look_ruby_search_popup();
96
97        //off canvas toggle
98        look_ruby_off_canvas_toggle();
99
100        //social tooltip
101        look_ruby_enable_social_tooltip();
102
103        //singe page popup
104        look_ruby_single_page_featured_popup();
105
106        //remove thumb holder
107        look_ruby_remove_holder();
108
109        //video playlist
110        look_ruby_video_playlist();
111        look_ruby_iframe_playlist_autoplay();
112
113        //site bg link
114        look_ruby_body_click();
115
116        //ajax load more
117        look_ruby_blog_loadmore();
118
119        look_ruby_single_infinite();
120        look_ruby_scroll_update_url();
121
122    }
123
124    /**-------------------------------------------------------------------------------------------------------------------------
125     * reload after ajax
126     */
127    function look_ruby_document_reload() {
128        //gallery post
129        look_ruby_post_gallery_gird();
130        look_ruby_gallery_slider();
131
132        //smooth display
133        look_ruby_enable_smooth_display();
134
135
136        //iframe responsive
137        look_ruby_iframe_responsive();
138
139        //sticky sidebar
140        look_ruby_enable_sticky_sidebar();
141
142        //mini slider
143        look_ruby_block_mini_slider();
144
145        //single content popup
146        look_ruby_single_post_content_popup();
147        look_ruby_post_gallery_popup();
148        look_ruby_single_post_featured_popup();
149
150        //review progress bar
151        look_ruby_animation_progress_bar();
152
153        //blog infinite
154        look_ruby_blog_infinite();
155    }
156
157
158    /**-------------------------------------------------------------------------------------------------------------------------
159     * re initiate all function after ajax
160     */
161    function look_ruby_reinitiate_function() {
162
163        //remove event handle
164        look_ruby.html.off();
165        look_ruby.document.off();
166
167        //trigger load
168        look_ruby.window.trigger('load');
169
170        //reload function
171        look_ruby_document_reload();
172    }
173
174
175    /**-------------------------------------------------------------------------------------------------------------------------
176     * ajax cache
177     * @type {{data: {}, get: Function, set: Function, remove: Function, exist: Function}}
178     */
179    var look_ruby_cache = {
180        data: {},
181
182        //get cache
183        get: function (id) {
184            return look_ruby_cache.data[id];
185        },
186
187        //set cache
188        set: function (id, data) {
189            look_ruby_cache.remove(id);
190            look_ruby_cache.data[id] = data;
191        },
192
193        //remove cache
194        remove: function (id) {
195            delete look_ruby_cache.data[id];
196        },
197
198        //empty cache
199        exist: function (id) {
200            return look_ruby_cache.data.hasOwnProperty(id) && look_ruby_cache.data[id] !== null;
201        }
202    };
203
204
205    /**-------------------------------------------------------------------------------------------------------------------------
206     *  video responsive
207     */
208    function look_ruby_iframe_responsive() {
209        $('.entry').each(function () {
210            var entry_el = $(this);
211            if (false == entry_el.hasClass('iframe-loaded')) {
212                entry_el.fitVids();
213                entry_el.addClass('iframe-loaded');
214            }
215        });
216    }
217
218    /**-------------------------------------------------------------------------------------------------------------------------
219     * feat slider fw
220     */
221    function look_ruby_block_fw_slider() {
222        var block_fw_slider = $('.ruby-slider-fw');
223        if (block_fw_slider.length > 0) {
224            block_fw_slider.each(function () {
225
226                var block_fw_slider_el = $(this);
227                block_fw_slider_el.on('init', function () {
228                    block_fw_slider_el.imagesLoaded(function () {
229                        block_fw_slider_el.prev('.slider-loading').fadeOut(200, function () {
230                            $(this).remove();
231                            block_fw_slider_el.removeClass('slider-init');
232                        });
233                    });
234                });
235
236                block_fw_slider_el.slick({
237                    dots: true,
238                    infinite: true,
239                    autoplay: look_ruby.auto_play,
240                    autoplaySpeed: look_ruby.auto_play_speed,
241                    speed: look_ruby.play_speed,
242                    adaptiveHeight: false,
243                    arrows: true,
244                    rtl: look_ruby.get_rtl(),
245                    prevArrow: look_ruby.prev_arrow,
246                    nextArrow: look_ruby.next_arrow
247                });
248            });
249        }
250    }
251
252    /**-------------------------------------------------------------------------------------------------------------------------
253     * feat slider fw 2
254     */
255    function look_ruby_block_fw_slider_2() {
256        var block_fw_slider = $('.ruby-slider-fw-2');
257        if (block_fw_slider.length > 0) {
258            block_fw_slider.each(function () {
259
260                var block_fw_slider_el = $(this);
261                block_fw_slider_el.on('init', function () {
262                    block_fw_slider_el.imagesLoaded(function () {
263                        block_fw_slider_el.prev('.slider-loading').fadeOut(200, function () {
264                            $(this).remove();
265                            block_fw_slider_el.removeClass('slider-init');
266                        });
267                    });
268                });
269
270                block_fw_slider_el.slick({
271                    dots: true,
272                    infinite: true,
273                    fade: true,
274                    cssEase: 'linear',
275                    autoplay: look_ruby.auto_play,
276                    autoplaySpeed: look_ruby.auto_play_speed,
277                    speed: 800,
278                    adaptiveHeight: false,
279                    arrows: true,
280                    rtl: look_ruby.get_rtl(),
281                    prevArrow: look_ruby.prev_arrow,
282                    nextArrow: look_ruby.next_arrow
283                });
284            });
285        }
286    }
287
288
289    /**-------------------------------------------------------------------------------------------------------------------------
290     * block has wrapper slider
291     */
292    function look_ruby_block_hw_slider() {
293        var block_hw_slider = $('.ruby-slider-hw');
294        if (block_hw_slider.length > 0) {
295            block_hw_slider.each(function () {
296
297                var block_hw_slider_el = $(this);
298                var block_hw_slider_nav_el = $(this).next('.ruby-slider-hw-nav');
299
300                block_hw_slider_el.on('init', function () {
301                    block_hw_slider_el.imagesLoaded(function () {
302                        block_hw_slider_el.prev('.slider-loading').fadeOut(200, function () {
303                            $(this).remove();
304                            block_hw_slider_el.removeClass('slider-init');
305                        });
306                    });
307                });
308
309                block_hw_slider_nav_el.on('init', function () {
310                    block_hw_slider_nav_el.imagesLoaded(function () {
311                        block_hw_slider_nav_el.removeClass('slider-init');
312                    });
313                });
314
315
316                block_hw_slider_el.slick({
317                    dots: true,
318                    infinite: true,
319                    autoplay: look_ruby.auto_play,
320                    autoplaySpeed: look_ruby.auto_play_speed,
321                    speed: look_ruby.play_speed,
322                    adaptiveHeight: false,
323                    arrows: true,
324                    rtl: look_ruby.get_rtl(),
325                    asNavFor: block_hw_slider_nav_el,
326                    prevArrow: look_ruby.prev_arrow,
327                    nextArrow: look_ruby.next_arrow
328                });
329
330                block_hw_slider_nav_el.slick({
331                    slidesToShow: 4,
332                    slidesToScroll: 1,
333                    arrows: false,
334                    dots: false,
335                    rtl: look_ruby.get_rtl(),
336                    asNavFor: block_hw_slider_el,
337                    centerMode: false,
338                    focusOnSelect: true
339                });
340            });
341        }
342    }
343
344
345    /**-------------------------------------------------------------------------------------------------------------------------
346     * block fw carousel
347     */
348    function look_ruby_block_fw_carousel() {
349
350        var block_carousel_padding1 = '300px';
351        var block_carousel_padding2 = '250px';
352        var block_carousel_padding3 = '200px';
353
354        //check boxed layout
355        if (look_ruby.body.hasClass('is-boxed')) {
356            block_carousel_padding1 = '160px';
357            block_carousel_padding2 = '160px';
358            block_carousel_padding3 = '160px';
359        }
360
361        var block_carousel_fw = $('.ruby-carousel');
362        if (block_carousel_fw.length > 0) {
363
364            block_carousel_fw.each(function () {
365                var block_carousel_fw_el = $(this);
366                block_carousel_fw_el.on('init', function () {
367                    block_carousel_fw_el.imagesLoaded(function () {
368                        block_carousel_fw_el.prev('.slider-loading').fadeOut(400, function () {
369                            $(this).remove();
370                            block_carousel_fw_el.removeClass('slider-init');
371                        });
372                    });
373                });
374                block_carousel_fw_el.slick({
375                    centerMode: true,
376                    infinite: true,
377                    autoplay: look_ruby.auto_play,
378                    autoplaySpeed: look_ruby.auto_play_speed,
379                    speed: look_ruby.play_speed,
380                    wipeToSlide: 1,
381                    centerPadding: block_carousel_padding1,
382                    adaptiveHeight: false,
383                    rtl: look_ruby.get_rtl(),
384                    slidesToShow: 1,
385                    slidesToScroll: 1,
386                    dots: true,
387                    arrows: true,
388                    prevArrow: look_ruby.prev_arrow,
389                    nextArrow: look_ruby.next_arrow,
390                    responsive: [
391                        {
392                            breakpoint: 1500,
393                            settings: {
394                                centerMode: true,
395                                dots: true,
396                                arrows: true,
397                                slidesToShow: 1,
398                                slidesToScroll: 1,
399                                centerPadding: block_carousel_padding2
400                            }
401                        },
402                        {
403                            breakpoint: 1400,
404                            settings: {
405                                dots: true,
406                                centerMode: true,
407                                slidesToShow: 1,
408                                slidesToScroll: 1,
409                                centerPadding: block_carousel_padding3
410                            }
411                        },
412                        {
413                            breakpoint: 1280,
414                            settings: {
415                                dots: true,
416                                arrows: true,
417                                centerMode: true,
418                                slidesToShow: 1,
419                                slidesToScroll: 1,
420                                centerPadding: '160px'
421                            }
422                        },
423                        {
424                            breakpoint: 992,
425                            settings: {
426                                dots: true,
427                                arrows: true,
428                                centerMode: true,
429                                slidesToShow: 1,
430                                slidesToScroll: 1,
431                                centerPadding: '120px'
432
433                            }
434                        },
435                        {
436                            breakpoint: 768,
437                            settings: {
438                                dots: true,
439                                centerMode: true,
440                                arrows: false,
441                                slidesToShow: 1,
442                                slidesToScroll: 1,
443                                centerPadding: '40px'
444                            }
445                        },
446                        {
447                            breakpoint: 480,
448                            settings: {
449                                dots: true,
450                                arrows: false,
451                                centerMode: true,
452                                slidesToShow: 1,
453                                slidesToScroll: 1,
454                                centerPadding: '20px'
455                            }
456                        }
457                    ]
458                });
459            });
460        }
461    }
462
463
464    /**-------------------------------------------------------------------------------------------------------------------------
465     * block fw carousel
466     */
467    function look_ruby_block_fw_carousel_1() {
468        var block_carousel_fw = $('.ruby-carousel-1');
469        if (block_carousel_fw.length > 0) {
470
471            var slider_show = 4;
472            var slider_scroll = 4;
473            //check boxed layout
474            if (look_ruby.body.hasClass('is-boxed')) {
475                slider_show = 3;
476                slider_scroll = 3;
477            }
478
479            block_carousel_fw.each(function () {
480                var block_carousel_fw_el = $(this);
481
482                block_carousel_fw_el.on('init', function () {
483                    block_carousel_fw_el.imagesLoaded(function () {
484                        block_carousel_fw_el.prev('.slider-loading').fadeOut(400, function () {
485                            $(this).remove();
486                            block_carousel_fw_el.removeClass('slider-init');
487                        });
488                    });
489                });
490                block_carousel_fw_el.slick({
491                    infinite: true,
492                    autoplay: look_ruby.auto_play,
493                    autoplaySpeed: look_ruby.auto_play_speed,
494                    speed: look_ruby.play_speed,
495                    wipeToSlide: slider_scroll,
496                    adaptiveHeight: false,
497                    centerMode: false,
498                    rtl: look_ruby.get_rtl(),
499                    slidesToShow: slider_show,
500                    slidesToScroll: slider_scroll,
501                    dots: true,
502                    arrows: true,
503                    prevArrow: look_ruby.prev_arrow,
504                    nextArrow: look_ruby.next_arrow,
505                    responsive: [
506                        {
507                            breakpoint: 1400,
508                            settings: {
509                                dots: true,
510                                arrows: true,
511                                slidesToShow: 3,
512                                slidesToScroll: 3
513                            }
514                        },
515                        {
516                            breakpoint: 992,
517                            settings: {
518                                dots: true,
519                                arrows: true,
520                                centerMode: false,
521                                slidesToShow: 2,
522                                slidesToScroll: 2
523                            }
524                        },
525                        {
526                            breakpoint: 480,
527                            settings: {
528                                dots: true,
529                                arrows: false,
530                                centerMode: false,
531                                slidesToShow: 1,
532                                slidesToScroll: 1
533                            }
534                        }
535                    ]
536                });
537            });
538        }
539    }
540
541    /**-------------------------------------------------------------------------------------------------------------------------
542     * feat slider mini
543     */
544    function look_ruby_block_mini_slider() {
545        var block_mini_slider = $('.ruby-mini-slider');
546        if (block_mini_slider.length > 0) {
547            block_mini_slider.each(function () {
548                var block_mini_slider_el = $(this);
549
550                //unslick
551                if (block_mini_slider_el.hasClass('slick-initialized')) {
552                    block_mini_slider_el.slick('unslick');
553                }
554
555                block_mini_slider_el.on('init', function () {
556                    block_mini_slider_el.imagesLoaded(function () {
557                        block_mini_slider_el.prev('.slider-loading').fadeOut(400, function () {
558                            $(this).remove();
559                            block_mini_slider_el.removeClass('slider-init');
560                        });
561                    });
562                });
563
564                block_mini_slider_el.slick({
565                    infinite: true,
566                    autoplay: look_ruby.auto_play,
567                    autoplaySpeed: look_ruby.auto_play_speed,
568                    speed: look_ruby.play_speed,
569                    adaptiveHeight: false,
570                    arrows: true,
571                    dots: false,
572                    rtl: look_ruby.get_rtl(),
573                    prevArrow: look_ruby.prev_arrow_small,
574                    nextArrow: look_ruby.next_arrow_small
575                });
576            });
577        }
578    }
579
580
581    /**-------------------------------------------------------------------------------------------------------------------------
582     * hide counter text
583     */
584    function look_ruby_hide_share_counter() {
585        $('.post-share-bar-inner').hover(function () {
586            $(this).next().css('opacity', 0);
587        }, function () {
588            $(this).next().css('opacity', 1);
589        })
590    }
591
592
593    /**-------------------------------------------------------------------------------------------------------------------------
594     * look_ruby gallery grid
595     */
596    function look_ruby_post_gallery_gird() {
597        var gallery_grid = $('.ruby-gallery-grid');
598        if (gallery_grid.length > 0) {
599            gallery_grid.each(function () {
600                var gallery_grid_el = $(this);
601                if (!gallery_grid_el.hasClass('gallery-loaded')) {
602                    gallery_grid_el.fadeIn(300).justifiedGallery({
603                        lastRow: 'justify',
604                        rowHeight: 200,
605                        maxRowHeight: 250,
606                        fixedHeight: false,
607                        rel: 'gallery',
608                        waitThumbnailsLoad: true,
609                        margins: 3,
610                        captions: false,
611                        refreshTime: 250,
612                        imagesAnimationDuration: 300,
613                        randomize: false,
614                        sizeRangeSuffixes: {lt100: "", lt240: "", lt320: "", lt500: "", lt640: "", lt1024: ""}
615                    }).on('jg.complete', function () {
616
617                        //remove loading class
618                        gallery_grid_el.removeClass('slider-init');
619                        gallery_grid_el.addClass('gallery-loaded');
620                        gallery_grid_el.prev('.slider-loading').fadeOut(400, function () {
621                            $(this).remove();
622                        });
623
624                        //refresh waypoint
625                        setTimeout(function () {
626                            Waypoint.refreshAll();
627                        }, 100);
628
629                        gallery_grid_el.find('a').magnificPopup({
630                            type: 'image',
631                            // Delay in milliseconds before popup is removed
632                            removalDelay: 200,
633                            // Class that is added to popup wrapper and background
634                            // make it unique to apply your CSS animations just to this exact popup
635                            mainClass: 'mfp-fade',
636                            closeOnContentClick: true,
637                            closeBtnInside: true,
638                            gallery: {
639                                enabled: true,
640                                navigateByImgClick: true,
641                                preload: [0, 1]
642                            }
643                        });
644                    });
645                }
646            });
647        }
648    }
649
650
651    /**-------------------------------------------------------------------------------------------------------------------------
652     * look_ruby gallery slider
653     */
654    function look_ruby_gallery_slider() {
655        var gallery_slider = $('.ruby-gallery-slider');
656        if (gallery_slider.length > 0) {
657            gallery_slider.each(function () {
658                var gallery_slider_el = $(this);
659                if (!gallery_slider_el.hasClass('gallery-loaded')) {
660                    gallery_slider_el.on('init', function () {
661                        gallery_slider_el.imagesLoaded(function () {
662                            gallery_slider_el.prev('.slider-loading').fadeOut(200, function () {
663                                $(this).remove();
664                                gallery_slider_el.removeClass('slider-init');
665                                gallery_slider_el.addClass('gallery-loaded');
666
667                                //refresh waypoint
668                                setTimeout(function () {
669                                    Waypoint.refreshAll();
670                                }, 100);
671                            });
672                        });
673
674                    });
675
676                    gallery_slider_el.slick({
677                        dots: true,
678                        infinite: true,
679                        autoplay: look_ruby.auto_play,
680                        autoplaySpeed: look_ruby.auto_play_speed,
681                        speed: look_ruby.play_speed,
682                        adaptiveHeight: false,
683                        arrows: true,
684                        rtl: look_ruby.get_rtl(),
685                        prevArrow: look_ruby.prev_arrow,
686                        nextArrow: look_ruby.next_arrow
687                    });
688                }
689            })
690        }
691    }
692
693
694    /**-------------------------------------------------------------------------------------------------------------------------
695     * sidebar instagram popup images
696     */
697    function look_ruby_sb_widget_instagram_popup() {
698        if ('undefined' != typeof (look_ruby_sb_instagram_popup) && 1 == look_ruby_sb_instagram_popup) {
699            $('.instagram-content-wrap .instagram-el a').magnificPopup({
700                type: 'image',
701                removalDelay: 200,
702                mainClass: 'mfp-fade',
703                closeOnContentClick: true,
704                closeBtnInside: true,
705                gallery: {
706                    enabled: true,
707                    navigateByImgClick: true,
708                    preload: [0, 1]
709                }
710            });
711        }
712    }
713
714
715    /**-------------------------------------------------------------------------------------------------------------------------
716     * top footer instagram popup images
717     */
718    function look_ruby_tfooter_widget_instagram_popup() {
719        if ('undefined' != typeof (look_ruby_tfooter_instagram_popup) && 1 == look_ruby_tfooter_instagram_popup) {
720            $('.instagram-content-wrap .footer-instagram-el a').magnificPopup({
721                type: 'image',
722                removalDelay: 200,
723                mainClass: 'mfp-fade',
724                closeOnContentClick: true,
725                closeBtnInside: true,
726                gallery: {
727                    enabled: true,
728                    navigateByImgClick: true,
729                    preload: [0, 1]
730                }
731            });
732        }
733    }
734
735
736    /**-------------------------------------------------------------------------------------------------------------------------
737     *  Back to top
738     */
739    function look_ruby_back_to_top() {
740        if (1 == look_ruby_to_top) {
741            if (1 == look_ruby_to_top_mobile) {
742                $().UItoTop({
743                    containerID: 'ruby-back-top', //fading element id
744                    easingType: 'easeOutQuart',
745                    text: '<i class="fa-rb fa-long-arrow-up" aria-hidden="true"></i>',
746                    containerHoverID: 'ruby-back-top-inner',
747                    scrollSpeed: 800
748                });
749            } else {
750                if (false === look_ruby.touch) {
751                    $().UItoTop({
752                        containerID: 'ruby-back-top', //fading element id
753                        easingType: 'easeOutQuart',
754                        text: '<i class="fa-rb fa-long-arrow-up" aria-hidden="true"></i>',
755                        containerHoverID: 'ruby-back-top-inner',
756                        scrollSpeed: 800
757                    });
758                }
759            }
760        }
761    }
762
763
764    /**-------------------------------------------------------------------------------------------------------------------------
765     * sticky sidebar
766     */
767    function look_ruby_enable_sticky_sidebar() {
768        look_ruby.window.load(function () {
769            var sidebars = $('.ruby-sidebar-sticky');
770            if (sidebars.length > 0) {
771                $('body').imagesLoaded(function () {
772                    RubyStickySidebar.stick(sidebars);
773                });
774            }
775        });
776    }
777
778    /**-------------------------------------------------------------------------------------------------------------------------
779     * site smooth scroll
780     */
781    function look_ruby_enable_smooth_scroll() {
782        if (look_ruby.body.hasClass('is-site-smooth-scroll')) {
783            ruby_smooth_scroll();
784        }
785    }
786
787    /**-------------------------------------------------------------------------------------------------------------------------
788     * site smooth scroll
789     */
790    function look_ruby_smooth_scroll_TOC() {
791        var TOC = $('#ruby-table-contents');
792        if (TOC.hasClass('rb-smooth-scroll')) {
793            look_ruby.html.css('scroll-behavior', 'smooth');
794        }
795    }
796
797
798    /**-------------------------------------------------------------------------------------------------------------------------
799     * site smooth display
800     */
801    function look_ruby_enable_smooth_display() {
802        var flag = false;
803        look_ruby.blog_content.imagesLoaded(function () {
804            if (false === flag) {
805                look_ruby_animated_image();
806                flag = true;
807            }
808        });
809
810        //set timeout for slow load
811        setTimeout(function () {
812            if (false === flag) {
813                look_ruby_animated_image();
814                flag = true;
815            }
816        }, 1000);
817    }
818
819    /**-------------------------------------------------------------------------------------------------------------------------
820     * animating images
821     */
822    function look_ruby_animated_image() {
823        $('.ruby-animated-image').each(function () {
824            var that = $(this);
825            var delay = 50 + (that.offset().left / 3.5);
826            that.waypoint({
827                handler: function () {
828                    setTimeout(function () {
829                        that.addClass('ruby-animation');
830                    }, delay);
831                },
832                offset: '97%',
833                triggerOnce: true
834            });
835        })
836    }
837
838
839    /**-------------------------------------------------------------------------------------------------------------------------
840     * sticky navigation
841     */
842    function look_ruby_enable_sticky_navigation() {
843
844        if (look_ruby.body.hasClass('is-sticky-nav')) {
845
846            var topSpacing = 0;
847            var smartSticky = false;
848            if (look_ruby.body.hasClass('admin-bar')) {
849                topSpacing = 32;
850            }
851
852            var navOuter = $('.header-nav-wrap');
853            var nav = $('.header-nav-inner');
854            navOuter.css('min-height', nav.height());
855
856            if (look_ruby.body.hasClass('is-smart-sticky')) {
857                smartSticky = true;
858            }
859            nav.sticky({
860                className: 'ruby-is-stick',
861                topSpacing: topSpacing,
862                responsiveWidth: true,
863                smartSticky: smartSticky,
864                zIndex: 9800
865            });
866        }
867    }
868
869
870    /**-------------------------------------------------------------------------------------------------------------------------
871     * search form popup
872     */
873    function look_ruby_search_popup() {
874        //login mfp
875        $('#ruby-banner-search').magnificPopup({
876            type: 'inline',
877            preloader: false,
878            focus: '#name',
879            closeBtnInside: false,
880            removalDelay: 500,
881            callbacks: {
882                beforeOpen: function () {
883                    this.st.mainClass = this.st.el.attr('data-effect');
884                    if (jQuery(window).width() < 768) {
885                        this.st.focus = false;
886                    }
887                }
888            }
889        });
890
891        $('#ruby-nav-search').magnificPopup({
892            type: 'inline',
893            preloader: false,
894            focus: '#name',
895            closeBtnInside: false,
896            removalDelay: 500,
897            callbacks: {
898                beforeOpen: function () {
899                    this.st.mainClass = this.st.el.attr('data-effect');
900                    if (jQuery(window).width() < 768) {
901                        this.st.focus = false;
902                    }
903                }
904            }
905        });
906    }
907
908
909    /**-------------------------------------------------------------------------------------------------------------------------
910     * off canvas toggle
911     */
912    function look_ruby_off_canvas_toggle() {
913        var off_canvas_btn = $('.ruby-trigger');
914        var btn_close = $('#ruby-off-canvas-close-btn');
915        var site_mask = $('.main-site-mask');
916
917        off_canvas_btn.click(function () {
918            look_ruby.body.toggleClass('mobile-js-menu');
919            return false;
920        });
921
922        site_mask.click(function () {
923            look_ruby.body.toggleClass('mobile-js-menu');
924            return false;
925        });
926
927        btn_close.click(function () {
928            look_ruby.body.toggleClass('mobile-js-menu');
929            return false;
930        });
931
932        //show hide sub off canvas menu
933        var off_canvas_nav = $('.off-canvas-nav-wrap');
934        var off_canvas_nav_sub_a = off_canvas_nav.find('li.menu-item-has-children >a');
935        off_canvas_nav_sub_a.append('<span class="explain-menu"><span class="explain-menu-inner"><i class="fa-rb fa-angle-down" aria-hidden="true"></i></span></span>');
936        var explain_mobile_menu = $('.explain-menu');
937        explain_mobile_menu.click(function () {
938            $(this).closest('.menu-item-has-children').toggleClass('show-sub-menu');
939            return false;
940        });
941    }
942
943    function look_ruby_touch_menu() {
944        if (look_ruby.touch && look_ruby.html.width() > 992) {
945
946            var main_navigation = $('.main-nav-inner');
947            var item_has_child = main_navigation.children('.menu-item-has-children');
948            item_has_child.children('a').append('<span class="explain-menu"><span class="explain-menu-inner"><i class="fa-rb fa-angle-down" aria-hidden="true"></i></span></span>');
949            var explain_mobile_menu = main_navigation.find('.explain-menu');
950            explain_mobile_menu.click(function () {
951                $(this).parent('.menu-item-has-children').toggleClass('show-sub-menu');
952                return false;
953            });
954        }
955    }
956
957
958    /**-------------------------------------------------------------------------------------------------------------------------
959     * progress bar animation
960     */
961    function look_ruby_animation_progress_bar() {
962
963        var progress_bar = $('.score-bar');
964        progress_bar.each(function () {
965            $(this).addClass('score-remove');
966        });
967
968        progress_bar.each(function () {
969            var that = $(this);
970            that.waypoint({
971                    handler: function () {
972                        that.removeClass('score-remove');
973                        that.addClass('score-animation');
974                    },
975                    offset: '85%'
976                }
977            )
978        });
979    }
980
981    /**-------------------------------------------------------------------------------------------------------------------------
982     * social tooltip
983     */
984    function look_ruby_enable_social_tooltip() {
985        if (look_ruby.body.hasClass('is-social-tooltip') && (false === look_ruby.ios) && (false === look_ruby.touch)) {
986            $('.social-link-info').find('a').tipsy({fade: true});
987        }
988    }
989
990
991    /**-------------------------------------------------------------------------------------------------------------------------
992     * single post featured popup image
993     */
994    function look_ruby_single_post_featured_popup() {
995        $('.single .post-thumb.is-image-single a').magnificPopup({
996            type: 'image',
997            removalDelay: 500,
998            mainClass: 'mfp-fade',
999            closeOnContentClick: true,
1000            closeBtnInside: true
1001        });
1002    }
1003
1004
1005    /**-------------------------------------------------------------------------------------------------------------------------
1006     * single page featured popup image
1007     */
1008    function look_ruby_single_page_featured_popup() {
1009        $('.page-template-default .post-thumb.is-image-single a').magnificPopup({
1010            type: 'image',
1011            removalDelay: 500,
1012            mainClass: 'mfp-fade',
1013            closeOnContentClick: true,
1014            closeBtnInside: true
1015        });
1016    }
1017
1018
1019    /**-------------------------------------------------------------------------------------------------------------------------
1020     *  single image popup as gallery
1021     */
1022    function look_ruby_single_post_content_popup() {
1023        if (1 == look_ruby_single_image_popup) {
1024
1025            var single_entry = $('.single .entry');
1026
1027            if (single_entry.length > 0) {
1028                single_entry.each(function () {
1029                    var single_entry_el = $(this);
1030                    var single_popup_last_item = null;
1031
1032                    single_entry_el.find('a img').each(function () {
1033                        var image_wrap = $(this).parent();
1034                        var image_link = image_wrap.attr('href');
1035                        if ('undefined' !== typeof image_link && image_link.indexOf('wp-content/uploads') > 0) {
1036                            image_wrap.addClass('single-popup');
1037                        }
1038                    });
1039
1040                    single_entry_el.magnificPopup({
1041                        type: 'image',
1042                        removalDelay: 500,
1043                        mainClass: 'mfp-fade',
1044                        delegate: '.single-popup',
1045                        closeOnContentClick: true,
1046                        closeBtnInside: true,
1047                        gallery: {
1048                            enabled: true
1049                        },
1050                        callbacks: {
1051                            change: function (item) {
1052                                single_popup_last_item = item.el;
1053                                look_ruby_scroll_view(item.el);
1054                            },
1055                            beforeClose: function () {
1056                                if (single_popup_last_item) {
1057                                    look_ruby_scroll_view(single_popup_last_item);
1058                                }
1059                            }
1060                        }
1061                    });
1062                });
1063            }
1064        }
1065    }
1066
1067
1068    /**-------------------------------------------------------------------------------------------------------------------------
1069     * scrolling into view
1070     * @param element
1071     */
1072    function look_ruby_scroll_view(element) {
1073
1074        if (true === look_ruby.touch) {
1075            return;
1076        }
1077
1078        look_ruby.html.stop();
1079
1080        var destination = element.offset().top;
1081        destination = destination - 150;
1082
1083
1084        //go to destination
1085        look_ruby.html.animate(
1086            {scrollTop: destination},
1087            {
1088                duration: 500,
1089                easing: 'easeInOutQuart'
1090            }
1091        );
1092    }
1093
1094
1095    /**-------------------------------------------------------------------------------------------------------------------------
1096     * remove thumb holder
1097     */
1098    function look_ruby_remove_holder() {
1099        var post_wrap = $('.post-wrap');
1100        if (post_wrap.length > 0) {
1101            post_wrap.each(function () {
1102                var post_wrap_el = $(this);
1103                post_wrap_el.imagesLoaded(function () {
1104                    post_wrap_el.find('.post-thumb').removeClass('ruby-holder');
1105                })
1106            })
1107        }
1108
1109    }
1110
1111
1112    /**-------------------------------------------------------------------------------------------------------------------------
1113     * post gallery popup
1114     */
1115    function look_ruby_post_gallery_popup() {
1116        $('.post-thumb.is-gallery').find('a').magnificPopup({
1117            type: 'image',
1118            closeOnContentClick: true,
1119            closeBtnInside: true,
1120            removalDelay: 500,
1121            mainClass: 'mfp-fade',
1122            gallery: {
1123                enabled: true,
1124                navigateByImgClick: true,
1125                preload: [0, 1]
1126            }
1127        });
1128    }
1129
1130
1131    /**-------------------------------------------------------------------------------------------------------------------------
1132     * infinite single scrolling
1133     */
1134    function look_ruby_single_infinite() {
1135
1136        var infiniteWrapper = $('#single-post-infinite');
1137        var infiniteAnimation = $('#infinite-scroll-holder');
1138        var animationIcon = infiniteAnimation.find('.infinite-icon');
1139
1140        if (infiniteWrapper.length == 0 || infiniteAnimation.length == 0) {
1141            return;
1142        }
1143
1144        infiniteWrapper.imagesLoaded(function () {
1145            look_ruby.single_infinite_waypoint = new Waypoint({
1146                element: infiniteAnimation,
1147                offset: '70%',
1148                handler: function (direction) {
1149
1150                    if (look_ruby.ajax_running || 'up' == direction) {
1151                        return;
1152                    }
1153
1154                    look_ruby.ajax_running = true;
1155                    animationIcon.animate({opacity: 1}, 200);
1156
1157                    $.ajax({
1158                        type: 'POST',
1159                        url: look_ruby_ajax_url,
1160                        data: {
1161                            action: 'look_ruby_ajax_single_infinite_load',
1162                            post_id: infiniteWrapper.data('next_post_id')
1163                        },
1164
1165                        success: function (data) {
1166                            data = $.parseJSON(data);
1167
1168                            if ('undefined' != typeof( data.next_post_id)) {
1169                                infiniteWrapper.data('next_post_id', data.next_post_id);
1170                            } else {
1171                                infiniteWrapper.removeAttr('id');
1172                                infiniteAnimation.remove();
1173                            }
1174
1175                            if (data.content) {
1176                                animationIcon.css({'opacity': 0});
1177                                infiniteWrapper.append(data.content);
1178                                look_ruby.ajax_running = false;
1179                            }
1180
1181                            //reload
1182                            look_ruby_scroll_update_url();
1183
1184                            setTimeout(function () {
1185                                Waypoint.refreshAll();
1186                                look_ruby_reinitiate_function();
1187                            }, 1);
1188                        }
1189                    });
1190
1191                }
1192            });
1193        });
1194    }
1195
1196
1197    /**-------------------------------------------------------------------------------------------------------------------------
1198     * update infinite single url
1199     */
1200    function look_ruby_scroll_update_url() {
1201
1202        var infiniteWrapper = $('#single-post-infinite');
1203        if (infiniteWrapper.length == 0) {
1204            return;
1205        }
1206
1207        var articleOuter = infiniteWrapper.find('.single-post-outer');
1208        if (articleOuter.length > 0) {
1209
1210            var self = look_ruby;
1211            var scroll;
1212            var articleData = [];
1213
1214            articleOuter.each(function () {
1215                var article = $(this);
1216                articleData.push({
1217                    postID: article.data('post_id'),
1218                    postURL: article.data('post_url'),
1219                    postTitle: article.find('h1.entry-title').text(),
1220                    top: article.offset().top,
1221                    bottom: article.offset().top + article.outerHeight(true)
1222                });
1223            });
1224
1225            if (window.addEventListener) {
1226                window.addEventListener('scroll', function () {
1227                    if (self.$delay % 3 == 1) {
1228                        lookSingleInfiniteAction(articleData);
1229                        self.$delay = 1;
1230                    } else {
1231                        self.$delay++;
1232                    }
1233                }, false);
1234
1235            } else if (window.attachEvent) {
1236                window.attachEvent('onscroll', function () {
1237                    if (self.$delay % 3 == 0) {
1238                        lookSingleInfiniteAction(articleData);
1239                        self.$delay = 1;
1240                    } else {
1241                        self.$delay++;
1242                    }
1243                });
1244            }
1245        }
1246    }
1247
1248    /**
1249     * single update title Info
1250     * @param articleData
1251     */
1252    function lookSingleInfiniteAction(articleData) {
1253
1254        var scrollTop = $(window).scrollTop();
1255        articleData.every(function (element) {
1256            if (scrollTop > element.top && scrollTop < element.bottom) {
1257
1258                if (element.postID != look_ruby.currentArticleID) {
1259                    look_ruby.currentArticleID = element.postID;
1260                    look_ruby_update_url(element.postURL, element.postTitle);
1261                }
1262
1263                return false;
1264            }
1265            return true;
1266        });
1267    }
1268
1269
1270    /**-------------------------------------------------------------------------------------------------------------------------
1271     * update URL of post
1272     * @param url
1273     */
1274    function look_ruby_update_url(url, title) {
1275
1276        if (window.location.href !== url) {
1277            if (url !== '') {
1278                history.replaceState(null, null, url);
1279                document.title = title;
1280            }
1281            //update ga
1282            look_ruby_update_ga(url);
1283
1284        }
1285    }
1286
1287    /**-------------------------------------------------------------------------------------------------------------------------
1288     * update ga
1289     * @param url
1290     */
1291    function look_ruby_update_ga(url) {
1292
1293        if (typeof _gaq !== 'undefined' && _gaq !== null) {
1294            _gaq.push(['_trackPageview', url]);
1295        } else if (typeof ga !== 'undefined') {
1296            var reg = /.+?\:\/\/.+?(\/.+?)(?:#|\?|$)/, pathname = reg.exec(url)[1];
1297            ga('send', 'pageview', pathname);
1298        }
1299    }
1300
1301
1302    /*--------------------------------------------------------------
1303     VIDEO PLAYLIST
1304     --------------------------------------------------------------*/
1305
1306    /**-------------------------------------------------------------------------------------------------------------------------
1307     * ajax iframe video
1308     */
1309    function look_ruby_video_playlist() {
1310
1311        var video_iframe_nav = $('.video-playlist-iframe-nav-el .post-wrap');
1312        video_iframe_nav.off('click').on('click', function (e) {
1313            e.preventDefault();
1314            e.stopPropagation();
1315
1316            var post_nav = $(this).parents('.video-playlist-iframe-nav-el');
1317            var post_id = post_nav.data('post_video_nav_id');
1318            var playlist = post_nav.parents('.video-playlist-wrap');
1319            var cache_id = 'video_playlist_' + post_id;
1320
1321            //star animation
1322            look_ruby_video_playlist_animation_start(playlist);
1323
1324            if (look_ruby_cache.exist(cache_id)) {
1325                var data = look_ruby_cache.get(cache_id);
1326                look_ruby_video_playlist_process(playlist, data)
1327            } else {
1328                //ajax request
1329                $.ajax({
1330                    type: 'POST',
1331                    url: look_ruby_ajax_url,
1332                    data: {
1333                        action: 'look_ruby_playlist_video',
1334                        post_id: post_id
1335                    },
1336
1337                    success: function (data) {
1338                        //parse data
1339                        data = $.parseJSON(data);
1340                        //set cache
1341                        look_ruby_cache.set(cache_id, data);
1342                        look_ruby_video_playlist_process(playlist, data)
1343                    }
1344                });
1345            }
1346            return false;
1347        })
1348    }
1349
1350
1351    /**-------------------------------------------------------------------------------------------------------------------------
1352     * start video playlist animation
1353     * @param playlist
1354     */
1355    function look_ruby_video_playlist_animation_start(playlist) {
1356
1357        var playlist_iframe = playlist.find('.video-playlist-iframe');
1358        var iframe_outer = playlist.find('.video-playlist-iframe-el');
1359        var iframe_height = playlist_iframe.height();
1360
1361        playlist_iframe.css('height', iframe_height);
1362        playlist_iframe.prepend('<div class="video-loader"></div>');
1363        iframe_outer.empty();
1364    }
1365
1366    /**-------------------------------------------------------------------------------------------------------------------------
1367     * append video iframe
1368     * @param playlist
1369     * @param data
1370     */
1371    function look_ruby_video_playlist_process(playlist, data) {
1372
1373        var playlist_iframe = playlist.find('.video-playlist-iframe');
1374
1375        //append html
1376        var iframe_outer = playlist.find('.video-playlist-iframe-el');
1377        iframe_outer.html(data);
1378
1379        var iframe = iframe_outer.find('iframe');
1380        if (iframe.length > 0 && 'undefined' != iframe[0]) {
1381            var src = iframe[0].src;
1382            if (src.indexOf('?') > -1) {
1383                iframe[0].src += "&autoplay=1";
1384            } else {
1385                iframe[0].src += "?autoplay=1";
1386            }
1387        }
1388
1389        //remove loader
1390        setTimeout(function () {
1391            playlist_iframe.find('.video-loader').fadeTo(500, .05, function () {
1392                $(this).remove();
1393            });
1394            playlist_iframe.css('height', 'auto');
1395        }, 100)
1396    }
1397
1398
1399    /**-------------------------------------------------------------------------------------------------------------------------
1400     * enable auto play
1401     */
1402    function look_ruby_iframe_playlist_autoplay() {
1403        var auto_play = $('.video-playlist-autoplay');
1404        if (auto_play.length > 0) {
1405            auto_play.each(function () {
1406                var auto_play_el = $(this);
1407                var check_auto_play = new Waypoint({
1408                    element: auto_play_el,
1409                    handler: function () {
1410                        var iframe = auto_play_el.find('iframe');
1411                        if (iframe.length > 0 && 'undefined' != iframe[0]) {
1412                            var src = iframe[0].src;
1413                            if (src.indexOf('?') > -1) {
1414                                iframe[0].src += "&autoplay=1";
1415                            } else {
1416                                iframe[0].src += "?autoplay=1";
1417                            }
1418                        }
1419                        //destroy waypoint
1420                        auto_play_el.removeClass('video-playlist-autoplay');
1421                        this.destroy();
1422                    },
1423                    offset: '80%'
1424                });
1425            })
1426        }
1427    }
1428
1429
1430    /**-------------------------------------------------------------------------------------------------------------------------
1431     * body click on
1432     */
1433    function look_ruby_body_click() {
1434        if (look_ruby.body.hasClass('is-site-link')) {
1435            if (look_ruby_site_bg_link != undefined) {
1436                look_ruby.body.on('click', function (e) {
1437                    if (e.target != this) {
1438                        return;
1439                    }
1440                    window.open(look_ruby_site_bg_link, '_blank');
1441                });
1442            }
1443        }
1444    }
1445
1446
1447    /* blog ajax load */
1448    function look_ruby_blog_loadmore() {
1449
1450        $('.blog-loadmore-link').off('click').on('click', function (e) {
1451
1452            e.preventDefault();
1453            e.stopPropagation();
1454
1455            var link = $(this);
1456            var blog_id = '#ruby-blog-listing';
1457            var blog = link.parents('.blog-inner').find(blog_id);
1458            var animation = link.next('.ajax-animation');
1459
1460            if (true == look_ruby.ajax['blog_ajax_processing']) {
1461                return;
1462            }
1463
1464            look_ruby.ajax['blog_ajax_processing'] = true;
1465
1466            link.animate({opacity: 0}, 200);
1467            var param = look_ruby.ajax_blog_data(blog);
1468
1469            setTimeout(function () {
1470                animation.css({'display': 'block'});
1471                animation.css({'visibility': 'visible'});
1472                animation.animate({opacity: 1}, 200);
1473            }, 100);
1474
1475            setTimeout(function () {
1476                look_ruby_loadmore_process(blog, param);
1477            }, 200);
1478        });
1479    }
1480
1481    /* load more pagination */
1482    function look_ruby_loadmore_process(blog, param) {
1483        var page_current = param.blog_page_current;
1484        var page_next = ++page_current;
1485        var pagination_wrap = blog.parent('.blog-inner').find('.blog-pagination');
1486
1487        //set next page
1488        param.blog_page_next = page_next;
1489
1490        //ajax request
1491        if (page_next <= param.blog_page_max) {
1492
1493            $.ajax({
1494                type: 'POST',
1495                url: look_ruby_ajax_url,
1496                data: {
1497                    action: 'look_ruby_pagination_data',
1498                    data: param
1499                },
1500
1501                success: function (data) {
1502                    data = $.parseJSON(data);
1503                    if ('undefined' != data.blog_page_current) {
1504                        blog.data('blog_page_current', data.blog_page_current);
1505                    }
1506
1507                    blog.append(data.content);
1508
1509                    look_ruby.ajax['blog_ajax_processing'] = false;
1510
1511                    setTimeout(function () {
1512                        look_ruby_reinitiate_function();
1513                    }, 50);
1514
1515                    if (data.blog_page_current < param.blog_page_max) {
1516                        var animation = pagination_wrap.find('.ajax-animation');
1517                        animation.css({'display': 'none'});
1518                        animation.css({'visibility': 'hidden'});
1519                        animation.css({'opacity': 0});
1520                        pagination_wrap.find('.blog-loadmore-link').delay(100).animate({opacity: 1}, 200);
1521
1522                    } else {
1523                        pagination_wrap.remove();
1524                    }
1525                }
1526            });
1527        }
1528    }
1529
1530    // blog infinite scrolling
1531    function look_ruby_blog_infinite() {
1532        var infinite_scroll = $('.pagination-infinite-scroll');
1533        var animation = infinite_scroll.find('.ajax-animation');
1534        var blog = infinite_scroll.parent('.blog-inner').find('#ruby-blog-listing');
1535        if (infinite_scroll.length > 0) {
1536            look_ruby.waypoint_item['infinite_scroll'] = new Waypoint({
1537
1538                element: infinite_scroll,
1539                handler: function (direction) {
1540                    if ('down' == direction) {
1541
1542                        var param = look_ruby.ajax_blog_data(blog);
1543
1544                        if (param.blog_page_current >= param.blog_page_max) {
1545                            infinite_scroll.remove();
1546                            return;
1547                        }
1548
1549                        if (true == look_ruby.ajax['blog_ajax_processing']) {
1550                            return;
1551                        }
1552
1553                        look_ruby.ajax['blog_ajax_processing'] = true;
1554                        setTimeout(function () {
1555                            animation.css({'display': 'block'});
1556                            animation.css({'visibility': 'visible'});
1557                            animation.animate({opacity: 1}, 200);
1558                        }, 100);
1559
1560                        setTimeout(function () {
1561                            look_ruby_loadmore_process(blog, param);
1562                            look_ruby.waypoint_item['infinite_scroll'].destroy();
1563                        }, 150);
1564                    }
1565                },
1566                offset: '99%'
1567            })
1568        }
1569    }
1570
1571
1572})(jQuery);

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.