PageSourceSearch

https://www.waterforpeople.org/wp-content/themes/bb-theme-child/assets/js/wfp.js?ver=1790273121

js waterforpeople.org collected 2026-09-24 18:16:06 UTC 8,278 bytes, 237 lines download raw bytes

1(function ($) {
2
3    function thisifyHeaders() {
4
5        var headers = $('.heading-title, .title'),
6            variations = ['THIS', 'This'];
7
8        headers.each(function () {
9            var html = $(this).html();
10            for (var i in variations) {
11                var phrase = variations[i];
12                html = html.replace(phrase, 'THIS');
13            }
14            html = html.replace('THIS', '<span class="thisify">THIS</span>');
15            $(this).html(html);
16        });
17    }
18
19    var menuButton = $('.pp-advanced-menu-mobile-toggle').parent(),
20        donateButton = $('.fl-node-5d38e798065ae .uabb-button');
21
22    function toggleDonateButton() {
23        if ($(this).find('.pp-active').length) {
24            donateButton.stop().animate({opacity: 0}, 500);
25        } else {
26            donateButton.stop().animate({opacity: 1}, 500);
27        }
28    }
29
30    var button = $('.mobile-controls .pp-advanced-menu'),
31        donate = $('.mobile-controls .menu-donate'),
32        mobileMenu = $('#mobile-menu'),
33        toggles = mobileMenu.find('a.toggle');
34
35    function toggleMobileMenu() {
36        var pressed = button.attr('aria-pressed');
37        if ('false' == pressed) {
38            mobileMenu.stop().slideDown();
39            button.attr('aria-pressed', 'true');
40/*            donate.stop().animate({opacity: 0}, 500);*/
41        } else {
42            mobileMenu.stop().slideUp();
43            button.attr('aria-pressed', 'false');
44/*            donate.stop().animate({opacity: 1}, 500);*/
45        }
46    }
47
48/*    function toggleSubNav(e) {
49        var icon = $(this).find('.fa'),
50            closed = 'fa-chevron-right',
51            opened = 'fa-chevron-left';
52        if (icon.hasClass(closed)) {
53            // Open item
54            icon.removeClass(closed).addClass(opened);
55            $(this).next('.submenu').stop().slideDown();
56        } else {
57            // Close item.
58            icon.removeClass(opened).addClass(closed);
59            $(this).next('.submenu').stop().slideUp();
60        }
61        e.preventDefault();
62    }*/
63
64/*    function toggleMenuButton(link) {
65        var submenu = $(link).next('.submenu'),
66            opened = $('.submenu.opened');
67        if (!submenu.length) {
68            return;
69        }
70        if (opened.length) {
71            $(opened).each(function () {
72                if (submenu[0].innerHTML != this.innerHTML) {
73                    $(this).hide();
74                }
75            });
76        }
77        var pressed = $(link).attr('aria-pressed');
78        if ("false" === pressed) {
79            submenu.stop().slideDown().addClass('opened');
80            $(link).attr('aria-pressed', 'true');
81        } else {
82            submenu.stop().slideUp().removeClass('opened');
83            $(link).attr('aria-pressed', 'false');
84        }
85    }*/
86
87    function menuAccessibility() {
88        var el = $('a[role=button]');
89        el.on('keydown', function (e) {
90            if (32 === e.keyCode) {
91                toggleMenuButton(this);
92                return false;
93            }
94            return true;
95        });
96    }
97
98    function keypressButton(e) {
99        if (32 === e.keyCode || 13 === e.keyCode) {
100            toggleMobileMenu();
101            return false;
102        }
103        return true;
104    }
105
106    function init() {
107        // thisifyHeaders();
108        menuAccessibility();
109        maybeBindDonateButton();
110/*        toggles.on('click', toggleSubNav);*/
111        button.on('click', toggleMobileMenu);
112        button.on('keypress', keypressButton);
113    }
114
115    function maybeBindDonateButton() {
116        menuButton.on('click', toggleDonateButton);
117    }
118
119    $(window).on('resize', maybeBindDonateButton);
120
121    init();
122	
123	jQuery(function ($) {
124	$(".mobile-nav").simpleMobileMenu({
125		onMenuLoad: function(menu) {
126			console.log(menu)
127			console.log("menu loaded")
128		},
129		onMenuToggle: function(menu, opened) {
130			console.log(opened)
131		},
132		"menuStyle": "slide"
133	});
134	})
135	
136	
137	var defaults = {
138    "hamburgerId": "sm_menu_ham", //Hamburger Id
139    "wrapperClass": "sm_menu_outer", //Menu Wrapper Class
140    "submenuClass": "submenu", //Submenu Class
141    "menuStyle": "slide", //Menu Style
142    "onMenuLoad": function() { return true; }, //Calls when menu loaded
143    "onMenuToggle": function() { return true; } //Calls when menu open/close
144  };
145  $.fn.simpleMobileMenu = function(options) {
146    if (this.length === 0) { return this; }
147    var smMenu = {},
148        ds = $(this);
149    var init = function() {
150      smMenu.settings = $.extend({}, defaults, options);
151      smMenu.styleClass = smMenu.settings.menuStyle.toLowerCase() === 'slide' ? "slide" : "accordion";
152      // Create Wrapper div & hamburger
153      createWrapper_Ham();
154      // Create Back Menu for each sub menu
155      createBackButton();
156      // Callback - Menu loaded
157      if (typeof smMenu.settings.onMenuLoad == 'function') {
158        smMenu.settings.onMenuLoad(ds);
159      }
160    },
161    createWrapper_Ham = function() {
162      smMenu.hamburger =  $("<div/>", {
163                            "id": smMenu.settings.hamburgerId,
164                            "html": "<span></span><span></span><span></span><span></span>"
165                          }),
166      smMenu.smmOuter = $("<div/>", { "class": smMenu.settings.wrapperClass+" "+smMenu.styleClass });
167      ds.appendTo(smMenu.smmOuter);
168      smMenu.hamburger.add(smMenu.smmOuter).appendTo($(".mobile-menu-wrapper"));
169    },
170    createBackButton = function() {
171      smMenu.smmOuter.find("ul." + smMenu.settings.submenuClass).each(function() {
172        var dis = $(this),
173          disPar = dis.closest("li"),
174          disfA = disPar.find("> a"),
175          disBack = $("<li/>", {
176            "class": "back",
177            "html": "<a href='#'><i class='fa fa-chevron-left sub-back'></i>" + "Back" + "</a>"
178          })
179        disPar.addClass("hasChild");
180        if(smMenu.settings.menuStyle.toLowerCase() === 'slide') {
181          disBack.prependTo(dis);
182        }
183      });
184    },
185    toggleMobileMenu = function(e) {
186      $("#" + smMenu.settings.hamburgerId).toggleClass("open");
187      $("." + smMenu.settings.wrapperClass).toggleClass("active").find("li.active").removeClass("active");
188      $("body").toggleClass("mmactive");
189	  $("html").toggleClass("mmactive");
190      if(smMenu.settings.menuStyle.toLowerCase() === 'accordion') {
191        $("."+smMenu.settings.wrapperClass).find("ul."+smMenu.settings.submenuClass).hide();
192      }
193      // Callback - Menu Toggle
194      if (typeof smMenu.settings.onMenuToggle == 'function') {
195        smMenu.settings.onMenuToggle(ds, $("#" + smMenu.settings.hamburgerId).hasClass("open"));
196      }
197    },
198    showSlideSubMenu = function(e) {
199      $("." + smMenu.settings.wrapperClass).scrollTop(0);
200      $(this).parent().addClass("active").siblings().removeClass("active");
201    },
202    showAccordionSubMenu  = function(e) {
203      e.preventDefault();
204      var dis = $(this),
205          dispar = $(this).parent(),
206          lastActive =  dispar.siblings(".active");
207      dispar.find("> ."+smMenu.settings.submenuClass).slideToggle(function() {
208        if ($(this).is(":visible")) { 
209          var offset = dis[0].offsetTop;
210          $("." + smMenu.settings.wrapperClass).stop().animate({ scrollTop: offset }, 300);
211        }
212      });
213      lastActive.find("ul."+ smMenu.settings.submenuClass).slideUp(function() {
214        $(this).find(".hasChild").removeClass("active");
215      })
216      dispar.toggleClass("active").siblings().removeClass("active");
217    },
218    goBack = function(e) {
219      e.preventDefault();
220      $(this).closest("ul." + smMenu.settings.submenuClass).parent().removeClass("active");
221    }
222    /*Init*/
223    init();
224    /* Open Menu */
225    smMenu.hamburger.click(toggleMobileMenu);
226    /* Show Slide SubMenu */
227    smMenu.smmOuter.filter(".slide").find("li.hasChild > a").click(showSlideSubMenu);
228    /* Show Accordion SubMenu */
229    smMenu.smmOuter.filter(".accordion").find("li.hasChild > a").click(showAccordionSubMenu);
230    /* Go Back */
231    smMenu.smmOuter.find("li.back a").click(goBack);
232  };
233	
234	
235	
236
237})(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.