PageSourceSearch

https://www.aca.nl/js/init.js

js aca.nl collected 2026-10-04 09:22:44 UTC 9,932 bytes, 295 lines download raw bytes

1$(function () {
2
3    // copy accountlinks to mobile menu
4    $('#memberNav ul').clone().appendTo('#accountLinks');
5
6    // Initialize plugins
7    if (window.divide) {
8        // Call to mobile menu
9        if (window.divide.menu && typeof window.divide.menu.register == 'function') {
10            window.divide.menu.register();
11        }
12
13        // Register cookies
14        if (window.divide.cookies && typeof window.divide.cookies.register == 'function') {
15            window.divide.cookies.register({
16                displayType: 'bar', // 'popup' || 'bar'
17            });
18        }
19
20        // Toggle Panels
21        if (window.divide.mobilePanels && typeof window.divide.mobilePanels.register == 'function') {
22            window.divide.mobilePanels.register();
23        }
24
25        // Register refresher
26        if (window.divide.refresher && typeof window.divide.refresher.register == 'function') {
27            window.divide.refresher.register();
28        }
29
30        // Register Content Detail menu
31        if (window.divide.contentDetailMenu && typeof window.divide.contentDetailMenu.register == 'function') {
32            window.divide.contentDetailMenu.register();
33        }
34
35        // Register slider
36        if (window.divide.slider && typeof window.divide.slider.register == 'function') {
37            window.divide.slider.register();
38        }
39
40        // Register lazyload
41        if (sitesetting.lazyloading && window.divide.lazyload && typeof window.divide.lazyload.register == 'function') {
42            window.divide.lazyload.register();
43        }
44
45        // Register fixed bottom content
46        if (window.divide.fixedcalltoaction && typeof window.divide.fixedcalltoaction.register == 'function') {
47            window.divide.fixedcalltoaction.register();
48        }
49
50        // Register letters
51        if (window.divide.letters && typeof window.divide.letters.register == 'function') {
52            window.divide.letters.register();
53        }
54
55        // Accordion
56        if (window.divide.accordion && typeof window.divide.accordion.register == 'function') {
57            window.divide.accordion.register();
58        }
59
60        // inline quickview
61        if (sitesetting.inlinequickview && window.divide.inlineQuickview && typeof window.divide.inlineQuickview.register == 'function') {
62            window.divide.inlineQuickview.register({
63                scrollOnOpen: true,
64                scrollSpeed: 300,
65                scrollOffset: 106
66            });
67        }
68
69        // divide extensions
70        if (window.divide.extensions && typeof window.divide.extensions.register == 'function') {
71            window.divide.extensions.register();
72        }
73
74        // Register search
75        if (window.divide.search && typeof window.divide.search.register == 'function') {
76            window.divide.search.register();
77        }
78
79        // Register Arrow Navigation
80        if (window.divide.arrowNavigation && typeof window.divide.arrowNavigation.register == 'function') {
81            window.divide.arrowNavigation.register();
82        }
83
84        // GMT Dynamic Datalayers
85        if (sitesetting.datalayers && window.divide.dataLayer && typeof window.divide.dataLayer.register == 'function') {
86            window.divide.dataLayer.register({
87                priceCurrency: price_currency,
88                track: {
89                    productClicks: true,
90                    addToCart: false
91                }
92            });
93        }
94
95        // Register Favorites
96        if (window.divide.favorites && typeof window.divide.favorites.register == 'function') {
97            window.divide.favorites.register({
98                openPanelOnAdd: false,
99                panelName: 'overviewPanel'
100            });
101        }
102    }
103
104    if (window.tweakwise) {
105        // Register searchAutoComplete
106        if (window.tweakwise.searchAutoComplete && typeof window.tweakwise.searchAutoComplete.register == 'function') {
107            window.tweakwise.searchAutoComplete.register();
108        }
109    }
110
111    // Address auto fill
112    $('#content').find('[data-address-autofill]').each(function () {
113        var $this = $(this);
114
115        $this.applyAutocomplete({
116            postcode: $this.find('[data-address-autofill-zipcode]'),
117            street: $this.find('[data-address-autofill-street]'),
118            city: $this.find('[data-address-autofill-city]')
119        });
120    });
121
122    // Custom: fixed submenu op content detailpagina's
123    var localNavMenu = $(document).find("#localNav.specialMenu"),
124        sidecol = $(document).find("#sidecol"),
125        header = $(document).find("#header");
126
127    $(window).on("scroll", function () {
128        var scroll = $(window).scrollTop(),
129            elementScroll = sidecol.offset().top;
130
131        if ($("body").hasClass("isMobile")) {
132            elementScroll -= header.height();
133        }
134
135        if (scroll >= elementScroll) {
136            localNavMenu.addClass("fixed");
137
138        } else {
139            localNavMenu.removeClass("fixed");
140        }
141    });
142
143    // prevent bubbling created by previous function
144    $('#globalNav a').on('click', function (event) {
145        event.stopPropagation();
146    });
147
148    // show/hide searchbar
149    $('#searchToggle').on('click', function () {
150        $('#searchDropdown').toggle().clickOutside(function (event) {
151            event.preventDefault();
152            $('#searchDropdown').hide();
153        }); ;
154        return false;
155    });
156
157    //	=========== regular init ===========  \\
158
159    var $content = $('#content');
160
161    // Toggle items.
162    $content.on('click', '[data-toggle-selector]', function () {
163        var $this = $(this),
164            sToggleSelector = $this.data('toggle-selector');
165
166        $content.find(sToggleSelector).toggleClass('hidden').trigger('change');
167
168        return false;
169    });
170
171    $('#sidecol #localNav, #sidecol #categoryNav').find('h3').click(function (event) {
172        event.preventDefault();
173        event.stopPropagation();
174        $(this).parent().toggleClass('active');
175        $(this).next('.ul-1').clickOutside(function (event) {
176            event.preventDefault();
177            $('#sidecol #localNav').removeClass('active');
178        });
179    });
180
181
182    //make valMessage removable
183    $('.valMessage').not('.noList').click(function () {
184        $(this).find('> *').hide();
185    })
186
187
188    // Detect if pixel density > 1
189    Modernizr.addTest('retina', function () {
190        var dpr = window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI) || 1;
191        return !!(dpr > 1);
192    });
193
194
195    $('div.tabsWrapper').divideTabs({ responsive: true });
196
197
198    // anchors instead of buttons, attach submit
199    $('a[title=submit]').on('click', function () {
200        $(this).parents('form').submit();
201        return false;
202    });
203
204
205    // make the enter button work, but only for last pasword box (prevent post for all other textboxes)
206    $(document).on('keydown', 'input[type="text"], input[type="password"], input[type="email"], input[type="search"]', function (event) {
207        var keyCode = event.which || event.keyCode;
208
209        if (keyCode == 13) {
210            var $checkNode = $(this).parent(),
211				$input = $();
212
213            while (!$checkNode.is('#content') && !$input[0]) {
214                $checkNode = $checkNode.parent();
215
216                $input = $checkNode.find(':submit, .submit').first();
217            }
218
219            if ($input[0]) {
220                $input[0].click();
221            }
222
223            return false;
224        }
225    });
226
227
228    // SizeUnit dropdown
229    $('.sizeConversionCombo').change(function () {
230        var selectedValue = $(this).val();
231        $.ajax({
232            url: _root + "Pages/Ajax/SizeConversionHandler.ashx",
233            data: { id: selectedValue },
234            async: false,
235            cache: false
236        }).done(function (msg) {
237            document.location.reload();
238        });
239    });
240
241
242    //Show subcategories if available before following link
243    $('.isMobile #globalNav li.more > a, .isTablet #globalNav li.more > a').on('touchstart click', function (e) {
244        var $this = $(this),
245			$parentLi = $this.parent('li');
246
247        if (!$parentLi.hasClass('active')) {
248            e.preventDefault();
249            $('#globalNav li.more').not($parentLi).removeClass('active');
250            $parentLi.toggleClass('active');
251        }
252    });
253
254
255    // Convert media from NOW
256    $('div.media').media();
257});
258
259// Find img tags with a src that ends with an SVG extension and replace the extension with PNG in case the browser does not support SVG.
260window.onload = function () {
261
262    if (!Modernizr.svg) {
263        var imgs = document.getElementsByTagName('img');
264        var svgExtension = /.*\.svg$/
265        var l = imgs.length;
266        for (var i = 0; i < l; i++) {
267            if (imgs[i].src.match(svgExtension)) {
268                if (imgs[i].getAttribute('data-svg-fallback')) {
269                    imgs[i].src = imgs[i].getAttribute('data-svg-fallback');
270                    console.log(imgs[i].src);
271                } else {
272                    imgs[i].src = imgs[i].src.slice(0, -3) + 'png';
273                    console.log(imgs[i].src);
274                }
275            }
276        }
277    }
278}
279
280// ie8 Polyfill indexOf
281if (!Array.prototype.indexOf) {
282    Array.prototype.indexOf = function (elem, startFrom) {
283        var startFrom = startFrom || 0;
284        if (startFrom > this.length) return -1;
285
286        for (var i = 0; i < this.length; i++) {
287            if (this[i] == elem && startFrom <= i) {
288                return i;
289            } else if (this[i] == elem && startFrom > i) {
290                return -1;
291            }
292        }
293        return -1;
294    }
295}

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.