PageSourceSearch

https://frisbee.pl/wp-content/themes/allstar/allstar/js/scripts.js?ver=6.2.13

js frisbee.pl collected 2026-10-01 13:00:39 UTC 44,629 bytes, 1,583 lines download raw bytes

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.