PageSourceSearch

https://affordablepools.com.au/wp-content/plugins/slicknav-mobile-menu/js/slick-init.js?ver=1.9.4

js affordablepools.com.au collected 2026-10-01 00:56:14 UTC 6,936 bytes, 158 lines download raw bytes

1jQuery(document).ready(function($) {
2		var settings = ( window.slickNavVars && window.slickNavVars.ng_slicknav ) || {};
3
4		if ( ! settings.ng_slicknav_menu || 'function' !== typeof $.fn.slicknav ) {
5			return;
6		}
7
8		try {
9			$( settings.ng_slicknav_menu );
10		} catch ( error ) {
11			if ( window.console && 'function' === typeof window.console.warn ) {
12				window.console.warn( 'SlickNav Mobile Menu: invalid menu selector.', error );
13			}
14			return;
15		}
16
17        if(settings.ng_slicknav_fixhead  || !settings.ng_slicknav_position ) {
18                settings.ng_slicknav_position = 'body';
19        }
20
21        if(settings.ng_slicknav_openedsymbol === "") {
22                settings.ng_slicknav_openedsymbol = "▼";
23        }
24
25        if(settings.ng_slicknav_closedsymbol === "") {
26                settings.ng_slicknav_closedsymbol = "►";
27        }
28
29        if(settings.ng_slicknav_search_text === "") {
30                settings.ng_slicknav_search_text = "search...";
31        }
32
33        // Ov3rfly
34        var ng_slicknav_menu = '';
35        var ng_slicknav_menu_duplicate = true;
36        var ng_slicknav_menu_arr = settings.ng_slicknav_menu.split(',');
37
38        if ( ng_slicknav_menu_arr.length > 1 ) {
39        	// multiple comma seperated selectors
40        	// based on http://codepen.io/ComputerWolf/pen/tjyIg
41        	// clone all menus to keep them intact
42        	ng_slicknav_menu = $( ng_slicknav_menu_arr[0].trim() ).clone();
43        	for ( var i = 1; i < ng_slicknav_menu_arr.length; i++ ) {
44        		var ng_slicknav_other = $( ng_slicknav_menu_arr[i].trim() ).clone();
45        		ng_slicknav_other.children( 'li' ).appendTo( ng_slicknav_menu );
46        	}
47        	ng_slicknav_menu_duplicate = false;
48        } else {
49        	// only one selector
50        	ng_slicknav_menu = ng_slicknav_menu_arr[0].trim();
51        	//ng_slicknav_menu = ng_slicknav_menu.trim();
52        }
53
54        $(ng_slicknav_menu).slicknav({	// Ov3rfly
55                prependTo       : settings.ng_slicknav_position,
56                label           : settings.ng_slicknav_label,
57                duration        : settings.ng_slicknav_speed,
58                showChildren    : settings.ng_slicknav_child_links,
59                allowParentLinks: settings.ng_slicknav_parent_links,
60                closeOnClick    : settings.ng_slicknav_close_click,
61                brand           : '',
62                openedSymbol    : settings.ng_slicknav_openedsymbol,
63                closedSymbol    : settings.ng_slicknav_closedsymbol,
64                duplicate       : ng_slicknav_menu_duplicate,	// Ov3rfly
65                beforeOpen      : (settings.ng_slicknav_accordion == true) ? function(trigger) { slicknavOpened(trigger); } : function(){},
66        });
67
68
69        if ( settings.ng_slicknav_brand ) {
70                var $brandImage = $( '<img>' ).attr({
71                        src: settings.ng_slicknav_brand,
72                        alt: settings.ng_slicknav_alt || ''
73                });
74                var $brandLink = $( '<a>' ).attr( 'href', settings.ng_slicksearch ).append( $brandImage );
75                $( '.slicknav_menu' ).prepend( $( '<div>' ).addClass( 'slicknav_brand' ).append( $brandLink ) );
76        }
77
78        if ( settings.ng_slicknav_search === true ) {
79                var $searchForm = $( '<form>' ).attr({
80                        role: 'search',
81                        method: 'get',
82                        id: 'slicknav-searchform',
83                        action: settings.ng_slicksearch
84                });
85                $searchForm.append( $( '<input>' ).attr({
86                        type: 'text',
87                        placeholder: settings.ng_slicknav_search_text,
88                        name: 's',
89                        id: 's'
90                }) );
91                $searchForm.append( $( '<input>' ).attr({
92                        type: 'submit',
93                        id: 'searchsubmit',
94                        value: '\uf179'
95                }) );
96                $( '.slicknav_nav' ).append( $( '<li>' ).addClass( 'search' ).append( $searchForm ) );
97        }
98
99        if ( !settings.ng_slicknav_brand && settings.ng_slicknav_brand_text ) {
100                var $textLink = $( '<a>' ).attr( 'href', settings.ng_slicksearch ).text( settings.ng_slicknav_brand_text );
101                $( '.slicknav_menu' ).prepend( $( '<p>' ).addClass( 'slicknav-logo-text' ).append( $textLink ) );
102        }
103
104        // Accordion used to show 1 sublevel at a time - https://github.com/ComputerWolf/SlickNav/issues/16
105        function slicknavOpened(trigger) {
106                var $trigger = $(trigger[0]);
107                if ($trigger.hasClass('slicknav_btn')) {
108                // this is the top-level menu/list opening.
109                // we only want to trap lower-level/sublists.
110                return;
111                }
112                // trigger is an <a> anchor contained in a <li>
113                var $liParent = $trigger.parent();
114                // parent <li> is contained inside a <ul>
115                var $ulParent = $liParent.parent();
116                // loop through all children of parent <ul>
117                // i.e. all siblings of this <li>
118                $ulParent.children().each(function () {
119                var $child = $(this);
120                if ($child.is($liParent)) {
121                    // this child is self, not is sibling
122                    return;
123                }
124                if ($child.hasClass('slicknav_collapsed')) {
125                    // this child is already collapsed
126                    return;
127                }
128                if (!$child.hasClass('slicknav_open')) {
129                    // could throw an exception here: this shouldn't happen
130                    // because I expect li to have class either slicknav_collapsed or slicknav_open
131                    return;
132                }
133                // found a sibling <li> which is already open.
134                // expect that its first child is an anchor item.
135                var $anchor = $child.children().first();
136                if (!$anchor.hasClass('slicknav_item')) {
137                    return;
138                }
139                // close the sibling by emulating a click on its anchor.
140                $anchor.click();
141                });
142
143        }
144
145        // Add Flex container around brand/brand text and Menu icon/label divs so button can be centered
146        var brandBlank = ( settings.ng_slicknav_brand ==  '' );
147        var brandBlankText = ( settings.ng_slicknav_brand_text ==  '' );
148        if ( ! brandBlank  ) {
149                $( ".slicknav_brand" ).next().addBack().wrapAll( "<div class='slicknav-flex'></div>" );
150        }
151        else if ( ! brandBlankText ) {
152                $( ".slicknav-logo-text" ).next().addBack().wrapAll( "<div class='slicknav-flex'></div>" );
153        }
154        else
155                $( ".slicknav_btn" ).wrapAll( "<div class='slicknav-flex'></div>" );
156
157
158 });

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.