1"use strict"; 2 3/************************************************************* 4SCRIPTS INDEX 5 6ISOTOPE: INIT 7ISOTOPE: GALLERY FILTER MENU 8ISOTOPE: MASONRY GALLERY FILTER MENU 9FLEXSLIDER INIT 10FANCYBOX INIT 11OWL CAROUSEL INIT 12MINOR PLUGINS INIT 13 // FITVIDS 14 // MOSAIC 15 // STELLAR PARALLAX 16 // EMBED SCROLL PROTECT 17SIDR RESPONSIVE MENU 18MAIN.JS 19ADD NAV-PARENT CLASS TO NAV MENU ITEMS WITH SUBMENUS 20SLIDER NAVIGATION ON HOVER ONLY 21TOGGLE 22ACCORDION 23HIGHLIGHT LAST MENU ITEM 24EVEN HEIGHT 25TIMELINE 26AJAX MULTIPOST PAGINATION 27COUNTDOWN 28PAGEBUILDER TOP HORIZONTAL RULER 29CLICKABLE BACKGROUND 30STICKY HEADER 31 SCROLL TO ANCHOR 32 SEARCH BUTTON 33STATUS OF SCROLL TO MENU ITEMS 34SEARCH AUTOCOMPLETE 35@FONT-FACE FIX 36LAZY LOAD ANIMATION 37MENU ANIMATION 38TABLEPRESS TIMETABLE MOD: DETECT TIMETABLE SLOT STATUS 39SET NEGATIVE MARGIN FOR OVERLAY-HEADER CLASS + APPLY IS-OVERLAID-HEADER CLASS 40COMMENTS FORM FIX 41 42*************************************************************/ 43 44 45 46 47 48/************************************************************* 49ISOTOPE: INIT 50*************************************************************/ 51 52 53 jQuery(window).load(function($) { 54 55 $=jQuery; 56 57 if ($('.page_isotope_gallery').size() > 0) { 58 $('.page_isotope_gallery').isotope({ 59 itemSelector: '.gallery_item', 60 layoutMode: 'fitRows' 61 }); 62 } 63 64 //$('.page_isotope_gallery').isotope('reLayout'); 65 66 if ($('.page_masonry_gallery').size() > 0) { 67 68 $('.page_masonry_gallery').isotope({ 69 itemSelector: '.gallery_item', 70 layoutMode: 'masonry' 71 }); 72 } 73 74 75 }); 76 77 78 // RELAYOUT ON RESIZE 79 jQuery(window).resize(function() { 80 81 $ = jQuery; 82 83 // bounce 84 if ($('.page_masonry_gallery').size() == 0) { return; } 85 86 $('.page_masonry_gallery').isotope('reLayout'); 87 88 }); 89 90/************************************************************* 91ISOTOPE: GALLERY FILTER MENU 92*************************************************************/ 93 94 jQuery(document).ready(function($) { 95 if ($('.filters li').size() > 0) { 96 97 //apply selected class to first menu item (show all) 98 $('.filters li:eq(1) a').addClass('selected'); 99 100 $('.filters li a').on('click', function (event) { 101 event.preventDefault(); 102 var $this = $(this); 103 var $this_gallery = $this.closest('aside').next(); 104 var numColumns = $this_gallery.attr('data-num_columns'); 105 106 //update selected filter item 107 $('.filters li a').removeClass('selected'); 108 $this.addClass('selected'); 109 110 111 var filterVar = $this.closest('li').attr('class'); 112 if ( (typeof filterVar == 'undefined') || (filterVar.indexOf('cat-item-all') != -1) ) { 113 filterVar = "*"; 114 } else { 115 filterVar = filterVar.split(' '); 116 filterVar = "." + filterVar[1]; 117 } 118 $this_gallery.isotope({ filter: filterVar}); 119 120 //recalculate last item 121 var $filteredItems = $('.gallery_item:not(.isotope-hidden)'); 122 if ($filteredItems.size() > 0) { 123 124 $filteredItems.each(function(index, e) { 125 $this = $(this); 126 $this.removeClass('last'); 127 if (((index+1) % numColumns) === 0) $this.addClass('last'); 128 }); 129 130 $('.page_isotope_gallery').isotope('reLayout'); 131 132 } 133 }); 134 135 } 136 }); 137 138 139/************************************************************* 140ISOTOPE: MASONRY GALLERY FILTER MENU 141*************************************************************/ 142 143 jQuery(document).ready(function($) { 144 if ($('.gallery-filter li').size() > 0) { 145 146 //apply selected class to first menu item (show all) 147 $('.gallery-filter li:eq(0) a').addClass('selected'); 148 149 $('.gallery-filter li a').on('click', function (event) { 150 event.preventDefault(); 151 var $this = $(this); 152 var thisGallerySelector = $this.closest('.gallery-filter').attr('data-associated_gallery_selector'); 153 var $this_gallery = $(thisGallerySelector); 154 var numColumns = $this_gallery.attr('data-num_columns'); 155 156 //update selected filter item 157 $('.gallery-filter li a').removeClass('selected'); 158 $this.addClass('selected'); 159 160 161 var filterVar = $this.closest('li').attr('class'); 162 if ( (typeof filterVar == 'undefined') || (filterVar.indexOf('cat-item-all') != -1) ) { 163 filterVar = "*"; 164 } else { 165 filterVar = filterVar.split(' '); 166 filterVar = "." + filterVar[1]; 167 } 168 $this_gallery.isotope({ filter: filterVar}); 169 170 }); 171 172 } 173 }); 174 175 176/************************************************************* 177FLEXSLIDER INIT 178*************************************************************/ 179 180 jQuery(window).load(function($){ 181 $ = jQuery; 182 183 if ($('.flexslider-standard').size() > 0) { 184 185 var canonAnimImgSliderSlidershow = (extData.canonOptionsAppearance['anim_img_slider_slideshow'] == 'checked') ? true : false;
186 187 $('.flexslider-standard').flexslider({ 188 slideshow: canonAnimImgSliderSlidershow, 189 slideshowSpeed: parseInt(extData.canonOptionsAppearance['anim_img_slider_delay']), 190 animationSpeed: parseInt(extData.canonOptionsAppearance['anim_img_slider_anim_duration']), 191 animation: "fade", 192 smoothHeight: true, 193 touch: true, 194 controlNav: true, 195 directionNav: true, 196 prevText: "ï", 197 nextText: "ï ", 198 start: function(slider){ 199 $('body').removeClass('loading'); 200 } 201 }); 202 203 } 204 205 if (($('.flexslider-quote').size() > 0) && ($('#hp_tweets').size() === 0)) { 206 207 var canonAnimQuoteSliderSlidershow = (extData.canonOptionsAppearance['anim_quote_slider_slideshow'] == 'checked') ? true : false; 208 209 $('.flexslider-quote').flexslider({ 210 slideshow: canonAnimQuoteSliderSlidershow, 211 slideshowSpeed: parseInt(extData.canonOptionsAppearance['anim_quote_slider_delay']), 212 animationSpeed: parseInt(extData.canonOptionsAppearance['anim_quote_slider_anim_duration']), 213 animation: "fade", 214 smoothHeight: true, 215 touch: true, 216 controlNav: true, 217 directionNav: false, 218 prevText: "ï", 219 nextText: "ï ", 220 start: function(slider){ 221 $('body').removeClass('loading'); 222 } 223 }); 224 225 } 226 227 if ( ($('.flexslider-menu').size() > 0) ) { 228 229 var canonAnimMenuSliderSlidershow = (extData.canonOptionsAppearance['anim_menu_slider_slideshow'] == 'checked') ? true : false; 230 231 $('.flexslider-menu').flexslider({ 232 slideshow: canonAnimMenuSliderSlidershow, 233 slideshowSpeed: parseInt(extData.canonOptionsAppearance['anim_menu_slider_delay']), 234 animationSpeed: parseInt(extData.canonOptionsAppearance['anim_menu_slider_anim_duration']), 235 animation: "fade", 236 smoothHeight: true, 237 touch: true, 238 directionNav: false, 239 controlNav: true, 240 prevText: "ï", 241 nextText: "ï ", 242 start: function(slider){ 243 $('body').removeClass('loading'); 244 } 245 }); 246 247 } 248 249 }); 250 251 252/************************************************************* 253FANCYBOX INIT 254*************************************************************/ 255 256 //attach fanybox class to all image links 257 jQuery(document).ready(function($) { 258 $("a[href$='.jpg'],a[href$='.png'],a[href$='.gif']").attr('rel','gallery').addClass('fancybox'); 259 }); 260 261 //init fancybox 262 jQuery(document).ready(function($) { 263 264 // default fancybox 265 if ($(".fancybox").size() > 0) { 266 var canonLightboxColor = extData.canonOptionsAppearance['lightbox_overlay_color']; 267 var canonLightboxOpacity = extData.canonOptionsAppearance['lightbox_overlay_opacity'];; 268 269 $(".fancybox").fancybox({ 270 271 openEffect : 'fade', //fade, elastic, none 272 closeEffect : 'fade', 273 openSpeed : 'normal', //slow, normal, fast or ms 274 closeSpeed : 'fast', 275 276 helpers : { 277 overlay : { 278 css : { 279 'background' : jQuery.GlobalFunctions.hexOpacityToRgbaString(canonLightboxColor, canonLightboxOpacity) 280 } 281 } 282 } 283 }); 284 } 285 286 287 // media fancybox - same as fancybox but lets you open media links in lightbox and set a max height of 500px 288 if ($(".fancybox-media").size() > 0) { 289 var canonLightboxColor = extData.canonOptionsAppearance['lightbox_overlay_color']; 290 var canonLightboxOpacity = extData.canonOptionsAppearance['lightbox_overlay_opacity'];; 291 292 $(".fancybox-media").fancybox({ 293 294 openEffect : 'fade', //fade, elastic, none 295 closeEffect : 'fade', 296 openSpeed : 'normal', //slow, normal, fast or ms 297 closeSpeed : 'fast', 298 299 helpers : { 300 overlay : { 301 css : { 302 'background' : jQuery.GlobalFunctions.hexOpacityToRgbaString(canonLightboxColor, canonLightboxOpacity) 303 }, 304 }, 305 media : {}, 306 }, 307 308 maxHeight: '500', 309 310 }); 311 } 312 313 }); 314 315 316/************************************************************* 317OWL CAROUSEL INIT 318*************************************************************/ 319 320 jQuery(document).ready(function($) { 321 322 323 if ($(".post-carousel").size() > 0) { 324 325 // for each post-carousel read settings and init 326 $('.post-carousel').each(function(index){ 327 var $this = $(this); 328 var displayNumPosts = $this.attr('data-display_num_posts');
329 var slideSpeed = $this.attr('data-slide_speed'); 330 var autoPlay = ($this.attr('data-autoplay_speed') === "0") ? false : parseInt($this.attr('data-autoplay_speed')); 331 var stopOnHover = ($this.attr('data-stop_on_hover') == 'checked') ? true : false; 332 var pagination = ($this.attr('data-pagination') == 'checked') ? true : false; 333 334 var blockID = $this.closest('.pb_block').attr('id'); 335 336 $('#'+ blockID).find('.post-carousel').owlCarousel({ 337 items: parseInt(displayNumPosts), 338 slideSpeed: parseInt(slideSpeed), 339 autoPlay: autoPlay, 340 stopOnHover: stopOnHover, 341 pagination: pagination, 342 }); 343 344 }); 345 346 // navigation: next 347 $('.owlCustomNavigation .next2').on('click', function(event) { 348 var $this = $(this); 349 var $related_carousel = $this.closest('.text-seperator').next('.owl-carousel'); 350 $related_carousel.trigger('owl.next') 351 }); 352 353 // navigation: prev 354 $('.owlCustomNavigation .prev2').on('click', function(event) { 355 var $this = $(this); 356 var $related_carousel = $this.closest('.text-seperator').next('.owl-carousel'); 357 $related_carousel.trigger('owl.prev') 358 }); 359 360 } 361 362 }); 363 364 365/************************************************************* 366MINOR PLUGINS INIT 367*************************************************************/ 368 369 370 jQuery(document).ready(function($) { 371 372 // SCROLLUP 373 $.scrollUp({ 374 scrollName: 'scrollUp', // Element ID 375 scrollDistance: 300, // Distance from top/bottom before showing element (px) 376 scrollFrom: 'top', // 'top' or 'bottom' 377 scrollSpeed: 800, // Speed back to top (ms) 378 easingType: 'linear', // Scroll to top easing (see http://easings.net/) 379 animation: 'fade', // Fade, slide, none 380 animationSpeed: 200, // Animation speed (ms) 381 scrollText: 'ï·', // Text for element, can contain HTML 382 // scrollTrigger: false, // Set a custom triggering element. Can be an HTML string or jQuery object 383 // scrollTarget: false, // Set a custom target element for scrolling to. Can be element or number 384 // scrollTitle: false, // Set a custom <a> title if required. 385 // scrollImg: false, // Set true to use image 386 // activeOverlay: false, // Set CSS color to display scrollUp active point, e.g '#00FFFF' 387 // zIndex: 2147483647 // Z-Index for the overlay 388 }); 389 390 391 // FITVIDS 392 $(".outter-wrapper").fitVids(); 393 394 395 // MOSAIC 396 $('.fade').mosaic(); 397 398 399 // STELLAR PARALLAX 400 $(window).stellar({ 401 horizontalScrolling: false, 402 }); 403 404 405 // EMBED SCROLL PROTECT 406 $('.embed-scroll-protect').mbEmbedScrollProtect(); 407 408 409 }); 410 411/************************************************************* 412SIDR RESPONSIVE MENU 413*************************************************************/ 414 415 jQuery(document).ready(function($) { 416 417 // SIDR 418 $('.responsive-menu-button').sidr({ 419 name: 'sidr-main', 420 source: '#sidr-navigation-container', 421 renaming: false, 422 }); 423 $('#sidr-main .closebtn').click(function() { 424 $.sidr('close', 'sidr-main'); 425 }); 426 427 }); 428 429 jQuery(window).resize(function() { 430 431 // SIDR CLOSE ON RESIZE 432 jQuery.sidr('close', 'sidr-main'); 433 434 }); 435 436 437/************************************************************* 438ADD NAV-PARENT CLASS TO NAV MENU ITEMS WITH SUBMENUS 439*************************************************************/ 440 441 jQuery(document).ready(function($) { 442 var $subMenus = $('.sub-menu'); 443 $subMenus.each(function(index) { 444 var $this = $(this); 445 $this.closest('li').addClass('nav-parent'); 446 }); 447 448 }); 449 450 451 452/************************************************************* 453MAIN.JS 454*************************************************************/ 455 456 457 jQuery(document).ready(function($) { 458 459 // Parent-Nav Hover 460 $("li.nav-parent").hover(function(){ 461 $(this).addClass("hover"); 462 463 }, function(){ 464 $(this).removeClass("hover"); 465 }); 466 467 }); 468 469 470/************************************************************* 471SLIDER NAVIGATION ON HOVER ONLY 472*************************************************************/ 473 474 475 jQuery(window).load(function($) { 476 $=jQuery; 477 478 // bouncer 479 if ($('.flexslider ul.flex-direction-nav').size() == 0) { return; } 480 481 $('.flexslider').each(function (index) { 482 483 var $this = $(this); 484 485 var $slidesNavArrows = $this.find('.flex-direction-nav'); 486 var $slidesNavBullets = $this.find('.feature .flex-control-nav.flex-control-paging'); 487 $slidesNavArrows.hide(); 488 $slidesNavBullets.hide(); 489 490 //on slider hover 491 $this.hover(function () { 492 $slidesNavArrows.fadeIn(); 493 $slidesNavBullets.fadeIn(); 494 }, function() { 495 $slidesNavArrows.hide(); 496 $slidesNavBullets.hide(); 497 }); 498 499 //on navigation button hover 500 $slidesNavArrows.hover(function () { 501 $slidesNavArrows.show(); 502 $slidesNavBullets.show(); 503 }); 504 505 }); 506 507 }); 508 509 510 511/************************************************************* 512TOGGLE 513*************************************************************/ 514 515 jQuery(document).ready(function($){ 516 517 if ($('.toggle-btn').size() > 0) { 518 519 // toggle 520 $('.toggle-btn').click(function(e){ 521 e.preventDefault(); 522 $(this).closest('li').find('.toggle-content').not(':animated').slideToggle(); 523 $(this).toggleClass("active"); 524 }); 525 526 } 527 528 529 }); 530 531 532 533 534 535/************************************************************* 536ACCORDION 537*************************************************************/ 538 539 jQuery(document).ready(function($){ 540 541 if ($('.accordion-btn').size() > 0) { 542 543 // initial states 544 $('.accordion-content:not(.active)').hide(); 545 546 // accordion 547 $('.accordion-btn').click(function(e){ 548 e.preventDefault(); 549 var $this = $(this); 550 var $thisAccordionContent = $this.closest('li').find('.accordion-content'); 551 var currentStatus = ""; 552 if ($this.attr('class').indexOf('active') != -1) { 553 currentStatus = "active"; 554 } 555 //first close all and remove active class 556 $this.closest('.accordion').find('li').each(function(index) { 557 var $thisLi = $(this); 558 $thisLi.find('.accordion-btn').removeClass('active'); 559 $thisLi.find('.accordion-content').slideUp('400', function() { 560 $(this).removeClass('active'); 561 }); 562 }); 563 if (currentStatus != "active") { 564 $thisAccordionContent.not(':animated').slideDown(); 565 $this.addClass('active'); 566 $thisAccordionContent.addClass('active'); 567 } 568 }); 569 570 } 571 572 }); 573 574 575 576/************************************************************* 577EVEN HEIGHT 578 579by: Michael Bregnbak 580Use: apply even-height class to any container and add data-even_height_group with group name. Now all containers with even-height class and same group name will be even height. Recalculates on window resize for responsiveness. 581*************************************************************/ 582 583 jQuery(document).ready(function($){ 584 585 // EVEN HEIGHT SCRIPT 586 if ($('.even-height').size() > 0) { 587 588 // first get even height groups 589 var $evenHeightDivs = $('.even-height'); 590 var evenHeightGroupsArray = []; 591 $evenHeightDivs.each(function(index, element) { 592 var $this = $(this); 593 evenHeightGroupsArray.push($this.data('even_height_group')); 594 }); 595 var evenHeightGroupsArrayUnique = []; 596 $.each(evenHeightGroupsArray, function(index, element) { 597 if ($.inArray(element, evenHeightGroupsArrayUnique) === -1) evenHeightGroupsArrayUnique.push(element); 598 }); 599 600 // make each group same height 601 make_same_height(evenHeightGroupsArrayUnique); 602
603 //recalculate on window resize 604 $(window).resize(function () { 605 $evenHeightDivs.css('height','auto'); 606 make_same_height(evenHeightGroupsArrayUnique); 607 }); 608 609 // trigger window resize event to accomodate late arrival content 610 jQuery(window).load(function($) { jQuery(window).trigger('resize'); }); 611 612 } 613 614 function make_same_height(evenHeightGroupsArrayUnique) { 615 616 $.each(evenHeightGroupsArrayUnique, function(index, element) { 617 var $thisEvenHeightGroup = $('.even-height[data-even_height_group="'+element+'"]'); 618 var heightsArray = []; 619 $thisEvenHeightGroup.each(function(index, element) { 620 var $this = $(this); 621 heightsArray.push($this.height()); 622 }); 623 var tallest = 0; 624 $.each(heightsArray, function(index, element) { 625 if (element > tallest) tallest = element; 626 }); 627 $thisEvenHeightGroup.height(tallest); 628 629 }); 630 } 631 632 }); 633 634 635/************************************************************* 636TIMELINE 637*************************************************************/ 638 639 jQuery(document).ready(function($){ 640 641 642 /************************************************************* 643 TIMELINE ASSIGN RIGHT LEFT 644 *************************************************************/ 645 if ($('.timeline').size() > 0) { 646 647 // init 648 setTimeout(function(){ 649 650 var newContainerHeight = timelineSetSides(); 651 animateContainerHeight(newContainerHeight); 652 fadeInNewLIs(); 653 654 }, parseInt(extDataTimeline.loadDelay)); 655 656 657 // on resize 658 $( window ).resize(function() { 659 timelineSetSides(); 660 }); 661 662 663 } 664 665 666 function timelineSetSides () { 667 var $LIs = $('.timeline').find('li.milestone'); 668 var leftOffset = 0; 669 var rightOffset = 0; 670 var bottomMargin = 30; 671 var timelineContainerTotalPadding = 40; 672 var sideArray = []; 673 var newContainerHeight = 0; 674 675 //remove classes first 676 $LIs.removeClass('tl_left tl_right'); 677 678 //make sidearray 679 $LIs.each(function(index, el) { 680 681 // console.log("leftOffset: "+leftOffset+ "// rightOffset: "+rightOffset ); 682 var $this = $(this); 683 var thisHeight = $this.height(); 684 685 //var title = $this.find('h3').text(); 686 // console.log(title + " :"+thisHeight); 687 688 if (rightOffset < leftOffset) { 689 // assign right 690 sideArray.push('tl_right') 691 rightOffset = (rightOffset + thisHeight + bottomMargin); 692 } else { 693 // assign left 694 sideArray.push('tl_left') 695 leftOffset = (leftOffset + thisHeight + bottomMargin); 696 } 697 698 }); 699 700 //set height of timeline container 701 if (rightOffset > leftOffset) { 702 newContainerHeight = rightOffset+timelineContainerTotalPadding; 703 } else { 704 newContainerHeight = leftOffset+timelineContainerTotalPadding; 705 } 706 707 708 //assign classes 709 $LIs.each(function(index, el) { 710 var $this = $(this); 711 $this.addClass(sideArray[index]); 712 }); 713 714 return newContainerHeight; 715 716 } 717 718 function animateContainerHeight (newContainerHeight) { 719 var newHeightAnimationSpeed = 1000; 720 721 $('.timeline').animate({ 722 height: newContainerHeight, 723 }, newHeightAnimationSpeed); 724 725 } 726 727 function fadeInNewLIs() { 728 var offset = $('.timeline').attr('data-offset'); 729 var $newLIs = $('.timeline').find('li.milestone').slice(offset); 730 var numLIs = $newLIs.length; 731 var delayTime = 250; 732 var fadeInTime = 1000; 733 var newHeightAnimationSpeed = 1000; 734 735 $newLIs.each(function(index, el) { 736 var $this = $(this); 737 //now show 738 $this.delay(delayTime*index).fadeIn(fadeInTime); 739 // $this.show(); 740 }); 741 742 //final animation and release height to auto 743 setTimeout(function(){ 744 745 var $timeline = $('.timeline'); 746 747 var currentHeight = $timeline.height(); 748 $('.timeline').css('height','auto'); 749 var autoHeight = $timeline.height(); 750 $timeline.height(currentHeight); 751 752 $timeline.animate({ 753 height: autoHeight, 754 }, newHeightAnimationSpeed, function () { 755 $timeline.css('height', 'auto'); 756 }); 757 758 759 }, (numLIs*delayTime)); 760 761 } 762 763 764 765 766 /************************************************************* 767 TIMELINE LOAD MORE POSTS WITH AJAX 768 769 ROADMAP: 770 We get posts and try to get plus one post this determines if load more button is displayed. 771 772 *************************************************************/ 773 774 775 $('.timeline_load_more').on('click', function () { 776 var $timeline = $('.timeline'); 777 var offset = parseInt($timeline.attr('data-offset')); 778 var newOffset = offset + parseInt(extDataTimeline.postsPerPage); 779 var morePosts = false;
780 781 $.ajax({ 782 type: 'post', 783 dataType: 'html', 784 url: extDataTimeline.ajaxUrl, 785 data: { 786 action: 'timeline_load_more', 787 offset: offset, 788 posts_per_page: parseInt(extDataTimeline.postsPerPage), 789 category: extDataTimeline.category, 790 order: extDataTimeline.order, 791 exclude_string: extDataTimeline.excludeString, 792 link_through: extDataTimeline.linkThrough, 793 display_content: extDataTimeline.displayContent, 794 excerpt_length: parseInt(extDataTimeline.excerptLength), 795 nonce: extDataTimeline.nonce, 796 }, 797 beforeSend: function(response) { 798 $('.timeline_load_img').show(); 799 $('.timeline_load_more').hide(); 800 }, 801 success: function(response) { 802 $timeline.append(response); 803 804 //determine if more posts 805 var $newLIs = $timeline.find('li.milestone').slice(newOffset); 806 var numNewLIs = $newLIs.size(); 807 if (numNewLIs > parseInt(extDataTimeline.postsPerPage)) { 808 $newLIs.last().remove(); 809 morePosts = true; 810 } else { 811 $('.timeline_load_more').hide(); 812 morePosts = false; 813 } 814 815 //set new offset 816 $timeline.attr('data-offset', newOffset); 817 818 //reinit libraries 819 $(".outter-wrapper").fitVids(); 820 $('.fade').mosaic(); 821 $("a[href$='.jpg'],a[href$='.png'],a[href$='.gif']").attr('rel','gallery').addClass('fancybox'); 822 823 // order timeline after load delay 824 setTimeout(function(){ 825 var newContainerHeight = timelineSetSides(); 826 animateContainerHeight(newContainerHeight); 827 fadeInNewLIs(); 828 829 //toggle load more button again 830 if (morePosts == true) { 831 $('.timeline_load_img').hide(); 832 $('.timeline_load_more').fadeIn(); 833 } else { 834 $('.timeline_load_img').hide(); 835 } 836 837 }, parseInt(extDataTimeline.loadDelay)); 838 }, 839 840 841 }); //end ajax 842 843 }); 844 845 }); 846 847 848 849/************************************************************* 850AJAX MULTIPOST PAGINATION 851*************************************************************/ 852 853 854 jQuery(document).ready(function($){ 855 856 if ($('.multi_nav_control').size() > 0) { 857 858 // NEXT CLICK 859 $('body').on('click', '.multipost_nav_forward', function(e) { 860 e.preventDefault(); 861 var $this = $(this); 862 ajaxLoadPostPage($this); 863 }); 864 865 // PREV CLICK 866 $('body').on('click', '.multipost_nav_back', function(e) { 867 e.preventDefault(); 868 var $this = $(this); 869 ajaxLoadPostPage($this); 870 }); 871 872 // DETECT ARROW KEYPRESS 873 document.onkeydown = mb_checkKey; 874 875 } 876 877 878 // DETECT ARROW KEYPRESS FUNCTION 879 function mb_checkKey(e) { 880 e = e || window.event; 881 // console.log(e.keyCode); // remember to put focus on window not on console. 882 883 if (e.keyCode == '39') { 884 $('.multipost_nav_forward').click(); 885 } 886 else if (e.keyCode == '37') { 887 $('.multipost_nav_back').click(); 888 } 889 } 890 891 892 // AJAX 893 function ajaxLoadPostPage($this) { 894 var newHeightAnimationSpeed = 2300; 895 var loadDelay = 500; 896 var fadeInSpeed = 1500; 897 var link = $this.closest('a').attr('href'); 898 var link = link + " #content_container > *"; 899 var $contentContainer = $('#content_container'); 900 901 $contentContainer.load(link, function () { 902 var $this = $(this); 903 $this.wrapInner('<div/>'); 904 var $innerDiv = $this.find('div').first(); 905 var $multiContent = $this.find('.multi_content'); 906 $multiContent.css('opacity',0); 907 908 setTimeout(function() { 909 var newHeight = $innerDiv.height(); 910 // console.log(newHeight); 911 $contentContainer.animate({ 912 height: newHeight 913 }); 914 $multiContent.animate({ 915 opacity: 1, 916 }, fadeInSpeed); 917 918 }, loadDelay); 919 920 }); 921 922 923 } 924 925 }); 926 927 928 929/************************************************************* 930COUNTDOWN 931*************************************************************/ 932 933 jQuery(document).ready(function($){ 934 935 if ($('.countdown').size() > 0) { 936 937 $('.countdown').each(function(index, element) { 938 var $this = $(this); 939 940 //get vars 941 var labelYears = $this.data('label_years'); 942 var labelMonths = $this.data('label_months'); 943 var labelWeeks = $this.data('label_weeks'); 944 var labelDays = $this.data('label_days'); 945 var labelHours = $this.data('label_hours'); 946 var labelMinutes = $this.data('label_minutes'); 947 var labelSeconds = $this.data('label_seconds'); 948 949 var labelYear = $this.data('label_year'); 950 var labelMonth = $this.data('label_month'); 951 var labelWeek = $this.data('label_week'); 952 var labelDay = $this.data('label_day'); 953 var labelHour = $this.data('label_hour'); 954 var labelMinute = $this.data('label_minute'); 955 var labelSecond = $this.data('label_second'); 956 957 var labelY = $this.data('label_y'); 958 var labelM = $this.data('label_m'); 959 var labelW = $this.data('label_w'); 960 var labelD = $this.data('label_d'); 961 962 var datetimeString = $this.data('datetime_string'); 963 var gmtOffset = $this.data('gmt_offset'); 964 var format = $this.data('format'); 965 var useCompact = $this.data('use_compact'); 966 var description = $this.data('description'); 967 var layout = $this.data('layout'); 968 969 970 //handle vars 971 if (useCompact == "checked") { var useCompactBool = true; } else { var useCompactBool = false; } 972 if (datetimeString == "") { datetimeString = "" } 973 layout = (typeof layout != "undefined") ? layout : null; 974 975 // set labels 976 var defaultArgs = { 977 labels: [labelYears, labelMonths, labelWeeks, labelDays, labelHours, labelMinutes, labelSeconds], 978 labels1: [labelYear, labelMonth, labelWeek, labelDay, labelHour, labelMinute, labelSecond], 979 compactLabels: [labelY, labelM, labelW, labelD], 980 windowhichLabels: null, 981 digits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 982 timeSeparator: ':', isRTL: false}; 983 $.countdown.setDefaults(defaultArgs); 984 985 // set date 986 var countdownDatetime = new Date(); 987 // countdownDatetime = new Date(2013, 11, 31, 23, 59, 59, 100); 988 countdownDatetime = new Date(datetimeString); 989 990 $this.countdown({ 991 compactLabels: ['y', 'm', 'w', 'd'], 992 until: countdownDatetime, 993 timezone: parseInt(gmtOffset), 994 format: format, 995 compact: useCompactBool, 996 description: description, 997 layout: layout, 998 }); 999 1000 }); 1001 1002 } 1003 1004 1005 1006 }); 1007 1008/************************************************************* 1009PAGEBUILDER TOP HORIZONTAL RULER 1010*************************************************************/ 1011 1012 jQuery(document).ready(function($){ 1013 1014 if ($('.pb_hr').size() > 0) { 1015 1016 var firstBlockClass = $('.pb_block').first().attr('class'); 1017 1018 //update this with blocks slugs 1019 var noHrBlocks = new Array( 1020 'pb_featured_img', 1021 'pb_featured_video', 1022 'pb_supporters', 1023 'pb_revslider', 1024 'pb_divider', 1025 'pb_no_top_hr' // universal class 1026 ); 1027 1028 for (var i = 0; i < noHrBlocks.length; i++) { 1029 if (firstBlockClass.indexOf(noHrBlocks[i]) != -1) { 1030 $('.pb_hr').remove(); 1031 1032 } 1033 } 1034 1035 } 1036 1037 }); 1038 1039/************************************************************* 1040CLICKABLE BACKGROUND 1041*************************************************************/ 1042 1043 jQuery(document).ready(function($){ 1044 1045 if (extData.canonOptions['use_boxed_design'] == "checked") { 1046 1047 var bgLink = extData.canonOptionsAppearance['bg_link']; 1048 1049 if (typeof bgLink != "undefined") { 1050 if (bgLink != "") { 1051 1052 $(document).on('click','body', function(event) { 1053 if (event.target.nodeName == "BODY") { 1054 window.open(bgLink, "_blank"); 1055 } 1056 }); 1057 1058 } 1059 } 1060 1061 } 1062 }); 1063 1064/************************************************************* 1065STICKY HEADER 1066*************************************************************/ 1067 1068 jQuery(document).ready(function($){ 1069 1070 if ($('.canon_sticky').size() > 0) { 1071 1072 // add stickyness to these elements 1073 var stickySelectorClass = ".canon_sticky"; 1074 var $stickyElements = $(stickySelectorClass); 1075 $stickyElements.each(function(index) { 1076 $(this).wrap('<div class="sticky_placeholder"></div>'); 1077 }); 1078 1079 // add canon_sticky_shadow class 1080 if (extData.canonOptionsFrame['use_sticky_shadow'] == "checked") { $('.sticky-header-wrapper .canon_sticky').last().addClass('canon_sticky_shadow'); } 1081 1082 // init vars 1083 var adjustedOffset = 0; 1084 var windowPosition = 0; 1085 var placeholderOffset = 0; 1086 var $win = $(window); 1087 1088 updateStickyPlaceholderHeights(); // set height of this subject's placeholder 1089 $win.on('scroll', stickyScrollEvent); 1090 1091 // UPDATE PLACEHOLDER HEIGHTS ON WINDOW LOAD (TO PROTECT AGAINST LATE ARRIVAL CONTENT) 1092 $(window).load(function() { 1093 updateStickyPlaceholderHeights(); 1094 }); 1095 1096 // ON RESIZE 1097 $(window).resize(function () { 1098
1099 // turn off old scroll event to allow for new 1100 $(window).off('scroll', stickyScrollEvent); 1101 1102 updateStickyPlaceholderHeights(); 1103 $win.on('scroll', stickyScrollEvent); 1104 1105 }); 1106 1107 1108 } 1109 1110 function updateStickyPlaceholderHeights () { 1111 1112 $('.canon_sticky').each(function (index) { 1113 var $stickySubject = $(this); 1114 var $stickyPlaceholder = $stickySubject.closest('.sticky_placeholder'); 1115 var stickySubjectHeight = $stickySubject.height(); 1116 1117 //maintain height of placeholder 1118 $stickyPlaceholder.css({ 1119 "display": "block", 1120 "height": stickySubjectHeight, 1121 }); 1122 }); 1123 1124 1125 } 1126 1127 function stickyScrollEvent () { 1128 1129 $('.canon_sticky').each(function (index) { 1130 var $stickySubject = $(this); 1131 var $stickyPlaceholder = $stickySubject.closest('.sticky_placeholder'); 1132 1133 var originalOffset = getWPAdminBarOffset(); 1134 1135 var placeholderOffset = $stickyPlaceholder.offset().top; 1136 var adjustedOffset = getAdjustedOffset($stickySubject); 1137 var startingZIndex = 999; 1138 var thisZIndex = startingZIndex - index; 1139 // console.log(thisZIndex); 1140 1141 windowPosition = $win.scrollTop(); 1142 1143 // console.log("windowposition+adjustedoffset: " + (windowPosition+adjustedOffset)); 1144 // console.log("placeholderOffset: " + placeholderOffset); 1145 1146 // apply stickyness when scrolling past 1147 if (windowPosition+adjustedOffset > placeholderOffset) { 1148 // console.log("STICKY ON"); 1149 $stickySubject.css({ 1150 "position": "fixed", 1151 "top": adjustedOffset, 1152 "z-index": thisZIndex, 1153 }); 1154 $stickySubject.addClass('canon_stuck'); 1155 } 1156 1157 // remove stickyness when scrolling back over 1158 if (windowPosition+adjustedOffset <= placeholderOffset) { 1159 // console.log("STICKY OFF"); 1160 $stickySubject.css({ 1161 "position": "static", 1162 "top": "auto", 1163 "z-index": thisZIndex, 1164 }); 1165 $stickySubject.removeClass('canon_stuck'); 1166 } 1167 1168 // if turn off in responsive then remove stickyness from all 1169 var windowWidth = $(window).width(); 1170 var turnOffWidth = extData.canonOptionsFrame['sticky_turn_off_width']; 1171 // console.log("window width: " + windowWidth); 1172 // console.log("turn off width: " + turnOffWidth); 1173 if (windowWidth < turnOffWidth) { 1174 // console.log("STICKY OFF"); 1175 $stickySubject.css({ 1176 "position": "static", 1177 "top": "auto", 1178 "z-index": thisZIndex, 1179 }); 1180 $stickySubject.removeClass('canon_stuck'); 1181 } 1182 1183 }); 1184 } 1185 1186 function getAdjustedOffset ($stickySubject) { 1187 var index = $('.sticky_placeholder').index($stickySubject.closest('.sticky_placeholder')); 1188 var originalOffset = getWPAdminBarOffset(); 1189 1190 var adjustedOffset = originalOffset; 1191 var $placeholdersAbove = $('.sticky_placeholder').slice(0, index); 1192 $placeholdersAbove.each(function (index) { 1193 var $thisPlaceholder = $(this); 1194 adjustedOffset = adjustedOffset + $thisPlaceholder.height(); 1195 }); 1196 return adjustedOffset; 1197 } 1198 1199 function getWPAdminBarOffset () { 1200 1201 var offset = 0; 1202 var $wpAdminBar = $('#wpadminbar'); 1203 if ($wpAdminBar.size() > 0) { 1204 var wpAdminBarPosition = $wpAdminBar.css('position'); 1205 var wpAdminBarHeight = $wpAdminBar.height(); 1206 offset = (wpAdminBarPosition == "fixed") ? wpAdminBarHeight : 0; 1207 } 1208 return offset; 1209 1210 } 1211 1212 /************************************************************************* 1213 SCROLL TO ANCHOR 1214 1215 USE: link #example will scroll to the first element with class "example" 1216 Can also be linked to other internal pages. So link "http://www.mypage.com/#example" will first load http://www.mypage.com/example and then after a short delay scroll to first element with class "example". 1217 *************************************************************************/ 1218 1219 jQuery(window).load(function($) { 1220 $=jQuery; 1221 1222 var scrollToSelector = '#'; 1223 var onLoadScrollToDelay = 1500; 1224 1225 // on window load grab the url and scan for # then initiate scroll if this is found 1226 var href = isolateScrollToHref(document.URL, scrollToSelector); 1227 if (href !="") { setTimeout(function() { canonScrollToAnchor(href) }, onLoadScrollToDelay); } 1228 1229 // on click a tag 1230 $('body').on('click', 'a', function (event) { 1231 1232 if (typeof $(this).attr('href') == "undefined") { return; } // failsafe against a tags with no href 1233 var href = isolateScrollToHref($(this).attr('href'), scrollToSelector) 1234 if (href != "") { canonScrollToAnchor(href); } 1235 1236 }); 1237 1238 }); 1239 1240 function isolateScrollToHref (source, scrollToSelector) { 1241 if (source.indexOf('#') != -1) { 1242 var splitArray = source.split(scrollToSelector); 1243 return splitArray[1]; 1244 } else { 1245 return ""; 1246 } 1247 } 1248 1249 function canonScrollToAnchor(href){ 1250 var target = $("."+href); 1251 1252 if (target.size() > 0) { 1253 var originalOffset = getWPAdminBarOffset(); 1254 var adjustedOffset = originalOffset; 1255
1256 // first adjust for header stickies 1257 var $headerStickies = $('.sticky-header-wrapper .canon_sticky'); 1258 $headerStickies.each(function(index) { 1259 var $thisSticky = $(this); 1260 adjustedOffset = adjustedOffset + $thisSticky.height(); 1261 }); 1262 1263 // next adjust for block stickies 1264 if (target.hasClass('pb_block')) { 1265 var $blockClosest = target; 1266 } else { 1267 var $blockClosest = target.closest('.pb_block'); 1268 } 1269 var $prevStickyBlocks = $blockClosest.prevAll('.sticky_placeholder'); 1270 $prevStickyBlocks.each(function(index) { 1271 var $thisSticky = $(this); 1272 adjustedOffset = adjustedOffset + $thisSticky.height(); 1273 }); 1274 1275 var scrollToOffset = target.offset().top - adjustedOffset; 1276 1277 $('html,body').animate({scrollTop: scrollToOffset},'slow'); 1278 1279 } 1280 } 1281 1282 1283 1284 /************************************************************* 1285 SEARCH BUTTON 1286 *************************************************************/ 1287 1288 if ($('.toolbar-search-btn').size() > 0) { 1289 1290 // SEARCH BUTTON CLICK 1291 $('body').on('click','.toolbar-search-btn', function (event) { 1292 event.preventDefault(); 1293 var $searchHeaderContainer = $('.search-header-container'); 1294 var status = $searchHeaderContainer.attr('data-status'); 1295 1296 //update status 1297 if (status == "closed") { 1298 $searchHeaderContainer.fadeIn(); 1299 $searchHeaderContainer.attr('data-status', 'open'); 1300 } 1301 1302 //calculate offset 1303 var originalOffset = getWPAdminBarOffset(); 1304 var adjustedOffset = originalOffset; 1305 1306 var $headerStickies = $('.sticky-header-wrapper .canon_sticky'); 1307 $headerStickies.each(function(index) { 1308 var $thisSticky = $(this); 1309 adjustedOffset = adjustedOffset + $thisSticky.height(); 1310 }); 1311 1312 var scrollToOffset = $searchHeaderContainer.offset().top - adjustedOffset; 1313 1314 //scroll 1315 $('html,body').animate({ 1316 scrollTop: scrollToOffset 1317 },'slow',function () { 1318 $searchHeaderContainer.find('#s').focus(); 1319 }); 1320 1321 // reinit fitText to fix fitText not appearing in search-header issue 1322 if ($('.search-header-container .fittext').size() > 0) { 1323 if (typeof fitText == "function") { 1324 $('.fittext').each(function(index, el) { 1325 var $this = $(this); 1326 var ratio = $this.attr('data-ratio'); 1327 fitText($this, ratio); 1328 }); 1329 } 1330 } 1331 1332 }); 1333 1334 // SEARCH CONTROL SEARCH 1335 $('body').on('click','.search_control_search', function (event) { 1336 $('.search-header-container #searchform').submit(); 1337 }); 1338 1339 // SEARCH CONTROL CLOSE 1340 $('body').on('click','.search_control_close', function (event) { 1341 var $searchHeaderContainer = $('.search-header-container'); 1342 $searchHeaderContainer.fadeOut(); 1343 $searchHeaderContainer.attr('data-status', 'closed'); 1344 // $('html,body').animate({scrollTop: 0},'slow'); 1345 }); 1346 1347 1348 } 1349 1350 }); 1351 1352/************************************************************* 1353STATUS OF SCROLL TO MENU ITEMS 1354*************************************************************/ 1355 1356 1357 jQuery(document).ready(function($){ 1358 1359 var statusOfScrollToMenuItems = (typeof extData.canonOptionsFrame.status_of_scroll_to_menu_items != 'undefined') ? extData.canonOptionsFrame.status_of_scroll_to_menu_items : 'normal'; 1360 1361 if (statusOfScrollToMenuItems != 'normal') { 1362 1363 var scrollToSelector = '#'; 1364 var $aTags = $('.nav a'); // default is hide at all levels so get all level anchor tags 1365 1366 // if hide active status only at top level 1367 if (statusOfScrollToMenuItems == 'hide_at_top_level') { $aTags = $('.nav > li > a'); } 1368 1369 // the actual hiding 1370 $aTags.each(function (index) { 1371 var $this = $(this); 1372 var href= $this.attr('href'); 1373 if (typeof href != "undefined") { 1374 if (href.indexOf(scrollToSelector) != -1) { 1375 var splitArray = href.split(scrollToSelector); 1376 href = splitArray[1]; 1377 if (href != "") { 1378 $this.closest('li').removeClass('current-menu-item'); 1379 } 1380 } 1381 } 1382 }); 1383 1384 } 1385 1386 }); 1387 1388/************************************************************* 1389SEARCH AUTOCOMPLETE 1390*************************************************************/ 1391 1392 jQuery(document).ready(function($){ 1393 1394 if (typeof extDataAutocomplete != "undefined") { 1395 1396 var autocompleteArray = extDataAutocomplete.autocompleteArray; 1397 $( ".search-header-container #s" ).autocomplete({ source: autocompleteArray }); 1398 1399 } 1400 1401 }); 1402 1403/************************************************************* 1404@FONT-FACE FIX 1405*************************************************************/ 1406 1407 jQuery(window).load(function($){ 1408 1409 if (extData.canonOptions['fontface_fix'] == 'checked') { 1410 1411 $ = jQuery; 1412 $('body').hide().show(); 1413 1414 } 1415 1416 }); 1417 1418/************************************************************* 1419LAZY LOAD ANIMATION 1420*************************************************************/ 1421 1422 jQuery(document).ready(function($){ 1423 1424 // apply data-scroll-reveal attribute 1425 if (extData.canonOptionsAppearance['lazy_load_on_pagebuilder_blocks'] == 'checked') { $('.pb_block:not(.pb_block_first.overlay-header)').attr('data-scroll-reveal', ''); } 1426 if (extData.canonOptionsAppearance['lazy_load_on_widgets'] == 'checked') { $('.widget').attr('data-scroll-reveal', ''); } 1427 if (extData.canonOptionsAppearance['lazy_load_on_blog'] == 'checked') { 1428 $('.canon_blog .post').attr('data-scroll-reveal', ''); 1429 $('.canon_archive .post').attr('data-scroll-reveal', ''); 1430 } 1431 1432 // handle exception: tab blocks 1433 $('.pb_tabs').each(function (index, element) { 1434 1435 var $thisBlock = $(this); 1436 var $tabs = $thisBlock.find('ul.block-tabs li'); 1437 1438 var numTabs = $tabs.size(); 1439 var $tabBlocks = $thisBlock.nextAll('.pb_block').slice(0, numTabs); 1440 var activeIndex = $thisBlock.find('ul.block-tabs .active').index(); 1441 1442 $tabBlocks.not($tabBlocks.eq(activeIndex)).removeAttr('data-scroll-reveal'); 1443 }); 1444 1445 var config = { 1446 after: extData.canonOptionsAppearance['lazy_load_after'] + 's', 1447 enter: extData.canonOptionsAppearance['lazy_load_enter'], 1448 move: extData.canonOptionsAppearance['lazy_load_move'] +'px', 1449 over: extData.canonOptionsAppearance['lazy_load_over'] +'s', 1450 easing: 'ease-in-out', 1451 viewportFactor: parseInt(extData.canonOptionsAppearance['lazy_load_viewport_factor']), 1452 reset: false, 1453 init: true 1454 }; 1455 1456 window.scrollReveal = new scrollReveal( config ); 1457 1458 }); 1459 1460/************************************************************* 1461MENU ANIMATION 1462*************************************************************/ 1463 1464 jQuery(document).ready(function($){ 1465 1466 if (extData.canonOptionsAppearance['anim_menus'] != 'anim_menus_off') { 1467 1468 $(extData.canonOptionsAppearance['anim_menus']).each(function(index) { 1469 var $this_menu = $(this); 1470 $($this_menu.children('li').get().reverse()).each(function(index) { 1471 var $this_li = $(this); 1472 $this_li.delay(index*parseInt(extData.canonOptionsAppearance['anim_menus_delay'])).animate({ 1473 'opacity': '1', 1474 'top': '0px', 1475 'right': '0px', 1476 'bottom': '0px', 1477 'left': '0px', 1478 }, parseInt(extData.canonOptionsAppearance['anim_menus_duration'])); 1479 1480 }); 1481 }); 1482 1483 } 1484 1485 }); 1486 1487 1488 1489/************************************************************* 1490TABLEPRESS TIMETABLE MOD: DETECT TIMETABLE SLOT STATUS 1491*************************************************************/ 1492 1493 jQuery(document).ready(function($){ 1494 1495 // params 1496 var timetableClass = "timetable"; 1497 var occupiedClass = "occupied"; 1498 var emptyClass = "empty"; 1499
1500 var selectorString = 'table.tablepress.' + timetableClass; 1501 1502 // bouncer 1503 if ($(selectorString).size() == 0) { return; } 1504 1505 // for each tablepress timetable do 1506 $(selectorString).each(function (index) { 1507 var $this = $(this); 1508 1509 // for each td do 1510 $this.find('td').each(function (index) { 1511 1512 var $this = $(this); 1513 1514 // return if this is a column-1 td 1515 if ($this.hasClass('column-1')) { return; } 1516 1517 if ($this.text() != "") { 1518 $this.addClass(occupiedClass); 1519 } else { 1520 $this.addClass(emptyClass); 1521 } 1522 1523 }); 1524 }); 1525 1526 }); 1527 1528 1529/************************************************************* 1530SET NEGATIVE MARGIN FOR OVERLAY-HEADER CLASS + APPLY IS-OVERLAID-HEADER CLASS 1531*************************************************************/ 1532 1533 jQuery(document).ready(function($){ 1534 1535 // bouncer 1536 if ($('.overlay-header').size() == 0 || $('.dev-cancel-overlay-header').size() > 0) { return; } 1537 1538 // set vars 1539 var $stickyHeaderWrapper = $('.sticky-header-wrapper'); 1540 var headerHeight = 0; 1541 if ($('.pb_block_first').size() > 0) { 1542 var $topOverlayHeaderObject = $('.overlay-header.pb_block_first'); // if this is a pagebuilder page 1543 } else { 1544 var $topOverlayHeaderObject = $('.overlay-header'); // if this is not a pagebuilder page (e.g. single post, page etc) 1545 } 1546 1547 // init 1548 updateOverlayHeaderMargin(); 1549 1550 // on window resize 1551 $(window).resize(function () { updateOverlayHeaderMargin(); }); 1552 1553 function updateOverlayHeaderMargin () { 1554 var windowWidth = $(window).width(); 1555 var turnOffWidth = extData.canonOptions['overlay_header_turn_off_width']; 1556 1557 if (windowWidth < turnOffWidth) { 1558 $topOverlayHeaderObject.css('margin-top', 0); 1559 $stickyHeaderWrapper.removeClass('is-overlaid-header'); 1560 } else { 1561 headerHeight = $stickyHeaderWrapper.height() * -1; 1562 $topOverlayHeaderObject.css('margin-top', headerHeight); 1563 if ($topOverlayHeaderObject.size() === 1) { $stickyHeaderWrapper.addClass('is-overlaid-header'); } 1564 } 1565 } 1566 1567 }); 1568 1569/************************************************************* 1570COMMENTS FORM FIX 1571*************************************************************/ 1572 1573 jQuery(document).ready(function($){ 1574 1575 //bouncer 1576 if ($('#commentform').size() === 0) { return; } 1577 1578 var $commentFormSubmit = $('#commentform p.form-submit'); 1579 var $commentNotesAfter = $('#commentform .comment-notes-after'); 1580 $commentNotesAfter.insertBefore($commentFormSubmit); 1581 1582 }); 1583
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.