PageSourceSearch

https://bellingrath.org/wp-content/themes/bellingrath-theme/assets/js/menu.js?times=1790928220&ver=7.0.5

js bellingrath.org collected 2026-10-02 08:04:13 UTC 11,351 bytes, 253 lines download raw bytes

1/**
2 * Create an anonymous function to avoid library conflicts
3 */
4(function($) {
5    /**
6     * Add our plugin to the jQuery.fn object
7     */
8    $.fn.responsiveMenu = function(options) {
9        /**
10         * Define some default settings
11         */
12
13        $.fn.responsiveMenu.defaultOptions = {
14            "menuIcon_text": '',
15			"menuslide_overlap":false,
16            "menuslide_push":false,
17            "menuslide_direction":''
18        };
19        /**
20         * Merge the runtime options with the default settings
21         */
22        var options = $.extend({}, $.fn.responsiveMenu.defaultOptions, options);
23        /**
24         * Iterate through the collection of elements and
25         * return the object to preserve method chaining
26         */
27        return this.each(function(i) {
28            var menuobj = $(this);
29            var mobileSubMenu;
30            var subMenuArrows;
31            var mobFlag = false;
32            var deskFlag = false;
33            var defaultMenu = false;
34            createMobileStructure(menuobj);
35            mobileMenuInit(menuobj);
36
37            function removeDesktopMenu(menuobj) {
38                menuobj.removeClass('desk');
39                mobileSubMenu.next().stop(true, true).slideUp();
40                subMenuArrows.removeClass('up');
41                if(defaultMenu){
42                    menuobj.slideUp();
43                }
44                menuobj.find(".menu-icon").removeClass('active');
45            }
46
47            function createMobileStructure(menuobj) {
48                if (menuobj.prev('.menu-icon').length == 0) {
49                    menuobj.wrapAll('<div class="enumenu_container"></div>');
50                    //$('<div class="menu-icon">' + options.menuIcon_text + '</div>').insertBefore(menuobj);
51                    $('<div class="menu-icon" role="button"  tabindex="0"> <div class="menu-box"><span></span><span></span><span></span> </div>' + options.menuIcon_text + '</div>').insertBefore(menuobj);
52                    //menuobj.find('ul').prev('a').addClass('menubelow');
53                    $("> li > a", menuobj).addClass("firstLevel");
54                    menuobj.find("li").each(function() {
55                        if ($(this).children("ul").length || $(this).children("div").length) {
56                            $(this).addClass("has-children");
57                            $(this).children('a').addClass('menubelow');
58                        }
59                    });
60                }
61                mobileSubMenu = menuobj.find('a.menubelow');
62                if (menuobj.find('.arrow').length == 0) {
63                    mobileSubMenu.each(function() {
64                        $(this).closest('li').prepend('<span class="arrow"></span>');
65                        $(this).next().addClass("sb-menu");
66                    });
67                    subMenuArrows = menuobj.find('.arrow');
68                }
69                
70                
71                if(options.menuslide_overlap){
72                    $('body').addClass('menuOverlap');
73                   
74                } else if(options.menuslide_push){
75                    $('body').addClass('menuslide_push');
76                    
77                }
78                if((options.menuslide_overlap || options.menuslide_push) && options.menuslide_direction==""){
79                    $('body').addClass('slidemenuRight');
80                }
81                if(options.menuslide_direction=="left"){
82                    $('body').addClass('slidemenuLeft');
83                    
84                }else if(options.menuslide_direction=="right"){
85                    $('body').addClass('slidemenuRight');
86                    
87                }
88            }
89
90            function bindClickonMobilemenu(menuobj) {
91                menuobj.find('.arrow').on('touchstart click', function(e) {
92                    e.stopImmediatePropagation();
93                    e.preventDefault();
94                    var submenu = $(this).closest('li').children('.sb-menu');
95                    var sibilingsOfCurrent_obj = $(this).closest('li').siblings();
96                    var this_parentLi = $(this).closest('li');
97                    if (menuobj.prev(".menu-icon").is(":visible")) {
98                        if (submenu.length > 0) {
99                            sibilingsOfCurrent_obj.find('.sb-menu').stop(true, true).slide
99Up(); // comment to close
100                            sibilingsOfCurrent_obj.find('.sb-menu').each(function() {
101                                $(this).closest('li').find('>span').removeClass('up');
102                                $(this).closest('li').removeClass("open");
103                            });
104                        }
105                        if (!submenu.is(':visible')) {
106                            submenu.find('.sb-menu').each(function() {
107                                $(this).stop().slideUp();
108                                $(this).closest('li').find('span').removeClass('up');
109                                $(this).closest('li').removeClass("open"); 
110                            });
111                            submenu.stop().slideDown();
112                            this_parentLi.find('>span').addClass('up');
113                            $(this).closest('li').addClass("open"); 
114                        } else {
115                            submenu.slideUp();
116                            this_parentLi.find('>span').removeClass('up');
117                            $(this).closest('li').removeClass("open");
118                        }
119                    }
120                });
121            }
122
123            function removeMobileMenu(menuobj) {
124                menuobj.find('.menubelow').each(function() {
125                    $(this).removeAttr('style');
126                    $(this).next().removeAttr('style');
127                });
128                menuobj.find('.arrow').remove();
129                menuobj.prev(".menu-icon").removeClass('active');
130                menuobj.addClass('desk').removeAttr("style");
131                menuobj.removeAttr("style");
132                $("body").removeClass("menu-open");
133                deskFlag = false;
134            }
135
136            $(window).resize(function(e) {
137                mobileMenuInit(menuobj);
138            });
139
140            function mobileMenuInit(menuobj) {
141                if((options.menuslide_overlap == false && options.menuslide_push == false) || (options.menuslide_overlap == true && options.menuslide_push == true)){
142                   defaultMenu = true; 
143                }
144                if (menuobj.prev(".menu-icon").is(":visible")) {
145                    if (!mobFlag) {
146                        removeDesktopMenu(menuobj);
147                        createMobileStructure(menuobj);
148                        bindClickonMobilemenu(menuobj);
149                        mobFlag = true;
150                        deskFlag = false;
151                        menuobj.removeClass('desk');
152                        $('body').removeClass('desk');
153                        menuobj.addClass('mob');
154                        $('body').addClass('mob');
155                    }
156                } else {
157                    if (!deskFlag) {
158                        removeMobileMenu(menuobj);
159                        mobFlag = false;
160                        deskFlag = true;
161                        menuobj.removeClass('mob');
162                        $('body').removeClass('mob');
163                        menuobj.addClass('desk');
164                        $('body').addClass('desk');
165
166                    }
167                }
168            }
169            // Toggle menu
170            menuobj.prev(".menu-icon").on('click', function(e){
171            //$(document).on('click', ".menu-icon", function(e) {
172                e.stopPropagation();
173                e.preventDefault();
174                if ($(this).hasClass('active')) {
175                    closeMobileMenu(menuobj);
176                } else {
177                    if(defaultMenu){
178                        $(this).next().slideDown();
179                    }
180                    $(this).addClass("active");
181                    $("body").addClass("menu-open");
182                    $(".enumenu_ul").addClass("open-submenu");
183                }
184            });
185            $('body').on('click touchstart', function(e) {
186                if (menuobj.prev(".menu-icon").is(":visible")) {
187                    if ($(e.target).closest(".enumenu_container").length == 0 && !$(e.target).hasClass('active')) {
188                        closeMobileMenu(menuobj);
189                    }
190                }
191            });
192
193            function closeMobileMenu(menuobj) {
194                $("body").removeClass("menu-open");
195                if(defaultMenu){
196                    menuobj.stop().slideUp();
197                }
198                menuobj.prev(".menu-icon").removeClass('active');
199                $(".enumenu_ul").removeClass('open-submenu');
200                menuobj.find('.arrow').removeClass('up');
201                menuobj.find('.sb-menu').stop(true, true).slideUp();
202            }
203
204                if ( 'ontouchstart' in window ) {
205
206                    //$(".enumenu_ul > li > a, .enumenu_ul.desk li > ul > li > a").click(function(e) {
207                    menuobj.find("a").click(function(e) {
208                            if (!$(this).hasClass("link") && !$("body").hasClass("mob") && $(this).next().length > 0) {
209                                e.preventDefault();
210                                if ($(this).hasClass("firstLevel")) {
211                                    menuobj.find("a").removeClass("link");
212                                    menuobj.find("a").parent().removeClass("hover");
213                                }
214                                $(this).addClass("link");
215                                $(this).parent().addClass('hover');
216                            }
217                    })
218                    $('body').on('click touchstart', function(e) {
219                        if ($(e.target).closest(".enumenu_container").length == 0) {
220                            menuobj.find("a").each(function(){
221                                $(this).removeClass("link");
222                                $(this).parent().removeClass("hover");
223                            });
224                        }
225                    });
226                    /*$("body > div").on('click', function(e) {
227                        if ($(e.target).closest(".enumenu_container").length == 0) {
228                            menuobj.find("a").each(function(){
229                                $(this).removeClass("link");
230                                $(this).parent().removeClass("hover");
231                            });
232                            
233                        }
234                    });*/
235                } else {
236                    
237                    menuobj.find("li").mouseenter(function() {
238                        $(this).addClass('hover');
239                    });
240                    menuobj.find("li").mouseleave(function() {
241                        $(this).removeClass('hover');
242                    });
243                    
244                    $(".menu-icon").on("mouseenter", function(){
245                         $(this).addClass('hover');
246                    }).mouseleave(function() {
247                        $(this).removeClass('hover');
248                    });
249                }
250            
251        });
252    };
253})(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.