PageSourceSearch

https://www.caparol.de/typo3conf/ext/theme_caparol/Resources/Publi…/Global/mapsConsent.js?1773330305

js caparol.de collected 2026-10-01 11:45:49 UTC 41,083 bytes, 591 lines download raw bytes

1(() => {
2    let app = document.querySelector('#replyCaparolstorelocator, .tx-caparolevents, .google-map-canvas');
3    if (!app) return;
4
5    let apiKeyNode = document.querySelector('.googleMapsApiKey');
6    let apiKeyDataset, apiKey;
7
8    const staticMap = app.className.includes('google-map-canvas');
9
10    if (!apiKeyNode && staticMap) {
11        apiKeyNode = document.createElement('div');
12        apiKeyNode.dataset.key = 'AIzaSyDC-ycKChaIGpIldEd59FmaQJG-WdkNdS0'
13    }
14
15    if (apiKeyNode) {
16        apiKeyDataset = apiKeyNode.dataset;
17    }
18
19    if (apiKeyDataset) {
20        apiKey = apiKeyDataset.key;
21    }
22    if (!apiKey) return;
23
24    // shared. has to be document not app because events has multiple views per page
25    let searchInput = document.querySelector('#searchInput, input#autocomplete');
26    let submitButton = document.querySelector('.tx-caparolevents input[type="submit"], .search-container button[type="submit"]');
27    window.addEventListener('load', () => {
28        // repopulate after load for angular stuff, timeout for ios
29        setTimeout(() => {
30            searchInput = document.querySelector('#searchInput, input#autocomplete');
31            submitButton = document.querySelector('.tx-caparolevents input[type="submit"], .search-container button[type="submit"]');
32        }, 1000)
33    })
34
35    // caparolevents only
36    const eventsMonthSelect = app.querySelector('select[name="eventsmonth"]')
37    const eventsTypeSelect = app.querySelector('select[name="eventscategory"]')
38    
39    let lang = document.documentElement.lang;
40    
41    const labels = {
42        banner: {
43            de: `
44Um Ihre personenbezogenen Daten zu schützen, haben wir die Ansicht und den damit verbundenen Aufruf des Kartendienstes „Google Maps“ per Voreinstellung deaktiviert. Bei der Nutzung des Kartendienstes „Google Maps“ kommt es zu einer Verarbeitung Ihrer personenbezogenen Daten durch Google LLC (z.B. IP-Adresse), die in Drittländern (USA) durchgeführt wird.<br>Die Aktivierung der Ansicht erfordert Ihre vorherige Einwilligung. Sofern Sie die Aktivierung der Kartenansicht wünschen, können Sie Ihre Einwilligung <a onclick="giveMapsConsent(); location.reload()">hier</a> erteilen. Sie können Ihre Einwilligung jederzeit am Ende dieser Seite widerrufen. Für weitere Informationen zum Thema Datenschutz verweisen wir Sie auf unsere <a href="/datenschutz" target="_blank">Datenschutzerklärung</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Jetzt zustimmen</a>
45            `,
46            en: `
47To protect your personal data, we have deactivated the view and the associated call of the map service "Google Maps" by default. When using the map service "Google Maps", your personal data is processed by Google LLC (e.g. IP address), which is carried out in third countries (USA). The activation of the view requires your prior consent. If you wish to activate the map view, you can give your consent  <a onclick="giveMapsConsent(); location.reload()">here</a>. You can withdraw your consent at any time at the bottom of this page. For more information on data protection, please refer to our <a href="/en/privacy-policy" target="_blank">privacy policy</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Agree now</a>
48            `,
49            ru: `
50To protect your personal data, we have deactivated the view and the associated call of the map service "Google Maps" by default. When using the map service "Google Maps", your personal data is processed by Google LLC (e.g. IP address), which is carried out in third countries (USA). The activation of the view requires your prior consent. If you wish to activate the map view, you can give your consent  <a onclick="giveMapsConsent(); location.reload()">here</a>. You can withdraw your consent at any time at the bottom of this page. For more information on data protection, please refer to our <a href="/en/privacy-policy" target="_blank">privacy policy</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Agree now</a>
51            `,
52            nl: `
53Om uw persoonlijke gegevens te beschermen, hebben we de weergave en de bijbehorende oproep van de kaartendienst "Google Maps" standaard uitgeschakeld. Bij het gebruik van de kaartendienst "Google Maps" worden uw persoonlijke gegevens verwerkt door Google LLC (bijv. IP-adres), wat in derde landen (VS) gebeurt.
54Voor het activeren van de weergave is uw voorafgaande toestemming vereist. Als u de kaartweergave wilt activeren, kunt u <a onclick="giveMapsConsent(); location.reload()">hier</a> uw toestemming geven. U kunt uw toestemming te allen tijde intrekken onderaan deze pagina. Meer informatie over gegevensbescherming vindt u in ons <a href="/privacyverklaring" target="_blank">privacy beleid</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Nu akkoord</a>
55            `,
56            pl: `
57Aby chronić Twoje dane osobowe, domyślnie wyłączyliśmy widok i powiązane z nim wywołanie usługi „Google Maps”. Podczas korzystania z „Google Maps” Twoje dane osobowe są przetwarzane przez spółkę Google LLC (np. adres IP), a to przetwarzanie odbywa się w państwach trzecich (USA). Aktywacja widoku wymaga Twojej uprzedniej zgody. Jeśli chcesz aktywować widok mapy, możesz wyrazić zgodę  <a onclick="giveMapsConsent(); location.reload()">tutaj</a>. Możesz cofnąć zgodę w dowolnym momencie na dole tej strony. Więcej informacji o ochronie danych znajdziesz w naszej <a href="/polityka-prywatnosci" target="_blank">polityce prywatności</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Zgadzam się</a>
58            `,
59            lv: `
60Lai aizsargātu jūsu personas datus, pēc noklusējuma esam deaktivizējuši Google Maps priekšskatījumu un ar to saistītos karšu servisa pieprasījumus. Izmantojot karšu pakalpojumu Google Maps, Google LLC apstrādā jūsu personas datus (piem., IP adresi), kas tiek veikta trešajās valstīs (ASV). Lai aktivizētu priekšskatījumu nepieciešama jūsu iepriekšēja piekrišana. Ja vēlaties aktivizēt kartes priekšskatījumu, savu piekrišanu varat dot <a onclick="giveMapsConsent(); location.reload()">šeit</a>. Jūs jebkurā laikā varat atsaukt savu piekrišanu šīs lapas apakšā. Lai iegūtu papildinformāciju par datu aizsardzību, lūdzu, skatīt mūsu <a href="/privatuma-politika" target="_blank">privātuma politiku</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Piekrītu tagad</a>
61            `,
62            fr: `
63Pour protéger vos données personnelles, nous avons désactivé par défaut l'affichage et l'appel associé du service de cartographie "Google Maps". Lors de l'utilisation du service de cartographie "Google Maps", vos données personnelles sont traitées par Google LLC (par exemple l'adresse IP), ce qui est effectué dans des pays tiers (États-Unis). L'activation de la vue nécessite votre consentement préalable. Si vous souhaitez activer l'affichage de la carte, vous pouvez donner votre accord <a onclick="giveMapsConsent(); location.reload()">ici</a>. Vous pouvez retirer votre consentement à tout moment en bas de cette page. Pour plus d'informations sur la protection des données, veuillez consulter notre <a href="/protection-des-donnees" target="_blank">politique de confidentialité</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Acceptez maintenant</a>
64            `,
65            ee: `
66Teie isikuandmete kaitseks oleme Google Mapsi vaate vaikimisi välja lülitanud. Google Mapsi kaarditeenuse kasutamisel töötleb teie isikuandmeid (nt IP-aadressi) kolmandas riigis (USAs) Google LLC. Vaate aktiveerimiseks on vaja teie nõusolekut. Kui soovite kaardivaate aktiveerida, andke oma nõusolek  <a onclick="giveMapsConsent(); location.reload()">siin</a>. Te saate nõusoleku selle lehe allosas igal ajal tagasi võtta. Kui soovite andmekaitse kohta rohkem teavet, lugege meie <a href="/isikuandmete-kaitse-eeskirjad " target="_blank">privaatsuseeskirju</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Nõustu nüüd</a>
67            `,
68            ba: `
69Kako bismo zaštitili vaše osobne podatke, prema zadanim postavkama deaktivirali smo prikaz i povezani poziv kartografskog servisa "Google Maps". Prilikom korištenja kartografskog servisa "Google Maps", Vaše osobne podatke obrađuje Google LLC (npr. IP adresu), koja se provodi u trećim zemljama (SAD). Za aktivaciju pogleda potreban je vaš prethodni pristanak. Ukoliko želite aktivirati prikaz karte, svoju suglasnost možete dati <a onclick="giveMapsConsent(); location.reload()">ovdje</a>. Svoj pristanak možete povući u bilo kojem trenutku na dnu ove stranice. Za više informacija o zaštiti podataka pogledajte našu <a href="/izjava-o-zastiti-podataka" target="_blank">Izjavu o zaštiti podataka</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Slažem se</a>
70            `,
71            sk: `
72To protect your personal data, we have deactivated the view and the associated call of the map service "Google Maps" by default. When using the map service "Google Maps", your personal data is processed by Google LLC (e.g. IP address), which is carried out in third countries (USA). The activation of the view requires your prior consent. If you wish to activate the map view, you can give your consent  <a onclick="giveMapsConsent(); location.reload()">here</a>. You can withdraw your consent at any time at the bottom of this page. For more information on data protection, please refer to our <a href="/zasady-ochrany-osobnych-udajov" target="_blank">privacy policy</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Agree now</a>
73            `,
74            by: `
75To protect your personal data, we have deactivated the view and the associated call of the map service "Google Maps" by default. When using the map service "Google Maps", your personal data is processed by Google LLC (e.g. IP address), which is carried out in third countries (USA). The activation of the view requires your prior consent. If you wish to activate the map view, you can give your consent  <a onclick="giveMapsConsent(); location.reload()">here</a>. You can withdraw your consent at any time at the bottom of this page. For more information on data protection, please refer to our <a href="/politika-konfidencialnosti" target="_blank">privacy policy</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Agree now</a>
76            `,
77            ge: `
78თქვენი პერსონალური მონაცემების დასაცავად, ჩვენ გავაუქმეთ „Google Maps“-ის ხედი და მასთან დაკავშირებული წვდომა რუკის სერვისებზე. როდესაც იყენებთ რუკის სერვისს - „Google Maps“-ს, თქვენს პერსონალურ მონაცემებს (მაგ. IP მისამართი) ამუშავებს Google LLC მესამე ქვეყნებში (აშშ). ხედის გააქტიურებისთვის საჭიროა თქვენი წინასწარი თანხმობა. თუ გსურთ რუკის ხედის გააქტიურება, შეგიძლიათ დაეთანხმოთ <a onclick="giveMapsConsent(); location.reload()">აქ</a>. თქვენ შეგიძლიათ გააუქმოთ თქვენი თანხმობა ნებისმიერ დროს ამ გვერდის ბოლოში. დამატებითი ინფორმაცია მონაცემთა დაცვის შესახებ შეგიძლიათ იხილოთ ჩვენს <a href="/footer-menu/privacy-policy-1" target="_blank">კონფიდენციალურობის პოლიტიკაში</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">ვეთანხმები</a>
79            `,
80            lt: `
81Siekdami apsaugoti jūsų asmeninius duomenis, mes išjungėme žemėlapių paslaugos Google Maps rodinį ir susijusius š
81aukinius. Kai jūs naudojatės žemėlapių paslauga Google Maps, jūsų asmeninius duomenis tvarko Google LLC (pvz., IP adresą), įsikūrusi trečiojoje šalyje (JAV). Norint suaktyvinti rodinį, būtinas išankstinis jūsų sutikimas. Jei norite aktyvuoti žemėlapio vaizdą, paspausdami šią <a onclick="giveMapsConsent(); location.reload()">nuorodą</a> galite duoti savo sutikimą. Šį sutikimą galite bet kada atšaukti šio puslapio apačioje, paspaudus atšaukimo mygtuką. Daugiau informacijos apie duomenų apsaugą rasite mūsų <a href="/privatumo-politika" target="_blank">Privatumo politikoje</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Sutinku dabar</a>
82            `,
83            hu: `
84Az Ön személyes adatainak védelme érdekében alapértelmezés szerint kikapcsoltuk a "Google Maps" térképszolgáltatás megjelenítését és a hozzá kapcsolódó egyéb szolgáltatásokat. A "Google Maps" térképszolgáltatás használata során az Ön személyes adatait a Google LLC dolgozza fel (pl. IP-cím), ami harmadik országokban (USA) történik. A nézet aktiválásához az Ön előzetes hozzájárulása szükséges. Ha szeretné aktiválni a térképes nézetet, <a onclick="giveMapsConsent(); location.reload()">itt</a> adhatja meg hozzájárulását. Hozzájárulását bármikor visszavonhatja az oldal alján. Az adatvédelemmel kapcsolatos további információkért kérjük, olvassa el <a href="/adatvedelmi-nyilatkozat" target="_blank">adatvédelmi szabályzatunkat</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Egyetértek</a>
85            `,
86            es: `
87Para proteger sus datos personales, hemos desactivado por defecto la vista y la llamada asociada del servicio de mapas "Google Maps". Al utilizar el servicio de mapas "Google Maps", sus datos personales son procesados por Google LLC (por ejemplo, la dirección IP), que se lleva a cabo en terceros países (EE.UU.). La activación de la vista requiere su consentimiento previo. Si desea activar la vista de mapa, puede dar su consentimiento <a onclick="giveMapsConsent(); location.reload()">aquí</a>. Puede retirar su consentimiento en cualquier momento . Para más información sobre la protección de datos, consulte nuestra <a href="/politica-de-privacidad" target="_blank">política de privacidad</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Aceptar ahora</a>
88            `,
89            si: `
90Da bi zaščitili vaše osebne podatke, smo deaktivirali prikaz in s tem povezan prikaz storitve zemljevidov "Google Maps". Pri uporabi storitve zemljevidov "Google Maps" vaše osebne podatke (npr. naslov IP) obdeluje družba Google LLC, kar se izvaja v zunanjih državah (ZDA). Za aktivacijo prikaza je potrebno vaše predhodno soglasje. Če želite aktivirati prikaz zemljevida, lahko soglasje podate <a onclick="giveMapsConsent(); location.reload()">tukaj</a>. Svoje soglasje lahko kadar koli prekličete na dnu te spletne strani. Več informacij o varstvu podatkov najdete v naši <a href="/politika-zasebnosti" target="_blank">politiki zasebnosti</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Sedaj se strinjam</a>
91            `,
92            cs: `
93Z důvodu ochrany vašich osobních údajů jsme ve výchozím nastavení deaktivovali zobrazení a související používání mapových služeb "Mapy Google". Při používání mapové služby "Mapy Google" jsou vaše osobní údaje zpracovávány společností Google LLC (např. IP adresa). Což je prováděno ve třetích zemích (USA). Aktivace zobrazení vyžaduje váš předchozí souhlas. Pokud si přejete zobrazení mapy aktivovat, můžete svůj souhlas udělit <a onclick="giveMapsConsent(); location.reload()">zde</a>. Svůj souhlas můžete kdykoli odvolat v dolní části této stránky. Další informace o ochraně osobních údajů naleznete v našich  <a href="/zasady-ochrany-osobnich-udaju" target="_blank">zásadách ochrany osobních údajů</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Odsouhlasit nyní</a>
94            `,
95            it: `
96Per proteggere i tuoi dati personali abbiamo per impostazione predefinita, disattivato la visualizzazione e l’attivazione del servizio di mappe "Google Maps". Quando si utilizza il servizio di mappe "Google Maps", i vostri dati personali (ad es. indirizzo IP) vengono elaborati da Google LLC in paesi terzi (USA).
97L'attivazione delle mappe richiede il tuo preventivo consenso. Se desideri attivare la visualizzazione delle mappe, puoi dare il tuo consenso <a onclick="giveMapsConsent(); location.reload()">qui</a>. Puoi revocare il tuo consenso in qualsiasi momento in  fondo a questa pagina. Per ulteriori informazioni sulla protezione dei dati, si prega di fare riferimento alla nostra <a href="/privacy-e-cookie-policy " target="_blank">privacy policy</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Accetta ora</a>
98            `,
99            hr: `
100Kako bismo zaštitili vaše osobne podatke, prema zadanim postavkama deaktivirali smo prikaz i povezani poziv kartografskog servisa "Google Maps". Prilikom korištenja kartografskog servisa "Google Maps", Vaše osobne podatke obrađuje Google LLC (npr. IP adresu), koja se provodi u trećim zemljama (SAD). Za aktivaciju pogleda potreban je vaš prethodni pristanak. Ukoliko želite aktivirati prikaz karte, svoju suglasnost možete dati <a onclick="giveMapsConsent(); location.reload()">ovdje</a>. Svoj pristanak možete povući u bilo kojem trenutku na dnu ove stranice. Za više informacija o zaštiti podataka pogledajte našu <a href="/izjava-o-zastiti-podataka " target="_blank">izjavu o zaštiti podataka</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Slažem se</a>
101            `,
102            ua: `
103Щоб захистити ваші персональні дані, ми за замовчуванням вимкнули перегляд і відповідний виклик картографічного сервісу «Google Maps». Під час використання картографічного сервісу «Google Maps» відбувається обробка ваших персональних даних Google LLC (наприклад, IP-адреси), яка здійснюється у третіх країнах (США).<br>
104Активація перегляду потребує вашої попередньої згоди. Якщо ви бажаєте активувати перегляд карти, ви можете надати згоду <a onclick="giveMapsConsent(); location.reload()">тут</a>. Ви можете відкликати свою згоду будь-коли внизу цієї сторінки. Для отримання додаткової інформації щодо захисту даних, будь ласка, ознайомтеся з нашою <a href="/politika-konfidenciinosti" target="_blank">Політикою конфіденційності</a>.<br><br>
105<a class="btn" onclick="giveMapsConsent(); location.reload()">Погодитися зараз</a>
106            `,
107        },
108        checkYes: {
109            de: `
110Sie stimmen der Verwendung von Google Maps derzeit zu. Klicken Sie auf die Checkbox um ihre Zustimmung zu widerrufen.
111            `,
112            en: `
113You currently agree to the use of Google Maps. Click on the checkbox to revoke your consent.
114            `,
115            ru: `
116You currently agree to the use of Google Maps. Click on the checkbox to revoke your consent.
117            `,
118            nl: `
119U gaat momenteel akkoord met het gebruik van Google Maps. Klik op het selectievakje om uw toestemming in te trekken.
120            `,
121            pl: `
122Wyrażasz aktualnie zgodę na korzystanie z Map Google. Kliknij pole wyboru, aby wycofać zgodę.
123            `,
124            lv: `
125Jūs pašlaik piekrītat Google Maps lietošanai. Noklikšķiniet uz izvēles laukuma, lai atsauktu savu piekrišanu.
126            `,
127            fr: `
128Vous acceptez actuellement l'utilisation de Google Maps. Cliquez sur la case à cocher pour retirer votre consentement.
129            `,
130            ee: `
131Te nõustute praegu Google Mapsi kasutamisega. Nõusoleku tühistamiseks klõpsake märkeruutu.
132            `,
133            ba: `
134Trenutno pristajete na korištenje Google mapa. Kliknite na potvrdni okvir da opozovete svoj pristanak.
135            `,
136            sk: `
137V súčasnosti súhlasíte s používaním služby Mapy Google. Kliknutím na zaškrtávacie políčko svoj súhlas odvoláte.
138            `,
139            by: `
140You currently agree to the use of Google Maps. Click on the checkbox to revoke your consent.
141            `,
142            ge: `
143ამჟამად თქვენ ეთანხმებით Google Maps-ის გამოყენებას. დააწკაპუნეთ მოსანიშნ ველზე თქვენი თანხმობის გასაუქმებლად.
144            `,
145            lt: `
146Jūs esate davęs sutikimą naudotis Google Maps. Jei norite atšaukti šį sutikimą, atitinkamai pažymėkite langelį.
147            `,
148            hu: `
149Ön jelenleg hozzájárul a Google Maps használatához. A hozzájárulás visszavonásához kattintson a jelölőnégyzetre.
150            `,
151            es: `
152Acepta el uso de Google Maps. Haga clic en la casilla de verificación para revocar su consentimiento.
153            `,
154            si: `
155Strinjate se z uporabo storitve Google Maps. Če želite preklicati soglasje, kliknite to polje.
156            `,
157            cs: `
158V současné době souhlasíte s používáním Map Google. Kliknutím na zaškrtávací políčko svůj souhlas zrušíte.
159            `,
160            it: `
161Stai accettando l'utilizzo di Google Maps. Seleziona la casella per revocare il tuo consenso.
162            `,
163            hr: `
164Ovime pristajete na korištenje Google karata. Kliknite na checkbox kako biste opozvali svoj pristanak.
165            `,
166            ua: `
167Ви наразі погоджуєтеся на використання Google Maps. Натисніть на прапорець, щоб відкликати свою згоду.
168            `,
169        },
170        checkNo: {
171            de: `
172Sie stimmen der Verwendung von Google Maps derzeit nicht zu. Klicken Sie auf die Checkbox um ihre Zustimmung zu erteilen.
173            `,
174            en: `
175You currently do not agree to the use of Google Maps. Click on the checkbox to give your consent.
176            `,
177            ru: `
178You currently do not agree to the use of Google Maps. Click on the checkbox to give your consent.
179            `,
180            nl: `
181U gaat momenteel niet akkoord met het gebruik van Google Maps. Klik op het selectievakje om uw toestemming te geven.
182            `,
183            pl: `
184Obecnie nie wyrażasz zgody na korzystanie z Map Google. Kliknij pole wyboru, aby wyrazić zgodę
185            `,
186            lv: `
187Jūs pašlaik nepiekrītat Google Maps lietošanai. Noklikšķiniet uz izvēles rūtiņas, lai sniegtu savu piekrišanu.
188            `,
189            fr: `
190Vous n'acceptez pas l'utilisation de Google Maps pour le moment. Cliquez sur la case à cocher pour donner votre consentement.
191            `,
192            ee: `
193Te ei nõustu praegu Google Mapsi kasutamisega. Nõusoleku andmiseks klõpsake märkeruutu.
194            `,
195            ba: `
196Trenutno ne pristajete na korištenje Google mapa. Kliknite na potvrdni okvir da date svoj pristanak.
197            `,
198            sk: `
199V súčasnosti nesúhlasíte s používaním služby Mapy Google. Kliknutím na zaškrtávacie políčko udelíte svoj súhlas.
200            `,
201            by: `
202You currently do not agree to the use of Google Maps. Click on the checkbox to give your consent.
203            `,
204            ge: `
205ამჟამად თქვენ არ ეთანხმებით Google Maps-ის გამოყენებას. დააწკაპუნეთ მოსანიშნ ველზე თქვენი თანხმობის მისაცემად.
206            `,
207            lt: `
208Jūs nesate davęs sutikimo naudotis Google Maps. Jei norite duoti šį sutikimą, atitinkamai pažymėkite langelį.
209            `,
210            hu: `
211Ön jelenleg nem ért egyet a Google Maps használatával. Kattintson a jelölőnégyzetre a hozzájárulás megadásához.
212            `,
213            es: `
214No está de acuerdo con el uso de Google Maps. Haga clic en la casilla de verificación para dar su consentimiento.
215            `,
216            si: `
217Ne strinjate se z uporabo Google Maps. V kolikor želite dati soglasje, kliknite na to polje. 
218            `,
219            cs: `
220V současné době s používáním Map Google nesouhlasíte. Kliknutím na zaškrtávací políčko souhlas s používáním potvrdíte.
221            `,
222            it: `
223Non stai accettando l'uso di Google Maps. Seleziona la casella per dare il tuo consenso
224            `,
225            hr: `
226Ovime ne pristajete na korištenje Google karata. Kliknite na checkbox kako biste dali svoj pristanak.
227            `,
228            ua: `
229Ви наразі не погоджуєтеся на використання Google Maps. Натисніть на прапорець, щоб надати свою згоду.
230            `,
231        }
232    }
233
234    const sublang = window.location.pathname.split('/')[1];
235    const tld = window.location.host.split('.')[2];
236
237    if (tld == "be") {
238        labels.banner.nl = `
239Om uw persoonlijke gegevens te beschermen, hebben we de weergave en de bijbehorende oproep van de kaartendienst "Google Maps" standaard uitgeschakeld. Bij het gebruik van de kaartendienst "Google Maps" worden uw persoonlijke gegevens verwerkt door Google LLC (bijv. IP-adres), wat in derde landen (VS) gebeurt. Voor het activeren van de weergave is uw voorafgaande toestemming vereist. Als u de kaartweergave wilt activeren, kunt u <a onclick="giveMapsConsent(); location.reload()">hier</a> uw toestemming geven. U kunt uw toestemming te allen tijde intrekken onderaan deze pagina. Meer informatie over gegevensbescherming vindt u in ons <a href="/privacyverklaring" target="_blank">privacy beleid</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Nu akkoord</a>
240        `,
241        labels.checkYes.nl = `
242Je gaat momenteel akkoord met het gebruik van Google Maps. Klik op het selectievakje om uw toestemming in te trekken.
243        `,
244        labels.checkNo.nl = `
245Je geeft momenteel geen toestemming voor het gebruik van Google Maps. Klik op het selectievakje om uw toestemming te geven.
246        `
247    }
248
249    if (tld == "be" && sublang == "be-fr") {
250        labels.banner.fr = `
251Pour protéger vos données personnelles, nous avons désactivé par défaut l'affichage et l'appel associé du service de cartographie "Google Maps". Lors de l'utilisation du service de cartographie "Google Maps", vos données personnelles sont traitées par Google LLC (par exemple l'adresse IP), ce qui est effectué dans des pays tiers (États-Unis). L'activation de la vue nécessite votre consentement préalable. Si vous souhaitez activer l'affichage de la carte, vous pouvez donner votre accord <a onclick="giveMapsConsent(); location.reload()">ici</a>. Vous pouvez retirer votre consentement à tout moment en bas de cette page. Pour plus d'informations sur la protection des données, veuillez consulter notre <a href="/be-fr/politique-de-confidentialite" target="_blank">politique de confidentialité</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Acceptez maintenant</a>
252        `,
253        labels.checkYes.fr = `
254Vous acceptez actuellement l'utilisation de Google Maps. Cliquez sur la case à cocher pour retirer votre consentement.
255        `,
256        labels.checkNo.fr = `
257Vous n'acceptez pas l'utilisation de Google Maps pour le moment. Cliquez sur la case à cocher pour donner votre consentement.
258        `
259    }
260
261    if (tld == "co") {
262        labels.banner.en = `
263To protect your personal data, we have deactivated the view and the associated call of the map service "Google Maps" by default. When using the map service "Google Maps", your personal data is processed by Google LLC (e.g. IP address), which is carried out in third countries (USA). The activation of the view requires your prior consent. If you wish to activate the map view, you can give your consent  <a onclick="giveMapsConsent(); location.reload()">here</a>. You can withdraw your consent at any time at the bottom of this page. For more information on data protection, please refer to our <a href="/data-policy " target="_blank">privacy policy</a>.<br><br><a class="btn" onclick="giveMapsConsent(); location.reload()">Agree now</a>
264        `,
265        labels.checkYes.en = `
266You currently agree to the use of Google Maps. Click on the checkbox to revoke your consent.
267        `,
268        labels.checkNo.en = `
269You currently do not agree to the use of Google Maps. Click on the checkbox to give your consent.
270        `
271    }
272
273    function loadScript(script, callback) {
274        const sn = document.createElement('script');
275        sn.src = script;
276        if (callback) {
277            sn.onload = callback;
278        }
279        document.head.appendChild(sn);
280    }
281    
282    window.lastInfoWindowIndex = null;
283    window.setLastInfoWindow = function(el) {
284        // events
285        if (typeof el === "number") {
286            lastInfoWindowIndex = el;
287            return;
288        }
289        // storelocator
290        const l1 = el.parentNode.parentNode.parentNode;
291        const l0 = el.parentNode.parentNode.parentNode.parentNode;
292        const i = Array.from(l0.children).findIndex(el => el === l1);
293        lastInfoWindowIndex = i;
294    }
295    
296    window.storeSearch = function() {
297        if (staticMap) return;
298        // shared
299        const searchWord = searchInput.value
300
301        // only caparolevents
302        let eventsMonth, eventsType;
303        if (eventsMonthSelect) {
304            eventsMonth = eventsMonthSelect.value
305        }
306        if (eventsTypeSelect) {
307            eventsType = eventsTypeSelect.value
308        }
309        
310        const obj = {
311            lastInfoWindowIndex: window.lastInfoWindowIndex,
312        }
313
314        if (searchWord) {
315            obj.lastSearchWord = searchWord;
316        }
317        
318        // only caparolevents
319        if (eventsMonth) {
320            obj.lastEventsMonth = eventsMonth;
321        }
322        // only caparolevents
323        if (eventsType) {
324            obj.lastEventsType = eventsType;
325        }
326        
327        localStorage.setItem('locatorState', JSON.stringify(obj));
328    }
329
330    window.giveMapsConsent = function() {
331        storeSearch();
332        localStorage.setItem('mapsConsent', true);
333    } 
334    window.revokeMapsConsent = function() {
335        storeSearch();
336        localStorage.removeItem('mapsConsent');
337    } 
338
339    window.addEventListener('load', () => {
340        // timeout for ios
341        setTimeout(() => {
342            let state = localStorage.getItem('locatorState');
343            if (state) {
344                localStorage.removeItem('locatorState');
345                state = JSON.parse(state);
346                if (eventsMonthSelect && state.lastEventsMonth) {
347                    eventsMonthSelect.value = state.lastEventsMonth
348                }
349                if (eventsTypeSelect && state.lastEventsType) {
350                    eventsTypeSelect.value = state.lastEventsType
351                }
352                if (state.lastSearchWord) {
353                    searchInput.value = state.lastSearchWord;
354                }
355                submitButton.click();
356
357                if (state.lastInfoWindowIndex !== undefined) {
358                    setTimeout(() => {
359                        const rowStorelocator = app.querySelector(`.result-content tbody > tr:nth-child(${state.lastInfoWindowIndex + 1})`)
360                        if (rowStorelocator) {
361                            rowStorelocator.querySelector('a').click();
362                        } else {
363                            // caparolevents
364                            const target = document.querySelector(`[onclick="openEventsinfo(${state.lastInfoWindowIndex});"]`);
365                            if (target) {
366                                target.click();
367                            }
368                        }
369                    }, 3500)
370                }
371            }
372        }, 1000)
373    });
374
375    // main/events
376    const consent = localStorage.getItem('mapsConsent');
377    // if consent load maps, else shim google api
378    if (!!consent) {
379        let cb = null;
380        (async() => {
381            if (staticMap) {
382                await new Promise(resolve => setTimeout(resolve, 1000));
383                cb = window.initContactMaps
384            }
385            loadScript(`https://maps.googleapis.com/maps/api/js?key=${apiKey}&v=3&libraries=geometry,places`, cb) 
386        })();
387    } else {
388        async function proxiedGeocode(address) {
389            const response = await fetch(`/index.php?type=1696231927&tx_caparolstorelocator_caparolstorelocator[address]=${encodeURIComponent(address)}`);
390            const data = await response.json();
391            return data;
392        }
393
394        window.lastGeocode = {
395            lat: null,
396            lng: null
397        }
398
399
400        window.google = {
401            maps: {
402                InfoWindow: class {},
403                StyledMapType: class {
404                    constructor() {
405                        this.mapTypes = {
406                            set: function () {}
407                        };
408                    }
409                },
410                GeocoderStatus: {
411                    OK: "OK"
412                },
413                LatLngBounds: class {
414                    constructor() {
415                        return {
416                            extend() {}
417                        };
418                    }
419                },
420                LatLng: class {
421                    constructor() {
422                        return {};
423                    }
424                },
425                Geocoder: class {
426                    constructor() {
427                        return {
428                            geocode(_, cb) {
429                                const address = document.querySelector('#searchInput, input#autocomplete').value;
430                                proxiedGeocode(address).then(data => {
431                                    cb(
432                                        [
433                                            {
434                                                geometry: {
435                                                    location: {
436                                                        lat() {
437                                                            return data.lat;
438                                                        },
439                                                        lng() {
440                                                            return data.lng;
441                                                        }
442                                                    }
443                                                }
444                                            }
445                                        ],
446                                        "OK"
447                                    );
448                                    window.lastGeocode.lat = data.lat;
449                                    window.lastGeocode.lng = data.lng;
450                                }).catch(_ => {
451                                        cb([], "ERROR");
452                                    });
453                            }
454                        };
455                    }
456                },
457                Map: class {
458                    constructor() {
459                        this.mapTypes = {
460                            set: function () {}
461                        };
462                    }
463                    setCenter() {}
464                    setZoom() {}
465                    getZoom() {}
466                    getCenter() {}
467                    setPosition() {}
468                    getDiv() {}
469                    fitBounds() {}
470                    setMapTypeId() {}
471                    panToBounds() {}
472                },
473                Marker: class {
474                    setPosition() {}
475                    setIcon() {}
476                    setMap() {}
477                    getMap() {}
478                    getPosition() {
479                        return {
480                            lat() {
481                                return window.lastGeocode.lat;
482                            },
483                            lng() {
484                                return window.lastGeocode.lng;
485                            }
486                        };
487                    }
488                },
489                event: {
490                    addListener: function () {},
491                    addListenerOnce: function () {},
492                    trigger: function () {}
493                },
494                places: {
495                    Autocomplete: class {}
496                },
497                MapTypeId: {
498                    ROADMAP: null
499                }
500            }
501        };
502    }
503
504    // banner/checkbox handling 
505    window.addEventListener('load', () => {
506        // timeout for ios
507        setTimeout(() => {
508            if (!consent) {
509                // disable getUserPosition. storelocator only
510                if (app.querySelector('.input-group-addon.geolocate')) {
511                    app.querySelector('.input-group-addon.geolocate').remove()
512                }
513
514                // ios..
515                let map = app.querySelector('#replyMap, .events-search-map');
516                if (staticMap) {
517                    map = app;
518                }
519                // replace maps with consent banner
520                if (map) {
521                    map.style = `
522                    display: flex;
523                    justify-content: center;
524                    align-items: center;
525                    padding: 30px;
526                    cursor: pointer;
527                    user-select: none;
528                    background: url('/typo3conf/ext/theme_caparol/Resources/Public/
528Images/map_blur_lighten.jpg');
529                    background-size: cover;
530                    background-position: center;
531                    height: 600px !important;
532                `
533                    map.innerHTML = `
534                    <div class="container consent">
535                        ${labels.banner[lang]}
536                    </div>
537           `
538                }
539            }
540
541            // consent give/revoke checkbox handling
542            const toggleConsent = document.createElement('div');
543            let tCInner = `<input type="checkbox" ${consent ? 'checked ' : ''} onclick="${consent ? 'revokeMapsConsent();' : 'giveMapsConsent();'}location.reload()">`;
544            if (consent) {
545                tCInner += `
546                    ${labels.checkYes[lang]}
547                `
548            } else {
549                tCInner += `
550                    ${labels.checkNo[lang]}
551                `
552            }
553            toggleConsent.innerHTML = tCInner;
554            toggleConsent.className = 'container';
555            toggleConsent.style = `
556                margin-top: 30px;
557                display: flex;
558                gap: 10px;
559            `
560
561            if (app.className.includes('tx-caparolevents')) {
562                // beneath second instance of events for events
563                toggleConsent.classList.add('hidden-xs')
564                document.querySelectorAll('.tx-caparolevents')[1].append(toggleConsent);
565            } else {
566                if (staticMap) app = app.parentNode;
567                app.append(toggleConsent);
568            }
569        }, 1000)
570    });
571})();
572
573// privatkunden
574(() => {
575    const consent = localStorage.getItem('mapsConsent');
576    if (document.body.id != 'page_87119') return;
577    if (consent) return;
578    // if no consent and privatkunden entry
579    window.addEventListener('load', () => {
580        // safety
581        setTimeout(() => {
582            const form = document.querySelector('#replyCaparolstorelocator form');
583            if (!form) return;
584            const input = form.querySelector('#searchInput');
585            if (!input) return;
586            form.addEventListener('submit', () => {
587                window.location.href = '/privatkunden/fachhandwerker-finden?address=' + input.value;
588            });
589        }, 1250);
590    });
591})();

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.