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.