PageSourceSearch

https://www.flumc.org/files/content/www/2020/script.js

js flumc.org collected 2026-09-24 10:19:34 UTC 25,345 bytes, 914 lines download raw bytes

1/**
2 * CreateX | Multipurpose Bootstrap Theme
3 * Theme core scripts
4 * 
5 * @author Createx Studio
6 * @version 1.1
7 */
8 
9
10
11 $(document).ready(function(){
12	 
13	 
14var coll = document.getElementsByClassName("collapsible");
15var i;
16
17for (i = 0; i < coll.length; i++) {
18  coll[i].addEventListener("click", function() {
19    this.classList.toggle("active");
20    var content = this.nextElementSibling;
21    if (content.style.display === "block") {
22      content.style.display = "none";
23    } else {
24      content.style.display = "block";
25    }
26  });
27}
28	 
29	 
30	 
31	  $('.navbar-nav').addClass('nav-ready');
32
33 
34 $('.work').slick({
35  dots: true,
36  arrows: true,
37  infinite: false,
38  speed: 300,
39  slidesToShow: 1,
40  slidesToScroll: 1,
41   adaptiveHeight: true,
42  responsive: [
43    {
44      breakpoint: 1024,
45      settings: {
46        slidesToShow: 1,
47        slidesToScroll: 1,
48        infinite: true,
49        dots: true
50      }
51    },
52    {
53      breakpoint: 600,
54      settings: {
55        slidesToShow: 2,
56        slidesToScroll: 2
57      }
58    },
59    {
60      breakpoint: 480,
61      settings: {
62        slidesToShow: 1,
63        slidesToScroll: 1
64      }
65    }
66    // You can unslick at a given breakpoint now by adding:
67    // settings: "unslick"
68    // instead of a settings object
69  ]
70});
71		
72 }); 
73 
74
75;(function ($) {
76  'use strict';
77  
78  
79$('#carS').carousel({
80  interval: 2000
81})    
82
83 $('ul li:has(a.mega-menu)').addClass('mega-dropdown-toggle');
84 $('ul .mega-dropdown-toggle>ul').addClass('d-flex');
85 $('ul .mega-dropdown-toggle>ul').wrap('<div class="dropdown-menu mega-dropdown">');
86
87
88 $('ul li:has(a.reg-menu)').addClass('dropdown-toggle');
89 $('ul .dropdown-toggle>ul').addClass('dropdown-menu dropdown');
90
91  /**
92   * Global variables
93   * @const
94  */
95  var BODY = 'body';
96  var WINDOW = window;
97  var DOCUMENT = document;
98
99  var theme = {
100
101    /**
102     * Theme's components/functions list
103     * Comment out or delete the unnecessary component.
104     * Some component have dependencies (plugins).
105     * Do not forget to remove component plugin script from src/vendor/js
106    */
107    init: function () {
108    //   theme.disableEmptyLink();
109      theme.stickyNavbar();
110      theme.isotopeGrid();
111      theme.isotopeFilter();
112      theme.searchToggle();
113      theme.searchAutocomplete();
114      theme.offcanvas();
115      theme.fsOverlay();
116      theme.scrollTo();
117      theme.scrollBackTop();
118      theme.formValidation();
119      theme.tooltips();
120      theme.popovers();
121      theme.creditCard();
122      theme.filterList('[data-filter="#components-list"]', '.list-group-item');
123      theme.filterList('[data-filter="#components-grid"]', '.card-title');
124      theme.productGallery();
125      theme.linkedCarousels();
126      theme.toasts();
127      theme.teamHover();
128      theme.countDown();
129      theme.animateProgress();
130      theme.animateDigits();
131      theme.rangeSlider();
132      theme.parallax();
133      theme.pricingSwitch();
134      theme.googleMap();
135    },
136
137    
138    /**
139     * Disabling browser from jumping up top when clicking empty (#) links
140     * @param {string} selector
141    */
142    disableEmptyLink: function (selector) {
143
144    //   selector = 'a[href="#"]';
145    selector = 'a[href="#"]:not[style="unicode-bidi:bidi-override;direction:rtl;"]';
146
147      $(selector).on('click', function(e) {
148        e.preventDefault();
149      });
150    },
151
152
153    /**
154     * Sticky navbar
155     * @param {string} selector
156     * @param {number} offset [offset=500]
157    */
158    stickyNavbar: function (selector, offset) {
159
160      selector = '.navbar-sticky';
161      offset = 500;
162
163      if($(selector).length) {
164        var navbarH = $(selector).outerHeight();
165        $(WINDOW).on('scroll', function () {
166          if($(this).scrollTop() > offset) {
167            $(selector).addClass('navbar-stuck');
168            if(! $(selector).hasClass('navbar-floating')) {
169              $(BODY).css('padding-top', navbarH);
170            }
171          } else {
172            $(selector).removeClass('navbar-stuck');
173            $(BODY).css('padding-top', 0);
174          }
175        });
176      }
177    },
178
179
180    /**
181     * Isotope grid
182     * @param {string} selector
183     * @param {string} transitionDuration [transitionDuration='0.7s']
184    */
185    isotopeGrid: function (selector, transitionDuration) {
186
187      selector = '.isotope-grid';
188      transitionDuration = '0.7s';
189
190      if($(selector).length) {
191        var $grid = $(selector).imagesLoaded(function() {
192          $grid.isotope({
193            itemSelector: '.grid-item',
194            transitionDuration: transitionDuration,
195            masonry: {
196              columnWidth: '.grid-sizer',
197              gutter: '.gutter-sizer'
198            }
199          });
200        });
201      }
202    },
203
204
205    /**
206     * Isotope filter
207     * @param {string} target
208     * @param {string} toggler
209    */
210    isotopeFilter: function (target, toggler) {
211
212      target = '.filter-grid';
213      toggler = '.nav-tabs';
214
215      if($(target).length) {
216        $(toggler).on( 'click', 'a', function(e) {
217          e.preventDefault();
218          $(toggler + ' a').removeClass('active');
219          $(this).addClass('active');
220          var $filterValue = $(this).attr('data-filter');
221          $(target).isotope({ filter: $filterValue });
222        });
223      }
224    },
225
226
227    /**
228     * Search toggle
229     * @param {string} openTrigger
230     * @param {string} closeTrigger
231     * @param {string} target
232    */
233    searchToggle: function (openTrigger, closeTrigger, target) {
234
235      openTrigger = '[data-toggle="search"]';
236      closeTrigger = '.search-close';
237      target = '.search-box';
238
239      $(openTrigger).on('click', function() {
240        $(target).addClass('is-open');
241        setTimeout( function() {
242          $(target + ' input').focus();
243        }, 200);
244      });
245      $(closeTrigger).on('click', function() {
246        $(target).removeClass('is-open');
247      });
248    },
249
250
251    /**
252     * Search autocomplete
253     * dependency: easy-autocomplete jQuery plugin
254     * @param {string} selector
255    */
256    searchAutocomplete: function (selector) {
257
258      selector = '#site-search';
259
260      var options = {
261        url: 'search-autocomplete.json',
262        getValue: 'name',
263        list: {
264          match: {
265            enabled: true
266          }
267        },
268        template: {
269          type: 'custom',
270          method: function(value, item) {
271            return "<a href='" + item.link + "'><span class='ac-title'>" + value + "</span><span class='badge badge-" + item.badge + "'>" + item.type + "</span></a>";
272          }
273        }
274      };
275
276      if ($.fn.easyAutocomplete) {
277        $(selector).easyAutocomplete(options);
278      }
279    },
280
281
282    /**
283     * Off-canvas
284     * @param {string} openTrigger
285     * @param {string} closeTrigger
286     * @param {string} target
287    */
288    offcanvas: function (openTrigger, closeTrigger, target) {
289
290      openTrigger = '[data-toggle="offcanvas"]';
291      closeTrigger = '.offcanvas-close';
292      target = '.offcanvas-container';
293      
294      $(openTrigger).on('click', function (e) {
295        var $target = $(this).attr('href');
296        $($target).addClass('in-view');
297        e.preventDefault();
298      });
299
300      $(closeTrigger).on('click', function() {
301        $(target).removeClass('in-view');
302      });
303    },
304
305
306    /**
307     * Full screen overlay
308     * @param {string} openTrigger
309     * @param {string} closeTrigger
310     * @param {string} target
311    */
312    fsOverlay: function (openTrigger, closeTrigger, target) {
313
314      openTrigger = '[data-toggle="fullscreen-overlay"]';
315      closeTrigger = '.fs-overlay-close';
316      target = '.fs-overlay-wrapper';
317      
318      $(openTrigger).on('click', function(e) {
319        var $target = $(this).attr('href');
320        $($target).addClass('in-view');
321        e.preventDefault();
322      });
323
324      $(closeTrigger).on('click', function() {
325        $(target).removeClass('in-view');
326      });
327    },
328
329
330    /**
331     * Smooth scroll to an element
332     * @param {string} selector
333     * @param {number} duration [duration=1200]
334    */
335    scrollTo: function (selector, duration) {
336
337      selector = '.scroll-to';
338      duration = 1200;
339
340      $(DOCUMENT).on('click', selector, function (e) {
341        var target = $(this).attr('href');
342        console.log(target);
343        if ('#' === target) {
344          return false;
345        }
346    
347        var $target = $( target );
348        var animationDuration = parseInt(duration, 10);
349        if($target.length) {
350          var $elemOffsetTop = $target.data( 'offset-top' ) || 75;
351          $('html, body').stop().animate({scrollTop: $( this.hash ).offset().top - $elemOffsetTop}, animationDuration, 'easeOutExpo');
352        }
353        e.preventDefault();
354      });
355    },
356
357
358    /**
359     * Animated scroll to top button
360     * @param {string} selector
361     * @param {number} scrollOffset [scrollOffset=600]
362     * @param {number} duration [duration=1200]
363    */
364    scrollBackTop: function (selector, scrollOffset, duration) {
365
366      selector = '.scroll-to-top-btn';
367      scrollOffset = 600;
368      duration = 1200;
369
370      if ($(selector).length) {
371
372        var offsetFromTop = parseInt(scrollOffset, 10);
373        var animationDuration = parseInt(duration, 10);
374
375        $(WINDOW).on('scroll', function () {
376          if ($(this).scrollTop() > offsetFromTop) {
377            $(selector).addClass('visible');
378          } else {
379            $(selector).removeClass('visible');
380          }
381        });
382
383        $(selector).on('click', function () {
384          $('html, body').stop().animate({scrollTop: 0}, animationDuration, 'easeOutExpo');
385        });
386      }
387    },
388
389
390    /**
391     * From validation
392     * @param {string} selector
393    */
394    formValidation: function (selector) {
395
396      selector = 'needs-validation';
397
398      window.addEventListener('load', function () {
399        // Fetch all the forms we want to apply custom Bootstrap validation styles to
400        var forms = document.getElementsByClassName(selector);
401        // Loop over them and prevent submission
402        var validation = Array.prototype.filter.call(forms, function(form) {
403          form.addEventListener('submit', function(event) {
404            if (form.checkValidity() === false) {
405              event.preventDefault();
406              event.stopPropagation();
407            }
408            form.classList.add('was-validated');
409          }, false);
410        });
411      }, false);
412    },
413
414
415    /**
416     * Tooltips
417     * @param {string} selector
418    */
419    tooltips: function (selector) {
420
421      selector = '[data-toggle="tooltip"]';
422
423      $(selector).tooltip();
424    },
425
426
427    /**
428     * Popovers
429     * @param {string} selector
430    */
431    popovers: function (selector) {
432
433      selector = '[data-toggle="popover"]';
434
435      $(selector).popover();
436    },
437
438
439    /**
440     * Interactive credit card
441     * @param {string} selector
442    */
443    creditCard: function (selector) {
444      
445      selector = '.interactive-credit-card';
446
447      if($(selector).length) {
448        $(selector).card({
449          form: selector,
450          container: '.card-wrapper'
451        });
452      }
453    },
454
455
456    /**
457     * Filter list group
458     * @param {string} trigger
459     * @param {string} searchBase
460    */
461    filterList: function (trigger, searchBase) {
462      
463      $(trigger).each(function () {
464        var self = $(this),
465            target = self.data('filter'),
466            search = self.find('input[type=text]'),
467            filters = self.find('input[type=radio]');
468        
469        // Search
470        search.keyup(function() {
471          var searchQuery = search.val();
472          if(searchBase === '.list-group-item') {
473            $(searchBase).each(function() {
474              var text = $(this).text().toLowerCase();
475              (text.indexOf(searchQuery.toLowerCase()) == 0) ? $(this).show() : $(this).hide(); 
476            });
477          } else {
478            $(searchBase).each(function() {
479              var text = $(this).text().toLowerCase();
480              (text.indexOf(searchQuery.toLowerCase()) == 0) ? $(this).parents('[data-filter-item]').show() : $(this).parents('[data-filter-item]').hide(); 
481            });
482          }
483        });
484
485        // Filters
486        filters.on('click', function(e) {
487          var targetItem = $(this).val();
488          if(searchBase === '.list-group-item') {
489            if(targetItem !== 'all') {
490              $(searchBase).hide();
491              $('[data-filter-item=' + targetItem + ']').show();
492            } else {
493              $(searchBase).show();
494            }
495          } else {
496            if(targetItem !== 'all') {
497              $(searchBase).parents('[data-filter-item]').hide();
498              $('[data-filter-item=' + targetItem + ']').show();
499            } else {
500              $(searchBase).parents('[data-filter-item]').show();
501            }
502          }
503          
504        });
505      });
506    },
507
508
509    /**
510     * Product gallery
511     * @param {string} selector
512    */
513    productGallery: function (selector) {
514
515      selector = '.product-carousel';
516
517      function activeHash(e) {
518        var i = e.item.index;
519        var $activeHash = $('.owl-item').eq(i).find('[data-hash]').attr('data-hash');
520        $('.product-thumbnails li').removeClass('active');
521        $('[href="#' + $activeHash + '"]').parent().addClass('active');
522        $('[data-hash="' + $activeHash + '"]').parent().addClass('active');
523      }
524
525      if($(selector).length) {
526        // Carousel init
527        $(selector).owlCarousel({
528          items: 1,
529          loop: false,
530          dots: false,
531          URLhashListener: true,
532          startPosition: 'URLHash',
533          onTranslate: activeHash
534        });
535      }
536    },
537
538
539    /**
540     * Linked carousels (Featured posts slider)
541     * @param {string} triggerCarousel
542     * @param {string} targetCarousel
543    */
544    linkedCarousels: function (triggerCarousel, targetCarousel) {
545
546      triggerCarousel = '.post-cards-carousel';
547      targetCarousel = '.post-preview-img-carousel';
548
549      if($(triggerCarousel).length) {
550        $(triggerCarousel).on('change.owl.carousel', function (event) {
551          if (event.namespace && event.property.name === 'position') {
552            var target = event.relatedTarget.relative(event.property.value, true);
553            $(targetCarousel).owlCarousel('to', target, 350, true);
554          }
555        });
556      }
557    },
558
559
560    /**
561     * Toast notifications
562     * @param {string} selector
563    */
564    toasts: function (selector) {
565
566      selector = '[data-toast]';
567
568      $(selector).on('click', function () {
569		
570        var self = $(this),
571            $type = self.data('toast-type'),
572            $icon = self.data('toast-icon'),
573            $position = self.data('toast-position'),
574            $title = self.data('toast-title'),
575            $message = self.data('toast-message'),
576            toastOptions = '';
577        
578        switch ($position) {
579          case 'topRight':
580            toastOptions = {
581              class: 'iziToast-' + $type || '',
582              title: $title || 'Title',
583              message: $message || 'toast message',
584              animateInside: false,
585              position: 'topRight',
586              progressBar: false,
587              icon: $icon,
588              timeout: 3200,
589              transitionIn: 'fadeInLeft',
590              transitionOut: 'fadeOut',
591              transitionInMobile: 'fadeIn',
592              transitionOutMobile: 'fadeOut'
593            };
594            break;
595          case 'bottomRight':
596            toastOptions = {
597              class: 'iziToast-' + $type || '',
598              title: $title || 'Title',
599              message: $message || 'toast message',
600              animateInside: false,
601              position: 'bottomRight',
602              progressBar: false,
603              icon: $icon,
604              timeout: 3200,
605              transitionIn: 'fadeInLeft',
606              transitionOut: 'fadeOut',
607              transitionInMobile: 'fadeIn',
608              transitionOutMobile: 'fadeOut'
609            };
610            break;
611          case 'topLeft':
612            toastOptions = {
613              class: 'iziToast-' + $type || '',
614              title: $title || 'Title',
615              message: $message || 'toast message',
616              animateInside: false,
617              position: 'topLeft',
618              progressBar: false,
619              icon: $icon,
620              timeout: 3200,
621              transitionIn: 'fadeInRight',
622              transitionOut: 'fadeOut',
623              transitionInMobile: 'fadeIn',
624              transitionOutMobile: 'fadeOut'
625            };
626            break;
627          case 'bottomLeft':
628            toastOptions = {
629              class: 'iziToast-' + $type || '',
630              title: $title || 'Title',
631              message: $message || 'toast message',
632              animateInside: false,
633              position: 'bottomLeft',
634              progressBar: false,
635              icon: $icon,
636              timeout: 3200,
637              transitionIn: 'fadeInRight',
638              transitionOut: 'fadeOut',
639              transitionInMobile: 'fadeIn',
640              transitionOutMobile: 'fadeOut'
641            };
642            break;
643          case 'topCenter':
644            toastOptions = {
645              class: 'iziToast-' + $type || '',
646              title: $title || 'Title',
647              message: $message || 'toast message',
648              animateInside: false,
649              position: 'topCenter',
650              progressBar: false,
651              icon: $icon,
652              timeout: 3200,
653              transitionIn: 'fadeInDown',
654              transitionOut: 'fadeOut',
655              transitionInMobile: 'fadeIn',
656              transitionOutMobile: 'fadeOut'
657            };
658            break;
659          case 'bottomCenter':
660            toastOptions = {
661              class: 'iziToast-' + $type || '',
662              title: $title || 'Title',
663              message: $message || 'toast message',
664              animateInside: false,
665              position: 'bottomCenter',
666              progressBar: false,
667              icon: $icon,
668              timeout: 3200,
669              transitionIn: 'fadeInUp',
670              transitionOut: 'fadeOut',
671              transitionInMobile: 'fadeIn',
672              transitionOutMobile: 'fadeOut'
673            };
674            break;
675          default:
676            toastOptions = {
677              class: 'iziToast-' + $type || '',
678              title: $title || 'Title',
679              message: $message || 'toast message',
680              animateInside: false,
681              position: 'topRight',
682              progressBar: false,
683              icon: $icon,
684              timeout: 3200,
685              transitionIn: 'fadeInLeft',
686              transitionOut: 'fadeOut',
687              transitionInMobile: 'fadeIn',
688              transitionOutMobile: 'fadeOut'
689            };
690        }
691    
692        iziToast.show(toastOptions);
693      });
694    },
695
696
697    /**
698     * Team style 1 (Hover effect: social buttons)
699     * @param {string} selector
700    */
701    teamHover: function (selector) {
702
703      selector = '.no-touchevents .team-card-style-1';
704
705      $(selector).on('mouseover', function() {
706        var $socialBtn = $(this).find('.social-btn');
707        function btnAddHover() {
708          $socialBtn.addClass('hover')
709        }
710        setTimeout(btnAddHover, 120);
711      });
712      $(selector).on('mouseout', function() {
713        var $socialBtn = $(this).find('.social-btn');
714        function btnRemoveHover() {
715          $socialBtn.removeClass('hover')
716        }
717        setTimeout(btnRemoveHover, 120);
718      });
719    },
720
721
722    /**
723     * Countdown
724     * @param {string} selector
725    */
726    countDown: function (selector, trigger) {
727
728      selector = '.countdown';
729
730      $(selector).each( function() {
731        var countDown = $(this),
732            dateTime = $(this).data('date-time'),
733            labels = $(this).data('labels');
734  
735        var countDownTrigger = ( trigger ) ? trigger : countDown;
736        countDownTrigger.countdown(dateTime, function(event) {
737          $(this).html(event.strftime(
738            '<div class="countdown-item"><div class="countdown-value">%D</div><div class="countdown-label">' + labels['label-day'] + '</div></div><div class="countdown-item"><div class="countdown-value">%H</div><div class="countdown-label">' + labels['label-hour'] + '</div></div><div class="countdown-item"><div class="countdown-value">%M</div><div class="countdown-label">' + labels['label-minute'] + '</div></div><div class="countdown-item"><div class="countdown-value">%S</div><div class="countdown-label">' + labels['label-second'] + '</div></div>'
739          ));
740        });
741      });
742    },
743
744
745    /**
746     * Animate progress bars on scroll
747     * @param {string} selector
748    */
749    animateProgress: function (selector) {
750
751      selector = '.progress-animate-fill';
752
753      $(selector).on('inview', function(event, isInView) {
754        var progressBar = $(this).find('.progress-bar'),
755            valueNow = progressBar.attr('aria-valuenow');
756        if (isInView) {
757          $(this).addClass('progress-in-view');
758          progressBar.css('width', valueNow + '%');
759        }
760      });
761    },
762
763
764    /**
765     * Animate digits
766     * @param {string} selector
767    */
768    animateDigits: function (selector) {
769
770      selector = '.animated-digits';
771
772      $(selector).one('inview', function(event, isInView) {
773        var digits = $(this).find('.animated-digits-digit > span'),
774            number = $(this).data('number');
775        if (isInView) {
776          digits.animateNumber({
777            number: number
778          }, 1200);
779        }
780      });
781    },
782
783
784    /**
785     * Range slider
786     * @param {string} selector
787    */
788    rangeSlider: function (selector) {
789
790      selector = '.range-slider';
791
792      $(selector).each(function() {
793        var self = $(this);
794        var rangeSlider = self.find('.ui-range-slider');
795        var options = {
796            dataStartMin: parseInt(rangeSlider.parent().data( 'start-min' ), 10),
797            dataStartMax: parseInt(rangeSlider.parent().data( 'start-max' ), 10),
798            dataMin: parseInt(rangeSlider.parent().data( 'min' ), 10),
799            dataMax: parseInt(rangeSlider.parent().data( 'max' ), 10),
800            dataStep: parseInt(rangeSlider.parent().data( 'step' ), 10),
801            valueMin: self.find('.ui-range-value-min span'),
802            valueMax: self.find('.ui-range-value-max span'),
803            valueMinInput: self.find('.ui-range-value-min input'),
804            valueMaxInput: self.find('.ui-range-value-max input')
805        }
806        
807        noUiSlider.create(rangeSlider[0], {
808          start: [ options.dataStartMin, options.dataStartMax ],
809          connect: true,
810          step: options.dataStep,
811          range: {
812            'min': options.dataMin,
813            'max': options.dataMax
814          }
815        });
816    
817        rangeSlider[0].noUiSlider.on('update', function(values, handle) {
818          var value = values[handle];
819          if ( handle ) {
820            options.valueMax.text(Math.round(value));
821            options.valueMaxInput.val(Math.round(value));
822          } else {
823            options.valueMin.text(Math.round(value));
824            options.valueMinInput.val(Math.round(value));
825          }
826        });
827      });
828    },
829
830
831    /**
832     * Parallax scrolling
833    */
834    parallax: function () {
835      ParallaxScroll.init();
836    },
837
838
839    /**
840     * Pricing plans switch
841     * @param {string} selector
842    */
843    pricingSwitch: function (selector) {
844
845      selector = '.pricing-tabs';
846
847      $(selector + '> li > a').on('click', function(e) {
848        var self = $(this),
849            period = self.data('period'),
850            mainParent = self.parents('.pricing-plans');
851        mainParent.find(selector + '> li > a').removeClass('active');
852        self.addClass('active');
853  
854        mainParent.find('.pricing-card-price').removeClass('active');
855        mainParent.find('.' + period).addClass('active');
856        e.preventDefault;
857      });
858    },
859
860
861    /**
862     * Google maps API
863     * @param {string} selector
864    */
865    googleMap: function (selector) {
866
867      selector = '.google-map';
868
869      if($(selector).length) {
870        $(selector).each(function() {
871          var mapHeight = $(this).data('height'),
872              address = $(this).data('address'),
873              zoom = $(this).data('zoom'),
874              controls = $(this).data('disable-controls'),
875              scrollwheel = $(this).data('scrollwheel'),
876              marker = $(this).data('marker'),
877              markerTitle = $(this).data('marker-title'),
878              styles = $(this).data('styles');
879          $(this).height(mapHeight);
880          $(this).gmap3({
881            address: address,
882            zoom: zoom,
883            disableDefaultUI: controls,
884            scrollwheel: scrollwheel,
885            styles: styles
886          }).marker({
887            address: address,
888            icon: marker
889          }).infowindow({
890            content: markerTitle
891          }).then(function (infowindow) {
892            var map = this.get(0);
893            var marker = this.get(1);
894            marker.addListener('mouseover', function() {
895              infowindow.open(map, marker);
896            });
897            marker.addListener('mouseout', function() {
898              infowindow.close(map, marker);
899            });
900          });
901        });
902      }
903    }
904  }
905
906
907  /**
908   * Init theme core on document.ready
909  */
910  $(function() {
911    theme.init();
912  });
913
914})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.