PageSourceSearch

https://www.nieuwsbladschaapskooi.nl/js/pubble.autocomplete.js?v=2023

js nieuwsbladschaapskooi.nl collected 2026-10-10 01:17:08 UTC 5,484 bytes, 130 lines download raw bytes

1var autocomplete = {
2    pro6pp_cache: {},
3    autoCompleteTimer: 0,
4    pro6pp_auth_key: "1FulN4sT6ztTIntC",
5
6    inputPostalCode: 'PostalCode',
7    inputHouseNumber: 'HouseNumber',
8    inputCountryCode: 'CountryCode',
9    inputStreet: 'Street',
10    inputCity: 'City',
11    inputCoordinates: 'coords',
12
13    activePrefix: '',
14
15    initialize: function (formElement) {
16
17        let matchedElements = formElement.querySelectorAll(
18            "[name*='." + autocomplete.inputPostalCode + "'], [name='" + autocomplete.inputPostalCode + "'], " +
19            "[name*='." + autocomplete.inputHouseNumber + "'], [name='" + autocomplete.inputHouseNumber + "']"
20        );
21
22        matchedElements.forEach(function (element) {
23            let prefix = '';
24            let name = element.getAttribute('name');
25            let dotIndex = name.indexOf('.');
26            if (dotIndex !== -1) {
27                prefix = name.substring(0, dotIndex) + '.';
28            }
29
30            element.onkeyup = function () {
31                autocomplete.autocomplete(formElement, prefix);
32            };
33        });
34
35    },
36
37    pro6pp_cached_get: function (obj, url, callback) {
38        if (autocomplete.pro6pp_cache.hasOwnProperty(url)) {
39            callback(obj, autocomplete.pro6pp_cache[url]);
40        } else {
41            pubbleUtility.getJson(url + "&callback=?", {}, function (data) {
42                autocomplete.pro6pp_cache[url] = data;
43                callback(obj, data);
44            });
45        }
46    },
47
48    autocomplete: function (formElement, prefix) {
49
50        clearTimeout(autocomplete.autoCompleteTimer);
51        autocomplete.autoCompleteTimer = setTimeout(function () {
52
53            autocomplete.activePrefix = prefix;
54
55            var countryField = formElement.querySelector("[name='" + prefix + autocomplete.inputCountryCode + "']")
56                || formElement.querySelector("[name='" + autocomplete.inputCountryCode + "']");
57
58            // pro6pp kent alleen Nederlandse postcodes, dus elders slaan we de opzoeking over. De
59            // vergelijking was hoofdlettergevoelig, en een landkeuze in een sjabloon post net zo vaak
60            // 'nl' als 'NL'. Dan haakte deze functie meteen af en bleven straat en woonplaats leeg op
61            // een adres waar wel iemand moet bezorgen (ZD 191361).
62            var country = (countryField && countryField.value || '').trim().toUpperCase();
63
64            if (country && country !== 'NL') {
65                return;
66            }
67
68            var postcode;
69            var streetnumber;
70
71            if (formElement.querySelector("[name='" + prefix + autocomplete.inputPostalCode + "']")) {
72                postcode = formElement.querySelector("[name='" + prefix + autocomplete.inputPostalCode + "']").value;
73            }
74
75            if (formElement.querySelector("[name='" + prefix + autocomplete.inputHouseNumber + "']")) {
76                streetnumber = formElement.querySelector("[name='" + prefix + autocomplete.inputHouseNumber + "']").value;
77            }
78
79            // Trigger on '5408xb' and on '5408 xb'
80            var nl_sixpp_regex = /[0-9]{4,4}\s?[a-zA-Z]{2,2}/;
81            if (nl_sixpp_regex.test(postcode)) {
82                var url = "//api.pro6pp.nl/v1/autocomplete?auth_key="
83                    + autocomplete.pro6pp_auth_key + "&nl_sixpp=" + postcode
84                    + "&streetnumber=" + streetnumber;
85
86                if (window.location.protocol == 'https:') {
87                    url = "//api.pro6pp.nl/v1/autocomplete?auth_key="
88                        + autocomplete.pro6pp_auth_key + "&nl_sixpp=" + postcode
89                        + "&streetnumber=" + streetnumber;
90                }
91                url = encodeURI(url);
92                autocomplete.pro6pp_cached_get(formElement, url, autocomplete.fillin);
93            } else {
94                if (formElement.querySelector("[name='" + prefix + autocomplete.inputStreet + "']")) {
95                    formElement.querySelector("[name='" + prefix + autocomplete.inputStreet + "']").value = '';
96                }
97
98                if (formElement.querySelector("[name='" + prefix + autocomplete.inputCity + "']")) {
99                    formElement.querySelector("[name='" + prefix + autocomplete.inputCity + "']").value = '';
100                }
101
102            }
103        }, 200);
104    },
105
106
107    fillin: function (formElement, json) {
108        if (json.status == undefined) {
109            json = JSON.parse(json.substring(2));
110        }
111
112        if (json.status == 'ok') {
113            if (json.results.length == 1) {
114
115                if (formElement.querySelector("[name='" + autocomplete.activePrefix + autocomplete.inputStreet + "']")) {
116                    formElement.querySelector("[name='" + autocomplete.activePrefix + autocomplete.inputStreet + "']").value = json.results[0].street;
117                }
118
119                if (formElement.querySelector("[name='" + autocomplete.activePrefix + autocomplete.inputCity + "']")) {
120                    formElement.querySelector("[name='" + autocomplete.activePrefix + autocomplete.inputCity + "']").value = json.results[0].city;
121                }
122
123                if (formElement.querySelector("[name='" + autocomplete.activePrefix + autocomplete.inputCo
123ordinates + "']")) {
124                    formElement.querySelector("[name='" + autocomplete.activePrefix + autocomplete.inputCoordinates + "']").value = json.results[0].lat + "," + json.results[0].lng;
125                }
126
127            }
128        }
129    }
130};

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.