PageSourceSearch

https://wwf.ca/wp-content/themes/wwf/assets/js/custom.js?ver=1790257321

js wwf.ca collected 2026-09-24 15:22:13 UTC 32,897 bytes, 968 lines download raw bytes

1wWidth = jQuery(window).width();
2window.FontAwesomeConfig = {
3    searchPseudoElements: true
4}
5
6jQuery(function($){
7
8    console.log("custom.js")
9
10new PureCounter();
11
12    
13    // DELETE GOOGLE ADS
14    /*
15    $(document).click(function() {
16        console.log("click2")
17        if ($("#google_esf").length) $("#google_esf").remove()
18        if ($(".adsbygoogle").length) $(".adsbygoogle").remove()
19    });
20    */
21
22
23
24  jQuery('.wwf-text-box-tools.mod-fr .printfriendly a').html('Imprimer');
25  jQuery(document).on('click', '.mobile-menu-toggle', function (e) {
26     e.preventDefault();
27     jQuery(this).toggleClass('is-active');
28     jQuery('body').toggleClass('mobile-menu-show');
29     jQuery('html').toggleClass('mobile-menu-show');
30  });
31
32  jQuery('.accordion > dt:first-child').next().addClass('is-active').slideDown();
33  var allPanels = jQuery('.accordion > dd').hide();
34    
35  jQuery('.accordion > dt > a').click(function() {
36    jQuery('.accordion a').removeClass('is-active');
37    jQuery(this).toggleClass('is-active');
38    allPanels.slideUp();
39    jQuery(this).parent().next().slideDown();
40    return false;
41  });
42  jQuery('.accordion a.is-active').click(function() {
43    jQuery(this).removeClass('is-active');
44    jQuery(this).parent().next().slideDown();
45    return false;
46  });
47
48  jQuery(document).on('click', '.mobile-submenu-toggle', function (e) {
49     e.preventDefault();
50     jQuery(this).toggleClass('is-active');
51     jQuery('body').toggleClass('mobile-submenu-show');
52     jQuery('html').toggleClass('mobile-submenu-show');
53  });
54  jQuery(document).on('click', '.btn-toggle-search', function (e) {
55     e.preventDefault();
56     jQuery(this).toggleClass('is-active');
57     jQuery('.site-header-top-search').toggleClass('is-active');
58  }); 
59  jQuery(document).on('click', '.btn-toggle-info', function (e) {
60     e.preventDefault();
61     jQuery(this).parents('.wwf-facts-section-main-content-list--item').toggleClass('is-active');
62  });   
63  jQuery('.menu-item-has-children').append('<span class="btn-toggle-submenu"><i class="fa fa-angle-down"></i></span>');
64  jQuery('.menu-item-has-children > a').append('<span class="submenu-arrow"></span>');
65  jQuery(document).on('click', '.menu-item-has-children .btn-toggle-submenu', function (e) {
66     jQuery(this).toggleClass('is-active');
67     jQuery(this).parent('.menu-item-has-children').toggleClass('is-active');
68  });      
69
70    jQuery(".btn-scroll-top").on("click", function(e) {
71      jQuery("html, body").animate({
72        scrollTop: jQuery("body").offset().top
73      }, 1000);
74    });  
75    jQuery(document).on('click', '.btn-toogle-location', function (e) {
76       e.preventDefault();
77       jQuery(this).toggleClass('is-active');
78       jQuery('.wwf-location-holder').toggleClass('is-active');
79    });
80    jQuery(document).on('click', '.js-share-mobile', function (e) {
81       e.preventDefault();
82       jQuery('.type-jobs__aside .share-section').fadeIn();
83    });
84    jQuery(document).on('click', '.js-close-share', function (e) {
85       e.preventDefault();
86       jQuery('.type-jobs__aside .share-section').fadeOut();
87    });
88    jQuery(document).on('click', '.js-show-modal', function (e) {
89       e.preventDefault();
90       var id = jQuery(this).attr('href').substr(1);
91       jQuery('#'+id).fadeToggle();
92    });
93    tabedSlider();
94    circleBar();
95
96    if(jQuery('.wwf-media-release-section').length) {
97        var $releaseContainer = jQuery('.js-infinite-list'),
98            $viewMoreButton = jQuery('.js-load-release');
99        if ($viewMoreButton.length) {
100            $releaseContainer.infiniteScroll({
101                // options
102                path: '.nav-previous a',
103                append: '.hentry',
104                history: false,
105                loadOnScroll: false,
106                button: '.js-load-release',
107            });
108            $releaseContainer.on( 'append.infiniteScroll', function( event, response, path, items ) {
109                $releaseContainer.find('h3[data-mh="title"]').matchHeight();
110            });
111        }
112    }
113
114    if(jQuery('.news-template-blocks').length) {
115        var $releaseContainer = jQuery('.js-infinite-list'),
116            $viewMoreButton = jQuery('.js-load-release');
117        if ($viewMoreButton.length) {
118            $releaseContainer.infiniteScroll({
119                // options
120                path: '.nav-previous a',
121                append: '.list-item',
122                history: false,
123                loadOnScroll: false,
124                button: '.js-load-release',
125            });
126            $releaseContainer.on( 'append.infiniteScroll', function( event, response, path, items ) {
127                $releaseContainer.find('h3[data-mh="title"]').matchHeight();
128            });
129        }
130    }
131
132    if(jQuery('.report-template-blocks').length) {
133        var $releaseContainer = jQuery('.js-infinite-list'),
134            $viewMoreButton = jQuery('.js-load-release');
135        if ($viewMoreButton.length) {
136            $releaseContainer.infiniteScroll({
137                // options
138                path: '.nav-previous a',
139                append: '.list-item',
140                history: false,
141                loadOnScroll: false,
142                button: '.js-load-release',
143            });
144            $releaseContainer.on( 'append.infiniteScroll', function( event, response, path, items ) {
145                $releaseContainer.find('h3[data-mh="title"]').matchHeight();
146            });            
147        }
148    }
149
150    if(jQuery('.wwf-media-release-section--filters')) {
151        jQuery(document).on('click', '.js-show-filter', function (e) {
152            jQuery('.js-mreleas-filter').toggleClass('active');
153        });
154        jQuery(document).on('click', '.js-close-filter', function (e) {
155            jQuery('.js-mreleas-filter').toggleClass('active');
156        });
157
158            var allRadios = jQuery('.filter-list input[type=radio]');
159            var radioChecked;
160
161            var setCurrent =
162                function(e) {
163                    var obj = e.target;
164
165                    radioChecked = $(obj).attr('checked');
166                }
167
168            var setCheck =
169                function(e) {
170
171                    if (e.type == 'keypress' && e.charCode != 32) {
172                        return false;
173                    }
174
175                    var obj = e.target;
176
177                    if (radioChecked) {
178                        $(obj).attr('checked', false);
179                    } else {
180                        $(obj).attr('checked', true);
181                    }
182                }
183
184            $.each(allRadios, function(i, val) {
185                var label = $('label[for=' + $(this).attr("id") + ']');
186
187                $(this).bind('mousedown keydown', function(e) {
188                    setCurrent(e);
189                });
190
191                label.bind('mousedown keydown', function(e) {
192                    e.target = $('#' + $(this).attr("for"));
193                    setCurrent(e);
194                });
195
196                $(this).bind('click', function(e) {
197                    setCheck(e);
198                });
199
200            });
201
202    }
203
204    jQuery('.currency-rate').slick({
205      slidesToShow: 5,
206      centerMode: true,
207      centerPadding: '0px',
208      prevArrow:"<button type='button' class='slick-prev pull-left'><i class='fa fa-angle-left' aria-hidden='true'></i></button>",
209      nextArrow:"<button type='button' class='slick-next pull-right'><i class='fa fa-angle-right' aria-hidden='true'></i></button>",
210      responsive: [
211        {
212          breakpoint: 768,
213          settings: {
214            //arrows: false,
215            centerMode: true,
216            slidesToShow: 4
217          }
218        },
219        {
220          breakpoint: 600,
221          settings: {
222            //arrows: false,
223            centerMode: true,
224            slidesToShow: 3
225          }
226        },
227        {
228          breakpoint: 480,
229          settings: {
230            //arrows: false,
231            centerMode: true,
232            slidesToShow: 2
233          }
234        }
235      ]
236  });
237    mobileSlider();
238
239    jQuery(document).on('click', '.js-toggle-more-experts', function(e){
240       var id = jQuery(this).data('id');
241        jQuery(this).fadeOut();
242        jQuery('#'+id).slideDown();
243    });
244    if(jQuery('.wwf-media-release-section--filters')) {
245        jQuery(document).on('click', '.js-mobile-search-toggle', function (e) {
246            jQuery('.js-search-subnav').toggleClass('active');
247        })
248    }
249
250    if(jQuery('.js-hp-fs-section-list').length) {
251        jQuery('.js-hp-fs-section-list').owlCarousel({
252            margin: 0,
253            nav: true,
254            responsive: {
255                0: {
256                    items: 1,
257                    stagePadding: 20
258                },
259                990: {
260                    loop: true,
261                    items: 2,
262                    slideBy: 2
263                }
264            }
265        })
266    }
267    if(jQuery('.js-show-success-story').length){
268        jQuery('.js-show-success-story button').on('click', function(){
269            jQuery('.js-show-success-story').fadeOut();
270            jQuery('.wwf-content-section-success .list-item').removeClass('d-none');
271        })
272    }
273    if(jQuery('a[href^="#"]').length) {
274        var headerHeight = jQuery('.site-header').outerHeight(),
275            wpadminbarHeight = 0;
276        if(jQuery('#wpadminbar').length) {
277            wpadminbarHeight = jQuery('#wpadminbar').outerHeight();
278        }
279        jQuery('a[href^="#"]:not(.js-show-modal):not(#submit):not(.tab)').click(function (e) {
280            e.preventDefault();
281            var id = jQuery(this).attr('href').substr(1),
282                position = jQuery('#'+id).offset().top;
283            jQuery("html, body").animate({
284                scrollTop: position - headerHeight - wpadminbarHeight
285            }, 1000);
286        });
287    }
288
289    if($('.js-close-an-bar').length){
290        $(document).on('click', '.js-close-an-bar',function(e){
291            $('.an-bar').slideUp();
292        })
293    }
294
295    if(jQuery('.map-box-img').length) {
296        jQuery('.map-box-img a').magnificPopup({
297            type: 'image',
298            image: {
299                cursor: 'mfp-zoom-out-cur', // Class that adds zoom cursor, will be added to body. Set to null to disable zoom out cursor.
300                titleSrc: 'title', // Attribute of the target element that contains caption for the slide.
301            }
302        });
303    }
304
305    if(jQuery('.wwf-sub-nav').length) {
306        var subHeight = jQuery('.wwf-sub-nav').outerHeight();
307        jQuery('.wwf-sub-nav').height(subHeight);
308
309        jQuery(document).scroll(function () {
310            var scroll = jQuery(this).scrollTop(),
311                headerHeight = jQuery('.site-header').outerHeight(),
312                topDist = jQuery('.wwf-sub-nav').offset(),
313                wpadminbarHeight = 0;
314            if(jQuery('#wpadminbar').length){
315                wpadminbarHeight = jQuery('#wpadminbar').outerHeight();
316            }
317            if (scroll + headerHeight + wpadminbarHeight >
317= topDist.top) {
318                jQuery('.wwf-sub-nav .fixed-wrap').css({"position": "fixed", "top": headerHeight + wpadminbarHeight});
319            } else {
320                jQuery('.wwf-sub-nav .fixed-wrap').css({"position": "relative", "top": "auto"});
321            }
322        });
323    }
324
325    if(jQuery('#bpfsearch').length){
326        if(jQuery('#bpfsearch').val() != ''){
327            jQuery('.reset-search').fadeIn();
328        }
329
330        jQuery(document).on('click','.reset-search', function(e){
331            e.preventDefault();
332            var url = jQuery('.wwf-media-release-section--filters').attr('action');
333            window.location.assign(url+'?search=');
334        });
335
336
337    }
338});
339jQuery(window).load(function() {
340    jQuery('.board-directors-section-list').isotope({
341        itemSelector: '.board-directors-section-list-item',
342        percentPosition: true,
343        masonry: {
344            columnWidth: '.grid-sizer'
345        }
346    });
347    if(jQuery('.post-type-archive-tw_project').length) {
348        if (window.location.href.indexOf("search=") > -1) {
349            var headerHeight = jQuery('.site-header').outerHeight(),
350                wpadminbarHeight = 0,
351                position = jQuery('.report-template-blocks').offset(),
352                subNavHeight = jQuery('.wwf-sub-nav .fixed-wrap').outerHeight();
353            if(jQuery('#wpadminbar').length){
354                wpadminbarHeight = jQuery('#wpadminbar').outerHeight();
355            }
356            jQuery("html, body").animate({
357                scrollTop: position.top - headerHeight - wpadminbarHeight - subNavHeight
358            }, 1000);
359        }
360    }
361    if(jQuery('.expert-section').length) {
362        if (window.location.href.indexOf("#") > -1) {
363            var headerHeight = jQuery('.site-header').outerHeight(),
364                wpadminbarHeight = 0,
365                hash = window.location.hash.substr(1),
366                position = jQuery('#'+hash).offset();
367            if(jQuery('#wpadminbar').length){
368                wpadminbarHeight = jQuery('#wpadminbar').outerHeight();
369            }
370            jQuery("html, body").animate({
371                scrollTop: position.top - headerHeight - wpadminbarHeight + 50
372            }, 1000);
373        }
374    }
375});
376jQuery(document).scroll(function() {
377    checkOffset();
378});
379
380function mobileSlider(){
381    jQuery('.wyd-section .wyd-category-list, .wwf-related-section-list').slick({
382        slidesToShow: 1,
383        slidesToScroll: 1,
384        autoplay: false,
385        autoplaySpeed: 2000,
386        responsive: [
387            {
388                breakpoint: 9999,
389                settings: "unslick"
390            },
391            {
392                breakpoint: 767,
393                settings: {
394                    slidesToShow: 1,
395                    slidesToScroll: 1,
396                    dots: true,
397                    arrows: false,
398                    infinite: false,
399                    centerMode: true
400                }
401            }
402        ]
403    });
404    jQuery('.expert-list-hover').slick({
405        slidesToShow: 1,
406        slidesToScroll: 1,
407        autoplay: false,
408        autoplaySpeed: 2000,
409        responsive: [
410            {
411                breakpoint: 9999,
412                settings: "unslick"
413            },
414            {
415                breakpoint: 767,
416                settings: {
417                    slidesToShow: 1,
418                    slidesToScroll: 1,
419                    dots: true,
420                    arrows: false,
421                    infinite: false,
422                    centerMode: true
423                }
424            }
425        ]
426    });
427
428    jQuery('.biopolis-project-gallery').magnificPopup({
429        delegate: 'a',
430        type: 'image',
431        tLoading: 'Loading image #%curr%...',
432        mainClass: 'mfp-img-mobile',
433        gallery: {
434            enabled: true,
435            navigateByImgClick: true,
436            preload: [0,1] // Will preload 0 - before current, and 1 after the current image
437        },
438        image: {
439            tError: '<a href="%url%">The image #%curr%</a> could not be loaded.',
440            titleSrc: function(item) {
441                return item.el.attr('title') + '<small>'+item.el.data('caption')+'</small>';
442            }
443        }
444    });
445
446    jQuery('.page-id-36 .wwf-related-section-list, .page-id-31195 .wwf-related-section-list, .expert-list-hover.mod-biopolist-projects').slick('unslick');
447}
448
449function tabedSlider() {
450    jQuery('.wwf-tabed-section').each(function () {
451        var id = jQuery(this).attr('id'),
452            $image = ('.tabs-images[data-id="' + id + '"]'),
453            $caption = ('.caption-list[data-id="' + id + '"]'),
454            $nav = ('.nav-list[data-id="' + id + '"]');
455
456        jQuery($nav).on("init", function() {
457            slideWidth($nav);
458        });
459
460        jQuery($nav).on('setPosition', function(){
461            slideWidth($nav);
462        });
463
464        jQuery($image).slick({
465            slidesToShow: 1,
466            slidesToScroll: 1,
467            arrows: false,
468            fade: true,
469            draggable: false,
470            swipe: false,
471
472           
473        });
474        jQuery($caption).slick({
475            slidesToShow: 1,
476            slidesToScroll: 1,
477            arrows: false,
478            fade: true,
479            draggable: false,
480            swipe: false,
481
482            
483        });
484        jQuery($nav).slick({
485            slidesToShow: 4,
486            slidesToScroll: 1,
487            
488            dots: false,
489            arrows: true,
490            focusOnSelect: false,
491            variableWidth: true,
492            infinite: false,
493            nextArrow: '<div class="px-4 nextArrow"><i class="text-white h5 fa fa-angle-right" aria-hidden="true"></i></div>',
494            prevArrow: '<div class="px-4 prevArrow"><i class="text-white h5 fa fa-angle-left" aria-hidden="true"></i></div>',
495            /*
496            customPaging : function(slider, i) {
497                var title = jQuery(slider.$slides[i]).html();
498                return '<a class="pager__item"> '+title+' </a>';
499            }, */           
500            responsive: [
501                {
502                    breakpoint: 9999,
503                    slidesToShow: 10,
504                },
505                {
506                    breakpoint: 1200,
507                    settings: {
508                        slidesToShow: 3,
509                    }
510                },
511                {
512                    breakpoint: 991,
513                    settings: {
514                        slidesToShow: 2,
515                    }
516                },
517                {
518                    breakpoint: 560,
519                    settings: {
520                        slidesToShow: 1,
521                    }
522                }
523            ]
524        });
525
526        jQuery($nav).find('.slick-slide').each(function(){
527            jQuery(this).width(jQuery(this).outerWidth());
528        }).on('click', function (event) {
529            event.preventDefault();
530            jQuery('.slick-slide').removeClass('slick-current');
531            jQuery(this).toggleClass('slick-current');
532            jQuery($image).slick('slickGoTo', jQuery(this).data('slickIndex'));
533            jQuery($caption).slick('slickGoTo', jQuery(this).data('slickIndex'));
534            slideWidth($nav);
535        });
536        jQuery($nav).find(".nextArrow").on("click", function(e){
537            e.preventDefault();
538            jQuery($nav).find('.slick-slide').removeClass('slick-current');
539         });
540        jQuery($nav).find(".prevArrow").on("click", function(e){
541            e.preventDefault();
542            jQuery($nav).find('.slick-slide').removeClass('slick-current');
543         });
544    });
545}
546
547function slideWidth(nav){
548    setTimeout(function(){
549        var width = 0;
550        jQuery(nav).find('a').each(function() {
551            width += jQuery(this).outerWidth( true );
552        });
553        jQuery(nav).find('.slick-track').css('width', width + 1);
554    },1000);
555}
556
557/** filters + search **/
558// external js: isotope.pkgd.js
559
560// store filter for each group
561var buttonFilters = {};
562var buttonFilter;
563// quick search regex
564var qsRegex;
565
566// init Isotope
567var $grid = jQuery('.grid').isotope({
568  itemSelector: '.type-species',
569  layoutMode: 'fitRows',
570
571  filter: function() {
572    var $this = jQuery(this);
573    var searchResult = qsRegex ? $this.text().match( qsRegex ) : true;
574    var buttonResult = buttonFilter ? $this.is( buttonFilter ) : true;
575    return searchResult && buttonResult;
576  },
577  animationOptions: {
578      duration: 750,
579      easing: 'linear',
580      queue: false
581  }  
582});
583
584jQuery('.filters').on( 'click', '.button', function() {
585  var $this = jQuery(this);
586  // get group key
587  var $buttonGroup = $this.parents('.button-group');
588  var filterGroup = $buttonGroup.attr('data-filter-group');
589  // set filter for group
590  buttonFilters[ filterGroup ] = $this.attr('data-filter');
591  // combine filters
592  buttonFilter = concatValues( buttonFilters );
593  // Isotope arrange
594  $grid.isotope();
595
596  jQuery('.type-species').removeClass('d-none');
597  jQuery('.js-view-all-species').removeClass('d-block').addClass('d-none');
598});
599jQuery('.js-view-all-species').on('click', function(e){
600    e.preventDefault();
601    jQuery(this).removeClass('d-block').addClass('d-none');
602    jQuery('.type-species').removeClass('d-none');
603    $grid.isotope();
604})
605
606// use value of search field to filter
607var $quicksearch = jQuery('.quicksearch').keyup( debounce( function() {
608  qsRegex = new RegExp( $quicksearch.val(), 'gi' );
609  $grid.isotope();
610}) );
611
612// change is-checked class on buttons
613jQuery('.button-group').each( function( i, buttonGroup ) {
614  var $buttonGroup = jQuery( buttonGroup );
615  $buttonGroup.on( 'click', 'button', function() {
616    $buttonGroup.find('.is-checked').removeClass('is-checked');
617    jQuery( this ).addClass('is-checked');
618  });
619});
620  
621// flatten object by concatting values
622function concatValues( obj ) {
623  var value = '';
624  for ( var prop in obj ) {
625    value += obj[ prop ];
626  }
627  return value;
628}
629
630// debounce so filtering doesn't happen every millisecond
631function debounce( fn, threshold ) {
632  var timeout;
633  threshold = threshold || 100;
634  return function debounced() {
635    clearTimeout( timeout );
636    var args = arguments;
637    var _this = this;
638    function delayed() {
639      fn.apply( _this, args );
640    }
641    timeout = setTimeout( delayed, threshold );
642  };
643}
644
645function circleBar(){
646    jQuery('.circle-bar').each(function(){
647        var barContainer = this,
648            barValue = jQuery(this).data('value');
649
650    var bar = new ProgressBar.Circle(barContainer, {
651        color: '#005A70',
652        // This has to be the same size as the maximum width to
653        // prevent clipping
654        strokeWidth: 7,
655        trailWidth: 7,
656        easing: 'easeInOut',
657        duration: 1400,
658        text: {
659            autoStyleContainer: false
660        },
661        from: { color: '#005A70', width: 7 },
662        to: { color: '#005A70', width: 7 },
663        // Set default step function for all animate calls
664        step: function(state, circle) {
665            circle.path.setAttribute('stroke', state.color);
666            circle.path.setAttribute('stroke-width', state.width);
667
668            var value = Math.round(circle.value() * 100);
669            if (value === 0) {
670                circle.setText('');
671            } else {
672                circle.setText(value+'<span>%</span>');
673            }
674
675        }
676    });
677    bar.path.style.strokeLinecap = 'round';
678
679        jQuery(this).waypoint(function(){
680            bar.animate(barValue);  // Number from 0.0 to 1.0
681        }, {offset: "70%"})
682    });
683}
684/*
685function checkOffset() {
686    if(jQuery('.js-btn-scroll-top').offset().top + jQuery('.js-btn-scroll-top').height()
687        >= jQuery('.js-sc-section').offset().top + 30)
688        jQuery('.js-btn-scroll-top').css({'position': 'absolute', 'top': '-30px', 'bottom': 'auto'});
689    if(jQuery(document).scrollTop() + window.innerHeight < jQuery('.js-sc-section').offset().top)
690        jQuery('.js-btn-scroll-top').css({'position': 'fixed', 'top': 'auto', 'bottom': '30px'}); // restore when you scroll up
691}
692*/
693// Monarch Fix
694
695function checkOffset() {
696    var $btn = jQuery('.js-btn-scroll-top');
697    var $section = jQuery('.js-sc-section');
698
699    // Only proceed if both elements exist
700    if ($btn.length && $section.length) {
701        if ($btn.offset().top + $btn.height() >= $section.offset().top + 30) {
702            $btn.css({'position': 'absolute', 'top': '-30px', 'bottom': 'auto'});
703        }
704        if (jQuery(document).scrollTop() + window.innerHeight < $section.offset().top) {
705            $btn.css({'position': 'fixed', 'top': 'auto', 'bottom': '30px'}); // restore when you scroll up
706        }
707    }
708}
709
710// Monarch Fix Ends
711jQuery(document).on('change', '.top-donate-form #donate_monthly', function(e){
712    jQuery('.top-donate-form .donate_monthly_values').addClass('is-active');
713    jQuery('.top-donate-form .donate_once_values').removeClass('is-active');  
714});
715jQuery(document).on('click', '.top-donate-form #donate_once', function(e){
716    jQuery('.top-donate-form .donate_monthly_values').removeClass('is-active');
717    jQuery('.top-donate-form .donate_once_values').addClass('is-active');  
718});
719
720jQuery(document).on('change', '.bottom-donate-form #donate_monthly_bottom', function(e){
721    jQuery('.bottom-donate-form .donate_monthly_values').addClass('is-active');
722    jQuery('.bottom-donate-form .donate_once_values').removeClass('is-active');  
723});
724jQuery(document).on('click', '.bottom-donate-form #donate_once_bottom', function(e){
725    jQuery('.bottom-donate-form .donate_monthly_values').removeClass('is-active');
726    jQuery('.bottom-donate-form .donate_once_values').addClass('is-active');  
727});
728
729jQuery('.donate-form.top-donate-form input').change(function(){
730
731    var lang = jQuery('.lang').val();
732    var amount = jQuery(this).val();
733    if ( amount != '' ) {
734        amount = "/?amt="+amount;
735    }
736    var frq = jQuery('.top-donate-form .select-times input:checked').data('frq');
737
738    //var url = "https://secure.wwf.ca/site/Donation2?df_id="+form_id+"&mfc_pref=T&"+form_id+".donation=form1&s_locale="+lang+"&set.DonationLevel="+c+""
739    var url = "https://secure1.wwf.ca/Donation/"+frq+"-"+lang+amount;
740
741
742    jQuery('.top-donate-form .wwf-donate-btn').attr("href", url);
743
744    console.log(form_id, c, url, lang );
745});
746
747jQuery('.donate-form.bottom-donate-form input').change(function(){
748
749    var lang = jQuery('.lang-bottom').val();
750    var amount = jQuery(this).val();
751    if ( amount != '' ) {
752        amount = "/?amt="+amount;
753    }
754    var frq = jQuery('.bottom-donate-form .select-times input:checked').data('frq');
755
756    //var url = "https://secure.wwf.ca/site/Donation2?df_id="+form_id+"&mfc_pref=T&"+form_id+".donation=form1&s_locale="+lang+"&set.DonationLevel="+c+""
757    var url = "https://secure1.wwf.ca/Donation/"+frq+"-"+lang+amount;
758
759    jQuery('.bottom-donate-form .wwf-donate-btn').attr("href", url);
760
761    console.log(form_id, c, url,lang );
762});
763
764// Homepage Carousel - Slick Slider (Loop April 2021)
765jQuery(document).ready(function() {
766    
767    console.log('initialize slick');
768    
769    var $slickElement = jQuery('.home .hero-carousel');
770    var $nextArrow = jQuery('.hero-carousel-btns--navarrow.next');
771    var $prevArrow = jQuery('.hero-carousel-btns--navarrow.prev');
772    
773    $slickElement.slick({
774        infinite: true,
775        slidesToShow: 1,
776        slidesToScroll: 1,
777        dots: false,
778        arrows: false,
779        adaptiveHeight: true,
780        autoplay: true,
781        autoplaySpeed: 6000,
782    });
783    
784    $nextArrow.on('click', function(e) {
785        $slickElement.slick('slickNext');
786        e.preventDefault();
787    });
788        
789    $prevArrow.on('click', function(e) {
790       $slickElement.slick('slickPrev');
791        e.preventDefault();
792    });
793    
794});
795
796
797
798// Homepage Newsletter Popup Close - Loop July 2021 - START
799
800// If element is on screen function
801function isOnScreen(elem) {
802    // if the element doesn't exist, abort
803    if (elem.length == 0) {
804        return;
805    }
806    var $window = jQuery(window)
807    var viewport_top = $window.scrollTop()
808    var viewport_height = $window.height()
809    var viewport_bottom = viewport_top + viewport_height
810    var $elem = jQuery(elem)
811    var top = $elem.offset().top
812    var height = $elem.height()
813    var bottom = top + height
814
815    return (top >= viewport_top && top < viewport_bottom) ||
816        (bottom > viewport_top && bottom <= viewport_bottom) ||
817        (height > viewport_height && top <= viewport_top && bottom >= viewport_bottom)
818}
819
820// Hide Popup if Footer in Viewport
821var $newsletter = jQuery('.sc-section.js-sc-section, footer');
822window.addEventListener('scroll', function (e) {
823    $newsletter.each(function () {
824        if (isOnScreen(jQuery(this))) {
825            jQuery('.popup-newsletter-div').hide();
826            jQuery('.regcad.withphoto').removeClass('animate');
827        }  else {
828            if( jQuery(window).scrollTop() > 200 ) {
829                jQuery('.popup-newsletter-div:not(.initial)').slideDown();
830            } 
831            if( jQuery(window).scrollTop() > 900 ) {
832                jQuery('.regcad.withphoto:not(.initial)').addClass('animate');
833            }  
834        }
835    });
836});
837
838// Homepage Newsletter Popup - NEW July 2021
839jQuery(document).ready(function(){
840    if ($newsletter.is(':visible')) {
841        jQuery('.popup-newsletter-div').hide();
842    } else {
843         jQuery('.popup-newsletter-div').show();
844    }
845});
846
847// Homepage Newsletter Popup Close - NEW July 2021
848jQuery('.popup-newsletter--close').on('click', function() {
849    jQuery('.popup-newsletter-div').addClass('initial');
850    jQuery('.popup-newsletter-div').slideUp();
851});
852
853// Homepage Newsletter Popup Regenerate Canada
854jQuery(document).ready(function(){
855    if ($newsletter.is(':visible')) {
856        jQuery('.regcad.withphoto').removeClass('animate');
857    } else {
858         jQuery('.regcad.withphoto').addClass('animate');
859    }
860});
861
862// Homepage Newsletter Popup Regenerate Canada
863jQuery('.regcad-newsletter--close svg').on('click', function() {
864    jQuery('.regcad.withphoto').addClass('initial');
865    jQuery('.regcad.withphoto').removeClass('animate');
866});
867
868
869// New Search
870jQuery(document).ready(function(){
871	var $ = jQuery;
872	$(".site-header-search").on( 'click', function(evt) {
873		console.log('open');
874	   $(".site-header-search-modal-overlay").addClass('open');
875   });
876   $(".site-header-search-modal-close").on( 'click', function(evt) {
877	   $(".site-header-search-modal-overlay").removeClass('open');
878   });
879});
880
881
882// New mobile menu
883jQuery(document).ready(function(){
884	jQuery('.site-header-mobile-menu .menu-item-has-children > a').append('<span class="submenu-arrow"></span>');
885	
886	jQuery('.site-header-mobile-menu .hamburger').on('click', function() {
887		jQuery(this).parent().parent().toggleClass('open');
888		if ( jQuery(this).parent().parent().hasClass('open') ) {
889			jQuery(this).parent().data('level','0');
890			jQuery('.site-header-mobile-menu .menu-item-has-children .sub-menu.active').removeClass('active');
891			jQuery('.site-header-mobile-menu .mobile-menu-wrapper').removeClass('submenu-open');
892		}
893		jQuery("#mobile-menu-back").parent().removeClass('show');
894	});
895	
896	// Open submenu on arrow click
897	jQuery('.site-header-mobile-menu .menu-item-has-children .submenu-arrow').each(function( index ) {
898		jQuery(this).on('click', function(e) {
899			e.preventDefault();
900			const parentLi = this.closest('li');
901			const subMenu = parentLi.querySelector('.sub-menu');
902			const wrapper = document.querySelector('.site-header-mobile-menu .mobile-menu-wrapper');
903			if (subMenu) {
904				subMenu.classList.add('active');
905				wrapper.classList.add('submenu-open');
906			}
907			jQuery("#mobile-menu-back").parent().addClass('show');	
908			var level = parseInt(jQuery('.site-header-mobile-menu').data('level')) - 1;
909			jQuery('.site-header-mobile-menu').data('level',level);
910		});
911	});
912	
913	jQuery('#mobile-menu-back').on('click', function(evt) {
914		evt.stopPropagation();
915		
916		const $subMenu = jQuery('.site-header-mobile-menu .menu-item-has-children .sub-menu.active');
917		const wrapper = document.querySelector('.site-header-mobile-menu .mobile-menu-wrapper');
918		if ( $subMenu.length > 0 ) {
919			$subMenu.removeClass('active');
920			wrapper.classList.remove('submenu-open');
921		}
922		var level = parseInt(jQuery('.site-header-mobile-menu').data('level')) - 1;
923		jQuery('.site-header-mobile-menu').data('level',level);
924		if ( level > 0) {
925			jQuery("#mobile-menu-back").parent().addClass('show');	
926		} else {
927			jQuery("#mobile-menu-back").parent().removeClass('show');	
928		}
929		
930	});
931	
932	/*
933	jQuery('.site-header-mobile-menu .hamburger').on('click', function() {
934		jQuery(this).parent().toggleClass('open');
935		//if ( jQuery(this).parent().hasClass('open') ) {
936			jQuery(this).parent().data('level','0');
937			jQuery(this).closest('.site-header-mobile-menu').find('.mobile-menu-wrapper').css('left', '0');
938		//}
939		//jQuery("#mobile-menu-back").removeClass('show');
940		jQuery("#mobile-menu-back").parent().removeClass('show');
941	});
942	jQuery('.site-header-mobile-menu .submenu-arrow').on('click', function(evt) {
943		evt.stopPropagation();
944		evt.preventDefault();
945		var level = parseInt(jQuery(this).closest('.site-header-mobile-menu').data('level')) + 1;
946		jQuery('.site-header-mobile-menu').data('level',level);
947		jQuery(this).closest('.mobile-menu-wrapper').css('left', -1 * level * 100 + '%');
948		if ( level > 0) {
949			jQuery("#mobile-menu-back").parent().addClass('show');	
950		} else {
951			jQuery("#mobile-menu-back").parent().removeClass('show');	
952		}
953		
954	});
955	jQuery('#mobile-menu-back').on('click', function(evt) {
956		evt.stopPropagation();
957		var level = parseInt(jQuery('.site-header-mobile-menu').data('level')) - 1;
958		jQuery('.site-header-mobile-menu .mobile-menu-wrapper').css('left', -1 * level * 100 + '%');
959		jQuery('.site-header-mobile-menu').data('level',level);
960		if ( level > 0) {
961			jQuery("#mobile-menu-back").parent().addClass('show');	
962		} else {
963			jQuery("#mobile-menu-back").parent().removeClass('show');	
964		}
965		
966	});
967	*/
968});

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.