PageSourceSearch

https://www.seniorbowl.com/assets/js/main.js

js seniorbowl.com collected 2026-10-02 09:59:39 UTC 21,960 bytes, 742 lines download raw bytes

1if($("body").find("[data-lightbox]").length > 0 && (!$('#lightboxCSS').length && !$('#lightboxJS').length)){
2	var head = document.getElementsByTagName('HEAD')[0]; 
3    var link = document.createElement('link');
4  
5    link.rel = 'stylesheet'; 
6    link.type = 'text/css';
7    link.href = site+'assets/vendor/lightbox2/css/lightbox.min.css'; 
8  	link.id = 'lightboxCSS';
9    head.appendChild(link);
10
11	var lightbox_script = document.createElement('script');
12	lightbox_script.src = site+"assets/vendor/lightbox2/js/lightbox.min.js";
13	lightbox_script.id = 'lightboxJS';
14	document.getElementsByTagName('body')[0].appendChild(lightbox_script);
15	
16	setTimeout(function(){ 
17
18		$('.lb-prev').html('<span class="sr-only">Scroll Left</span>');
19		$('.lb-next').html('<span class="sr-only">Scroll Right</span>');
20		$('.lb-image').attr('alt','Default Lightbox Image');
21	}, 3000);
22}
23
24if($("body").find("[data-tinyslider]").length > 0 && (!$('#tinySliderCSS').length && !$('#tinySliderJS').length)){
25	var head = document.getElementsByTagName('HEAD')[0]; 
26    var link = document.createElement('link');
27  
28    link.rel = 'stylesheet'; 
29    link.type = 'text/css';
30    link.href = site+'assets/vendor/tiny-slider/tiny-slider.css'; 
31	link.id = 'tinySliderCSS';
32	head.appendChild(link);
33
34	var script = document.createElement('script');
35	script.src = site+"assets/vendor/tiny-slider/min/tiny-slider.js";
36	script.id = 'tinySliderJS';
37	document.getElementsByTagName('body')[0].appendChild(script);
38
39}
40
41if($("body").find("[data-lightgallery]").length > 0 && (!$('#lightgalleryCSS').length && !$('#lightgalleryJS').length)){
42	var head = document.getElementsByTagName('HEAD')[0]; 
43    var link = document.createElement('link');
44  
45    link.rel = 'stylesheet'; 
46    link.type = 'text/css';
47    link.href = site+'assets/vendor/lightGallery/css/lightgallery-bundle.min.css'; 
48    link.id = 'lightgalleryCSS';
49    head.appendChild(link);
50
51	var script = document.createElement('script');
52	script.src = site+"assets/vendor/lightGallery/lightgallery.umd.js";
53	script.id = 'lightgalleryJS';
54	document.getElementsByTagName('body')[0].appendChild(script);
55	
56	script = document.createElement('script');
57	script.src = site+"assets/vendor/lightGallery/plugins/fullscreen/lg-fullscreen.umd.js";
58	document.getElementsByTagName('body')[0].appendChild(script);
59	
60	script = document.createElement('script');
61	script.src = site+"assets/vendor/lightGallery/plugins/zoom/lg-zoom.umd.js";
62	document.getElementsByTagName('body')[0].appendChild(script);
63	
64	script = document.createElement('script');
65	script.src = site+"assets/vendor/lightGallery/plugins/thumbnail/lg-thumbnail.umd.js";
66	document.getElementsByTagName('body')[0].appendChild(script);
67	
68	
69	
70}
71
72if($("body").find("[data-swiperslider]").length > 0 ){
73	if(!$('#swipersliderCSS').length && !$('#swipersliderJS').length){
74	var head = document.getElementsByTagName('HEAD')[0]; 
75    var link = document.createElement('link');
76  
77    link.rel = 'stylesheet'; 
78    link.type = 'text/css';
79    link.href = 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css'; 
80	link.id = 'swipersliderCSS';
81	head.appendChild(link);
82
83	var script = document.createElement('script');
84	script.src = 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js';
85	script.id = 'swipersliderJS';
86	document.getElementsByTagName('body')[0].appendChild(script);
87	}
88	
89	$(window).on('load',function(){		
90	setTimeout(function(){
91		$.each($("body").find("[data-swiperslider]"),function(index,value){
92			console.log(index,value,$(this),$(this).attr('id'),$(this).find('.ph-item'));
93			var t = $(this).attr('id');
94			var swiper = new Swiper('#'+t, {
95				 		 	direction: 'horizontal',
96				 		 	navigation: {
97								nextEl: '.swiper-button-next',
98								prevEl: '.swiper-button-prev',
99							  },
100				  					loop: true,
101				  					on: {
102									init: function () {
103										      console.log('swiper initialized');
104								 		$(this).find('.ph-item').remove();
105								 		$(this).css('max-height','auto');
106									},
107							  	},
108	
109	
110				}		);
111		})
112	},800);
113	});
114}
115
116         WOW.prototype.addBox = function(element) {
117         this.boxes.push(element);
118        };
119var wow = new WOW({
120    boxClass:     'wow',
121    animateClass: 'animate__animated',
122    offset:       200,
123    mobile:       true,
124    live:         true
125})
126wow.init();
127
128
129
130
131
132      // Attach scrollSpy to .wow elements for detect view exit events,
133        // then reset elements and add again for animation
134         $('.wow').on('scrollSpy:exit', function() {
135        $(this).css({
136         'visibility': 'hidden',
137         'animation-name': 'none'
138        }).removeClass('animate__animated');
139        wow.addBox(this);
140       }).scrollSpy();
141       
142if($('.parallax-wrapper').length){
143window.addEventListener('scroll', parallax_throttle(parallax_callback, 15));
144
145function parallax_throttle(fn, wait) {
146  var time = Date.now();
147  return function() {
148    if ((time + wait - Date.now()) < 0) {
149      fn();
150      time = Date.now();
151    }
152  }
153};
154
155function parallax_callback() {
156	var scrolled = window.pageYOffset;
157	var parallax = document.querySelector(".parallax");
158	var coords = (scrolled * 0.2) + 'px'
159	if($(".parallax").is(":visible")){
160 		parallax.style.transform = 'translateY(' + coords + ')';
161 	}
162};
163}
164
165
166
167
168
169
170
171
172
173
174
175
176var pathname = window.location.pathname;
177
178if($('.nav > li > a[href="'+pathname+'"]')){
179	let arr = pathname.split("/");
180	arr = arr.filter(item => item);
181	
182	if(arr.length > 1){
183		$('a[href="#'+arr[0]+'"]').addClass('active')
184	}
185	$('.nav-item a[href="'+site+pathname+'"]').addClass('active');
186
187}
188
189
190
191if($('.navbar-megamenu').length){
192	$(document).on('click', '.dropdown-menu', function (e) {
193  		e.stopPropagation();
194	});
195}
196
197//3+deep submenu
198$('.dropdown-menu a.dropdown-toggle').on('click', function(e) {
199  if (!$(this).next().hasClass('show')) {
200	$(this).parents('.dropdown-menu').first().find('.show').removeClass('show');
201  }
202  var $subMenu = $(this).next('.dropdown-menu');
203  $subMenu.toggleClass('show');
204
205
206  $(this).parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function(e) {
207	$('.dropdown-submenu .show').removeClass('show');
208  });
209
210
211  return false;
212});
213
214// back-to-top
215$('#back_to_top').on('click', function() {
216	$('body,html').animate({
217		scrollTop: 0
218  	}, 500);
219  return false;
220});
221
222// LAZY LOADING
223if($('.lazy-image').length){
224	var lazyImages = [document.querySelectorAll('.lazy-image')];
225	var inAdvance = 300;
226
227	function lazyLoad() {
228		$.each($('.lazy-image'), function( index, value ) {
229			 if (value.offsetTop < window.innerHeight + window.pageYOffset + inAdvance) {
230				$(this).attr('src',$(this).data('src'));
231				$(this).attr('data-src','');
232				$(this).addClass('loaded');
233			 }
234		})
235
236		window.removeEventListener('scroll', lazyLoad);
237		window.removeEventListener('resize', lazyLoad);
238	}
239
240	lazyLoad();
241
242	window.addEventListener('scroll', lazyLoad);
243	window.addEventListener('resize', lazyLoad);
244}
245
246
247
248// LOCOMOTIVE SCROLL
249if($("body").find("[data-scroll-container]").length > 0){
250
251 (function () {
252        var scroll = new LocomotiveScroll({
253         el: document.querySelector('[data-scroll-container]'),
254			smooth:true,
255        });
256    })();
257
258}
259
260
261
262// SUB STICKY BAR UNDER HEADER
263if($('.sticky-sub-bar').length && $('#page-header').length){
264	$('.sticky-sub-bar').css('top',($('#page-header').height()));
265}
266
267// Hide/show animation hamburger function
268$('.navbar-toggler').on('click', function () {
269	$(this).children('.animated-icon1').toggleClass('open');
270});
271
272// UP /DOWN icon toggle 
273if($('.angle-toggler').length){
274	$('.angle-toggler').on('click',function(e){
275		if($(this).find('i').hasClass('fa-angle-down')){
276			$(this).find('i').removeClass('fa-angle-down').addClass('fa-angle-up');
277		}else{
278			$(this).find('i').removeClass('fa-angle-up').addClass('fa-angle-down');
279		}
280	});
281}
282if($('.plus-toggler').length){
283	$('.plus-toggler').on('click',function(e){
284		if($(this).find('i').hasClass('fa-plus')){
285			$(this).find('i').removeClass('fa-plus').addClass('fa-minus');
286		}else{
287			$(this).find('i').removeClass('fa-minus').addClass('fa-plus');
288		}
289	});
290}
291function objectifyForm(formArray) {
292    //serialize data function
293    var returnArray = {};
294    for (var i = 0; i < formArray.length; i++){
295        returnArray[formArray[i]['name']] = formArray[i]['value'];
296    }
297    return returnArray;
298}
299
300$( document ).ready(function() {
301	
302	 
303	 
304	// PAYPAL
305	if($('#pp-buttons').length){
306	  paypal.Buttons({
307		createOrder: function(data, actions) {
308		  return actions.order.create({
309			purchase_units: [{
310			  amount: {
311				value: document.getElementById('amount').value
312			  }
313			}]
314		  });
315		},
316		onApprove: function(data, actions) {
317		  return actions.order.capture().then(function(details) {
318			console.log(details);
319			alert('Transaction completed by ' + details.payer.name.given_name);
320			// Call your server to save the transaction
321			return fetch(site+'assets/includes/ajax/paypal-handler.php', {
322			  method: 'post',
323			  headers: {
324				'content-type': 'application/json'
325			  },
326			  body: JSON.stringify({
327				orderID: data.orderID
328			  })
329			}).then(function(res) {
330				console.log( res.json());
331			  });
332		  });
333		}
334	  }).render('#pp-buttons');
335	}
336
337
338	//basic form validation/submission
339	if($('#page_form').length){
340		var form = $( '#page_form' );
341		form.validate({
342			 errorClass: "is-invalid text-danger",
343        validClass: "is-valid",
344        errorElement: 'em',
345        invalidHandler: function(form, validator) {
346            var errors = validator.numberOfInvalids();
347            if (errors) {
348                validator.errorList[0].element.focus();
349            }
350        },
351			submitHandler: function(form) {
352				$(form).ajaxSubmit({
353				target: '#form-return',
354				success: function(){
355					$('html, body').animate({ scrollTop: $('#form-return').position().top }, 0);
356				}
357			});
358		}
359	});
360		$('#page_form :input').on('change',function(e){
361			var v = $(this).val();
362			$(this).val($(this).val().trim());
363		});
364	}
365	
366	
367})
368
369
370$('body').on('click','.download-file-library-archive ',function(e){
371e.preventDefault();
372var id = $(this).data('id');
373	$.ajax({
374		url:  site+"assets/includes/ajax/ajax-handler.php",
375		data: {action:'file-library-zip-download',id:id},
376		type: 'post'
377	})
378	.done(function( html ) {
379		$('body').append(html);
380	});
381});
382
383
384/////////////////////////
385///   	EVENTS  
386/////////////////////////
387if($('#event-cal').length){
388$( document ).ready(function() {
389	var event_dates = (function () {
390    var event_dates = null;
391    var weekly_dates = [];
392    $.ajax({
393        'method': "post",
394        'url': site+"assets/includes/ajax/ajax-handler.php",
395        'data':{action:'load-cal'},
396        'dataType': "json",
397        'success': function (data) {
398            event_dates = data;
399            launch_calendar(event_dates);
400            //start with current weeks events
401            var start_of_week = moment().startOf('week'); 
402			var end_of_week = moment().endOf('week');
403            for (i = 0; i < event_dates.length; i++) {
404            	if(moment(event_dates[i].date).isBetween(start_of_week,end_of_week, null, '[)') !== false){
405					weekly_dates.push(event_dates[i]);
406				}
407            }
408            $('#event-list-holder').html('<h4>Events for the Week of <small>'+moment(start_of_week).format("dddd, MMMM Do YYYY")+' - '+moment(end_of_week).format("dddd, MMMM Do YYYY")+'</small></h4>');
409           	load_event_list(weekly_dates);
410        }
411    });
412    return event_dates;
413})();	
414});
415
416function launch_calendar(event_dates){
417	$( "#event-cal" ).datepicker({
418		beforeShowDay: function(t){
419			var valid = true;
420			var _class = '';
421			var _tooltip;
422			for (i = 0; i < event_dates.length; i++) {
423				var tmp = event_dates[i].date.split('-');
424				var month_front = tmp[1]-1;
425				if(t.getMonth() == month_front && t.getDate() == tmp[2] && t.getFullYear() == tmp[0]){
426					_class = 'bg-event';
427					_tooltip = valid ? event_dates[i].title : '';
428				}
429			}
430			return [valid,_class,_tooltip];
431		},
432		onSelect: function(parsedDate) {
433			var current_day = moment(this.value,'MM/DD/YYYY').format('YYYY-MM-DD');
434			var current_day_events = []
435			$('#event-list-holder').html('<h2>Events for <span>'+moment(current_day).format('MMMM Do, YYYY')+'</h2>');
436			for (i = 0; i < event_dates.length; i++) {
437				if(moment(current_day).isSame(event_dates[i].date) !== false){
438					current_day_events.push(event_dates[i]);
439				}
440			}
441			return load_event_list(current_day_events);
442		},
443		onChangeMonthYear : function(year, month, inst){
444			var month_events = [];
445			var month_month = inst.selectedMonth;
446
447			var month_year = inst.selectedYear;
448			var month_day_start = moment(inst.selectedYear +'-'+ parseFloat(inst.selectedMonth+1) +'-01','YYYY-MM-DD').format('YYYY-MM-DD');
449				console.log(inst.selectedYear+'-'+parseFloat(inst.selectedMonth+1)+'-'+inst.selectedDay);
450				month_day_start = moment(month_day_start).startOf('month');
451			var month_day_end = moment(month_day_start).endOf('month').format('YYYY-MM-DD');
452				console.log(month_day_start+' ----'+month_day_end);
453			for (i = 0; i < event_dates.length; i++) {
454				if(moment(event_dates[i].date).isBetween(month_day_start,month_day_end, null, '[)') !== false || event_dates[i].date == month_day_end){
455					month_events.push(event_dates[i]);
456				}
457			
458			}
459			$('#event-list-holder').html('<h2>Events for <span>'+moment(month_day_end).format('MMMM YYYY')+'</h2>');
460			return load_event_list(month_events);
461		},
462		changeMonth: true,
463		changeYear: true
464	});
465}
466	
467function load_event_list(event_dates){
468	for (i = 0; i < event_dates.length; i++) {
469		var venue = event_dates[i].venue ? event_dates[i].venue : '';
470		var event_time = event_dates[i].event_time ? event_dates[i].event_time : '';
471		if(!$('.day-'+event_dates[i].date).length && !$('.day-'+event_dates[i].date+'-list').length){
472			var d = document.createElement('div');
473			$(d).addClass('row clearfix border-bottom').attr("id","event-"+event_dates[i].date);
474    		$(d).html('<div class="col-sm-3 center day-'+event_dates[i].date+'"></div><div class="col-sm-9 day-'+event_dates[i].date+'-list panel-body"></div>');
475			$(d).find('.day-'+event_dates[i].date).html('<h2 class="nomargin"><small>'+moment(event_dates[i].date).format('MMM')+'</small><br>'+moment(event_dates[i].date).format("DD")+'</h2><small style="border-top:1px solid #ececec;padding-top:5px;">'+moment(event_dates[i].date).format("dddd")+'</small>');
476			$('#event-list-holder').append(d);
477		}
478		$('.day-'+event_dates[i].date+'-list').append('<p class="event-list-title"><a href="'+event_dates[i].url+'">'+event_dates[i].title+'</a><br><span>'+event_time+' '+venue+'</span></p>');
479	}
480};
481
482}
483
484if($('#eventsMix').length){
485$( document ).ready(function() {
486var $positionSelect = $('#filter-category'),
487	$locationSelect = $('#filter-date'),
488	$container = $('#eventsMix');
489	
490var mixer = mixitup($container);
491	$('#filter-category, #filter-date').on('change', function() {
492		var filterString = $(this).val();
493	  	mixer.filter( filterString);
494	});
495});
496}
497  
498  
499/////////////////////////
500///   	LOGIN
501/////////////////////////  
502$( document ).ready(function() {
503	if($('#user_login').length){
504		var form = $('#user_login');
505		 form.validate({
506		  rules: {
507			username: "required",
508			password: "required",
509		  },
510		  submitHandler: function(form) {
511			$(form).ajaxSubmit({
512			 type: 'post',
513			 url: site+'assets/includes/ajax/ajax-handler.php',
514			 data: {action:'log-user-in'},
515			 beforeSubmit:function(e){
516			 	$('#sign_in').html('<i class="fas fa-sync-alt fa-spin"></i> One Moment').attr('disabled',true);
517			 },success:function(data){
518			 	data = JSON.parse(data);
519			 	
520			 	if(data.status !== false){
521			 		$('#sign_in').html('<i class="fas fa-sync-alt fa-spin"></i> Logging in...')
522			 		location.assign(data.redirect);
523			 	}else{
524			 		$('#sign_in').html('Sign-In').attr('disabled',false);
525			 		$('#login-return').html('<div class="text-center p-4"><div class="alert alert-danger text-danger m-0">'+data.message+'</div></div>');
526			 	}
527			 }
528			});
529		  }
530		});
531	}
532	
533	if($('#forgot_pass').length){
534		var form = $('#forgot_pass');
535		 form.validate({
536		  rules: {
537			username: "required",
538		  },
539		  submitHandler: function(form) {
540			$(form).ajaxSubmit({
541			 target:  '#login-return',
542			 type: 'post',
543			 url: site+'assets/includes/ajax/ajax-handler.php',
544			 data: {action:'forgot-pass'}
545			});
546		  }
547		});
548	}
549	
550	if($('#reset_password').length){
551		var form = $('#reset_password');
552		 form.validate({
553		  rules: {
554			pass1 : {
555                    minlength : 7
556                },
557            pass2 : {
558                    minlength : 7,
559                    equalTo : "#password"
560                }
561		  },
562		  submitHandler: function(form) {
563			$(form).ajaxSubmit({
564			 target:  '#login-return',
565			 type: 'post',
566			 url: site+'assets/includes/ajax/ajax-handler.php',
567			 data: {action:'reset-user-pass'}
568			});
569		  }
570		});
571	}
572});
573
574$('body').on('click','.forgot-pass',function(e){
575	$('#user_login').slideToggle();
576	$('#forgot_pass').slideToggle();
577});
578
579
580$('body').on('click','.log-user-out',function(e){
581	$.ajax({
582		method: "POST",
583   		url: site+'assets/includes/ajax/ajax-handler.php',
584  		data: { action:'log-user-out' }
585	})
586	.done(function( data ) {
587		window.location.assign(site);
588  	});
589});
590
591/////////////////////////
592///   	CACHING
593/////////////////////////  
594$('body').on('click','.purge-page-cache',function(e){
595e.preventDefault();
596	$.ajax({
597		url:  site+"assets/includes/ajax/ajax-handler.php",
598		data: {action:'purge-page-cache'},
599		type: 'post'
600	})
601	.done(function( html ) {
602		//location.reload(true);
603	});
604});
605$('body').on('click','.purge-page-cache-single',function(e){
606e.preventDefault();
607var slug = $(this).data('slug');
608	$.ajax({
609		url:  site+"assets/includes/ajax/ajax-handler.php",
610		data: {action:'purge-page-cache-single',slug:slug},
611		type: 'post'
612	})
613	.done(function( html ) {
614		//location.reload(true);
615	});
616});
617
618
619/////////////////////////
620///   	PAGE LOADER
621///////////////////////// 
622if($('.page-loading').length){
623 	(function () {
624        window.onload = function () {
625          var preloader = document.querySelector('.page-loading');
626          preloader.classList.remove('active');
627          setTimeout(function () {
628            preloader.remove();
629          }, 2000);
630        };
631      })();
632};
633
634/////////////////////////
635///   	Headhesive
636///////////////////////// 
637//if (null != document.querySelector(".navbar"))
638//new Headhesive(".navbar", {
639//	offset: 400,
640//	offsetSide: "top",
641//	classes: { clone: "navbar-clone fixed", stick: "navbar-stick", unstick: "navbar-unstick" },
642//	onStick: function () {
643//		var e = this.clonedElem.classList;
644//		e.contains("transparent") && e.contains("navbar-dark") && (this.clonedElem.className = this.clonedElem.className.replace("navbar-dark", "navbar-light", "navbar-stick"));
645//	},
646//});
647
648/////////////////////////
649///   	Countdown
650/////////////////////////
651(function ( $ ) {
652	function pad(n) {
653	    return (n < 10) ? ("0" + n) : n;
654	}
655
656	$.fn.showclock = function() {
657	    
658	    var currentDate=new Date();
659	    var fieldDate=$(this).data('date').split('-');
660	    var fieldTime=[0,0];
661	    if($(this).data('time')!=undefined)
662	    fieldTime=$(this).data('time').split(':');
663	    var futureDate=new Date(fieldDate[0],fieldDate[1]-1,fieldDate[2],fieldTime[0],fieldTime[1]);
664	    var seconds=futureDate.getTime() / 1000 - currentDate.getTime() / 1000;
665
666	    if(seconds<=0 || isNaN(seconds)){
667	    	this.hide();
668	    	return this;
669	    }
670
671	    var days=Math.floor(seconds/86400);
672	    seconds=seconds%86400;
673	    
674	    var hours=Math.floor(seconds/3600);
675	    seconds=seconds%3600;
676
677	    var minutes=Math.floor(seconds/60);
678	    seconds=Math.floor(seconds%60);
679	    
680	    var html=`<div class="row row-col-4 justify-content-center justify-content-lg-start">`;
681
682	    if(days!=0){
683		    html+="<div class='col-auto text-center countdown-container days'>"
684		    	html+="<p class='countdown-value days-bottom text-panini-yellow mb
684-0 d-block fw-bold tk-chakra-petch display-3'>"+pad(days)+"</p>";
685		    	html+="<span class='countdown-heading days-top text-white'>Days</span>";
686		    html+="</div>";
687		}
688
689	    html+="<div class='col-auto text-center countdown-container hours'>"
690	    	html+="<p class='countdown-value hours-bottom text-panini-yellow display-3 mb-0 d-block fw-bold tk-chakra-petch '>"+pad(hours)+"</p>";
691	    	html+="<span class='countdown-heading hours-top text-white'>Hours</span>";
692	    html+="</div>";
693
694	    html+="<div class='col-auto text-center countdown-container minutes'>"
695	    	html+="<p class='countdown-value minutes-bottom text-panini-yellow display-3 mb-0 d-block fw-bold tk-chakra-petch '>"+pad(minutes)+"</p>";
696	    	html+="<span class='countdown-heading minutes-top text-white'>Minutes</span>";
697	    html+="</div>";
698
699	    html+="<div class='col-auto text-center countdown-container seconds'>"
700	    	html+="<p class='countdown-value seconds-bottom text-panini-yellow display-3 mb-0 d-block fw-bold tk-chakra-petch '>: "+pad(seconds)+"</p>";
701	    	html+="<span class='countdown-heading seconds-top text-white'>Seconds</span>";
702	    html+="</div>";
703		
704		html += `</div>`;
705	    this.html(html);
706	};
707
708	$.fn.countdown = function() {
709		var el=$(this);
710		el.showclock();
711		setInterval(function(){
712			el.showclock();	
713		},1000);
714		
715	}
716
717}(jQuery));
718
719jQuery(document).ready(function(){
720	if(jQuery(".countdown").length>0){
721		jQuery(".countdown").each(function(){
722			jQuery(this).countdown();	
723		})
724		
725	}
726})
727
728if($('#watchlistTable').length){
729let table = new DataTable('#watchlistTable',{paging: false});
730}
731if (window.innerWidth >= 992) {
732  document.querySelectorAll('.nav-item.dropdown').forEach(dropdown => {
733    dropdown.addEventListener('mouseenter', () => {
734      const toggle = dropdown.querySelector('[data-bs-toggle="dropdown"]');
735      bootstrap.Dropdown.getOrCreateInstance(toggle).show();
736    });
737    dropdown.addEventListener('mouseleave', () => {
738      const toggle = dropdown.querySelector('[data-bs-toggle="dropdown"]');
739      bootstrap.Dropdown.getOrCreateInstance(toggle).hide();
740    });
741  });
742}

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.