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.