PageSourceSearch

https://www.sports.gouv.fr/sites/default/files/js/js_epujU82wKV5z5ayEorSeSwxjcZ3LR2YUlajz4chQy44.js

js sports.gouv.fr collected 2026-10-01 10:17:19 UTC 362,228 bytes, 8,735 lines download raw bytes

1/*jslint browser: true, evil: true */
2
3var scripts = document.getElementsByTagName('script'),
4    path = scripts[scripts.length - 1].src.split('?')[0],
5    tarteaucitronForceCDN = (tarteaucitronForceCDN === undefined) ? '' : tarteaucitronForceCDN,
6    cdn = (tarteaucitronForceCDN === '') ? path.split('/').slice(0, -1).join('/') + '/' : tarteaucitronForceCDN,
7    alreadyLaunch = (alreadyLaunch === undefined) ? 0 : alreadyLaunch,
8    tarteaucitronForceLanguage = (tarteaucitronForceLanguage === undefined) ? '' : tarteaucitronForceLanguage,
9    tarteaucitronForceExpire = (tarteaucitronForceExpire === undefined) ? '' : tarteaucitronForceExpire,
10    tarteaucitronCustomText = (tarteaucitronCustomText === undefined) ? '' : tarteaucitronCustomText,
11    // tarteaucitronExpireInDay: true for day(s) value - false for hour(s) value
12    tarteaucitronExpireInDay = (tarteaucitronExpireInDay === undefined || typeof tarteaucitronExpireInDay !== "boolean") ? true : tarteaucitronExpireInDay,
13    timeExpire = 31536000000,
14    tarteaucitronProLoadServices,
15    tarteaucitronNoAdBlocker = false;
16
17
18
19var tarteaucitron = {
20    "version": 20220322,
21    "cdn": cdn,
22    "user": {},
23    "lang": {},
24    "services": {},
25    "added": [],
26    "idprocessed": [],
27    "state": [],
28    "launch": [],
29    "parameters": {},
30    "isAjax": false,
31    "reloadThePage": false,
32    "events": {
33        "init": function () {},
34        "load": function () {},
35    },
36    "init": function (params) {
37        "use strict";
38        var origOpen;
39
40        tarteaucitron.parameters = params;
41        if (alreadyLaunch === 0) {
42            alreadyLaunch = 1;
43            if (window.addEventListener) {
44                window.addEventListener("load", function () {
45                    tarteaucitron.initEvents.loadEvent(false);
46                }, false);
47                window.addEventListener("scroll", function () {
48                    tarteaucitron.initEvents.scrollEvent();
49                }, false);
50
51                window.addEventListener("keydown", function (evt) {
52                    tarteaucitron.initEvents.keydownEvent(false, evt);
53                }, false);
54                window.addEventListener("hashchange", function () {
55                    tarteaucitron.initEvents.hashchangeEvent();
56                }, false);
57                window.addEventListener("resize", function () {
58                    tarteaucitron.initEvents.resizeEvent();
59                }, false);
60            } else {
61                window.attachEvent("onload", function () {
62                    tarteaucitron.initEvents.loadEvent(true);
63                });
vendor: 5,716 bytes, lines 63-196
63
64                window.attachEvent("onscroll", function () {
65                    tarteaucitron.initEvents.scrollEvent();
66                });
67                window.attachEvent("onkeydown", function (evt) {
68                    tarteaucitron.initEvents.keydownEvent(true, evt);
69
70                });
71                window.attachEvent("onhashchange", function () {
72                    tarteaucitron.initEvents.hashchangeEvent();
73                });
74                window.attachEvent("onresize", function () {
75                    tarteaucitron.initEvents.resizeEvent();
76                });
77            }
78
79            if (typeof XMLHttpRequest !== 'undefined') {
80                origOpen = XMLHttpRequest.prototype.open;
81                XMLHttpRequest.prototype.open = function () {
82
83                    if (window.addEventListener) {
84                        this.addEventListener("load", function () {
85                            if (typeof tarteaucitronProLoadServices === 'function') {
86                                tarteaucitronProLoadServices();
87                            }
88                        }, false);
89                    } else if (typeof this.attachEvent !== 'undefined') {
90                        this.attachEvent("onload", function () {
91                            if (typeof tarteaucitronProLoadServices === 'function') {
92                                tarteaucitronProLoadServices();
93                            }
94                        });
95                    } else {
96                        if (typeof tarteaucitronProLoadServices === 'function') {
97                            setTimeout(tarteaucitronProLoadServices, 1000);
98                        }
99                    }
100
101                    try {
102                        origOpen.apply(this, arguments);
103                    } catch (err) {}
104                };
105            }
106        }
107
108        if(tarteaucitron.events.init) {
109            tarteaucitron.events.init();
110        }
111    },
112    "initEvents": {
113        "loadEvent": function (isOldBrowser) {
114            tarteaucitron.load();
115            tarteaucitron.fallback(['tarteaucitronOpenPanel'], function (elem) {
116                if (isOldBrowser) {
117                    elem.attachEvent("onclick", function (event) {
118                        tarteaucitron.userInterface.openPanel();
119                        event.preventDefault();
120                    });
121                } else {
122                    elem.addEventListener("click", function (event) {
123                        tarteaucitron.userInterface.openPanel();
124                        event.preventDefault();
125                    }, false);
126                }
127            }, true);
128        },
129        "keydownEvent": function (isOldBrowser, evt) {
130            if (evt.keyCode === 27) {
131                tarteaucitron.userInterface.closePanel();
132            }
133
134            if (isOldBrowser) {
135                if ( evt.keyCode === 9 && focusableEls.indexOf(evt.target) >= 0) {
136                    if ( evt.shiftKey ) /* shift + tab */ {
137                        if (document.activeElement === firstFocusableEl) {
138                            lastFocusableEl.focus();
139                            evt.preventDefault();
140                        }
141                    } else /* tab */ {
142                        if (document.activeElement === lastFocusableEl) {
143                            firstFocusableEl.focus();
144                            evt.preventDefault();
145                        }
146                    }
147                }
148            }
149        },
150        "hashchangeEvent": function () {
151            if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
152                tarteaucitron.userInterface.openPanel();
153            }
154        },
155        "resizeEvent": function () {
156            var tacElem = document.getElementById('tarteaucitron');
157            var tacCookieContainer = document.getElementById('tarteaucitronCookiesListContainer');
158
159            if (tacElem && tacElem.style.display === 'block') {
160                tarteaucitron.userInterface.jsSizing('main');
161            }
162
163            if (tacCookieContainer && tacCookieContainer.style.display === 'block') {
164                tarteaucitron.userInterface.jsSizing('cookie');
165            }
166        },
167        "scrollEvent": function () {
168            var scrollPos = window.pageYOffset || document.documentElement.scrollTop;
169            var heightPosition;
170            var tacPercentage = document.getElementById('tarteaucitronPercentage');
171            var tacAlertBig = document.getElementById('tarteaucitronAlertBig');
172
173            if (tacAlertBig && !tarteaucitron.highPrivacy) {
174                if (tacAlertBig.style.display === 'block') {
175                    heightPosition = tacAlertBig.offsetHeight + 'px';
176
177                    if (scrollPos > (screen.height * 2)) {
178                        tarteaucitron.userInterface.respondAll(true);
179                    } else if (scrollPos > (screen.height / 2)) {
180                        document.getElementById('tarteaucitronDisclaimerAlert').innerHTML = '<strong>' + tarteaucitron.lang.alertBigScroll + '</strong> ' + tarteaucitron.lang.alertBig;
181                    }
182
183                    if (tacPercentage) {
184                        if (tarteaucitron.orientation === 'top') {
185                            tacPercentage.style.top = heightPosition;
186                        } else {
187                            tacPercentage.style.bottom = heightPosition;
188                        }
189                        tacPercentage.style.width = ((100 / (screen.height * 2)) * scrollPos) + '%';
190                    }
191                }
192            }
193        },
194    },
195    "load": function () {
196        "use strict";
197        var cdn = tarteaucitron.cdn,
198            language = tarteaucitron.getLanguage(),
199            useJSDelivrMinifiedJS = (cdn.indexOf('cdn.jsdelivr.net') >= 0),
200            pathToLang = cdn + 'lang/tarteaucitron.' + language + (useJSDelivrMinifiedJS ? '.min' : '') + '.js?v=' + tarteaucitron.version,
201            pathToServices = cdn + 'tarteaucitron.services' + (useJSDelivrMinifiedJS ? '.min' : '') + '.js?v=' + tarteaucitron.version,
202            linkElement = document.createElement('link'),
203            defaults = {
204                "adblocker": false,
205                "hashtag": '#tarteaucitron',
206                "cookieName": 'tarteaucitron',
207                "highPrivacy": true,
208                "orientation": "middle",
209                "bodyPosition": "bottom",
210                "removeCredit": false,
211                "showAlertSmall": false,
212                "showIcon": true,
213                "iconPosition": "BottomRight",
214                "cookieslist": false,
215                "handleBrowserDNTRequest": false,
216                "DenyAllCta": true,
217                "AcceptAllCta" : true,
218                "moreInfoLink": true,
219                "privacyUrl": "",
220                "useExternalCss": false,
221                "useExternalJs": false,
222                "mandatory": true,
223                "mandatoryCta": true,
224                "closePopup": false,
225                "groupServices": false,
226                "serviceDefaultState": 'wait',
227            },
228            params = tarteaucitron.parameters;
229
230        // Don't show the middle bar if we are on the privacy policy or more page
231        if (((tarteaucitron.parameters.readmoreLink !== undefined && window.location.href == tarteaucitron.parameters.readmoreLink) || window.location.href == tarteaucitron.parameters.privacyUrl) && tarteaucitron.parameters.orientation == "middle") {
232            tarteaucitron.parameters.orientation = "bottom";
233        }
234
235        // Step -1
236        if (typeof tarteaucitronCustomPremium !== 'undefined') {
237            tarteaucitronCustomPremium();
238        }
239
240        // Step 0: get params
241        if (params !== undefined) {
242
243            for (var k in defaults) {
244                if(!tarteaucitron.parameters.hasOwnProperty(k)) {
245                    tarteaucitron.parameters[k] = defaults[k];
246                }
247            }
248        }
249
250        // global
251        tarteaucitron.orientation = tarteaucitron.parameters.orientation;
252        tarteaucitron.hashtag = tarteaucitron.parameters.hashtag;
253        tarteaucitron.highPrivacy = tarteaucitron.parameters.highPrivacy;
254        tarteaucitron.handleBrowserDNTRequest = tarteaucitron.parameters.handleBrowserDNTRequest;
255        tarteaucitron.customCloserId = tarteaucitron.parameters.customCloserId;
256
257        // Step 1: load css
258        if ( !tarteaucitron.parameters.useExternalCss ) {
259            linkElement.rel = 'stylesheet';
260            linkElement.type = 'text/css';
261            linkElement.href = cdn + 'css/tarteaucitron' + (useJSDelivrMinifiedJS ? '.min' : '') + '.css?v=' + tarteaucitron.version;
262            document.getElementsByTagName('head')[0].appendChild(linkElement);
263        }
264        // Step 2: load language and services
265        tarteaucitron.addInternalScript(pathToLang, '', function () {
266
267          if(tarteaucitronCustomText !== ''){
268            tarteaucitron.lang = tarteaucitron.AddOrUpdate(tarteaucitron.lang, tarteaucitronCustomText);
269          }
270            tarteaucitron.addInternalScript(pathToServices, '', function () {
271
272                // css for the middle bar TODO: add it on the css file
273                if (tarteaucitron.orientation === 'middle') {
274                    var customThemeMiddle = document.createElement('style'),
275                        cssRuleMiddle = 'div#tarteaucitronRoot.tarteaucitronBeforeVisible:before {content: \'\';position: fixed;width: 100%;height: 100%;background: white;top: 0;left: 0;z-index: 999;opacity: 0.5;}div#tarteaucitronAlertBig:before {content: \'' + tarteaucitron.lang.middleBarHead + '\';font-size: 35px;}body #tarteaucitronRoot div#tarteaucitronAlertBig {width: 60%;min-width: 285px;height: auto;margin: auto;left: 50%;top: 50%;transform: translate(-50%, -50%);box-shadow: 0 0 9000px #000;border-radius: 20px;padding: 35px 25px;}
275span#tarteaucitronDisclaimerAlert {padding: 0 30px;}#tarteaucitronRoot span#tarteaucitronDisclaimerAlert {margin: 10px 0 30px;display: block;text-align: center;font-size: 21px;}@media screen and (max-width: 900px) {div#tarteaucitronAlertBig button {margin: 0 auto 10px!important;display: block!important;}}';
276
277                    customThemeMiddle.type = 'text/css';
278                    if (customThemeMiddle.styleSheet) {
279                        customThemeMiddle.styleSheet.cssText = cssRuleMiddle;
280                    } else {
281                        customThemeMiddle.appendChild(document.createTextNode(cssRuleMiddle));
282                    }
283                    document.getElementsByTagName('head')[0].appendChild(customThemeMiddle);
284                }
285
286                // css for the popup bar TODO: add it on the css file
287                if (tarteaucitron.orientation === 'popup') {
288                    var customThemePopup = document.createElement('style'),
289                        cssRulePopup = 'div#tarteaucitronAlertBig:before {content: \'' + tarteaucitron.lang.middleBarHead + '\';font-size: 22px;}body #tarteaucitronRoot div#tarteaucitronAlertBig {bottom: 0;top: auto!important;left: 8px!important;right: auto!important;transform: initial!important;border-radius: 5px 5px 0 0!important;max-width: 250px!important;width: Calc(100% - 16px)!important;min-width: 0!important;padding: 25px 0;}span#tarteaucitronDisclaimerAlert {padding: 0 30px;font-size: 15px!important;}#tarteaucitronRoot span#tarteaucitronDisclaimerAlert {margin: 10px 0 30px;display: block;text-align: center;font-size: 21px;}div#tarteaucitronAlertBig button {margin: 0 auto 10px!important;display: block!important;width: Calc(100% - 60px);box-sizing: border-box;}';
290
291                    customThemePopup.type = 'text/css';
292                    if (customThemePopup.styleSheet) {
293                        customThemePopup.styleSheet.cssText = cssRulePopup;
294                    } else {
295                        customThemePopup.appendChild(document.createTextNode(cssRulePopup));
296                    }
297                    document.getElementsByTagName('head')[0].appendChild(customThemePopup);
298                }
299
300                var body = document.body,
301                    div = document.createElement('div'),
302                    html = '',
303                    index,
304                    orientation = 'Top',
305                    cat = ['ads', 'analytic', 'api', 'comment', 'social', 'support', 'video', 'other'],
306                    i;
307
308                cat = cat.sort(function (a, b) {
309                    if (tarteaucitron.lang[a].title > tarteaucitron.lang[b].title) { return 1; }
310                    if (tarteaucitron.lang[a].title < tarteaucitron.lang[b].title) { return -1; }
311                    return 0;
312                });
313
314                // Step 3: prepare the html
315                html += '<div role="heading" aria-level="1" id="tac_title" class="tac_visually-hidden">' + tarteaucitron.lang.title + '</div>';
316                html += '<div id="tarteaucitronPremium"></div>';
317                if (tarteaucitron.reloadThePage) {
318                    html += '<button type="button" id="tarteaucitronBack" aria-label="' + tarteaucitron.lang.close + ' (' + tarteaucitron.lang.reload + ')" title="' + tarteaucitron.lang.close + ' (' + tarteaucitron.lang.reload + ')"></button>';
319                } else {
320                    html += '<button type="button" id="tarteaucitronBack" aria-label="' + tarteaucitron.lang.close + '" title="' + tarteaucitron.lang.close + '"></button>';
321                }
322                html += '<div id="tarteaucitron" role="dialog" aria-modal="true" aria-labelledby="dialogTitle" tabindex="-1">';
323                if (tarteaucitron.reloadThePage) {
324                    html += '   <button type="button" id="tarteaucitronClosePanel" aria-label="' + tarteaucitron.lang.close + ' (' + tarteaucitron.lang.reload + ')" title="' + tarteaucitron.lang.close + ' (' + tarteaucitron.lang.reload + ')">';
325                } else {
326                    html += '   <button type="button" id="tarteaucitronClosePanel">';
327                }
328                html += '       ' + tarteaucitron.lang.close;
329                html += '   </button>';
330                html += '   <div id="tarteaucitronServices">';
331                html += '      <div class="tarteaucitronLine tarteaucitronMainLine" id="tarteaucitronMainLineOffset">';
vendor: 11,410 bytes, lines 332-473
332                html += '         <span class="tarteaucitronH1" role="heading" aria-level="1" id="dialogTitle">'+ tarteaucitron.lang.title + '</span>';
333                html += '         <div id="tarteaucitronInfo">';
334                html += '         ' + tarteaucitron.lang.disclaimer;
335                if (tarteaucitron.parameters.privacyUrl !== "") {
336                    html += '   <br/><br/>';
337                    html += '   <button type="button" id="tarteaucitronPrivacyUrlDialog" role="link">';
338                    html += '       ' + tarteaucitron.lang.privacyUrl;
339                    html += '   </button>';
340                }
341                html += '         </div>';
342                html += '         <div class="tarteaucitronName">';
343                html += '            <span class="tarteaucitronH2" role="heading" aria-level="2">' + tarteaucitron.lang.all + '</span>';
344                html += '         </div>';
345                html += '         <div class="tarteaucitronAsk" id="tarteaucitronScrollbarAdjust">';
346                html += '            <button type="button" id="tarteaucitronAllAllowed" class="tarteaucitronAllow">';
347                html += '               <span class="tarteaucitronCheck" aria-hidden="true"></span> ' + tarteaucitron.lang.allowAll;
348                html += '            </button> ';
349                html += '            <button type="button" id="tarteaucitronAllDenied" class="tarteaucitronDeny">';
350                html += '               <span class="tarteaucitronCross" aria-hidden="true"></span> ' + tarteaucitron.lang.denyAll;
351                html += '            </button>';
352                html += '         </div>';
353                html += '      </div>';
354                html += '      <div class="tarteaucitronBorder">';
355                html += '         <div class="clear"></div><ul>';
356
357
358                if (tarteaucitron.parameters.mandatory == true) {
359                   html += '<li id="tarteaucitronServicesTitle_mandatory">';
360                   html += '<div class="tarteaucitronTitle">';
361                   html += '   <button type="button" tabindex="-1"><span class="tarteaucitronPlus" aria-hidden="true"></span> ' + tarteaucitron.lang.mandatoryTitle + '</button>';
362                   html += '</div>';
363                   html += '<ul id="tarteaucitronServices_mandatory">';
364                   html += '<li class="tarteaucitronLine">';
365                   html += '   <div class="tarteaucitronName">';
366                   html += '       <span class="tarteaucitronH3" role="heading" aria-level="3">' + tarteaucitron.lang.mandatoryText + '</span>';
367                   html += '       <span class="tarteaucitronListCookies" aria-hidden="true"></span><br/>';
368                   html += '   </div>';
369                   if (tarteaucitron.parameters.mandatoryCta == true) {
370                       html += '   <div class="tarteaucitronAsk">';
371                       html += '       <button type="button" class="tarteaucitronAllow" tabindex="-1" disabled>';
372                       html += '           <span class="tarteaucitronCheck" aria-hidden="true"></span> ' + tarteaucitron.lang.allow;
373                       html += '       </button> ';
374                       html += '       <button type="button" class="tarteaucitronDeny" style="visibility:hidden" tabindex="-1">';
375                       html += '           <span class="tarteaucitronCross" aria-hidden="true"></span> ' + tarteaucitron.lang.deny;
376                       html += '       </button> ';
377                       html += '   </div>';
378                   }
379                   html += '</li>';
380                   html += '</ul></li>';
381                }
382
383                for (i = 0; i < cat.length; i += 1) {
384                    html += '         <li id="tarteaucitronServicesTitle_' + cat[i] + '" class="tarteaucitronHidden">';
385                    html += '            <div class="tarteaucitronTitle" role="heading" aria-level="2">';
386                    html += '               <button type="button" class="catToggleBtn" aria-expanded="false" data-cat="tarteaucitronDetails' + cat[i] + '"><span class="tarteaucitronPlus" aria-hidden="true"></span> ' + tarteaucitron.lang[cat[i]].title + '</button>';
387                    html += '            </div>';
388                    html += '            <div id="tarteaucitronDetails' + cat[i] + '" class="tarteaucitronDetails tarteaucitronInfoBox">';
389                    html += '               ' + tarteaucitron.lang[cat[i]].details;
390                    html += '            </div>';
391                    html += '         <ul id="tarteaucitronServices_' + cat[i] + '"></ul></li>';
392                }
393                html += '             <li id="tarteaucitronNoServicesTitle" class="tarteaucitronLine">' + tarteaucitron.lang.noServices + '</li>';
394                html += '         </ul>';
395                html += '         <div class="tarteaucitronHidden tarteaucitron-spacer-20" id="tarteaucitronScrollbarChild"></div>';
396                if (tarteaucitron.parameters.removeCredit === false) {
397                    html += '     <a class="tarteaucitronSelfLink" href="https://tarteaucitron.io/" rel="nofollow noreferrer noopener" target="_blank" title="tarteaucitron ' + tarteaucitron.lang.newWindow + '"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAAAeCAYAAAAWwoEYAAADl0lEQVRoge1Y0W3bQAx9CjKARlC+9GVUmqDJBHEmiDyB6wkcTxBngtgTxJ0gzgQW4C/9aYOmE6g4lTQo+k6y3Rb94QOERNQd+cjj8XiGwWAwGAwGg8FgMBgMBoPB8F8RNRXe+whEKe7c36ZCAeCRxC9Rig2PUd8kPgAsoxSfQ3YAzAA8D/HwYYCb05kBKKO0teFkmbC1jlKsAnq/Abjn+QBqAIsoRS30ttwG/HNz1wH/XIxWTicLdvtW7xTAGEAMtP685CNsBTe2d/BLydfXAG57SEnMAST0zgYZSUCPk02bCvkJduIzuJzDLfPolbY+tLKmar+/8+IRePy4qdpE03qHuH8fipFb4N2+XdA3AJ/0vaQxt7s9FvkIS2XvtqnwM0rxpOQfbnE5G2LhTCmUO2fHIngOmcv+KG3HafDchB6ntwjYqenR2PqC7sOZ3E7FXHB0vqxoFyUyLh7OEH7LOGouvhhN3eIBeKXv0n5MsufdHqXcwYR5U2EbpV35lSspVPJmQj4TcgRK7jTg5IzmPUhhwM5a2WHUFCx+NgiDucmgh7idikLovHFlL0pxQ9xzX+IIP9Y6FrJsqhjlQpZRAkFVDCjZfcCHt6bqJDmuh5ylCWx0RVnk3oumaknqTH5sqrY0fBWyULaHUIgAgxb46MxV3DbieAhxOxUxjSuljig9lMQ/Bcfoi9BTEv9aLORSndVxYOH525sUDC6u2gWxcNzBNRxPanyh3ktKinOgy3WoxPbtUM0t6RkbQnzBnFPgi9GCOEubY9UffIryz9iKRe8s/FUfEWosJJGxagp85bpUO3VywQ46lOtAWfNxKwa4JXQ+628+bpxYGXXMzp5rXH401VEyXwIdowXFaKWSMFHvMTVmGnc+P3oXV2QOiBCfgex8QtcQCbcQE/H+eoHzrkFo1KM7zVO4jVVj5s6lRiWF7zyXyfRMc97J3tzj87mYqZ7E2YjzUct9GUi4tjHLR8dVkBLjQcuHFleWvQfRNEhFR7uX7pkctOwvZXsft7sAtyldEUIN2UTeLxnEfxKYswzdi88BdbZ8hifUoSMftQvP+muRwN6+Q3DeqqRExP9QmTtcheiHh0Ot1x2i2km1bP9pbufw5zZdyWsOrh7vQae5OZWbsMv30pi7cd/CKj3coPEVaCP4Zhx4eQWhOZ1Y9MTXGyP8/iGjEyfa1T4fO/4Lea9vBoPBYDAYDAaDwWAwGAwGwz8GgF8siXCCbrSRhgAAAABJRU5ErkJggg==" alt="tarteaucitron.io" /></a>';
398                }
399                html += '       </div>';
400                html += '   </div>';
401                html += '</div>';
402
403                if (tarteaucitron.parameters.orientation === 'bottom') {
404                    orientation = 'Bottom';
405                }
406
407                if (tarteaucitron.parameters.highPrivacy && !tarteaucitron.parameters.AcceptAllCta) {
408                    html += '<div tabindex="-1" id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '">';
409                    //html += '<div class="tarteaucitronAlertBigWrapper">';
410                    html += '   <span id="tarteaucitronDisclaimerAlert">';
411                    html += '       ' + tarteaucitron.lang.alertBigPrivacy;
412                    html += '   </span>';
413                    //html += '   <span class="tarteaucitronAlertBigBtnWrapper">';
414                    html += '   <button type="button" id="tarteaucitronPersonalize" aria-label="' + tarteaucitron.lang.personalize + ' ' + tarteaucitron.lang.modalWindow + '" title="' + tarteaucitron.lang.personalize + ' ' + tarteaucitron.lang.modalWindow + '">';
415                    html += '       ' + tarteaucitron.lang.personalize;
416                    html += '   </button>';
417
418                    if (tarteaucitron.parameters.privacyUrl !== "") {
419                        html += '   <button role="link" type="button" id="tarteaucitronPrivacyUrl">';
420                        html += '       ' + tarteaucitron.lang.privacyUrl;
421                        html += '   </button>';
422                    }
423
424                    //html += '   </span>';
425                    //html += '</div>';
426                    html += '</div>';
427                } else {
428                    html += '<div tabindex="-1" id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + '">';
429                    //html += '<div class="tarteaucitronAlertBigWrapper">';
430                    html += '   <span id="tarteaucitronDisclaimerAlert">';
431
432                    if (tarteaucitron.parameters.highPrivacy) {
433                        html += '       ' + tarteaucitron.lang.alertBigPrivacy;
434                    } else {
435                        html += '       ' + tarteaucitron.lang.alertBigClick + ' ' + tarteaucitron.lang.alertBig;
436                    }
437
438                    html += '   </span>';
439                    //html += '   <span class="tarteaucitronAlertBigBtnWrapper">';
440                    html += '   <button type="button" class="tarteaucitronCTAButton tarteaucitronAllow" id="tarteaucitronPersonalize2">';
441                    html += '       <span class="tarteaucitronCheck" aria-hidden="true"></span> ' + tarteaucitron.lang.acceptAll;
442                    html += '   </button>';
443
444
445                    if (tarteaucitron.parameters.DenyAllCta) {
446                        if (tarteaucitron.reloadThePage) {
447                                    html += '   <button type="button" class="tarteaucitronCTAButton tarteaucitronDeny" id="tarteaucitronAllDenied2" aria-label="' + tarteaucitron.lang.denyAll + ' (' + tarteaucitron.lang.reload + ')" title="' + tarteaucitron.lang.denyAll + ' (' + tarteaucitron.lang.reload + ')">';
448                        } else {
449                                    html += '   <button type="button" class="tarteaucitronCTAButton tarteaucitronDeny" id="tarteaucitronAllDenied2">';
450                        }
451                                    html += '       <span class="tarteaucitronCross" aria-hidden="true"></span> ' + tarteaucitron.lang.denyAll;
452                                    html += '   </button>';
453                                    //html += '   <br/><br/>';
454                    }
455
456                    html += '   <button type="button" id="tarteaucitronCloseAlert" aria-label="' + tarteaucitron.lang.personalize + ' ' + tarteaucitron.lang.modalWindow + '" title="' + tarteaucitron.lang.personalize + ' ' + tarteaucitron.lang.modalWindow + '">';
457                    html += '       ' + tarteaucitron.lang.personalize;
458                    html += '   </button>';
459
460                    if (tarteaucitron.parameters.privacyUrl !== "") {
461                        html += '   <button type="button" id="tarteaucitronPrivacyUrl" role="link">';
462                        html += '       ' + tarteaucitron.lang.privacyUrl;
463                        html += '   </button>';
464                    }
465
466                    //html += '   </span>';
467                    //html += '</div>';
468                    html += '</div>';
469                    html += '<div id="tarteaucitronPercentage"></div>';
470                }
471
472                if (tarteaucitron.parameters.showIcon === true) {
473                    html += '<div id="tarteaucitronIcon" class="tarteaucitronIcon' + tarteaucitron.parameters.iconPosition + '" style="display: block
vendor: 4,897 bytes, lines 473-501
473">';
474                    html += '   <button type="button" id="tarteaucitronManager" aria-label="' + tarteaucitron.lang.icon + ' ' + tarteaucitron.lang.modalWindow + '" title="' + tarteaucitron.lang.icon + ' ' + tarteaucitron.lang.modalWindow + '">';
475                    html += '       <img src="' + (tarteaucitron.parameters.iconSrc ? tarteaucitron.parameters.iconSrc : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAGA0lEQVRoge1a207bWBRdBtJwLYZhKDMVmlSK1LxNkPo+ZH6g8B6p5AuALwC+APoFoVLeoT8whPeRSt+CZKmZVu3AiIsRlEtCktGyjy8xzuXYhvahS0JJHJ/4rLP3XnuffcAPfGdQ7mM6jRLSAF4BxqsbewB2lRS2o35mpEQaJcwCyANIdLi1DGBNSWEzqmdHRqRRwjqAJclhtExOSUEP+/xIiDRKhhUWfL7ShTtBuJnqcw+/z4Ql0xNmMEwSSz4kuNIzSgpjSsqYJP/GeE185wYJroedRyiLNEpGLLzzrHSuk+83SgbxvOcyyRaDziWsRVZkSRDinpzPbwVGWIucuohsKynMS47fAQyls/BMSRmKJo3AFhG5wm2N1wF+Zs3zebbFfR0RxrXcJHQlgH+LMW616pR/WiIMEXfW3mtzXyeEGWsjKot8c4TOI98L+iKaR5PS6IUk88RLAO9F8UjrbYoYMOosNavpfmODIiwRXRR/G3ohaWVo1RU/c30jV8ab2mV8qVGzHWBOLyTLZiWs5Rolg/C3ySOi0tXP/k4aEwOwSBKPJs7Rp16ABJTe+p1xVX0It/owqqdDEMRoqd3RFxqDPh20Ig6VEPVC0i5RSCD+6wl6HlW7GksSlUMV11/GrUs5NasFLusDE9ELSVphXemtJwaT/8JyIRvxNNCfBmIiNdR04LII3DSrbe0yjqvyJF/ppptqVlt+MCLCEh/oOkPPP6N38Mb5cnQBGFsEqmXg5j3QMwoMzwGnr4HYbybBq13gZAOom/FO63zdf2qQArCsZrUN2TlJy69eSDKYV+6Q4MpP75ivHzPA53ngaBW4eGuSOt0A/lsGPmXMz0+3TFJcTfFbPfFbfnwlhON+iQhlWmA82CQ4ocQ7c6KcfL3DHuls0yT6Sx4YnLXJDCQOIRRv5yGIJBgP8Sdisj2qubpc5UGJmo+W49ifVmzL8HcpGhQPvZCUKiCliIhEN0tr2OCqHuSA8gwQ/92MkU7gxEmeVqGrTTgpxPXbUrtGWYus0I9thRIraagRQUIDf7Qn4yZhKRiFQIyhfMfUr3yblokVWSJ6k8xSnc7eNN/RjowfCYiFoDUFer1S3gW6JiJ8Nt30EMbEhU+vzSIztuRYjRLsR8IHLjlf7HZ+MrWWEXxNmbvapt4jGSqZRYSkGUetSNTPzHsui5YMQ2ajJUNks6mw4wT54Ok2ShnzzIPCUGshzawCRKy5FqvrTZe0RWzQGvw79m67XZjKmxJrLsICjtZa55gxXy+6F4sYsEtxTqhXdRTLC8ulSDaWoCLsolfN+8YUhOsJV709H7Cudr0LlVEtzqBcN+shEyThdR941OnAbF8pirKJqXyupTRTtQSReiVmXW1j7oBErB0d9xM2WEd5J9ZKYtuR4WKwwBSoORbpGrJ5ZI9lt71irJmGX1px0JYE26uNErawr2zfIcP4OHEKXm66PA3wjpCNEfpJunI4muifPjKvsFCkGjExTq63yxMJsZNMYF/J4HmDC5A3Yq36jy0ClePHVhwuu/b1HSFlEfHD5ZtD1bEK44Qu1mWys6tbWmZyPWckzlPTGiRw/XHCuk+q4Rek+mVrVL/UppwrdDEGNV2kpyuhccgc5Oxm9vWnn+19vJrVpLor0kTUrGacMplb1CfOFyTD4o9uNrHqr2Z+ZMSp1c2XcVSORnh9Q81q3k599ETgkNnjg0nGzi10K7rX+bZpHbrblPcY5A4Zxk2xcjzCvTpd9027Aa0QtouyyrKFRR6D/04DwkFGvHPXM3Qda/Jb4nPgI7hQLVM1q5HIBt2MzQNa57Z1DiiLAGa5Mi+O4Sz3Mpp6laPHO6InII3ITnX1QtI+EOX+m9ZxleOZ/j9PiuKoLi3aqXPuEoSye/Vhkm+LalbLtHhMS0R6zu7aZ3vP2jOjL7QVv4McxhcDnZIelAQibGIbULOapf3PuE1Vs9qeaOTdkVKr00gCQiw4NlBzDvf1Lxx+uP5r3Dgv5KQZRzWn+GRwz8jmDS8itUg7iB6vLuJCF5Uty4A9mVKkFR6MiJDachST/oHvHgD+B4SoUIitpF05AAAAAElFTkSuQmCC') + '" alt="' + tarteaucitron.lang.icon + ' ' + tarteaucitron.lang.modalWindow + '" title="' + tarteaucitron.lang.icon + ' ' + tarteaucitron.lang.modalWindow + '">';
476                    html += '   </button>';
477                    html += '</div>';
478                }
479
480                if (tarteaucitron.parameters.showAlertSmall === true) {
481                    html += '<div id="tarteaucitronAlertSmall" class="tarteaucitronAlertSmall' + orientation + '">';
482                    html += '   <button type="button" id="tarteaucitronManager" aria-label="' + tarteaucitron.lang.alertSmall + ' ' + tarteaucitron.lang.modalWindow + '" title="' + tarteaucitron.lang.alertSmall + ' ' + tarteaucitron.lang.modalWindow + '">';
483                    html += '       ' + tarteaucitron.lang.alertSmall;
484                    html += '       <span id="tarteaucitronDot">';
485                    html += '           <span id="tarteaucitronDotGreen"></span>';
486                    html += '           <span id="tarteaucitronDotYellow"></span>';
487                    html += '           <span id="tarteaucitronDotRed"></span>';
488                    html += '       </span>';
489                    if (tarteaucitron.parameters.cookieslist === true) {
490                        html += '   </button><!-- @whitespace';
491                        html += '   --><button type="button" id="tarteaucitronCookiesNumber" aria-expanded="false" aria-controls="tarteaucitronCookiesListContainer">0</button>';
492                        html += '   <div id="tarteaucitronCookiesListContainer">';
493                        if (tarteaucitron.reloadThePage) {
494                            html += '       <button type="button" id="tarteaucitronClosePanelCookie" aria-label="' + tarteaucitron.lang.close + ' (' + tarteaucitron.lang.reload + ')" title="' + tarteaucitron.lang.close + ' (' + tarteaucitron.lang.reload + ')">';
495                        } else {
496                            html += '       <button type="button" id="tarteaucitronClosePanelCookie">';
497                        }
498                        html += '           ' + tarteaucitron.lang.close;
499                        html += '       </button>';
500                        html += '       <div class="tarteaucitronCookiesListMain" id="tarteaucitronCookiesTitle">';
501                        html += '            <span class="tarteaucitronH2" role="heading" aria-level="
vendor: 4,431 bytes, lines 501-587
5012" id="tarteaucitronCookiesNumberBis">0 cookie</span>';
502                        html += '       </div>';
503                        html += '       <div id="tarteaucitronCookiesList"></div>';
504                        html += '    </div>';
505                    } else {
506                        html += '   </div>';
507                    }
508                    html += '</div>';
509                }
510
511                tarteaucitron.addInternalScript(tarteaucitron.cdn + 'advertising' + (useJSDelivrMinifiedJS ? '.min' : '') + '.js?v=' + tarteaucitron.version, '', function () {
512                    if (tarteaucitronNoAdBlocker === true || tarteaucitron.parameters.adblocker === false) {
513
514                        // create a wrapper container at the same level than tarteaucitron so we can add an aria-hidden when tarteaucitron is opened
515                        /*var wrapper = document.createElement('div');
516                        wrapper.id = "tarteaucitronContentWrapper";
517
518                        while (document.body.firstChild)
519                        {
520                            wrapper.appendChild(document.body.firstChild);
521                        }
522
523                        // Append the wrapper to the body
524                        document.body.appendChild(wrapper);*/
525
526                        div.id = 'tarteaucitronRoot';
527                        if (tarteaucitron.parameters.bodyPosition === 'top') {
528                            // Prepend tarteaucitron: #tarteaucitronRoot first-child of the body for better accessibility
529                            var bodyFirstChild = body.firstChild;
530                            body.insertBefore(div, bodyFirstChild);
531                        }
532                        else {
533                            // Append tarteaucitron: #tarteaucitronRoot last-child of the body
534                            body.appendChild(div, body);
535                        }
536
537                        div.setAttribute('data-nosnippet', 'true');
538                        div.setAttribute('lang', language);
539                        div.setAttribute('role', 'region');
540                        div.setAttribute('aria-labelledby', 'tac_title');
541
542                        div.innerHTML = html;
543
544                        //ie compatibility
545                        var tacRootAvailableEvent;
546                        if(typeof(Event) === 'function') {
547                            tacRootAvailableEvent = new Event("tac.root_available");
548                        }else if (typeof(document.createEvent) === 'function'){
549                            tacRootAvailableEvent = document.createEvent('Event');
550                            tacRootAvailableEvent.initEvent("tac.root_available", true, true);
551                        }
552                        //end ie compatibility
553
554                        if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacRootAvailableEvent);}
555
556                        if (tarteaucitron.job !== undefined) {
557                            tarteaucitron.job = tarteaucitron.cleanArray(tarteaucitron.job);
558                            for (index = 0; index < tarteaucitron.job.length; index += 1) {
559                                tarteaucitron.addService(tarteaucitron.job[index]);
560                            }
561                        } else {
562                            tarteaucitron.job = [];
563                        }
564
565                        if (tarteaucitron.job.length === 0) {
566                            tarteaucitron.userInterface.closeAlert();
567                        }
568
569                        tarteaucitron.isAjax = true;
570
571                        tarteaucitron.job.push = function (id) {
572
573                            // ie <9 hack
574                            if (typeof tarteaucitron.job.indexOf === 'undefined') {
575                                tarteaucitron.job.indexOf = function (obj, start) {
576                                    var i,
577                                        j = this.length;
578                                    for (i = (start || 0); i < j; i += 1) {
579                                        if (this[i] === obj) { return i; }
580                                    }
581                                    return -1;
582                                };
583                            }
584
585                            if (tarteaucitron.job.indexOf(id) === -1) {
586                                Array.prototype.push.call(this, id);
587                            }
588                            tarteaucitron.launch[id] = false;
589                            tarteaucitron.addService(id);
590                        };
591
592                        if (document.location.hash === tarteaucitron.hashtag && tarteaucitron.hashtag !== '') {
593                            tarteaucitron.userInterface.openPanel();
594                        }
595
596                        tarteaucitron.cookie.number();
597                        setInterval(tarteaucitron.cookie.number, 60000);
598                    }
599                }, tarteaucitron.parameters.adblocker);
600
601                if (tarteaucitron.parameters.adblocker === true) {
602                    setTimeout(function () {
603                        if (tarteaucitronNoAdBlocker === false) {
604                            html = '<div id="tarteaucitronAlertBig" class="tarteaucitronAlertBig' + orientation + ' tarteaucitron-display-block" role="alert" aria-live="polite">';
605                            html += '   <p id="tarteaucitronDisclaimerAlert">';
606                            html += '       ' + tarteaucitron.lang.adblock + '<br/>';
607                            html += '       <strong>' + tarteaucitron.lang.adblock_call + '</strong>';
608                            html += '   </p>';
609                            html += '   <button type="button" class="tarteaucitronCTAButton" id="tarteaucitronCTAButton">';
610                            html += '       ' + tarteaucitron.lang.reload;
611                            html += '   </button>';
612                            html += '</div>';
613                            html += '<div role="heading" aria-level="1" id="tac_title" class="tac_visually-hidden">' + tarteaucitron.lang.title + '</div>';
614                            html += '<div id="tarteaucitronPremium"></div>';
615
616                            div.id = 'tarteaucitronRoot';
617                            if (tarteaucitron.parameters.bodyPosition === 'top') {
618                                // Prepend tarteaucitron: #tarteaucitronRoot first-child of the body for better accessibility
619                                var bodyFirstChild = body.firstChild;
620                                body.insertBefore(div, bodyFirstChild);
621                            }
622                            else {
623                                // Append tarteaucitron: #tarteaucitronRoot last-child of the body
624                                body.appendChild(div, body);
625                            }
626
627                            div.setAttribute('data-nosnippet', 'true');
628                            div.setAttribute('lang', language);
629                            div.setAttribute('role', 'region');
630                            div.setAttribute('aria-labelledby', 'tac_title');
631
632                            div.innerHTML = html;
633                        }
634                    }, 1500);
635                }
636                if(tarteaucitron.parameters.closePopup === true){
637                    setTimeout(function() {
638                        var closeElement = document.getElementById('tarteaucitronAlertBig'),
639                            closeSpan = document.createElement('span');
640                        if (closeElement) {
641                            closeSpan.textContent = 'X';
642                            closeSpan.setAttribute('id', "tarteaucitronCloseCross");
643                            closeElement.insertBefore(closeSpan, closeElement.firstElementChild);
644                        }
645                    }, 100);
646                }
647
648
649                if(tarteaucitron.parameters.groupServices === true) {
650                    var tac_group_style = document.createElement('style');
651                    tac_group_style.innerHTML = '.tarteaucitronTitle{display:none}';
652                    document.head.appendChild(tac_group_style);
653                    var cats = document.querySelectorAll('[id^="tarteaucitronServicesTitle_"]')
654                    Array.prototype.forEach.call(cats, function(item) {
655                        var cat = item.getAttribute('id').replace(/^(tarteaucitronServicesTitle_)/, "");
656                        if (cat !== "mandatory") {
657                            var html = '';
658                            html += '<li  class="tarteaucitronLine">';
659                            html += '   <div class="tarteaucitronName">';
vendor: 3,927 bytes, lines 660-705
660                            html += '       <span class="tarteaucitronH3" role="heading" aria-level="2">'+tarteaucitron.lang[cat].title+'</span>';
661                            html += '       <span>'+tarteaucitron.lang[cat].details+'</span>';
662                            html += '   <button type="button" aria-expanded="false" class="tarteaucitron-toggle-group" id="tarteaucitron-toggle-group-'+cat+'">'+tarteaucitron.lang.alertSmall+' ('+document.getElementById("tarteaucitronServices_"+cat).childElementCount+')</button>';
663                            html += '   </div>';
664                            html += '   <div class="tarteaucitronAsk" id="tarteaucitron-group-'+cat+'">';
665                            html += '       <button type="button" aria-label="' + tarteaucitron.lang.allow + ' ' + tarteaucitron.lang[cat].title + '" class="tarteaucitronAllow" id="tarteaucitron-accept-group-'+cat+'">';
666                            html += '           <span class="tarteaucitronCheck" aria-hidden="true"></span> ' + tarteaucitron.lang.allow;
667                            html += '       </button> ';
668                            html += '       <button type="button" aria-label="' + tarteaucitron.lang.deny + ' ' + tarteaucitron.lang[cat].title + '" class="tarteaucitronDeny" id="tarteaucitron-reject-group-'+cat+'">';
669                            html += '           <span class="tarteaucitronCross" aria-hidden="true"></span> ' + tarteaucitron.lang.deny;
670                            html += '       </button>';
671                            html += '   </div>';
672                            html += '</li>';
673                            var ul = document.createElement('ul');
674                            ul.innerHTML = html;
675                            item.insertBefore(ul, item.querySelector('#tarteaucitronServices_'+cat+''));
676                            document.querySelector('#tarteaucitronServices_' + cat).style.display = 'none';
677                            tarteaucitron.addClickEventToId("tarteaucitron-toggle-group-" + cat, function () {
678                                tarteaucitron.userInterface.toggle('tarteaucitronServices_' + cat);
679                               if (document.getElementById('tarteaucitronServices_' + cat).style.display == 'block') {
680                                    tarteaucitron.userInterface.addClass('tarteaucitronServicesTitle_' + cat, 'tarteaucitronIsExpanded');
681                                    document.getElementById('tarteaucitron-toggle-group-'+cat).setAttribute('aria-expanded', 'true');
682                                } else {
683                                    tarteaucitron.userInterface.removeClass('tarteaucitronServicesTitle_' + cat, 'tarteaucitronIsExpanded');
684                                    document.getElementById('tarteaucitron-toggle-group-'+cat).setAttribute('aria-expanded', 'false');
685                                }
686                            });
687                            tarteaucitron.addClickEventToId("tarteaucitron-accept-group-" + cat, function () {
688                                tarteaucitron.userInterface.respondAll(true, cat);
689                            });
690                            tarteaucitron.addClickEventToId("tarteaucitron-reject-group-" + cat, function () {
691                                tarteaucitron.userInterface.respondAll(false, cat);
692                            });
693                        }
694                    });
695                }
696                tarteaucitron.userInterface.color("", true);
697
698                // add a little timeout to be sure everything is accessible
699                setTimeout(function () {
700
701                    // Setup events
702                    tarteaucitron.addClickEventToId("tarteaucitronCloseCross", function () {
703                        tarteaucitron.userInterface.closeAlert();
704                    });
705                    tarteaucitron.addClickEventToId("tarteaucitronPersonalize", function () {
706                        tarteaucitron.userInterface.openPanel();
707                    });
708                    tarteaucitron.addClickEventToId("tarteaucitronPersonalize2", function () {
709                        tarteaucitron.userInterface.respondAll(true);
710                    });
711                    tarteaucitron.addClickEventToId("tarteaucitronManager", function () {
712                        tarteaucitron.userInterface.openPanel();
713                    });
714                    tarteaucitron.addClickEventToId("tarteaucitronBack", function () {
715                        tarteaucitron.userInterface.closePanel();
716                    });
717                    tarteaucitron.addClickEventToId("tarteaucitronClosePanel", function () {
718                        tarteaucitron.userInterface.closePanel();
719                    });
720                    tarteaucitron.addClickEventToId("tarteaucitronClosePanelCookie", function () {
721                        tarteaucitron.userInterface.closePanel();
722                    });
723                    tarteaucitron.addClickEventToId("tarteaucitronPrivacyUrl", function () {
724                        document.location = tarteaucitron.parameters.privacyUrl;
725                    });
726                    tarteaucitron.addClickEventToId("tarteaucitronPrivacyUrlDialog", function () {
727                        document.location = tarteaucitron.parameters.privacyUrl;
728                    });
729                    tarteaucitron.addClickEventToId("tarteaucitronCookiesNumber", function () {
730                        tarteaucitron.userInterface.toggleCookiesList();
731                    });
732                    tarteaucitron.addClickEventToId("tarteaucitronAllAllowed", function () {
733                        tarteaucitron.userInterface.respondAll(true);
734                    });
735                    tarteaucitron.addClickEventToId("tarteaucitronAllDenied", function () {
736                        tarteaucitron.userInterface.respondAll(false);
737                    });
738                    tarteaucitron.addClickEventToId("tarteaucitronAllDenied2", function () {
739                        tarteaucitron.userInterface.respondAll(false, '', true);
740                        if (tarteaucitron.reloadThePage === true) {
741                            window.location.reload();
742                        }
743                    });
744                    tarteaucitron.addClickEventToId("tarteaucitronCloseAlert", function () {
vendor: 4,909 bytes, lines 745-822
745                        tarteaucitron.userInterface.openPanel();
746                    });
747                    tarteaucitron.addClickEventToId("tarteaucitronCTAButton", function () {
748                        location.reload();
749                    });
750                    var toggleBtns = document.getElementsByClassName("catToggleBtn"), i;
751                    for (i = 0; i < toggleBtns.length; i++) {
752                        toggleBtns[i].dataset.index = i;
753                        tarteaucitron.addClickEventToElement(toggleBtns[i], function () {
754                            tarteaucitron.userInterface.toggle('tarteaucitronDetails' + cat[this.dataset.index], 'tarteaucitronInfoBox');
755                            if (document.getElementById('tarteaucitronDetails' + cat[this.dataset.index]).style.display === 'block') {
756                                this.setAttribute('aria-expanded', 'true');
757                            } else {
758                                this.setAttribute('aria-expanded', 'false');
759                            }
760                            return false;
761                        });
762                    }
763
764                    var allowBtns = document.getElementsByClassName("tarteaucitronAllow");
765                    for (i = 0; i < allowBtns.length; i++) {
766                        tarteaucitron.addClickEventToElement(allowBtns[i], function () {
767                            tarteaucitron.userInterface.respond(this, true);
768                        });
769                    }
770                    var denyBtns = document.getElementsByClassName("tarteaucitronDeny");
771                    for (i = 0; i < denyBtns.length; i++) {
772                        tarteaucitron.addClickEventToElement(denyBtns[i], function () {
773                            tarteaucitron.userInterface.respond(this, false);
774                        });
775                    }
776                    if(tarteaucitron.events.load) {
777                        tarteaucitron.events.load();
778                    }
779                }, 500);
780
781            });
782        });
783    },
784    "addService": function (serviceId) {
785        "use strict";
786        var html = '',
787            s = tarteaucitron.services,
788            service = s[serviceId],
789            cookie = tarteaucitron.cookie.read(),
790            hostname = document.location.hostname,
791            hostRef = document.referrer.split('/')[2],
792            isNavigating = (hostRef === hostname && window.location.href !== tarteaucitron.parameters.privacyUrl),
793            isAutostart = (!service.needConsent),
794            isWaiting = (cookie.indexOf(service.key + '=wait') >= 0),
795            isDenied = (cookie.indexOf(service.key + '=false') >= 0),
796            isAllowed = ((cookie.indexOf(service.key + '=true') >= 0) || (!service.needConsent && cookie.indexOf(service.key + '=false') < 0)),
797            isResponded = (cookie.indexOf(service.key + '=false') >= 0 || cookie.indexOf(service.key + '=true') >= 0),
798            isDNTRequested = (navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1" || window.doNotTrack === "1"),
799            currentStatus = (isAllowed) ? tarteaucitron.lang.allowed : tarteaucitron.lang.disallowed,
800            state = (undefined !== service.defaultState) ? service.defaultState :
801                    (undefined !== tarteaucitron.parameters.serviceDefaultState ? tarteaucitron.parameters.serviceDefaultState : 'wait');
802
803
804        if (tarteaucitron.added[service.key] !== true) {
805            tarteaucitron.added[service.key] = true;
806
807            html += '<li id="' + service.key + 'Line" class="tarteaucitronLine">';
808            html += '   <div class="tarteaucitronName">';
809            html += '       <span class="tarteaucitronH3" role="heading" aria-level="3">' + service.name + '</span>';
810            html += '       <span class="tacCurrentStatus" id="tacCurrentStatus' + service.key + '">'+currentStatus+'</span>';
811            html += '       <span class="tarteaucitronReadmoreSeparator"> - </span>';
812            html += '       <span id="tacCL' + service.key + '" class="tarteaucitronListCookies"></span><br/>';
813            if (tarteaucitron.parameters.moreInfoLink == true) {
814
815                var link = 'https://tarteaucitron.io/service/' + service.key + '/';
816                if (service.readmoreLink !== undefined && service.readmoreLink !== '') {
817                    link = service.readmoreLink;
818                }
819                if (tarteaucitron.parameters.readmoreLink !== undefined && tarteaucitron.parameters.readmoreLink !== '') {
820                    link = tarteaucitron.parameters.readmoreLink;
821                }
822                html += '       <a href="' + link + '" target="_blank" rel="noreferrer noopener nofollow" title="' + tarteaucitron.lang.more + ' : ' + tarteaucitron.lang.cookieDetail + ' ' + service.name + ' ' + tarteaucitron.lang.ourSite + ' ' + tarteaucitron.lang.newWindow +'" 
822class="tarteaucitronReadmoreInfo">';
823                html += '           ' + tarteaucitron.lang.more;
824                html += '       </a>';
825                html += '       <span class="tarteaucitronReadmoreSeparator"> - </span>';
826                html += '       <a href="' + service.uri + '" target="_blank" rel="noreferrer noopener" title="' + tarteaucitron.lang.source + ' ' + service.name + ' ' + tarteaucitron.lang.newWindow + '" class="tarteaucitronReadmoreOfficial">';
827                html += '           ' + tarteaucitron.lang.source;
828                html += '       </a>';
829            }
830
831            html += '   </div>';
832            html += '   <div class="tarteaucitronAsk">';
833            html += '       <button type="button" aria-label="' + tarteaucitron.lang.allow + ' ' + service.name + '" id="' + service.key + 'Allowed" class="tarteaucitronAllow">';
834            html += '           <span class="tarteaucitronCheck" aria-hidden="true"></span> ' + tarteaucitron.lang.allow;
835            html += '       </button> ';
836            html += '       <button type="button" aria-label="' + tarteaucitron.lang.deny + ' ' + service.name + '" id="' + service.key + 'Denied" class="tarteaucitronDeny">';
837            html += '           <span class="tarteaucitronCross" aria-hidden="true"></span> ' + tarteaucitron.lang.deny;
838            html += '       </button>';
839            html += '   </div>';
840            html += '</li>';
841
842            tarteaucitron.userInterface.css('tarteaucitronServicesTitle_' + service.type, 'display', 'block');
843
844            if (document.getElementById('tarteaucitronServices_' + service.type) !== null) {
845                document.getElementById('tarteaucitronServices_' + service.type).innerHTML += html;
846            }
847
848            tarteaucitron.userInterface.css('tarteaucitronNoServicesTitle', 'display', 'none');
849
850            tarteaucitron.userInterface.order(service.type);
851
852            tarteaucitron.addClickEventToId(service.key + 'Allowed', function () {
853                tarteaucitron.userInterface.respond(this, true);
854            });
855
856            tarteaucitron.addClickEventToId(service.key + 'Denied', function () {
857                tarteaucitron.userInterface.respond(this, false);
858            });
859        }
860
861        tarteaucitron.pro('!' + service.key + '=' + isAllowed);
862
863        // allow by default for non EU
864        if (isResponded === false && tarteaucitron.user.bypass === true) {
865            isAllowed = true;
866            tarteaucitron.cookie.create(service.key, true);
867        }
868
869        if ((!isResponded && (isAutostart || (isNavigating && isWaiting)) && !tarteaucitron.highPrivacy) || isAllowed) {
870            if (!isAllowed || (!service.needConsent && cookie.indexOf(service.key + '=false') < 0)) {
871                tarteaucitron.cookie.create(service.key, true);
872            }
873            if (tarteaucitron.launch[service.key] !== true) {
874                tarteaucitron.launch[service.key] = true;
875                if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + service.key + "_") < 0) { service.js(); }
876                tarteaucitron.sendEvent(service.key + '_loaded');
877            }
878            tarteaucitron.state[service.key] = true;
879            tarteaucitron.userInterface.color(service.key, true);
880        } else if (isDenied) {
881            if (typeof service.fallback === 'function') {
882                if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + service.key + "_") < 0) { service.fallback(); }
883            }
884            tarteaucitron.state[service.key] = false;
885            tarteaucitron.userInterface.color(service.key, false);
886        } else if (!isResponded && isDNTRequested && tarteaucitron.handleBrowserDNTRequest) {
887            tarteaucitron.cookie.create(service.key, 'false');
888            if (typeof service.fallback === 'function') {
889                if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + service.key + "_") < 0) { service.fallback(); }
890            }
891            tarteaucitron.state[service.key] = false;
892            tarteaucitron.userInterface.color(service.key, false);
893        } else if (!isResponded) {
894            tarteaucitron.cookie.create(service.key, state);
895            if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + service.key + "_") < 0) {
896                if(true === state && typeof service.js === 'function') {
897                    service.js();
898                } else if (typeof service.fallback === 'function') {
899                    service.fallback();
900                }
901            }
902
903            tarteaucitron.userInterface.color(service.key, state);
904
905            if( 'wait' === state ) {
906                tarteaucitron.userInterface.openAlert();
907            }
908        }
909
910        tarteaucitron.cookie.checkCount(service.key);
911        tarteaucitron.sendEvent(service.key + '_added')
912    },
913    "sendEvent" : function(event_key) {
914        if(event_key !== undefined) {
915            //ie compatibility
916            var send_event_item;
917            if(typeof(Event) === 'function') {
918                send_event_item = new Event(event_key);
919            }else if (typeof(document.createEvent) === 'function'){
920                send_event_item = document.createEvent('Event');
921                send_event_item.initEvent(event_key, true, true);
922            }
923            //end ie compatibility
924
925            document.dispatchEvent(send_event_item);
926        }
927    },
928    "cleanArray": function cleanArray(arr) {
929        "use strict";
930        var i,
931            len = arr.length,
932            out = [],
933            obj = {},
934            s = tarteaucitron.services;
935
936        for (i = 0; i < len; i += 1) {
937            if (!obj[arr[i]]) {
938                obj[arr[i]] = {};
939                if (tarteaucitron.services[arr[i]] !== undefined) {
940                    out.push(arr[i]);
941                }
942            }
943        }
944
945        out = out.sort(function (a, b) {
946            if (s[a].type + s[a].key > s[b].type + s[b].key) { return 1; }
947            if (s[a].type + s[a].key < s[b].type + s[b].key) { return -1; }
948            return 0;
949        });
950
951        return out;
952    },
953    "userInterface": {
954        "css": function (id, property, value) {
955            "use strict";
956            if (document.getElementById(id) !== null) {
957
958                if (property == "display" && value == "none" && (id == "tarteaucitron" || id == "tarteaucitronBack" || id == "tarteaucitronAlertBig")) {
959                    document.getElementById(id).style["opacity"] = "0";
960
961                    setTimeout(function() {document.getElementById(id).style[property] = value;}, 200);
962                } else {
963
964                    document.getElementById(id).style[property] = value;
965
966                    if (property == "display" && value == "block" && (id == "tarteaucitron" || id == "tarteaucitronAlertBig")) {
967                        document.getElementById(id).style["opacity"] = "0";
968                        setTimeout(function() {document.getElementById(id).style["opacity"] = "1";}, 1);
969                    }
970
971                    if (property == "display" && value == "block" && id == "tarteaucitronBack") {
972                        document.getElementById(id).style["opacity"] = "0";
973                        setTimeout(function() {document.getElementById(id).style["opacity"] = "0.7";}, 1);
974                    }
975                }
976            }
977        },
978        "addClass": function (id, className) {
979            "use strict";
980            if (document.getElementById(id) !== null && document.getElementById(id).classList !== undefined) {
981                document.getElementById(id).classList.add(className);
982            }
983        },
984        "removeClass": function (id, className) {
985            "use strict";
986            if (document.getElementById(id) !== null && document.getElementById(id).classList !== undefined) {
987                document.getElementById(id).classList.remove(className);
988            }
989        },
990        "respondAll": function (status, type, allowSafeAnalytics) {
991            "use strict";
992            var s = tarteaucitron.services,
993                service,
994                key,
995                index = 0;
996
997            for (index = 0; index < tarteaucitron.job.length; index += 1) {
998
999                if (typeof type !== 'undefined' && type !== '' && s[tarteaucitron.job[index]].type !== type) {
1000                    continue;
1001                }
1002
1003                if (allowSafeAnalytics && typeof s[tarteaucitron.job[index]].safeanalytic !== "undefined" && s[tarteaucitron.job[index]].safeanalytic === true) {
1004                    continue;
1005                }
1006
1007                service = s[tarteaucitron.job[index]];
1008                key = service.key;
1009                if (tarteaucitron.state[key] !== status) {
1010                    if (status === false && tarteaucitron.launch[key] === true) {
1011                        tarteaucitron.reloadThePage = true;
1012                        if (tarteaucitron.checkIfExist('tarteaucitronClosePanel')) {
1013                            var ariaCloseValue = document.getElementById('tarteaucitronClosePanel').textContent.trim() + ' (' + tarteaucitron.lang.reload + ')';
1014                            document.getElementById('tarteaucitronClosePanel').setAttribute("aria-label", ariaCloseValue);
1015                            document.getElementById('tarteaucitronClosePanel').setAttribute("title", ariaCloseValue);
1016                        }
1017                    }
1018                    if (tarteaucitron.launch[key] !== true && status === true) {
1019
1020                        tarteaucitron.pro('!' + key + '=engage');
1021
1022                        tarteaucitron.launch[key] = true;
1023                        if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + key + "_") < 0) { tarteaucitron.services[key].js(); }
1024                        tarteaucitron.sendEvent(key + '_loaded');
1025                    }
1026                    var itemStatusElem = document.getElementById('tacCurrentStatus'+key);
1027                    if(status == true){
1028                        itemStatusElem.innerHTML = tarteaucitron.lang.allowed;
1029                        tarteaucitron.sendEvent(key + '_allowed');
1030                    }else{
1031                        itemStatusElem.innerHTML = tarteaucitron.lang.disallowed;
1032                        tarteaucitron.sendEvent(key + '_disallowed');
1033                    }
1034                    tarteaucitron.state[key] = status;
1035                    tarteaucitron.cookie.create(key, status);
1036                    tarteaucitron.userInterface.color(key, status);
1037                }
1038            }
1039        },
1040        "respond": function (el, status) {
1041            "use strict";
1042            if (el.id === '') {
1043                return;
1044            }
1045            var key = el.id.replace(new RegExp("(Eng[0-9]+|Allow|Deni)ed", "g"), '');
1046
1047            if (key.substring(0, 13) === 'tarteaucitron' || key === '') {return;}
1048
1049            // return if same state
1050            if (tarteaucitron.state[key] === status) {
1051                return;
1052            }
1053
1054            if (status === false && tarteaucitron.launch[key] === true) {
1055                tarteaucitron.reloadThePage = true;
1056                if (tarteaucitron.checkIfExist('tarteaucitronClosePanel')) {
1057                    var ariaCloseValue = document.getElementById('tarteaucitronClosePanel').textContent.trim() + ' (' + tarteaucitron.lang.reload + ')';
1058                    document.getElementById('tarteaucitronClosePanel').setAttribute("aria-label", ariaCloseValue);
1059                    document.getElementById('tarteaucitronClosePanel').setAttribute("title", ariaCloseValue);
1060                }
1061            }
1062
1063            // if not already launched... launch the service
1064            if (status === true) {
1065                if (tarteaucitron.launch[key] !== true) {
1066
1067                    tarteaucitron.pro('!' + key + '=engage');
1068
1069                    tarteaucitron.launch[key] = true;
1070                    if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + key + "_") < 0) { tarteaucitron.services[key].js(); }
1071                    tarteaucitron.sendEvent(key + '_loaded');
1072                }
1073            }
1074            var itemStatusElem = document.getElementById('tacCurrentStatus'+key);
1075            if(status == true){
1076                itemStatusElem.innerHTML = tarteaucitron.lang.allowed;
1077                tarteaucitron.sendEvent(key + '_allowed');
1078            }else{
1079                itemStatusElem.innerHTML = tarteaucitron.lang.disallowed;
1080                tarteaucitron.sendEvent(key + '_disallowed');
1081            }
1082            tarteaucitron.state[key] = status;
1083            tarteaucitron.cookie.create(key, status);
1084            tarteaucitron.userInterface.color(key, status);
1085        },
1086        "color": function (key, status) {
1087            "use strict";
1088            var c = 'tarteaucitron',
1089                nbDenied = 0,
1090                nbPending = 0,
1091                nbAllowed = 0,
1092                sum = tarteaucitron.job.length,
1093                index,
1094                s = tarteaucitron.services;
1095
1096            if (key !== "") {
1097
1098            if (status === true) {
1099                tarteaucitron.userInterface.addClass(key + 'Line', 'tarteaucitronIsAllowed');
1100                tarteaucitron.userInterface.removeClass(key + 'Line', 'tarteaucitronIsDenied');
1101                document.getElementById(key + 'Allowed').setAttribute('aria-pressed', 'true');
1102                document.getElementById(key + 'Denied').setAttribute('aria-pressed', 'false');
1103            } else if (status === false) {
1104                tarteaucitron.userInterface.removeClass(key + 'Line', 'tarteaucitronIsAllowed');
1105                tarteaucitron.userInterface.addClass(key + 'Line', 'tarteaucitronIsDenied');
1106                document.getElementById(key + 'Allowed').setAttribute('aria-pressed', 'false');
1107                document.getElementById(key + 'Denied').setAttribute('aria-pressed', 'true');
1108            } else {
1109                document.getElementById(key + 'Allowed').setAttribute('aria-pressed', 'false');
1110                document.getElementById(key + 'Denied').setAttribute('aria-pressed', 'false');
1111            }
1112
1113            // check if all services are allowed
1114            var sumToRemove = 0;
1115            for (index = 0; index < sum; index += 1) {
1116
1117                if (typeof s[tarteaucitron.job[index]].safeanalytic !== "undefined" && s[tarteaucitron.job[index]].safeanalytic === true) {
1118                    sumToRemove += 1;
1119                    continue;
1120                }
1121
1122                if (tarteaucitron.state[tarteaucitron.job[index]] === false) {
1123                    nbDenied += 1;
1124                } else if (tarteaucitron.state[tarteaucitron.job[index]] === undefined) {
1125                    nbPending += 1;
1126                } else if (tarteaucitron.state[tarteaucitron.job[index]] === true) {
1127                    nbAllowed += 1;
1128                }
1129            }
1130            sum -= sumToRemove;
1131
1132            tarteaucitron.userInterface.css(c + 'DotGreen', 'width', ((100 / sum) * nbAllowed) + '%');
1133            tarteaucitron.userInterface.css(c + 'DotYellow', 'width', ((100 / sum) * nbPending) + '%');
1134            tarteaucitron.userInterface.css(c + 'DotRed', 'width', ((100 / sum) * nbDenied) + '%');
1135
vendor: 16,388 bytes, lines 1136-1472
1136            if (nbDenied === 0 && nbPending === 0) {
1137                tarteaucitron.userInterface.removeClass(c + 'AllDenied', c + 'IsSelected');
1138                tarteaucitron.userInterface.addClass(c + 'AllAllowed', c + 'IsSelected');
1139
1140                tarteaucitron.userInterface.addClass(c + 'MainLineOffset', c + 'IsAllowed');
1141                tarteaucitron.userInterface.removeClass(c + 'MainLineOffset', c + 'IsDenied');
1142
1143                document.getElementById(c + 'AllDenied').setAttribute('aria-pressed', 'false');
1144                document.getElementById(c + 'AllAllowed').setAttribute('aria-pressed', 'true');
1145
1146            } else if (nbAllowed === 0 && nbPending === 0) {
1147                tarteaucitron.userInterface.removeClass(c + 'AllAllowed', c + 'IsSelected');
1148                tarteaucitron.userInterface.addClass(c + 'AllDenied', c + 'IsSelected');
1149
1150                tarteaucitron.userInterface.removeClass(c + 'MainLineOffset', c + 'IsAllowed');
1151                tarteaucitron.userInterface.addClass(c + 'MainLineOffset', c + 'IsDenied');
1152
1153                document.getElementById(c + 'AllDenied').setAttribute('aria-pressed', 'true');
1154                document.getElementById(c + 'AllAllowed').setAttribute('aria-pressed', 'false');
1155
1156            } else {
1157                tarteaucitron.userInterface.removeClass(c + 'AllAllowed', c + 'IsSelected');
1158                tarteaucitron.userInterface.removeClass(c + 'AllDenied', c + 'IsSelected');
1159
1160                tarteaucitron.userInterface.removeClass(c + 'MainLineOffset', c + 'IsAllowed');
1161                tarteaucitron.userInterface.removeClass(c + 'MainLineOffset', c + 'IsDenied');
1162
1163                document.getElementById(c + 'AllDenied').setAttribute('aria-pressed', 'false');
1164                document.getElementById(c + 'AllAllowed').setAttribute('aria-pressed', 'false');
1165            }
1166
1167            // close the alert if all service have been reviewed
1168            if (nbPending === 0) {
1169                tarteaucitron.userInterface.closeAlert();
1170            }
1171
1172            if (tarteaucitron.services[key].cookies.length > 0 && status === false) {
1173                tarteaucitron.cookie.purge(tarteaucitron.services[key].cookies);
1174            }
1175
1176            if (status === true) {
1177                if (document.getElementById('tacCL' + key) !== null) {
1178                    document.getElementById('tacCL' + key).innerHTML = '...';
1179                }
1180                setTimeout(function () {
1181                    tarteaucitron.cookie.checkCount(key);
1182                }, 2500);
1183            } else {
1184                tarteaucitron.cookie.checkCount(key);
1185            }
1186
1187            }
1188
1189	    // groups
1190            var cats = document.querySelectorAll('[id^="tarteaucitronServicesTitle_"]')
1191            Array.prototype.forEach.call(cats, function(item) {
1192                var cat = item.getAttribute('id').replace(/^(tarteaucitronServicesTitle_)/, ""),
1193                    total = document.getElementById("tarteaucitronServices_"+cat).childElementCount;
1194                var doc = document.getElementById("tarteaucitronServices_"+cat),
1195                    groupdenied = 0,
1196                    groupallowed = 0;
1197                for (var ii = 0; ii < doc.children.length; ii++) {
1198                    if (doc.children[ii].className == "tarteaucitronLine tarteaucitronIsDenied") {
1199                        groupdenied++;
1200                    }
1201                    if (doc.children[ii].className == "tarteaucitronLine tarteaucitronIsAllowed") {
1202                        groupallowed++;
1203                    }
1204                }
1205                if (total === groupallowed) {
1206                    tarteaucitron.userInterface.removeClass('tarteaucitron-group-'+cat, 'tarteaucitronIsDenied');
1207                    tarteaucitron.userInterface.addClass('tarteaucitron-group-'+cat, 'tarteaucitronIsAllowed');
1208
1209                    if (document.getElementById('tarteaucitron-reject-group-'+cat)) {
1210                        document.getElementById('tarteaucitron-reject-group-'+cat).setAttribute('aria-pressed', 'false');
1211                        document.getElementById('tarteaucitron-accept-group-'+cat).setAttribute('aria-pressed', 'true');
1212                    }
1213                }
1214                if (total === groupdenied) {
1215                    tarteaucitron.userInterface.addClass('tarteaucitron-group-'+cat, 'tarteaucitronIsDenied');
1216                    tarteaucitron.userInterface.removeClass('tarteaucitron-group-'+cat, 'tarteaucitronIsAllowed');
1217
1218                    if (document.getElementById('tarteaucitron-reject-group-'+cat)) {
1219                        document.getElementById('tarteaucitron-reject-group-'+cat).setAttribute('aria-pressed', 'true');
1220                        document.getElementById('tarteaucitron-accept-group-'+cat).setAttribute('aria-pressed', 'false');
1221                    }
1222                }
1223                if (total !== groupdenied && total !== groupallowed) {
1224                    tarteaucitron.userInterface.removeClass('tarteaucitron-group-'+cat, 'tarteaucitronIsDenied');
1225                    tarteaucitron.userInterface.removeClass('tarteaucitron-group-'+cat, 'tarteaucitronIsAllowed');
1226
1227                    if (document.getElementById('tarteaucitron-reject-group-'+cat)) {
1228                        document.getElementById('tarteaucitron-reject-group-'+cat).setAttribute('aria-pressed', 'false');
1229                        document.getElementById('tarteaucitron-accept-group-'+cat).setAttribute('aria-pressed', 'false');
1230                    }
1231                }
1232                groupdenied = 0;
1233                groupallowed = 0;
1234            });
1235
1236        },
1237        "openPanel": function () {
1238            "use strict";
1239
1240            tarteaucitron.userInterface.css('tarteaucitron', 'display', 'block');
1241            tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'block');
1242            tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'display', 'none');
1243
1244            document.getElementById('tarteaucitronClosePanel').focus();
1245            if (document.getElementsByTagName('body')[0].classList !== undefined) {
1246                document.getElementsByTagName('body')[0].classList.add('tarteaucitron-modal-open');
1247            }
1248            tarteaucitron.userInterface.focusTrap();
1249            tarteaucitron.userInterface.jsSizing('main');
1250
1251            //ie compatibility
1252            var tacOpenPanelEvent;
1253            if(typeof(Event) === 'function') {
1254                tacOpenPanelEvent = new Event("tac.open_panel");
1255            }else if (typeof(document.createEvent) === 'function'){
1256                tacOpenPanelEvent = document.createEvent('Event');
1257                tacOpenPanelEvent.initEvent("tac.open_panel", true, true);
1258            }
1259            //end ie compatibility
1260
1261            if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacOpenPanelEvent);}
1262        },
1263        "closePanel": function () {
1264            "use strict";
1265
1266            if (document.location.hash === tarteaucitron.hashtag) {
1267                if (window.history) {
1268                    window.history.replaceState('', document.title, window.location.pathname + window.location.search);
1269                } else {
1270                    document.location.hash = '';
1271                }
1272            }
1273            if (tarteaucitron.checkIfExist('tarteaucitron')) {
1274                // accessibility: manage focus on close panel
1275                if (tarteaucitron.checkIfExist('tarteaucitronCloseAlert')) {
1276                    document.getElementById('tarteaucitronCloseAlert').focus();
1277                } else if (tarteaucitron.checkIfExist('tarteaucitronManager')) {
1278                    document.getElementById('tarteaucitronManager').focus();
1279                } else if (tarteaucitron.customCloserId && tarteaucitron.checkIfExist(tarteaucitron.customCloserId)) {
1280                    document.getElementById(tarteaucitron.customCloserId).focus();
1281                }
1282                tarteaucitron.userInterface.css('tarteaucitron', 'display', 'none');
1283            }
1284
1285            if (tarteaucitron.checkIfExist('tarteaucitronCookiesListContainer') && tarteaucitron.checkIfExist('tarteaucitronCookiesNumber')) {
1286                // accessibility: manage focus on close cookies list
1287                document.getElementById('tarteaucitronCookiesNumber').focus();
1288                document.getElementById('tarteaucitronCookiesNumber').setAttribute("aria-expanded", "false");
1289                tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'display', 'none');
1290            }
1291
1292            tarteaucitron.fallback(['tarteaucitronInfoBox'], function (elem) {
1293                elem.style.display = 'none';
1294            }, true);
1295
1296            if (tarteaucitron.reloadThePage === true) {
1297                window.location.reload();
1298            } else {
1299                tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'none');
1300            }
1301            if (document.getElementsByTagName('body')[0].classList !== undefined) {
1302                document.getElementsByTagName('body')[0].classList.remove('tarteaucitron-modal-open');
1303            }
1304
1305            //ie compatibility
1306            var tacClosePanelEvent;
1307            if(typeof(Event) === 'function') {
1308                tacClosePanelEvent = new Event("tac.close_panel");
1309            }else if (typeof(document.createEvent) === 'function'){
1310                tacClosePanelEvent = document.createEvent('Event');
1311                tacClosePanelEvent.initEvent("tac.close_panel", true, true);
1312            }
1313            //end ie compatibility
1314
1315            if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacClosePanelEvent);}
1316        },
1317        "focusTrap": function() {
1318            "use strict";
1319
1320            var focusableEls,
1321                firstFocusableEl,
1322                lastFocusableEl,
1323                filtered;
1324
1325            focusableEls = document.getElementById('tarteaucitron').querySelectorAll('a[href], button');
1326            filtered = [];
1327
1328            // get only visible items
1329            for (var i = 0, max = focusableEls.length; i < max; i++) {
1330                if (focusableEls[i].offsetHeight > 0) {
1331                   filtered.push(focusableEls[i]);
1332                }
1333            }
1334
1335            firstFocusableEl = filtered[0];
1336            lastFocusableEl = filtered[filtered.length - 1];
1337
1338            //loop focus inside tarteaucitron
1339            document.getElementById('tarteaucitron').addEventListener("keydown", function (evt) {
1340
1341                if ( evt.key === 'Tab' || evt.keyCode === 9 ) {
1342
1343                    if ( evt.shiftKey ) /* shift + tab */ {
1344                        if (document.activeElement === firstFocusableEl) {
1345                            lastFocusableEl.focus();
1346                            evt.preventDefault();
1347                        }
1348                    } else /* tab */ {
1349                        if (document.activeElement === lastFocusableEl) {
1350                            firstFocusableEl.focus();
1351                            evt.preventDefault();
1352                        }
1353                    }
1354                }
1355            })
1356        },
1357        "openAlert": function () {
1358            "use strict";
1359            var c = 'tarteaucitron';
1360            tarteaucitron.userInterface.css(c + 'Percentage', 'display', 'block');
1361            tarteaucitron.userInterface.css(c + 'AlertSmall', 'display', 'none');
1362            tarteaucitron.userInterface.css(c + 'Icon', 'display', 'none');
1363            tarteaucitron.userInterface.css(c + 'AlertBig',   'display', 'block');
1364            tarteaucitron.userInterface.addClass(c + 'Root',   'tarteaucitronBeforeVisible');
1365
1366            //ie compatibility
1367            var tacOpenAlertEvent;
1368            if(typeof(Event) === 'function') {
1369                tacOpenAlertEvent = new Event("tac.open_alert");
1370            }else if (typeof(document.createEvent) === 'function'){
1371                tacOpenAlertEvent = document.createEvent('Event');
1372                tacOpenAlertEvent.initEvent("tac.open_alert", true, true);
1373            }
1374            //end ie compatibility
1375
1376            if (document.getElementById('tarteaucitronAlertBig') !== null) {
1377                document.getElementById('tarteaucitronAlertBig').focus();
1378            }
1379
1380            if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacOpenAlertEvent);}
1381        },
1382        "closeAlert": function () {
1383            "use strict";
1384            var c = 'tarteaucitron';
1385            tarteaucitron.userInterface.css(c + 'Percentage', 'display', 'none');
1386            tarteaucitron.userInterface.css(c + 'AlertSmall', 'display', 'block');
1387            tarteaucitron.userInterface.css(c + 'Icon', 'display', 'block');
1388            tarteaucitron.userInterface.css(c + 'AlertBig',   'display', 'none');
1389            tarteaucitron.userInterface.removeClass(c + 'Root',   'tarteaucitronBeforeVisible');
1390            tarteaucitron.userInterface.jsSizing('box');
1391
1392            //ie compatibility
1393            var tacCloseAlertEvent;
1394            if(typeof(Event) === 'function') {
1395                tacCloseAlertEvent = new Event("tac.close_alert");
1396            }else if (typeof(document.createEvent) === 'function'){
1397                tacCloseAlertEvent = document.createEvent('Event');
1398                tacCloseAlertEvent.initEvent("tac.close_alert", true, true);
1399            }
1400            //end ie compatibility
1401
1402            if (typeof(window.dispatchEvent) === 'function') {window.dispatchEvent(tacCloseAlertEvent);}
1403        },
1404        "toggleCookiesList": function () {
1405            "use strict";
1406            var div = document.getElementById('tarteaucitronCookiesListContainer'),
1407                togglediv = document.getElementById('tarteaucitronCookiesNumber');
1408
1409            if (div === null) {
1410                return;
1411            }
1412
1413            if (div.style.display !== 'block') {
1414                tarteaucitron.cookie.number();
1415                div.style.display = 'block';
1416                togglediv.setAttribute("aria-expanded", "true");
1417                tarteaucitron.userInterface.jsSizing('cookie');
1418                tarteaucitron.userInterface.css('tarteaucitron', 'display', 'none');
1419                tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'block');
1420                tarteaucitron.fallback(['tarteaucitronInfoBox'], function (elem) {
1421                    elem.style.display = 'none';
1422                }, true);
1423            } else {
1424                div.style.display = 'none';
1425                togglediv.setAttribute("aria-expanded", "false");
1426                tarteaucitron.userInterface.css('tarteaucitron', 'display', 'none');
1427                tarteaucitron.userInterface.css('tarteaucitronBack', 'display', 'none');
1428            }
1429        },
1430        "toggle": function (id, closeClass) {
1431            "use strict";
1432            var div = document.getElementById(id);
1433
1434            if (div === null) {
1435                return;
1436            }
1437
1438            if (closeClass !== undefined) {
1439                tarteaucitron.fallback([closeClass], function (elem) {
1440                    if (elem.id !== id) {
1441                        elem.style.display = 'none';
1442                    }
1443                }, true);
1444            }
1445
1446            if (div.style.display !== 'block') {
1447                div.style.display = 'block';
1448            } else {
1449                div.style.display = 'none';
1450            }
1451        },
1452        "order": function (id) {
1453            "use strict";
1454            var main = document.getElementById('tarteaucitronServices_' + id),
1455                allDivs,
1456                store = [],
1457                i;
1458
1459            if (main === null) {
1460                return;
1461            }
1462
1463            allDivs = main.childNodes;
1464
1465            if (typeof Array.prototype.map === 'function' && typeof Enumerable === 'undefined') {
1466                Array.prototype.map.call(main.children, Object).sort(function (a, b) {
1467                //var mainChildren = Array.from(main.children);
1468                //mainChildren.sort(function (a, b) {
1469                    if (tarteaucitron.services[a.id.replace(/Line/g, '')].name > tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return 1; }
1470                    if (tarteaucitron.services[a.id.replace(/Line/g, '')].name < tarteaucitron.services[b.id.replace(/Line/g, '')].name) { return -1; }
1471                    return 0;
1472                }
1472).forEach(function (element) {
1473                    main.appendChild(element);
1474                });
1475            }
1476        },
1477        "jsSizing": function (type) {
1478            "use strict";
1479            var scrollbarMarginRight = 10,
1480                scrollbarWidthParent,
1481                scrollbarWidthChild,
1482                servicesHeight,
1483                e = window,
1484                a = 'inner',
1485                windowInnerHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight,
1486                mainTop,
1487                mainHeight,
1488                closeButtonHeight,
1489                headerHeight,
1490                cookiesListHeight,
1491                cookiesCloseHeight,
1492                cookiesTitleHeight,
1493                paddingBox,
1494                alertSmallHeight,
1495                cookiesNumberHeight;
1496
1497            if (type === 'box') {
1498                if (document.getElementById('tarteaucitronAlertSmall') !== null && document.getElementById('tarteaucitronCookiesNumber') !== null) {
1499
1500                    // reset
1501                    tarteaucitron.userInterface.css('tarteaucitronCookiesNumber', 'padding', '0px 10px');
1502
1503                    // calculate
1504                    alertSmallHeight = document.getElementById('tarteaucitronAlertSmall').offsetHeight;
1505                    cookiesNumberHeight = document.getElementById('tarteaucitronCookiesNumber').offsetHeight;
1506                    paddingBox = (alertSmallHeight - cookiesNumberHeight) / 2;
1507
1508                    // apply
1509                    tarteaucitron.userInterface.css('tarteaucitronCookiesNumber', 'padding', paddingBox + 'px 10px');
1510                }
1511            } else if (type === 'main') {
1512
1513                // get the real window width for media query
1514                if (window.innerWidth === undefined) {
1515                    a = 'client';
1516                    e = document.documentElement || document.body;
1517                }
1518
1519                // height of the services list container
1520                if (document.getElementById('tarteaucitron') !== null && document.getElementById('tarteaucitronClosePanel') !== null && document.getElementById('tarteaucitronMainLineOffset') !== null) {
1521
1522                    // reset
1523                    tarteaucitron.userInterface.css('tarteaucitronServices', 'height', 'auto');
1524
1525                    // calculate
1526                    mainHeight = document.getElementById('tarteaucitron').offsetHeight;
1527                    closeButtonHeight = document.getElementById('tarteaucitronClosePanel').offsetHeight;
1528
1529                    // apply
1530                    servicesHeight = (mainHeight - closeButtonHeight + 2);
1531                    tarteaucitron.userInterface.css('tarteaucitronServices', 'height', servicesHeight + 'px');
1532                    tarteaucitron.userInterface.css('tarteaucitronServices', 'overflow-x', 'auto');
1533                }
1534
1535                // align the main allow/deny button depending on scrollbar width
1536                if (document.getElementById('tarteaucitronServices') !== null && document.getElementById('tarteaucitronScrollbarChild') !== null) {
1537
1538                    // media query
1539                    if (e[a + 'Width'] <= 479) {
1540                        //tarteaucitron.userInterface.css('tarteaucitronScrollbarAdjust', 'marginLeft', '11px');
1541                    } else if (e[a + 'Width'] <= 767) {
1542                        scrollbarMarginRight = 12;
1543                    }
1544
1545                    scrollbarWidthParent = document.getElementById('tarteaucitronServices').offsetWidth;
1546                    scrollbarWidthChild = document.getElementById('tarteaucitronScrollbarChild').offsetWidth;
1547                    //tarteaucitron.userInterface.css('tarteaucitronScrollbarAdjust', 'marginRight', ((scrollbarWidthParent - scrollbarWidthChild) + scrollbarMarginRight) + 'px');
1548                }
1549
1550                // center the main panel
1551                if (document.getElementById('tarteaucitron') !== null) {
1552
1553                    // media query
1554                    if (e[a + 'Width'] <= 767) {
1555                        mainTop = 0;
1556                    } else {
1557                        mainTop = ((windowInnerHeight - document.getElementById('tarteaucitron').offsetHeight) / 2) - 21;
1558                    }
1559
1560                    if (document.getElementById('tarteaucitronMainLineOffset') !== null) {
1561                        if (document.getElementById('tarteaucitron').offsetHeight < (windowInnerHeight / 2)) {
1562                            mainTop -= document.getElementById('tarteaucitronMainLineOffset').offsetHeight;
1563                        }
1564                    }
1565
1566                    // correct
1567                    if (mainTop < 0) {
1568                        mainTop = 0;
1569                    }
1570
1571                    // apply
1572                    tarteaucitron.userInterface.css('tarteaucitron', 'top', mainTop + 'px');
1573                }
1574
1575
1576            } else if (type === 'cookie') {
1577
1578                // put cookies list at bottom
1579                if (document.getElementById('tarteaucitronAlertSmall') !== null) {
1580                    tarteaucitron.userInterface.css('tarteaucitronCookiesListContainer', 'bottom', (document.getElementById('tarteaucitronAlertSmall').offsetHeight) + 'px');
1581                }
1582
1583                // height of cookies list
1584                if (document.getElementById('tarteaucitronCookiesListContainer') !== null) {
1585
1586                    // reset
1587                    tarteaucitron.userInterface.css('tarteaucitronCookiesList', 'height', 'auto');
1588
1589                    // calculate
1590                    cookiesListHeight = document.getElementById('tarteaucitronCookiesListContainer').offsetHeight;
1591                    cookiesCloseHeight = document.getElementById('tarteaucitronClosePanelCookie').offsetHeight;
1592                    cookiesTitleHeight = document.getElementById('tarteaucitronCookiesTitle').offsetHeight;
1593
1594                    // apply
1595                    tarteaucitron.userInterface.css('tarteaucitronCookiesList', 'height', (cookie
vendor: 10,216 bytes, lines 1595-1800
1595sListHeight - cookiesCloseHeight - cookiesTitleHeight - 2) + 'px');
1596                }
1597            }
1598        }
1599    },
1600    "cookie": {
1601        "owner": {},
1602        "create": function (key, status) {
1603            "use strict";
1604
1605            if (tarteaucitronForceExpire !== '') {
1606                // The number of day(s)/hour(s) can't be higher than 1 year
1607                if ((tarteaucitronExpireInDay && tarteaucitronForceExpire < 365) || (!tarteaucitronExpireInDay && tarteaucitronForceExpire < 8760)) {
1608                    if (tarteaucitronExpireInDay) {
1609                        // Multiplication to tranform the number of days to milliseconds
1610                        timeExpire = tarteaucitronForceExpire * 86400000;
1611                    } else {
1612                        // Multiplication to tranform the number of hours to milliseconds
1613                        timeExpire = tarteaucitronForceExpire * 3600000;
1614                    }
1615                }
1616            }
1617
1618            var d = new Date(),
1619                time = d.getTime(),
1620                expireTime = time + timeExpire, // 365 days
1621                regex = new RegExp("!" + key + "=(wait|true|false)", "g"),
1622                cookie = tarteaucitron.cookie.read().replace(regex, ""),
1623                value = tarteaucitron.parameters.cookieName + '=' + cookie + '!' + key + '=' + status,
1624                domain = (tarteaucitron.parameters.cookieDomain !== undefined && tarteaucitron.parameters.cookieDomain !== '') ? '; domain=' + tarteaucitron.parameters.cookieDomain : '',
1625                secure = location.protocol === 'https:' ? '; Secure' : '';
1626
1627            d.setTime(expireTime);
1628            document.cookie = value + '; expires=' + d.toGMTString() + '; path=/' + domain + secure + '; samesite=lax';
1629        },
1630        "read": function () {
1631            "use strict";
1632            var nameEQ = tarteaucitron.parameters.cookieName + "=",
1633                ca = document.cookie.split(';'),
1634                i,
1635                c;
1636
1637            for (i = 0; i < ca.length; i += 1) {
1638                c = ca[i];
1639                while (c.charAt(0) === ' ') {
1640                    c = c.substring(1, c.length);
1641                }
1642                if (c.indexOf(nameEQ) === 0) {
1643                    return c.substring(nameEQ.length, c.length);
1644                }
1645            }
1646            return '';
1647        },
1648        "purge": function (arr) {
1649            "use strict";
1650            var i;
1651
1652            for (i = 0; i < arr.length; i += 1) {
1653
1654                var rgxpCookie = new RegExp("^(.*;)?\\s*" + arr[i] + "\\s*=\\s*[^;]+(.*)?$");
1655                if (document.cookie.match(rgxpCookie)) {
1656                    document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/;';
1657                    document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=.' + location.hostname + ';';
1658                    document.cookie = arr[i] + '=; expires=Thu, 01 Jan 2000 00:00:00 GMT; path=/; domain=.' + location.hostname.split('.').slice(-2).join('.') + ';';
1659                }
1660            }
1661        },
1662        "checkCount": function (key) {
1663            "use strict";
1664            var arr = tarteaucitron.services[key].cookies,
1665                nb = arr.length,
1666                nbCurrent = 0,
1667                html = '',
1668                i,
1669                status = document.cookie.indexOf(key + '=true');
1670
1671            if (status >= 0 && nb === 0) {
1672                html += tarteaucitron.lang.useNoCookie;
1673            } else if (status >= 0) {
1674                for (i = 0; i < nb; i += 1) {
1675                    if (document.cookie.indexOf(arr[i] + '=') !== -1) {
1676                        nbCurrent += 1;
1677                        if (tarteaucitron.cookie.owner[arr[i]] === undefined) {
1678                            tarteaucitron.cookie.owner[arr[i]] = [];
1679                        }
1680                        if (tarteaucitron.cookie.crossIndexOf(tarteaucitron.cookie.owner[arr[i]], tarteaucitron.services[key].name) === false) {
1681                            tarteaucitron.cookie.owner[arr[i]].push(tarteaucitron.services[key].name);
1682                        }
1683                    }
1684                }
1685
1686                if (nbCurrent > 0) {
1687                    html += tarteaucitron.lang.useCookieCurrent + ' ' + nbCurrent + ' cookie';
1688                    if (nbCurrent > 1) {
1689                        html += 's';
1690                    }
1691                    html += '.';
1692                } else {
1693                    html += tarteaucitron.lang.useNoCookie;
1694                }
1695            } else if (nb === 0) {
1696                html = tarteaucitron.lang.noCookie;
1697            } else {
1698                html += tarteaucitron.lang.useCookie + ' ' + nb + ' cookie';
1699                if (nb > 1) {
1700                    html += 's';
1701                }
1702                html += '.';
1703            }
1704
1705            if (document.getElementById('tacCL' + key) !== null) {
1706                document.getElementById('tacCL' + key).innerHTML = html;
1707            }
1708        },
1709        "crossIndexOf": function (arr, match) {
1710            "use strict";
1711            var i;
1712            for (i = 0; i < arr.length; i += 1) {
1713                if (arr[i] === match) {
1714                    return true;
1715                }
1716            }
1717            return false;
1718        },
1719        "number": function () {
1720            "use strict";
1721            var cookies = document.cookie.split(';'),
1722                nb = (document.cookie !== '') ? cookies.length : 0,
1723                html = '',
1724                i,
1725                name,
1726                namea,
1727                nameb,
1728                c,
1729                d,
1730                s = (nb > 1) ? 's' : '',
1731                savedname,
1732                regex = /^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i,
1733                regexedDomain = (tarteaucitron.cdn.match(regex) !== null) ? tarteaucitron.cdn.match(regex)[1] : tarteaucitron.cdn,
1734                host = (tarteaucitron.domain !== undefined) ? tarteaucitron.domain : regexedDomain;
1735
1736            cookies = cookies.sort(function (a, b) {
1737                namea = a.split('=', 1).toString().replace(/ /g, '');
1738                nameb = b.split('=', 1).toString().replace(/ /g, '');
1739                c = (tarteaucitron.cookie.owner[namea] !== undefined) ? tarteaucitron.cookie.owner[namea] : '0';
1740                d = (tarteaucitron.cookie.owner[nameb] !== undefined) ? tarteaucitron.cookie.owner[nameb] : '0';
1741                if (c + a > d + b) { return 1; }
1742                if (c + a < d + b) { return -1; }
1743                return 0;
1744            });
1745
1746            if (document.cookie !== '') {
1747                for (i = 0; i < nb; i += 1) {
1748                    name = cookies[i].split('=', 1).toString().replace(/ /g, '');
1749                    if (tarteaucitron.cookie.owner[name] !== undefined && tarteaucitron.cookie.owner[name].join(' // ') !== savedname) {
1750                        savedname = tarteaucitron.cookie.owner[name].join(' // ');
1751                        html += '<div class="tarteaucitronHidden">';
1752                        html += '     <span class="tarteaucitronTitle tarteaucitronH3" role="heading" aria-level="3">';
1753                        html += '        ' + tarteaucitron.cookie.owner[name].join(' // ');
1754                        html += '    </span>';
1755                        html += '</div><ul class="cookie-list">';
1756                    } else if (tarteaucitron.cookie.owner[name] === undefined && host !== savedname) {
1757                        savedname = host;
1758                        html += '<div class="tarteaucitronHidden">';
1759                        html += '     <span class="tarteaucitronTitle tarteaucitronH3" role="heading" aria-level="3">';
1760                        html += '        ' + host;
1761                        html += '    </span>';
1762                        html += '</div><ul class="cookie-list">';
1763                    }
1764                    html += '<li class="tarteaucitronCookiesListMain">';
1765                    html += '    <div class="tarteaucitronCookiesListLeft"><button type="button" class="purgeBtn" data-cookie="' + tarteaucitron.fixSelfXSS(cookies[i].split('=', 1)) + '"><strong>&times;</strong></button> <strong>' + tarteaucitron.fixSelfXSS(name) + '</strong>';
1766                    html += '    </div>';
1767                    html += '    <div class="tarteaucitronCookiesListRight">' + tarteaucitron.fixSelfXSS(cookies[i].split('=').slice(1).join('=')) + '</div>';
1768                    html += '</li>';
1769                }
1770                html += '</ul>';
1771            } else {
1772                html += '<div class="tarteaucitronCookiesListMain">';
1773                html += '    <div class="tarteaucitronCookiesListLeft"><strong>-</strong></div>';
1774                html += '    <div class="tarteaucitronCookiesListRight"></div>';
1775                html += '</div>';
1776            }
1777
1778            html += '<div class="tarteaucitronHidden tarteaucitron-spacer-20"></div>';
1779
1780            if (document.getElementById('tarteaucitronCookiesList') !== null) {
1781                document.getElementById('tarteaucitronCookiesList').innerHTML = html;
1782            }
1783
1784            if (document.getElementById('tarteaucitronCookiesNumber') !== null) {
1785                document.getElementById('tarteaucitronCookiesNumber').innerHTML = nb;
1786                document.getElementById('tarteaucitronCookiesNumber').setAttribute("aria-label", nb + ' cookie' + s + " - " + tarteaucitron.lang.toggleInfoBox);
1787                document.getElementById('tarteaucitronCookiesNumber').setAttribute("title", nb + ' cookie' + s + " - " + tarteaucitron.lang.toggleInfoBox);
1788            }
1789
1790            if (document.getElementById('tarteaucitronCookiesNumberBis') !== null) {
1791                document.getElementById('tarteaucitronCookiesNumberBis').innerHTML = nb + ' cookie' + s;
1792            }
1793
1794            var purgeBtns = document.getElementsByClassName("purgeBtn");
1795            for (i = 0; i < purgeBtns.length; i++) {
1796                tarteaucitron.addClickEventToElement(purgeBtns[i], function () {
1797                    tarteaucitron.cookie.purge([this.dataset.cookie]);
1798                    tarteaucitron.cookie.number();
1799                    tarteaucitron.userInterface.jsSizing('cookie');
1800                    return false;
1801                });
1802            }
1803
1804            for (i = 0; i < tarteaucitron.job.length; i += 1) {
1805                tarteaucitron.cookie.checkCount(tarteaucitron.job[i]);
1806            }
1807        }
1808    },
1809    "fixSelfXSS": function(html) {
1810        return html.toString().replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
1811    },
1812    "getLanguage": function () {
1813        "use strict";
1814
1815        var availableLanguages = 'ar,bg,ca,cn,cs,da,de,et,el,en,es,fi,fr,hu,it,ja,lt,lv,nl,no,oc,pl,pt,ro,ru,se,sk,sv,tr,uk,vi,zh',
1816            defaultLanguage = 'en';
1817
1818        if (tarteaucitronForceLanguage !== '') {
1819            if (availableLanguages.indexOf(tarteaucitronForceLanguage) !== -1) {
1820                return tarteaucitronForceLanguage;
1821            }
1822        }
1823
1824        // get the html lang
1825        if (availableLanguages.indexOf(document.documentElement.getAttribute("lang")) !== -1) {
1826            return document.documentElement.getAttribute("lang");
1827        }
1828
1829        if (!navigator) { return defaultLanguage; }
1830
1831        var lang = navigator.language || navigator.browserLanguage ||
1832                navigator.systemLanguage || navigator.userLang || null,
1833            userLanguage = lang ? lang.substr(0, 2) : null;
1834
1835        if (availableLanguages.indexOf(userLanguage) !== -1) {
1836            return userLanguage;
1837        }
1838
1839        return defaultLanguage;
1840    },
1841    "getLocale": function () {
1842        "use strict";
1843        if (!navigator) { return 'en_US'; }
1844
1845        var lang = navigator.language || navigator.browserLanguage ||
1846                navigator.systemLanguage || navigator.userLang || null,
1847            userLanguage = lang ? lang.substr(0, 2) : null;
1848
1849        if (userLanguage === 'fr') {
1850            return 'fr_FR';
1851        } else if (userLanguage === 'en') {
1852            return 'en_US';
1853        } else if (userLanguage === 'de') {
1854            return 'de_DE';
1855        } else if (userLanguage === 'es') {
1856            return 'es_ES';
1857        } else if (userLanguage === 'it') {
1858            return 'it_IT';
1859        } else if (userLanguage === 'pt') {
1860            return 'pt_PT';
1861        } else if (userLanguage === 'nl') {
1862            return 'nl_NL';
1863        } else if (userLanguage === 'el') {
1864            return 'el_EL';
1865        } else {
1866            return 'en_US';
1867        }
1868    },
1869    "addScript": function (url, id, callback, execute, attrName, attrVal, internal) {
1870        "use strict";
1871        var script,
1872            done = false;
1873
1874        if (execute === false) {
1875            if (typeof callback === 'function') {
1876                callback();
1877            }
1878        } else {
1879            script = document.createElement('script');
1880            script.id = (id !== undefined) ? id : '';
1881            script.async = true;
1882            script.src = url;
1883
1884            if (attrName !== undefined && attrVal !== undefined) {
1885                script.setAttribute(attrName, attrVal);
1886            }
1887
1888            if (typeof callback === 'function') {
1889                if ( !tarteaucitron.parameters.useExternalJs || !internal ) {
1890                    script.onreadystatechange = script.onload = function () {
1891                        var state = script.readyState;
1892                        if (!done && (!state || /loaded|complete/.test(state))) {
1893                            done = true;
1894                            callback();
1895                        }
1896                    };
1897                } else {
1898                    callback();
1899                }
1900            }
1901
1902            if ( !tarteaucitron.parameters.useExternalJs || !internal ) {
1903                document.getElementsByTagName('head')[0].appendChild(script);
1904            }
1905        }
1906    },
1907    "addInternalScript": function (url, id, callback, execute, attrName, attrVal) {
1908        tarteaucitron.addScript(url, id, callback, execute, attrName, attrVal, true);
1909    },
1910    "checkIfExist": function (elemId) {
1911        "use strict";
1912        return document.getElementById(elemId) !== null && document.getElementById(elemId).offsetWidth !== 0 && document.getElementById(elemId).offsetHeight !== 0;
1913    },
1914    "makeAsync": {
1915        "antiGhost": 0,
1916        "buffer": '',
1917        "init": function (url, id) {
1918            "use strict";
1919            var savedWrite = document.write,
1920                savedWriteln = document.writeln;
1921
1922            document.write = function (content) {
1923                tarteaucitron.makeAsync.buffer += content;
1924            };
1925            document.writeln = function (content) {
1926                tarteaucitron.makeAsync.buffer += content.concat("\n");
1927            };
1928
1929            setTimeout(function () {
1930                document.write = savedWrite;
1931                document.writeln = savedWriteln;
1932            }, 20000);
1933
1934            tarteaucitron.makeAsync.getAndParse(url, id);
1935        },
1936        "getAndParse": function (url, id) {
1937            "use strict";
1938            if (tarteaucitron.makeAsync.antiGhost > 9) {
1939                tarteaucitron.makeAsync.antiGhost = 0;
1940                return;
1941            }
1942            tarteaucitron.makeAsync.antiGhost += 1;
1943            tarteaucitron.addInternalScript(url, '', function () {
1944                if (document.getElementById(id) !== null) {
1945                    document.getElementById(id).innerHTML += "<span class='tarteaucitron-display-none'>&nbsp;</span>" + tarteaucitron.makeAsync.buffer;
1946                    tarteaucitron.makeAsync.buffer = '';
1947                    tarteaucitron.makeAsync.execJS(id);
1948                }
1949            });
1950        },
1951        "execJS": function (id) {
1952            /* not strict because third party scripts may have errors */
1953            var i,
1954                scripts,
1955                childId,
1956                type;
1957
1958            if (document.getElementById(id) === null) {
1959                return;
1960            }
1961
1962            scripts = document.getElementById(id).getElementsByTagName('script');
1963            for (i = 0; i < scripts.length; i += 1) {
1964                type = (scripts[i].getAttribute('type') !== null) ? scripts[i].getAttribute('type') : '';
1965                if (type === '') {
1966                    type = (scripts[i].getAttribute('language') !== null) ? scripts[i].getAttribute('language') : '';
1967                }
1968                if (scripts[i].getAttribute('src') !== null && scripts[i].getAttribute('src') !== '') {
1969                    childId = id + Math.floor(Math.random() * 99999999999);
1970                    document.getElementById(id).innerHTML += '<div id="' + childId + '"></div>';
1971                    tarteaucitron.makeAsync.getAndParse(scripts[i].getAttribute('src'), childId);
1972                } else if (type.indexOf('javascript') !== -1 || type === '') {
1973                    eval(scripts[i].innerHTML);
1974                }
1975            }
1976        }
1977    },
1978    "fallback": function (matchClass, content, noInner) {
1979        "use strict";
1980        var elems = document.getElementsByTagName('*'),
1981            i,
1982            index = 0;
1983
1984        for (i in elems) {
1985            if (elems[i] !== undefined) {
1986                for (index = 0; index < matchClass.length; index += 1) {
1987                    if ((' ' + elems[i].className + ' ')
1988                            .indexOf(' ' + matchClass[index] + ' ') > -1) {
1989                        if (typeof content === 'function') {
1990                            if (noInner === true) {
1991                                content(elems[i]);
1992                            } else {
1993                                elems[i].innerHTML = content(elems[i]);
1994                            }
1995                        } else {
1996                            elems[i].innerHTML = content;
1997                        }
1998                    }
1999                }
2000            }
2001        }
2002    },
2003    "engage": function (id) {
2004        "use strict";
2005        var html = '',
2006            r = Math.floor(Math.random() * 100000),
2007            engage = tarteaucitron.services[id].name + ' ' + tarteaucitron.lang.fallback;
2008
2009        if (tarteaucitron.lang['engage-' + id] !== undefined) {
2010            engage = tarteaucitron.lang['engage-' + id];
2011        }
2012
2013        html += '<div class="tac_activate tac_activate_' + id + '">';
2014        html += '   <div class="tac_float">';
2015        html += '      ' + engage;
2016        html += '      <button type="button" class="tarteaucitronAllow" id="Eng' + r + 'ed' + id + '">';
2017        html += '          <span class="tarteaucitronCheck" aria-hidden="true"></span> ' + tarteaucitron.lang.allow;
2018        html += '       </button>';
2019        html += '   </div>';
2020        html += '</div>';
2021
2022        return html;
2023    },
2024    "extend": function (a, b) {
2025        "use strict";
2026        var prop;
2027        for (prop in b) {
2028            if (b.hasOwnProperty(prop)) {
2029                a[prop] = b[prop];
2030            }
2031        }
2032    },
2033    "proTemp": '',
2034    "proTimer": function () {
2035        "use strict";
2036        setTimeout(tarteaucitron.proPing, 500);
2037    },
2038    "pro": function (list) {
2039        "use strict";
2040        tarteaucitron.proTemp += list;
2041        clearTimeout(tarteaucitron.proTimer);
2042        tarteaucitron.proTimer = setTimeout(tarteaucitron.proPing, 500);
2043    },
2044    "proPing": function () {
2045        "use strict";
2046        if (tarteaucitron.uuid !== '' && tarteaucitron.uuid !== undefined && tarteaucitron.proTemp !== '' && tarteaucitronStatsEnabled) {
2047            var div = document.getElementById('tarteaucitronPremium'),
2048                timestamp = new Date().getTime(),
2049                url = 'https://tarteaucitron.io/log/?';
2050
2051            if (div === null) {
2052                return;
2053            }
2054
2055            url += 'account=' + tarteaucitron.uuid + '&';
2056            url += 'domain=' + tarteaucitron.domain + '&';
2057            url += 'status=' + encodeURIComponent(tarteaucitron.proTemp) + '&';
2058            url += '_time=' + timestamp;
2059
2060            div.innerHTML = '<img src="' + url + '" class="tarteaucitron-display-none" alt="" />';
2061
2062            tarteaucitron.proTemp = '';
2063        }
2064
2065        tarteaucitron.cookie.number();
2066    },
2067    "AddOrUpdate" : function(source, custom){
2068        /**
2069         Utility function to Add or update the fields of obj1 with the ones in obj2
2070         */
2071        for(var key in custom){
2072            if(custom[key] instanceof Object){
2073                source[key] = tarteaucitron.AddOrUpdate(source[key], custom[key]);
2074            }else{
2075                source[key] = custom[key];
2076            }
2077        }
2078        return source;
2079    },
2080    "getElemWidth": function(elem) {
2081        return elem.getAttribute('width') || elem.clientWidth;
2082    },
2083    "getElemHeight": function(elem) {
2084        return elem.getAttribute('height') || elem.clientHeight;
2085    },
2086    "getElemAttr": function (elem, attr) {
2087        return elem.getAttribute('data-' + attr) || elem.getAttribute(attr);
2088    },
2089    "addClickEventToId": function (elemId, func) {
2090        tarteaucitron.addClickEventToElement(document.getElementById(elemId), func);
2091    },
2092    "addClickEventToElement": function (e, func) {
2093        if (e) {
2094            if (e.addEventListener) {
2095                e.addEventListener("click", func);
2096            } else {
2097                e.attachEvent("onclick", func);
2098            }
2099        }
2100    },
2101    "triggerJobsAfterAjaxCall": function() {
2102        tarteaucitron.job.forEach(function(e) { tarteaucitron.job.push(e) });
2103        var i;
2104        var allowBtns = document.getElementsByClassName("tarteaucitronAllow");
2105        for (i = 0; i < allowBtns.length; i++) {
2106            tarteaucitron.addClickEventToElement(allowBtns[i], function () {
2107                tarteaucitron.userInterface.respond(this, true);
2108            });
2109        }
2110        var denyBtns = document.getElementsByClassName("tarteaucitronDeny");
2111        for (i = 0; i < denyBtns.length; i++) {
2112            tarteaucitron.addClickEventToElement(denyBtns[i], function () {
2113                tarteaucitron.userInterface.respond(this, false);
2114            });
2115        }
2116    }
2117};
2118;
2119/*global tarteaucitron, ga, Shareaholic, stLight, clicky, top, google, Typekit, FB, ferankReady, IN, stButtons, twttr, PCWidget*/
2120/*jslint regexp: true, nomen: true*/
2121
2122// generic iframe
2123tarteaucitron.services.iframe = {
2124    "key": "iframe",
2125    "type": "other",
2126    "name": "Web content",
2127    "uri": "",
2128    "needConsent": true,
2129    "cookies": [],
2130    "js": function () {
2131        "use strict";
2132        tarteaucitron.fallback(['tac_iframe'], function (x) {
2133            var frame_title = (tarteaucitron.getElemAttr(x,"title")) ? tarteaucitron.fixSelfXSS(tarteaucitron.getElemAttr(x,"title")) : '',
2134                width = tarteaucitron.getElemAttr(x,"width"),
2135                height = tarteaucitron.getElemAttr(x,"height"),
2136                allowfullscreen = tarteaucitron.getElemAttr(x,"allowfullscreen"),
2137                url = tarteaucitron.getElemAttr(x,"url");
2138
2139            return '<iframe title="' + frame_title + '" src="' + url + '" width="' + width + '" height="' + height + '" scrolling="no" allowtransparency' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
2140        });
2141    },
2142    "fallback": function () {
2143        "use strict";
2144        var id = 'iframe';
2145        tarteaucitron.fallback(['tac_iframe'], function (elem) {
2146            elem.style.width = tarteaucitron.getElemAttr(elem,'width') + 'px';
2147            elem.style.height = tarteaucitron.getElemAttr(elem,'height') + 'px';
2148            return tarteaucitron.engage(id);
2149        });
2150    }
2151};
2152
2153// kwanko
2154tarteaucitron.services.kwanko = {
2155    "key": "kwanko",
2156    "type": "ads",
2157    "name": "Kwanko",
2158    "uri": "https://www.kwanko.com/fr/rgpd/politique-gestion-donnees/",
2159    "needConsent": true,
2160    "cookies": [],
2161    "js": function () {
2162        "use strict";
2163        tarteaucitron.fallback(['tac_kwanko'], function (x) {
2164            var mclic = x.getAttribute("data-mclic");
2165
2166            return '<img src="https://action.metaffiliation.com/trk.php?mclic=' + mclic + '" width="1" height="1" border="0" />';
2167        });
2168    },
2169    "fallback": function () {
2170        "use strict";
2171        var id = 'kwanko';
2172        tarteaucitron.fallback(['tac_kwanko'], function (elem) {
2173            return tarteaucitron.engage(id);
2174        });
2175    }
2176};
2177
2178// leadforensics
2179tarteaucitron.services.leadforensics = {
2180    "key": "leadforensics",
2181    "type": "ads",
2182    "name": "Lead Forensics",
2183    "uri": "https://www.leadforensics.com/cookie-policy/",
2184    "needConsent": true,
2185    "cookies": ['ifuuid'],
2186    "js": function () {
2187        "use strict";
2188        if (tarteaucitron.user.leadforensicsId === undefined) {
2189            return;
2190        }
2191
2192        tarteaucitron.addScript('https://secure.team8save.com/js/sc/'+ tarteaucitron.user.leadforensicsId +'.js');
2193    }
2194};
2195
2196// ubib
2197tarteaucitron.services.ubib = {
2198    "key": "ubib",
2199    "type": "support",
2200    "name": "Ubib Chatbot",
2201    "uri": "https://ubib.libanswers.com/",
2202    "needConsent": true,
2203    "cookies": [],
2204    "js": function () {
2205        "use strict";
2206
2207        if (tarteaucitron.user.ubibId === undefined || tarteaucitron.user.ubibHash === undefined) {
2208            return;
2209        }
2210
2211        tarteaucitron.addScript('https://' + tarteaucitron.user.ubibId + '.libanswers.com/load_chat.php?hash=' + tarteaucitron.user.ubibHash);
2212    }
2213};
2214
2215// wysistathightrack
2216tarteaucitron.services.wysistathightrack = {
2217    "key": "wysistathightrack",
2218    "type": "analytic",
2219    "name": "Wysistat (privacy by design)",
2220    "uri": "https://www.wysistat.net/webanalytics/exemption-cnil/",
2221    "needConsent": false,
2222    "cookies": ['wysistat'],
2223    "js": function () {
2224        "use strict";
2225
2226        if (tarteaucitron.user.wysistatNom === undefined) {
2227            return;
2228        }
2229
2230        window._wsq = window._wsq || [];
2231        window._wsq.push(['_setNom', tarteaucitron.user.wysistatNom]);
2232        window._wsq.push(['_wysistat']);
2233
2234        tarteaucitron.addScript('https://www.wysistat.com/ws.jsa');
2235    }
2236};
2237
2238// robofabrica
2239tarteaucitron.services.robofabrica = {
2240    "key": "robofabrica",
2241    "type": "support",
2242    "name": "Robo Fabrica Chatbot",
2243    "uri": "https://robofabrica.tech/charte-vie-privee/",
2244    "needConsent": true,
2245    "cookies": [],
2246    "js": function () {
2247        "use strict";
2248
2249        if (tarteaucitron.user.robofabricaUuid === undefined) {
2250            return;
2251        }
2252
2253        tarteaucitron.addScript('https://app.robofabrica.tech/widget/script', 'inceptive-cw-script', function() {
2254
2255            document.getElementById('inceptive-cw-script').setAttribute('unique-url', tarteaucitron.user.robofabricaUuid);
2256            document.getElementById('inceptive-cw-script').setAttribute('label', 'start');
2257            document.getElementById('inceptive-cw-script').setAttribute('launch-btn-id', 'inceptive-cw-launch');
2258            document.getElementById('inceptive-cw-script').setAttribute('chat-server-url', 'https://app.robofabrica.tech:443');
2259
2260        });
2261    }
2262};
2263
2264// trustpilot
2265tarteaucitron.services.trustpilot = {
2266    "key": "trustpilot",
2267    "type": "other",
2268    "name": "Trustpilot",
2269    "uri": "https://fr.legal.trustpilot.com/for-reviewers/end-user-privacy-terms",
2270    "needConsent": true,
2271    "cookies": [],
2272    "js": function () {
2273        "use strict";
2274        tarteaucitron.fallback(['trustpilot-widget'], '');
2275        tarteaucitron.addScript('https://widget.trustpilot.com/bootstrap/v5/tp.widget.sync.bootstrap.min.js');
2276    },
2277    "fallback": function () {
2278        "use strict";
2279        var id = 'trustpilot';
2280        tarteaucitron.fallback(['trustpilot-widget'], function (elem) {
2281            elem.style.width = elem.getAttribute('data-style-width');
2282            elem.style.height = elem.getAttribute('data-style-height');
2283            return tarteaucitron.engage(id);
2284        });
2285    }
2286};
2287
2288// snapchat
2289tarteaucitron.services.snapchat = {
2290    "key": "snapchat",
2291    "type": "analytic",
2292    "name": "Snapchat",
2293    "uri": "https://snap.com/fr-FR/privacy/privacy-policy",
2294    "needConsent": true,
2295    "cookies": [],
2296    "js": function () {
2297        "use strict";
2298
2299        if (tarteaucitron.user.snapchatId === undefined || tarteaucitron.user.snapchatEmail === undefined) {
2300            return;
2301        }
2302
2303	var a = window.snaptr = function() {
2304		a.handleRequest ? a.handleRequest.apply(a, arguments) : a.queue.push(arguments)
2305	};
2306	a.queue = [];
2307        window.snaptr('init', tarteaucitron.user.snapchatId, {
2308	    'user_email': tarteaucitron.user.snapchatEmail
2309        });
2310        window.snaptr('track', 'PAGE_VIEW');
2311
2312        tarteaucitron.addScript('https://sc-static.net/scevent.min.js');
2313	    
2314	if (typeof tarteaucitron.user.snapchatMore === 'function') {
2315            tarteaucitron.user.snapchatMore();
2316        }
2317    }
2318};
2319
2320// antvoice
2321tarteaucitron.services.antvoice = {
2322    "key": "antvoice",
2323    "type": "ads",
2324    "name": "antvoice",
2325    "uri": "https://www.antvoice.com/fr/privacy-policy/",
2326    "needConsent": true,
2327    "cookies": ['antvoice'],
2328    "js": function () {
2329        "use strict";
2330
2331        if (tarteaucitron.user.antvoiceId === undefined) {
2332            return;
2333        }
2334
2335        window.avDataLayer = window.avDataLayer || [];
2336        window.avtag = window.avtag || function(_cmd,_p) {
2337            window.avDataLayer.push({cmd:_cmd,p:_p});
2338        }
2339        window.avtag('setConsent', {consent:true});
2340        window.avtag('init', {id: tarteaucitron.user.antvoiceId});
2341
2342        tarteaucitron.addScript('https://static.avads.net/avtag.min.js');
2343    }
2344};
2345
2346// plausible
2347tarteaucitron.services.plausible = {
2348    "key": "plausible",
2349    "type": "analytic",
2350    "name": "Plausible",
2351    "uri": "https://plausible.io/privacy",
2352    "needConsent": false,
2353    "cookies": [],
2354    "js": function () {
2355        "use strict";
2356
2357        if (tarteaucitron.user.plausibleDomain === undefined) {
2358            return;
2359        }
2360
2361        tarteaucitron.addScript('https://plausible.io/js/script.js', '', '', '', 'data-domain', tarteaucitron.user.plausibleDomain);
2362    }
2363};
2364
2365// videas
2366tarteaucitron.services.videas = {
2367    "key": "videas",
2368    "type": "video",
2369    "name": "Videas",
2370    "uri": "https://videas.fr/fr/legal",
2371    "needConsent": true,
2372    "cookies": [],
2373    "js": function () {
2374        "use strict";
2375        tarteaucitron.fallback(['tac_videas'], function (x) {
2376            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Videas iframe'),
2377                width = x.getAttribute("width"),
2378                height = x.getAttribute("height"),
2379                id = x.getAttribute("data-id"),
2380                allowfullscreen = x.getAttribute("allowfullscreen");
2381
2382            return '<iframe title="' + frame_title + '" src="https://app.videas.fr/embed/' + id + '/" width="' + width + '" height="' + height + '" allowtransparency ' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
2383        });
2384    },
2385    "fallback": function () {
2386        "use strict";
2387        var id = 'videas';
2388        tarteaucitron.fallback(['tac_videas'], function (elem) {
2389            elem.style.width = elem.getAttribute('width') + 'px';
2390            elem.style.height = elem.getAttribute('height') + 'px';
2391            return tarteaucitron.engage(id);
2392        });
2393    }
2394};
2395
2396// myfeelback
2397tarteaucitron.services.myfeelback = {
vendor: 9,718 bytes, lines 2398-2688
2398    "key": "myfeelback",
2399    "type": "api",
2400    "name": "MyFeelBack (Skeepers)",
2401    "uri": "https://help.myfeelback.com/fr/quels-sont-les-cookies-d%C3%A9pos%C3%A9s-par-un-dispositif-de-collecte-myfeelback",
2402    "needConsent": true,
2403    "cookies": [],
2404    "js": function () {
2405        "use strict";
2406        if (tarteaucitron.user.myfeelbackId === undefined) {
2407            return;
2408        }
2409
2410        window._Mfb_useCookie = true;
2411        window._Mfb_ud = {
2412            var1: undefined,
2413            var2: undefined,
2414            varN: undefined,
2415            _context: {
2416                lang: undefined,
2417                privacyMode: false,
2418                _page: {
2419                    url: location.pathname,
2420                    storageDuration: 30
2421                }
2422            }
2423        };
2424        tarteaucitron.addScript('https://actorssl-5637.kxcdn.com/actor/'+tarteaucitron.user.myfeelbackId+'/action', 'MFBActor');
2425    }
2426};
2427
2428// arcio
2429tarteaucitron.services.arcio = {
2430    "key": "arcio",
2431    "type": "api",
2432    "name": "Arc.io",
2433    "uri": "https://arc.io/about",
2434    "needConsent": true,
2435    "cookies": [],
2436    "js": function () {
2437        "use strict";
2438        if (tarteaucitron.user.arcId === undefined) {
2439            return;
2440        }
2441
2442        tarteaucitron.addScript('https://arc.io/widget.min.js#'+tarteaucitron.user.arcId);
2443    }
2444};
2445
2446// doubleclick
2447tarteaucitron.services.doubleclick = {
2448    "key": "doubleclick",
2449    "type": "ads",
2450    "name": "DoubleClick",
2451    "uri": "https://support.google.com/admanager/answer/2839090",
2452    "needConsent": true,
2453    "cookies": [],
2454    "js": function () {
2455        "use strict";
2456        tarteaucitron.fallback(['doubleclick_container'], function (x) {
2457            var id1 = tarteaucitron.getElemAttr(x, "data-id1"),
2458                id2 = tarteaucitron.getElemAttr(x, "data-id2"),
2459                type = tarteaucitron.getElemAttr(x, "data-type"),
2460                cat = tarteaucitron.getElemAttr(x, "data-cat"),
2461                item = tarteaucitron.getElemAttr(x, "data-item"),
2462                quantity = tarteaucitron.getElemAttr(x, "data-quantity"),
2463                price = tarteaucitron.getElemAttr(x, "data-price"),
2464                postage = tarteaucitron.getElemAttr(x, "data-postage"),
2465                seller = tarteaucitron.getElemAttr(x, "data-seller"),
2466                gdpr = tarteaucitron.getElemAttr(x, "data-gdpr"),
2467                gdpr_consent = tarteaucitron.getElemAttr(x, "data-gdpr-consent"),
2468                ord = tarteaucitron.getElemAttr(x, "data-ord"),
2469                num = tarteaucitron.getElemAttr(x, "data-num");
2470
2471            return '<iframe src="https://'+id1+'.fls.doubleclick.net/activityi;src='+id2+';type='+type+';cat='+cat+';item='+item+';quantity='+quantity+';price='+price+';postage='+postage+';seller='+seller+';gdpr='+gdpr+';gdpr_consent='+gdpr_consent+';num='+num+';ord='+ord+'?" width="1" height="1" frameborder="0" style="display:none"></iframe>';
2472        });
2473    }
2474};
2475
2476// userpilot
2477tarteaucitron.services.userpilot = {
2478    "key": "userpilot",
2479    "type": "analytic",
2480    "name": "UserPilot",
2481    "uri": "https://userpilot.com/privacy-policy",
2482    "needConsent": true,
2483    "cookies": [],
2484    "js": function () {
2485        "use strict";
2486        if (tarteaucitron.user.userpilotToken === undefined) {
2487            return;
2488        }
2489
2490        window.userpilotSettings = {token: tarteaucitron.user.userpilotToken};
2491        tarteaucitron.addScript('https://js.userpilot.io/sdk/latest.js');
2492    }
2493};
2494
2495tarteaucitron.services.piwikpro = {
2496    "key": "piwikpro",
2497    "type": "analytic",
2498    "name": "Piwik Pro",
2499    "uri": "https://piwik.pro/privacy-policy/",
2500    "needConsent": true,
2501    "cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'piwik_ignore', '_pk_uid'],
2502    "js": function () {
2503        "use strict";
2504        if (tarteaucitron.user.piwikProId === undefined) {
2505            return;
2506        }
2507
2508        window['dataLayer'] = window['dataLayer'] || [], window['dataLayer'].push({
2509            start: (new Date).getTime(),
2510            event: "stg.start"
2511        });
2512
2513        function stgCreateCookie(a, b, c) {
2514           var d = "";
2515           if (c) {
2516              var e = new Date;
2517              e.setTime(e.getTime() + 24 * c * 60 * 60 * 1e3), d = "; expires=" + e.toUTCString()
2518           }
2519           document.cookie = a + "=" + b + d + "; path=/"
2520        }
2521
2522        var isStgDebug = (window.location.href.match("stg_debug") || document.cookie.match("stg_debug")) && !window.location.href.match("stg_disable_debug");
2523        stgCreateCookie("stg_debug", isStgDebug ? 1 : "", isStgDebug ? 14 : -1);
2524        var qP = [];
2525
2526        var qPString = qP.length > 0 ? ("?" + qP.join("&")) : "";
2527        tarteaucitron.addScript('https://carsatse.containers.piwik.pro/'+tarteaucitron.user.piwikProId+'.js'+qPString);
2528
2529        ! function(a, n, i) {
2530           a[n] = a[n] || {};
2531           for (var c = 0; c < i.length; c++) ! function(i) {
2532              a[n][i] = a[n][i] || {}, a[n][i].api = a[n][i].api || function() {
2533                 var a = [].slice.call(arguments, 0);
2534                 "string" == typeof a[0] && window['dataLayer'].push({
2535                    event: n + "." + i + ":" + a[0],
2536                    parameters: [].slice.call(arguments, 1)
2537                 })
2538              }
2539           }(i[c])
2540        }(window, "ppms", ["tm", "cm"]);
2541    }
2542};
2543
2544// pinterestpixel
2545tarteaucitron.services.pinterestpixel = {
2546    "key": "pinterestpixel",
2547    "type": "ads",
2548    "name": "Pinterest Pixel",
2549    "uri": "https://help.pinterest.com/fr/business/article/track-conversions-with-pinterest-tag",
2550    "needConsent": true,
2551    "cookies": ['_pinterest_sess', '_pinterest_ct', '_pinterest_ct_mw', '_pinterest_ct_rt', '_epik', '_derived_epik', '_pin_unauth', '_pinterest_ct_ua'],
2552    "js": function () {
2553        "use strict";
2554
2555        if (tarteaucitron.user.pinterestpixelId === undefined) {
2556            return;
2557        }
2558
2559        if (!window.pintrk) {
2560            window.pintrk = function () {
2561                window.pintrk.queue.push(Array.prototype.slice.call(arguments));
2562            };
2563
2564            var n = window.pintrk;
2565            n.queue = [];
2566            n.version = "3.0";
2567
2568            tarteaucitron.addScript('https://s.pinimg.com/ct/core.js', '', function () {
2569                window.pintrk('load', tarteaucitron.user.pinterestpixelId);
2570                window.pintrk('page');
2571            });
2572        }
2573    }
2574};
2575
2576// elfsight
2577tarteaucitron.services.elfsight = {
2578    "key": "elfsight",
2579    "type": "support",
2580    "name": "Elfsight",
2581    "uri": "https://elfsight.com/privacy-policy/",
2582    "needConsent": true,
2583    "cookies": ['__cfduid', '_p_hfp_client_id', 'session_id'],
2584    "js": function () {
2585        "use strict";
2586
2587        tarteaucitron.addScript('https://apps.elfsight.com/p/platform.js');
2588    }
2589};
2590
2591// plezi
2592tarteaucitron.services.plezi = {
2593    "key": "plezi",
2594    "type": "analytic",
2595    "name": "Plezi",
2596    "uri": "https://www.plezi.co/fr/mentions-legales/",
2597    "needConsent": true,
2598    "cookies": [],
2599    "js": function () {
2600        "use strict";
2601
2602        if (tarteaucitron.user.pleziTenant === undefined || tarteaucitron.user.pleziTw === undefined) {
2603            return;
2604        }
2605
2606        tarteaucitron.addScript('https://app.plezi.co/scripts/ossleads_analytics.js?tenant=' + tarteaucitron.user.pleziTenant + '&tw=' + tarteaucitron.user.pleziTw);
2607    }
2608};
2609
2610
2611// smartsupp
2612tarteaucitron.services.smartsupp = {
2613    "key": "smartsupp",
2614    "type": "support",
2615    "name": "Smartsupp",
2616    "uri": "https://www.smartsupp.com/help/privacy/",
2617    "needConsent": true,
2618    "cookies": ['ssupp.vid', 'ssupp.visits', 'AWSALB', 'AWSALBCORS'],
2619    "js": function () {
2620        "use strict";
2621
2622        if (tarteaucitron.user.smartsuppKey === undefined) {
2623            return;
2624        }
2625
2626        window._smartsupp = window._smartsupp || {};
2627        window._smartsupp.key = tarteaucitron.user.smartsuppKey;
2628        window.smartsupp = function () {
2629            window.smartsupp._.push(arguments)
2630        };
2631        window.smartsupp._ = [];
2632
2633        tarteaucitron.addScript('https://www.smartsuppchat.com/loader.js');
2634    }
2635};
2636
2637
2638
2639// sharpspring
2640tarteaucitron.services.sharpspring = {
2641    "key": "sharpspring",
2642    "type": "analytic",
2643    "name": "SharpSpring",
2644    "uri": "https://sharpspring.com/legal/sharpspring-cookie-policy/",
2645    "needConsent": true,
2646    "cookies": ['koitk', '__ss', '__ss_tk', '__ss_referrer'],
2647    "js": function () {
2648        "use strict";
2649
2650        if (tarteaucitron.user.ssId === undefined || tarteaucitron.user.ssAccount === undefined) {
2651            return;
2652        }
2653
2654        window._ss = window._ss || [];
2655        window._ss.push(['_setDomain', 'https://' + tarteaucitron.user.ssId + '.marketingautomation.services/net']);
2656        window._ss.push(['_setAccount', tarteaucitron.user.ssAccount]);
2657        window._ss.push(['_trackPageView']);
2658
2659        window._pa = window._pa || {};
2660
2661        tarteaucitron.addScript('https://' + tarteaucitron.user.ssId + '.marketingautomation.services/client/ss.js');
2662    }
2663};
2664
2665// pardot
2666tarteaucitron.services.pardot = {
2667    "key": "pardot",
2668    "type": "analytic",
2669    "name": "Pardot",
2670    "uri": "https://www.salesforce.com/company/privacy/full_privacy/",
2671    "needConsent": true,
2672    "cookies": ['visitor_id'],
2673    "js": function () {
2674        "use strict";
2675        if (tarteaucitron.user.piAId === undefined || tarteaucitron.user.piCId === undefined) {
2676            return;
2677        }
2678
2679        window.piAId = tarteaucitron.user.piAId;
2680        window.piCId = tarteaucitron.user.piCId;
2681        window.piHostname = 'pi.pardot.com';
2682
2683        tarteaucitron.addScript('https://pi.pardot.com/pd.js');
2684    }
2685};
2686
2687// Open Web Analytics
2688tarteaucitron.services.openwebanalytics = {
2689    "key": "openwebanalytics",
2690    "type": "analytic",
2691    "name": "Open Web Analytics",
2692    "uri": "",
2693    "needConsent": true,
2694    "cookies": [],
2695    "js": function () {
2696        "use strict";
2697
2698        if (tarteaucitron.user.openwebanalyticsId === undefined || tarteaucitron.user.openwebanalyticsHost === undefined) {
2699            return;
2700        }
2701
2702        window.owa_baseUrl = tarteaucitron.user.openwebanalyticsHost;
2703        window.owa_cmds = window.owa_cmds || [];
2704        window.owa_cmds.push(['setSiteId', tarteaucitron.user.openwebanalyticsId]);
2705        window.owa_cmds.push(['trackPageView']);
2706        window.owa_cmds.push(['trackClicks']);
2707
2708        tarteaucitron.addScript(window.owa_baseUrl + 'modules/base/js/owa.tracker-combined-min.js');
2709    }
2710};
2711
2712// xandr universal pixel
2713// https://docs.xandr.com/bundle/invest_invest-standard/page/topics/universal-pixel-overview.html
2714tarteaucitron.services.xandr = {
2715    "key": "xandr",
2716    "type": "ads",
2717    "name": "Xandr (Universal)",
2718    "uri": "https://www.xandr.com/privacy/cookie-policy/",
2719    "needConsent": true,
2720    "cookies": ['uuid2', 'uids', 'sess', 'icu', 'anj', 'usersync'],
2721    "js": function () {
2722        "use strict";
2723        if (tarteaucitron.user.xandrId === undefined) {
2724            return;
2725        }
2726
2727        if (!window.pixie) {
2728            var n = window.pixie = function (e, i, a) {
2729                n.actionQueue.push({
2730                    action: e,
2731                    actionValue: i,
2732                    params: a
2733                })
2734            };
2735            n.actionQueue = [];
2736        }
2737
2738        tarteaucitron.addScript('https://acdn.adnxs.com/dmp/up/pixie.js', '', function () {
2739            window.pixie('init', tarteaucitron.user.xandrId);
2740            window.pixie('event', 'PageView');
2741        });
2742    }
2743};
2744
2745// xandr segment
2746// https://docs.xandr.com/bundle/invest_invest-standard/page/topics/segment-pixels-advanced.html
2747tarteaucitron.services.xandrsegment = {
2748    "key": "xandrsegment",
2749    "type": "ads",
2750    "name": "Xandr (Segment)",
2751    "uri": "https://www.xandr.com/privacy/cookie-policy/",
2752    "needConsent": true,
2753    "cookies": ['uuid2', 'uids', 'sess', 'icu', 'anj', 'usersync'],
2754    "js": function () {
2755        "use strict";
2756        var uniqIds = [],
2757            i,
2758            uri;
2759
2760        tarteaucitron.fallback(['xandrsegment-canvas'], function (x) {
2761            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
2762            uniqIds.push(uniqId);
2763            return '<div id="' + uniqId + '" xandrsegmentAdd="' + x.getAttribute('xandrsegmentAdd') + '" xandrsegmentAddCode="' + x.getAttribute('xandrsegmentAddCode') + '" xandrsegmentRemove="' + x.getAttribute('xandrsegmentRemove') + '" xandrsegmentRemoveCode="' + x.getAttribute('xandrsegmentRemoveCode') + '" xandrsegmentMember="' + x.getAttribute('xandrsegmentMember') + '" xandrsegmentRedir="' + x.getAttribute('xandrsegmentRedir') + '" xandrsegmentValue="' + x.getAttribute('xandrsegmentValue') + '" xandrsegmentOther="' + x.getAttribute('xandrsegmentOther') + '"></div>';
2764        });
2765
2766        for (i = 0; i < uniqIds.length; i += 1) {
2767            uri = '//ib.adnxs.com/seg?t=2&';
2768            uri += 'add=' + document.getElementById(uniqIds[i]).getAttribute('xandrsegmentAdd') + '&';
2769            uri += 'add_code=' + document.getElementById(uniqIds[i]).getAttribute('xandrsegmentAddCode') + '&';
2770            uri += 'remove=' + document.getElementById(uniqIds[i]).getAttribute('xandrsegmentRemove') + '&';
2771            uri += 'remove_code=' + document.getElementById(uniqIds[i]).getAttribute('xandrsegmentRemoveCode') + '&';
2772            uri += 'member=' + document.getElementById(uniqIds[i]).getAttribute('xandrsegmentMember') + '&';
2773            uri += 'redir=' + document.getElementById(uniqIds[i]).getAttribute('xandrsegmentRedir') + '&';
2774            uri += 'value=' + document.getElementById(uniqIds[i]).getAttribute('xandrsegmentValue') + '&';
2775            uri += 'other=' + document.getElementById(uniqIds[i]).getAttribute('xandrsegmentOther');
2776
2777            document.getElementById(uniqIds[i]).innerHTML = '<img src=\'' + uri + '\' width=\'1\' height=\'1\' />';
2778        }
2779    },
2780    "fallback": function () {
2781        "use strict";
2782        var id = 'xandrsegment';
2783        tarteaucitron.fallback(['xandrsegment-canvas'], tarteaucitron.engage(id));
2784    }
2785};
2786
2787// xandr conversion
2788// https://docs.xandr.com/bundle/invest_invest-standard/page/topics/working-with-conversion-pixels.html
2789tarteaucitron.services.xandrconversion = {
2790    "key": "xandrconversion",
2791    "type": "ads",
2792    "name": "Xandr (Conversion)",
2793    "uri": "https://www.xandr.com/privacy/cookie-policy/",
2794    "needConsent": true,
2795    "cookies": ['uuid2', 'uids', 'sess', 'icu', 'anj', 'usersync'],
2796    "js": function () {
2797        "use strict";
2798        var uniqIds = [],
2799            i,
2800            uri;
2801
2802        tarteaucitron.fallback(['xandrconversion-canvas'], function (x) {
2803            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
2804            uniqIds.push(uniqId);
2805            return '<div id="' + uniqId + '" xandrconversionId="' + x.getAttribute('xandrconversionId') + '" xandrconversionSeg="' + x.getAttribute('xandrconversionSeg') + '" xandrconversionOrderId="' + x.getAttribute('xandrconversionOrderId') + '" xandrconversionValue="' + x.getAttribute('xandrconversionValue') + '" xandrconversionRedir="' + x.getAttribute('xandrconversionRedir') + '" xandrconversionOther="' + x.getAttribute('xandrconversionOther') + '"></div>';
2806        });
2807
2808        for (i = 0; i < uniqIds.length; i += 1) {
2809            uri = '//ib.adnxs.com/px?t=2&';
2810            uri += 'id=' + document.getElementById(uniqIds[i]).getAttribute('xandrconversionId') + '&';
2811            uri += 'seg=' + document.getElementById(uniqIds[i]).getAttribute('xandrconversionSeg') + '&';
2812            uri += 'order_id=' + document.getElementById(uniqIds[i]).getAttribute('xandrconversionOrderId') + '&';
2813            uri += 'value=' + document.getElementById(uniqIds[i]).getAttribute('xandrconversionValue') + '&';
2814            uri += 'redir=' + document.getElementById(uniqIds[i]).getAttribute('xandrconversionRedir') + '&';
2815            uri += 'other=' + document.getElementById(uniqIds[i]).getAttribute('xandrconversionOther');
2816
2817            document.getElementById(uniqIds[i]).innerHTML = '<img src=\'' + uri + '\' width=\'1\' height=\'1\' />';
2818        }
2819    },
2820    "fallback": function () {
2821        "use strict";
2822        var id = 'xandrconversion';
2823        tarteaucitron.fallback(['xandrconversion-canvas'], tarteaucitron.engage(id));
2824    }
2825};
2826
2827// helloasso
2828tarteaucitron.services.helloasso = {
2829    "key": "helloasso",
2830    "type": "api",
2831    "name": "HelloAsso",
2832    "uri": "https://www.helloasso.com/confidentialite",
2833    "needConsent": true,
2834    "cookies": [],
2835    "js": function () {
2836        "use strict";
2837        tarteaucitron.fallback(['tac_helloasso'], function (x) {
2838            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'HelloAsso iframe'),
2839                width = x.getAttribute("width"),
2840                height = x.getAttribute("height"),
2841                url = x.getAttribute("data-url"),
2842                allowfullscreen = x.getAttribute("allowfullscreen");
2843
2844            return '<iframe title="' + frame_title + '" id="haWidget" src="' + url + '" width="' + width + '" height="' + height + '" scrolling="auto" allowtransparency ' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
2845        });
2846    },
2847    "fallback": function () {
2848        "use strict";
2849        var id = 'helloasso';
2850        tarteaucitron.fallback(['tac_helloasso'], function (elem) {
2851            elem.style.width = elem.getAttribute('width') + 'px';
2852            elem.style.height = elem.getAttribute('height') + 'px';
2853            return tarteaucitron.engage(id);
2854        });
2855    }
2856};
2857
2858// podcloud
2859tarteaucitron.services.podcloud = {
2860    "key": "podcloud",
2861    "type": "video",
2862    "name": "podCloud",
2863    "uri": "https://podcloud.fr/privacy",
2864    "needConsent": true,
2865    "cookies": [],
2866    "js": function () {
2867        "use strict";
2868        tarteaucitron.fallback(['tac_podcloud'], function (x) {
2869            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'podCloud iframe'),
2870                width = x.getAttribute("width"),
2871                height = x.getAttribute("height"),
2872                url = x.getAttribute("data-url"),
2873                allowfullscreen = x.getAttribute("allowfullscreen");
2874
2875            return '<iframe title="' + frame_title + '" src="' + url + '" width="' + width + '" height="' + height + '" scrolling="auto" allowtransparency ' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
2876        });
2877    },
2878    "fallback": function () {
2879        "use strict";
2880        var id = 'podcloud';
2881        tarteaucitron.fallback(['tac_podcloud'], function (elem) {
2882            elem.style.width = elem.getAttribute('width') + 'px';
2883            elem.style.height = elem.getAttribute('height') + 'px';
2884            return tarteaucitron.engage(id);
2885        });
2886    }
2887};
2888
2889// facebookpost
2890tarteaucitron.services.facebookpost = {
2891    "key": "facebookpost",
2892    "type": "social",
2893    "name": "Facebook (post)",
2894    "uri": "https://www.facebook.com/policy.php",
2895    "needConsent": true,
2896    "cookies": [],
2897    "js": function () {
2898        "use strict";
2899        tarteaucitron.fallback(['tac_facebookpost'], function (x) {
2900            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Facebook iframe'),
2901                width = x.getAttribute("width"),
2902                height = x.getAttribute("height"),
2903                url = x.getAttribute("data-url"),
2904                appId = x.getAttribute("data-appid"),
2905                allowfullscreen = x.getAttribute("allowfullscreen"),
2906                showText = x.getAttribute("data-show-text");
2907
2908            return '<iframe title="' + frame_title + '" src="https://www.facebook.com/plugins/post.php?href=' + encodeURIComponent(url) + '&amp;width=' + width + '&amp;show_text=false&amp;appId=' + appId + '&amp;show_text=' + showText + '&amp;height=' + height + '" width="' + width + '" height="' + height + '" scrolling="auto" allowtransparency ' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
2909        });
2910    },
2911    "fallback": function () {
2912        "use strict";
2913        var id = 'facebookpost';
2914        tarteaucitron.fallback(['tac_facebookpost'], function (elem) {
2915            elem.style.width = elem.getAttribute('width') + 'px';
2916            elem.style.height = elem.getAttribute('height') + 'px';
2917            return tarteaucitron.engage(id);
2918        });
2919    }
2920};
2921
2922// amplitude
2923tarteaucitron.services.amplitude = {
2924    "key": "amplitude",
2925    "type": "analytic",
2926    "name": "Amplitude",
2927    "uri": "https://amplitude.com/privacy",
2928    "needConsent": true,
2929    "cookies": [],
2930    "js": function () {
2931        "use strict";
2932        if (tarteaucitron.user.amplitude === undefined) {
2933            return;
2934        }
2935        tarteaucitron.addScript('https://cdn.amplitude.com/libs/amplitude-5.8.0-min.gz.js', '', function () {
2936
2937            window.amplitude = {
2938                _q: [],
2939                _iq: {}
2940            };
2941            function s(e, t) { e.prototype[t] = function () { this._q.push([t].concat(Array.prototype.slice.call(arguments, 0))); return this } }
2942            var o = function () { this._q = []; return this };
2943            var a = ["add", "append", "clearAll", "prepend", "set", "setOnce", "unset"];
2944            for (var u = 0; u < a.length; u++) { s(o, a[u]) }
2945            amplitude.Identify = o;
2946            var c = function () { this._q = []; return this };
2947            var l = ["setProductId", "setQuantity", "setPrice", "setRevenueType", "setEventProperties"];
2948            for (var p = 0; p < l.length; p++) { s(c, l[p]) }
2949            amplitude.Revenue = c;
2950            var d = ["init", "logEvent", "logRevenue", "setUserId", "setUserProperties", "setOptOut", "setVersionName", "setDomain", "setDeviceId", "enableTracking", "setGlobalUserProperties", "identify", "clearUserProperties", "setGroup", "logRevenueV2", "regenerateDeviceId", "groupIdentify", "onInit", "logEventWithTimestamp", "logEventWithGroups", "setSessionId", "resetSessionId"];
2951            function v(e) { function t(t) { e[t] = function () { e._q.push([t].concat(Array.prototype.slice.call(arguments, 0))) } } for (var n = 0; n < d.length; n++) { t(d[n]) } }
2952            v(amplitude);
2953            amplitude.getInstance = function (e) { e = (!e || e.length === 0 ? "$default_instance" : e).toLowerCase(); if (!amplitude._iq.hasOwnProperty(e)) { amplitude._iq[e] = { _q: [] }; v(amplitude._iq[e]) } return amplitude._iq[e] };
2954
2955            amplitude.getInstance().init(tarteaucitron.user.amplitude);
2956        });
2957    }
2958};
2959
2960// abtasty
2961tarteaucitron.services.abtasty = {
2962    "key": "abtasty",
2963    "type": "api",
2964    "name": "ABTasty",
2965    "uri": "https://www.abtasty.com/terms-of-use/",
2966    "needConsent": true,
2967    "cookies": ['ABTasty', 'ABTastySession'],
2968    "js": function () {
2969        "use strict";
2970        if (tarteaucitron.user.abtastyID === undefined) {
2971            return;
2972        }
vendor: 4,136 bytes, lines 2973-3092
2973        tarteaucitron.addScript('//try.abtasty.com/' + tarteaucitron.user.abtastyID + '.js');
2974    }
2975};
2976
2977
2978// yandex metrica
2979tarteaucitron.services.metrica = {
2980    "key": "metrica",
2981    "type": "analytic",
2982    "name": "Yandex Metrica",
2983    "uri": "https://yandex.com/legal/confidential/",
2984    "needConsent": true,
2985    "cookies": ['_ym_metrika_enabled', '_ym_isad', '_ym_uid', '_ym_d', 'yabs-sid', '_ym_debug', '_ym_mp2_substs', '_ym_hostIndex', '_ym_mp2_track', 'yandexuid', 'usst'],
2986    "js": function () {
2987        "use strict";
2988        if (tarteaucitron.user.yandexmetrica === undefined) {
2989            return;
2990        }
2991        tarteaucitron.addScript('https://mc.yandex.ru/metrika/tag.js', '', function () {
2992
2993            (function (m, e, t, r, i, k, a) {
2994                m[i] = m[i] || function () { (m[i].a = m[i].a || []).push(arguments) };
2995                m[i].l = 1 * new Date(); k = e.createElement(t), a = e.getElementsByTagName(t)[0], k.async = 1, k.src = r, a.parentNode.insertBefore(k, a)
2996            })
2997                (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
2998
2999            ym(tarteaucitron.user.yandexmetrica, "init", {
3000                clickmap: true,
3001                trackLinks: true,
3002                accurateTrackBounce: true,
3003                webvisor: true,
3004                ecommerce: "dataLayer"
3005            });
3006        });
3007    }
3008};
3009
3010// addthis
3011tarteaucitron.services.addthis = {
3012    "key": "addthis",
3013    "type": "social",
3014    "name": "AddThis",
3015    "uri": "https://www.addthis.com/privacy/privacy-policy#publisher-visitors",
3016    "needConsent": true,
3017    "cookies": ['__atuvc', '__atuvs'],
3018    "js": function () {
3019        "use strict";
3020        if (tarteaucitron.user.addthisPubId === undefined) {
3021            return;
3022        }
3023        if (tarteaucitron.isAjax === true) {
3024            window.addthis = null;
3025            window._adr = null;
3026            window._atc = null;
3027            window._atd = null;
3028            window._ate = null;
3029            window._atr = null;
3030            window._atw = null;
3031        }
3032        tarteaucitron.fallback(['addthis_inline_share_toolbox'], '');
3033        tarteaucitron.addScript('//s7.addthis.com/js/300/addthis_widget.js#pubid=' + tarteaucitron.user.addthisPubId);
3034    },
3035    "fallback": function () {
3036        "use strict";
3037        var id = 'addthis';
3038        tarteaucitron.fallback(['addthis_inline_share_toolbox'], tarteaucitron.engage(id));
3039    }
3040};
3041
3042// addtoanyfeed
3043tarteaucitron.services.addtoanyfeed = {
3044    "key": "addtoanyfeed",
3045    "type": "social",
3046    "name": "AddToAny (feed)",
3047    "uri": "https://www.addtoany.com/privacy",
3048    "needConsent": true,
3049    "cookies": [],
3050    "js": function () {
3051        "use strict";
3052        if (tarteaucitron.user.addtoanyfeedUri === undefined) {
3053            return;
3054        }
3055        tarteaucitron.user.addtoanyfeedSubscribeLink = 'https://www.addtoany.com/subscribe?linkurl=' + tarteaucitron.user.addtoanyfeedUri;
3056        window.a2a_config = window.a2a_config || {};
3057        window.a2a_config.linkurl = tarteaucitron.user.addtoanyfeedUri;
3058        tarteaucitron.addScript('//static.addtoany.com/menu/feed.js');
3059    },
3060    "fallback": function () {
3061        "use strict";
3062        tarteaucitron.user.addtoanyfeedSubscribeLink = 'https://www.addtoany.com/subscribe?linkurl=' + tarteaucitron.user.addtoanyfeedUri;
3063    }
3064};
3065
3066// addtoanyshare
3067tarteaucitron.services.addtoanyshare = {
3068    "key": "addtoanyshare",
3069    "type": "social",
3070    "name": "AddToAny (share)",
3071    "uri": "https://www.addtoany.com/privacy",
3072    "needConsent": true,
3073    "cookies": [],
3074    "js": function () {
3075        "use strict";
3076        tarteaucitron.fallback(['tac_addtoanyshare'], function (elem) {
3077            elem.remove();
3078        }, true);
3079        tarteaucitron.addScript('//static.addtoany.com/menu/page.js');
3080    },
3081    "fallback": function () {
3082        "use strict";
3083        var id = 'addtoanyshare';
3084        tarteaucitron.fallback(['tac_addtoanyshare'], tarteaucitron.engage(id));
3085    }
3086};
3087
3088// aduptech ads
3089tarteaucitron.services.aduptech_ads = {
3090    "key": "aduptech_ads",
3091    "type": "ads",
3092    "name": "Ad Up Technology (ads)",
3093    "uri": "https://www.adup-tech.com/datenschutz",
3094    "needConsent": true,
3095    "cookies": [],
3096    "js": function () {
3097        "use strict";
3098
3099        var IDENTIFIER = "aduptech_ads",
3100            API_URL = "https://s.d.adup-tech.com/jsapi";
3101
3102        var elements = document.getElementsByClassName(IDENTIFIER);
3103        if (!elements || elements.length === 0) {
3104            return;
3105        }
3106
3107        tarteaucitron.fallback([IDENTIFIER], "");
3108
3109        tarteaucitron.addScript(API_URL, "", function () {
3110            for (var i = 0; i < elements.length; i++) {
3111                var element = elements[i];
3112
3113                if (!element.getAttribute("id")) {
3114                    element.setAttribute("id", IDENTIFIER + Math.random().toString(36).substr(2, 9));
3115                }
3116
3117                window.uAd.embed(element.getAttribute("id"), {
3118                    placementKey: element.getAttribute("placementKey"),
3119                    responsive: Boolean(element.getAttribute("responsive")),
3120                    lazy: Boolean(element.getAttribute("lazy")),
3121                    adtest: Boolean(element.getAttribute("test")),
3122                    query: element.getAttribute("query") || "",
3123                    minCpc: element.getAttribute("minCpc") || "",
3124                    pageUrl: element.getAttribute("pageUrl") || "",
3125                    skip: element.getAttribute("skip") || ""
3126                });
3127            }
3128        });
3129
3130    },
3131    "fallback": function () {
3132        "use strict";
3133        tarteaucitron.fallback(["aduptech_ads"], tarteaucitron.engage("aduptech_ads"));
3134    }
3135};
3136
3137// aduptech conversion
3138tarteaucitron.services.aduptech_conversion = {
3139    "key": "aduptech_conversion",
3140    "type": "ads",
3141    "name": "Ad Up Technology (conversion)",
3142    "uri": "https://www.adup-tech.com/datenschutz",
3143    "needConsent": true,
3144    "cookies": [],
3145    "js": function () {
3146        "use strict";
3147
3148        var IDENTIFIER = "aduptech_conversion",
3149            CONVERSION_PIXEL_BASE_URL = "https://d.adup-tech.com/campaign/conversion";
3150
3151        var elements = document.getElementsByClassName(IDENTIFIER);
3152        if (!elements || elements.length === 0) {
3153            return;
3154        }
3155
3156        tarteaucitron.fallback([IDENTIFIER], "");
3157
3158        for (var i = 0; i < elements.length; i++) {
3159            var element = elements[i];
3160
3161            if (!element.getAttribute("advertiserId") || !element.getAttribute("conversionCode")) {
3162                continue;
3163            }
3164
3165            var url = CONVERSION_PIXEL_BASE_URL +
3166                "/" + encodeURIComponent(element.getAttribute("advertiserId")) +
3167                "?t=" + encodeURIComponent(element.getAttribute("conversionCode"));
3168
3169            if (element.getAttribute("price")) {
3170                url += "&price=" + encodeURIComponent(element.getAttribute("price"));
3171            }
3172
3173            if (element.getAttribute("quantity")) {
3174                url += "&quantity=" + encodeURIComponent(element.getAttribute("quantity"));
3175            }
3176
3177            if (element.getAttribute("total")) {
3178                url += "&total=" + encodeURIComponent(element.getAttribute("total"));
3179            }
3180
3181            if (element.getAttribute("orderId")) {
3182                url += "&order_id=" + encodeURIComponent(element.getAttribute("orderId"));
3183            }
3184
3185            if (element.getAttribute("itemNumber")) {
3186                url += "&item_number=" + encodeURIComponent(element.getAttribute("itemNumber"));
3187            }
3188
3189            if (element.getAttribute("description")) {
3190                url += "&description=" + encodeURIComponent(element.getAttribute("description"));
3191            }
3192
3193            (new Image()).src = url;
3194        }
3195    }
3196};
3197
3198// aduptech retargeting
3199tarteaucitron.services.aduptech_retargeting = {
3200    "key": "aduptech_retargeting",
3201    "type": "ads",
3202    "name": "Ad Up Technology (retargeting)",
3203    "uri": "https://www.adup-tech.com/datenschutz",
3204    "needConsent": true,
3205    "cookies": [],
3206    "js": function () {
3207        "use strict";
3208
3209        var IDENTIFIER = "aduptech_retargeting",
3210            API_URL = "https://s.d.adup-tech.com/services/retargeting.js";
3211
3212        var elements = document.getElementsByClassName(IDENTIFIER);
3213        if (!elements || elements.length === 0) {
3214            return;
3215        }
3216
3217        tarteaucitron.fallback([IDENTIFIER], "");
3218
3219        window.AdUpRetargeting = function (api) {
3220            for (var i = 0; i < elements.length; i++) {
3221                var element = elements[i];
3222
3223                api.init();
3224
3225                api.setAccount(element.getAttribute("account"));
3226
3227                if (element.getAttribute("email")) {
3228                    api.setEmail(element.getAttribute("email"));
3229                } else if (element.getAttribute("hashedEmail")) {
3230                    api.setHashedEmail(element.getAttribute("hashedEmail"));
3231                }
3232
3233                if (element.getAttribute("product")) {
3234                    try {
3235                        api.setProduct(JSON.parse(element.getAttribute("product")));
3236                    } catch (e) {
3237                        api.setProduct(element.getAttribute("product"));
3238                    }
3239                }
3240
3241                if (element.getAttribute("transaction")) {
3242                    try {
3243                        api.setTransaction(JSON.parse(element.getAttribute("transaction")));
3244                    } catch (e) {
3245                        api.setTransaction(element.getAttribute("transaction"));
3246                    }
3247                }
3248
3249                if (element.getAttribute("demarkUser")) {
3250                    api.setDemarkUser();
3251                } else if (element.getAttribute("demarkProducts")) {
3252                    api.setDemarkProducts();
3253                }
3254
3255                if (element.getAttribute("conversionCode")) {
3256                    api.setConversionCode(element.getAttribute("conversionCode"));
3257                }
3258
3259                if (element.getAttribute("device")) {
3260                    var setter = "set" + element.getAttribute("device").charAt(0).toUpperCase() + element.getAttribute("device").slice(1);
3261                    if (typeof api[setter] === 'function') {
3262                        api[setter]();
3263                    }
3264                }
3265
3266                if (element.getAttribute("track")) {
3267                    var tracker = "track" + element.getAttribute("track").charAt(0).toUpperCase() + element.getAttribute("track").slice(1);
3268                    if (typeof api[tracker] === "function") {
3269                        api[tracker]();
3270                    } else {
3271                        api.trackHomepage();
3272                    }
3273                }
3274            };
3275        };
3276
3277        tarteaucitron.addScript(API_URL);
3278    }
3279};
3280
3281// alexa
3282tarteaucitron.services.alexa = {
3283    "key": "alexa",
3284    "type": "analytic",
3285    "name": "Alexa",
3286    "uri": "https://www.alexa.com/help/privacy",
3287    "needConsent": true,
3288    "cookies": ['__asc', '__auc'],
3289    "js": function () {
3290        "use strict";
3291        if (tarteaucitron.user.alexaAccountID === undefined) {
3292            return;
3293        }
3294        window._atrk_opts = {
3295            atrk_acct: tarteaucitron.user.alexaAccountID,
3296            domain: window.location.hostname.match(/[^\.]*\.[^.]*$/)[0],
3297            dynamic: true
3298        };
3299        tarteaucitron.addScript('https://d31qbv1cthcecs.cloudfront.net/atrk.js');
3300    }
3301};
3302
3303// amazon
3304tarteaucitron.services.amazon = {
3305    "key": "amazon",
3306    "type": "ads",
3307    "name": "Amazon",
3308    "uri": "https://www.amazon.com/gp/help/customer/display.html/ref=help_search_1-1?ie=UTF8&nodeId=201909010&qid=1544617177&sr=1-1",
3309    "needConsent": true,
3310    "cookies": [],
3311    "js": function () {
3312        "use strict";
3313        tarteaucitron.fallback(['amazon_product'], function (x) {
3314            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Amazon iframe'),
3315                amazonId = x.getAttribute("amazonid"),
3316                productId = x.getAttribute("productid"),
3317                url = '//ws-eu.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=' + tarteaucitron.getLanguage().toUpperCase() + '&source=ss&ref=ss_til&ad_type=product_link&tracking_id=' + amazonId + '&marketplace=amazon&region=' + tarteaucitron.getLanguage().toUpperCase() + '&placement=' + productId + '&asins=' + productId + '&show_border=true&link_opens_in_new_window=true',
3318                iframe = '<iframe title="' + frame_title + '" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" src="' + url + '"></iframe>';
3319
3320            return iframe;
3321        });
3322    },
3323    "fallback": function () {
3324        "use strict";
3325        var id = 'amazon';
3326        tarteaucitron.fallback(['amazon_product'], tarteaucitron.engage(id));
3327    }
3328};
3329
3330// calameo
3331tarteaucitron.services.calameo = {
3332    "key": "calameo",
3333    "type": "video",
3334    "name": "Calameo",
3335    "uri": "https://fr.calameo.com/privacy",
3336    "needConsent": true,
3337    "cookies": [],
3338    "js": function () {
3339        "use strict";
3340        tarteaucitron.fallback(['calameo-canvas'], function (x) {
3341            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Calameo iframe'),
3342                id = x.getAttribute("data-id"),
3343                width = x.getAttribute("width"),
3344                height = x.getAttribute("height"),
3345                url = '//v.calameo.com/?bkcode=' + id,
3346                allowfullscreen = x.getAttribute("allowfullscreen");
3347
3348            return '<iframe title="' + frame_title + '" src="' + url + '" width="' + width + '" height="' + height + '" scrolling="no" allowtransparency ' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
3349        });
3350    },
3351    "fallback": function () {
3352        "use strict";
3353        var id = 'calameo';
3354        tarteaucitron.fallback(['calameo-canvas'], function (elem) {
3355            elem.style.width = elem.getAttribute('width') + 'px';
3356            elem.style.height = elem.getAttribute('height') + 'px';
3357            return tarteaucitron.engage(id);
3358        });
3359    }
3360};
3361
3362// clicky
3363tarteaucitron.services.clicky = {
3364    "key": "clicky",
3365    "type": "analytic",
3366    "name": "Clicky",
3367    "uri": "https://clicky.com/terms",
3368    "needConsent": true,
3369    "cookies": ['_jsuid', '_eventqueue', '_referrer_og', '_utm_og', '_first_pageview', 'clicky_olark', 'no_trackyy_' + tarteaucitron.user.clickyId, 'unpoco_' + tarteaucitron.user.clickyId, 'heatmaps_g2g_' + tarteaucitron.user.clickyId],
3370    "js": function () {
3371        "use strict";
3372        if (tarteaucitron.user.clickyId === undefined) {
3373            return;
3374        }
3375        tarteaucitron.addScript('//static.getclicky.com/js', '', function () {
3376            if (typeof clicky.init === 'function') {
3377                clicky.init(tarteaucitron.user.clickyId);
3378            }
3379            if (typeof tarteaucitron.user.clickyMore === 'function') {
3380                tarteaucitron.user.clickyMore();
3381            }
3382        });
3383    }
3384};
3385
3386// clicmanager
3387tarteaucitron.services.clicmanager = {
3388    "key": "clicmanager",
3389    "type": "ads",
3390    "name": "Clicmanager",
3391    "uri": "http://www.clicmanager.fr/infos_legales.php",
3392    "needConsent": true,
3393    "cookies": [],
3394    "js": function () {
3395        "use strict";
3396        var uniqIds = [],
3397            i,
3398            uri;
3399
3400        tarteaucitron.fallback(['clicmanager-canvas'], function (x) {
3401            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
3402            uniqIds.push(uniqId);
3403            return '<div id="' + uniqId + '" c="' + x.getAttribute('c') + '" s="' + x.getAttribute('s') + '" t="' + x.getAttribute('t') + '"></div>';
3404        });
3405
3406        for (i = 0; i < uniqIds.length; i += 1) {
3407            uri = '//ads.clicmanager.fr/exe.php?';
3408            uri += 'c=' + document.getElementById(uniqIds[i]).getAttribute('c') + '&';
3409            uri += 's=' + document.getElementById(uniqIds[i]).getAttribute('s') + '&';
3410            uri += 't=' + document.getElementById(uniqIds[i]).getAttribute('t');
3411
3412            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
3413        }
3414    },
3415    "fallback": function () {
3416        "use strict";
3417        var id = 'clicmanager';
3418        tarteaucitron.fallback(['clicmanager-canvas'], tarteaucitron.engage(id));
3419    }
3420};
3421
3422// compteur
3423tarteaucitron.services.compteur = {
3424    "key": "compteur",
3425    "type": "analytic",
3426    "name": "Compteur.fr",
3427    "uri": "https://www.compteur.fr/help_privacy_policy.htm",
3428    "needConsent": true,
3429    "cookies": [],
3430    "js": function () {
3431        "use strict";
3432        if (tarteaucitron.user.compteurID === undefined) {
3433            return;
3434        }
3435        tarteaucitron.addScript('https://server2.compteur.fr/log7.js', '', function () { wtslog7(tarteaucitron.user.compteurID, 1); });
3436    }
3437};
3438
3439// contentsquare
3440tarteaucitron.services.contentsquare = {
3441    "key": "contentsquare",
3442    "type": "api",
3443    "name": "ContentSquare",
3444    "uri": "https://docs.contentsquare.com/uxa-en/#collected-data",
3445    "needConsent": true,
3446    "cookies": ['_cs_id', '_cs_s', '_cs_vars', '_cs_ex', '_cs_c', '_cs_optout'],
3447    "js": function () {
3448        "use strict";
3449        if (tarteaucitron.user.contentsquareID === undefined) {
3450            return;
3451        }
3452        tarteaucitron.addScript('//t.contentsquare.net/uxa/' + tarteaucitron.user.contentsquareID + '.js');
3453    }
3454};
3455
3456// crazyegg
3457tarteaucitron.services.crazyegg = {
3458    "key": "crazyegg",
3459    "type": "analytic",
3460    "name": "Crazy Egg",
3461    "uri": "https://www.crazyegg.com/privacy",
3462    "needConsent": true,
3463    "cookies": [],
3464    "js": function () {
3465        "use strict";
3466
3467        if (tarteaucitron.user.crazyeggId === undefined) {
3468            return;
3469        }
3470
3471        tarteaucitron.addScript('//script.crazyegg.com/pages/scripts/' + tarteaucitron.user.crazyeggId.substr(0, 4) + '/' + tarteaucitron.user.crazyeggId.substr(4, 4) + '.js');
3472    }
3473};
3474
3475// clarity
3476tarteaucitron.services.clarity = {
3477    "key": "clarity",
3478    "type": "analytic",
3479    "name": "Clarity",
3480    "uri": "https://clarity.microsoft.com/",
3481    "needConsent": true,
3482    "cookies": [],
3483    "js": function () {
3484        "use strict";
3485
3486        window["clarity"] = window["clarity"] || function () { (window["clarity"].q = window["clarity"].q || []).push(arguments) };
3487
3488        tarteaucitron.addScript('https://www.clarity.ms/tag/' + tarteaucitron.user.clarity);
3489    }
3490};
3491
3492// criteo
3493tarteaucitron.services.criteo = {
3494    "key": "criteo",
3495    "type": "ads",
3496    "name": "Criteo",
3497    "uri": "http://www.criteo.com/privacy/",
3498    "needConsent": true,
3499    "cookies": [],
3500    "js": function () {
3501        "use strict";
3502        document.MAX_ct0 = '';
3503        var uniqIds = [],
3504            i,
3505            uri;
3506
3507        tarteaucitron.fallback(['criteo-canvas'], function (x) {
3508            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
3509            uniqIds.push(uniqId);
3510            return '<div id="' + uniqId + '" zoneid="' + x.getAttribute('zoneid') + '"></div>';
3511        });
3512
3513        for (i = 0; i < uniqIds.length; i += 1) {
3514            uri = '//cas.criteo.com/delivery/ajs.php?';
3515            uri += 'zoneid=' + document.getElementById(uniqIds[i]).getAttribute('zoneid');
3516            uri += '&nodis=1&cb=' + Math.floor(Math.random() * 99999999999);
3517            uri += '&loc=' + encodeURI(window.location);
3518            uri += (document.MAX_used !== ',') ? '&exclude=' + document.MAX_used : '';
3519            uri += (document.charset !== undefined ? '&charset=' + document.charset : '');
3520            uri += (document.characterSet !== undefined ? '&charset=' + document.characterSet : '');
3521            uri += (document.referrer !== undefined) ? '&referer=' + encodeURI(document.referrer) : '';
3522            uri += (document.context !== undefined) ? '&context=' + encodeURI(document.context) : '';
3523            uri += ((document.MAX_ct0 !== undefined) && (document.MAX_ct0.substring(0, 4) === 'http')) ? '&ct0=' + encodeURI(document.MAX_ct0) : '';
3524            uri += (document.mmm_fo !== undefined) ? '&mmm_fo=1' : '';
3525
3526            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
3527        }
3528    },
3529    "fallback": function () {
3530        "use strict";
3531        var id = 'criteo';
3532        tarteaucitron.fallback(['criteo-canvas'], tarteaucitron.engage(id));
3533    }
3534};
3535
3536// criteo onetag
3537tarteaucitron.services.criteoonetag = {
3538    "key": "criteoonetag",
3539    "type": "ads",
3540    "name": "Criteo OneTag",
3541    "uri": "https://www.criteo.com/privacy/",
3542    "needConsent": true,
3543    "cookies": ['uid', 'tk', 'uid3pd'],
3544    "js": function() {
3545        "use strict";
3546        if (tarteaucitron.user.criteoonetagAccount === undefined) return;
3547
3548        window.criteo_q = window.criteo_q || []; 
3549        window.criteo_q.push({
3550            event: "setAccount",
3551            account: tarteaucitron.user.criteoonetagAccount
3552        })
3553
3554        tarteaucitron.addScript('//static.criteo.net/js/ld/ld.js', '', function() {
3555            if (typeof tarteaucitron.user.criteoonetagMore === 'function') {
3556                tarteaucitron.user.criteoonetagMore();
3557            }
3558        });
3559    }
3560};
3561
3562// artetv
3563tarteaucitron.services.artetv = {
3564    "key": "artetv",
3565    "type": "video",
3566    "name": "Arte.tv",
3567    "uri": "https://www.arte.tv/sites/fr/corporate/donnees-personnelles/",
3568    "needConsent": true,
3569    "cookies": [],
3570    "js": function () {
3571        "use strict";
3572        tarteaucitron.fallback(['artetv_player'], function (x) {
3573            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Arte.tv iframe'),
3574                video_json = x.getAttribute("json"),
3575                video_width = x.getAttribute("width"),
3576                video_height = x.getAttribute("height"),
3577                video_frame,
3578                video_allowfullscreen = x.getAttribute("allowfullscreen");
3579
3580            if (video_json === undefined) {
3581                return "";
3582            }
3583
3584            video_frame = '<iframe title="' + frame_title + '" style="transition-duration: 0; transition-property: no; margin: 0 auto; position: relative; display: block; background-color: #000000;" src="https://www.arte.tv/player/v5/index.php?json_url=' + video_json + '" width="' + video_width + '" height="' + video_height + '" scrolling="no" ' + (video_allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
3585            return video_frame;
3586        });
3587    },
3588    "fallback": function () {
3589        "use strict";
3590        var id = 'artetv';
3591        tarteaucitron.fallback(['artetv_player'], function (elem) {
3592            elem.style.width = elem.getAttribute('width') + 'px';
3593            elem.style.height = elem.getAttribute('height') + 'px';
3594            return tarteaucitron.engage(id);
3595        });
3596    }
3597};
3598
3599// dailymotion
3600tarteaucitron.services.dailymotion = {
3601    "key": "dailymotion",
3602    "type": "video",
3603    "name": "Dailymotion",
3604    "uri": "https://www.dailymotion.com/legal/privacy",
3605    "needConsent": true,
3606    "cookies": ['ts', 'dmvk', 'hist', 'v1st', 's_vi'],
3607    "js": function () {
3608        "use strict";
3609        tarteaucitron.fallback(['dailymotion_player'], function (x) {
3610            var frame_title = tarteaucitron.fixSelfXSS(tarteaucitron.getElemAttr(x, "title") || 'Dailymotion iframe'),
3611                video_id = tarteaucitron.getElemAttr(x, "videoID"),
3612                video_width = tarteaucitron.getElemAttr(x, "width"),
3613                frame_width = 'width=',
3614                video_height = tarteaucitron.getElemAttr(x, "height"),
3615                frame_height = 'height=',
3616                video_frame,
3617                embed_type = tarteaucitron.getElemAttr(x, "embedType"),
3618                allowfullscreen = tarteaucitron.getElemAttr(x, "allowfullscreen"),
3619                showinfo = tarteaucitron.getElemAttr(x, "showinfo"),
3620                autoplay = tarteaucitron.getElemAttr(x, "autoplay"),
3621                api = tarteaucitron.getElemAttr(x, "api"),
3622                params = 'info=' + showinfo + '&autoPlay=' + autoplay + '&api=' + api;
3623
3624            if (video_id === undefined) {
3625                return "";
3626            }
3627            if (video_width !== undefined) {
3628                frame_width += '"' + video_width + '" ';
3629            } else {
3630                frame_width += '"" ';
3631            }
3632            if (video_height !== undefined) {
3633                frame_height += '"' + video_height + '" ';
3634            } else {
3635                frame_height += '"" ';
3636            }
3637            if (embed_type === undefined || !['video', 'playlist'].includes(embed_type)) {
3638                embed_type = "video";
3639            }
3640            video_frame = '<iframe title="' + frame_title + '" src="//www.dailymotion.com/embed/' + embed_type + '/' + video_id + '?' + params + '" ' + frame_width + frame_height + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
3641            return video_frame;
3642        });
3643    },
3644    "fallback": function () {
3645        "use strict";
3646        var id = 'dailymotion';
3647        tarteaucitron.fallback(['dailymotion_player'], function (elem) {
3648            elem.style.width = elem.getAttribute('width') + 'px';
3649            elem.style.height = elem.getAttribute('height') + 'px';
3650            return tarteaucitron.engage(id);
3651        });
3652    }
3653};
3654
3655// dating affiliation
3656tarteaucitron.services.datingaffiliation = {
3657    "key": "datingaffiliation",
3658    "type": "ads",
3659    "name": "Dating Affiliation",
3660    "uri": "http://www.dating-affiliation.com/conditions-generales.php",
3661    "needConsent": true,
3662    "cookies": [],
3663    "js": function () {
3664        "use strict";
3665        tarteaucitron.fallback(['datingaffiliation-canvas'], function (x) {
3666            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Dating Affiliation iframe'),
3667                comfrom = x.getAttribute("data-comfrom"),
3668                r = x.getAttribute("data-r"),
3669                p = x.getAttribute("data-p"),
3670                cf0 = x.getAttribute("data-cf0"),
3671                langue = x.getAttribute("data-langue"),
3672                forward_affiliate = x.getAttribute("data-forwardAffiliate"),
3673                cf2 = x.getAttribute("data-cf2"),
3674                cfsa2 = x.getAttribute("data-cfsa2"),
3675                width = x.getAttribute("width"),
3676                height = x.getAttribute("height"),
3677                url = 'http://www.tools-affil2.com/rotaban/ban.php?' + comfrom;
3678
3679            return '<iframe title="' + frame_title + '" src="' + url + '&r=' + r + '&p=' + p + '&cf0=' + cf0 + '&langue=' + langue + '&forward_affiliate=' + forward_affiliate + '&cf2=' + cf2 + '&cfsa2=' + cfsa2 + '" width="' + width + '" height="' + height + '" marginheight="0" marginwidth="0" scrolling="no"></iframe>';
3680        });
3681    },
3682    "fallback": function () {
3683        "use strict";
3684        var id = 'datingaffiliation';
3685        tarteaucitron.fallback(['datingaffiliation-canvas'], function (elem) {
3686            elem.style.width = elem.getAttribute('width') + 'px';
3687            elem.style.height = elem.getAttribute('height') + 'px';
3688            return tarteaucitron.engage(id);
3689        });
3690    }
3691};
3692
3693// dating affiliation popup
3694tarteaucitron.services.datingaffiliationpopup = {
3695    "key": "datingaffiliationpopup",
3696    "type": "ads",
3697    "name": "Dating Affiliation (Pop Up)",
3698    "uri": "http://www.dating-affiliation.com/conditions-generales.php",
3699    "needConsent": true,
3700    "cookies": ['__utma', '__utmb', '__utmc', '__utmt_Tools', '__utmv', '__utmz', '_ga', '_gat', '_gat_UA-65072040-17', '__da-pu-xflirt-ID-pc-o169'],
3701    "js": function () {
3702        "use strict";
3703        var uniqIds = [],
3704            i,
3705            uri;
3706
3707        tarteaucitron.fallback(['datingaffiliationpopup-canvas'], function (x) {
3708            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
3709            uniqIds.push(uniqId);
3710            return '<div id="' + uniqId + '" uri="' + x.getAttribute('uri') + '" comfrom="' + x.getAttribute('comfrom') + '" promo="' + x.getAttribute('promo') + '" productid="' + x.getAttribute('productid') + '" submitconfig="' + x.getAttribute('submitconfig') + '" ur="' + x.getAttribute('ur') + '" brand="' + x.getAttribute('brand') + '" lang="' + x.getAttribute('lang') + '" cf0="' + x.getAttribute('cf0') + '" cf2="' + x.getAttribute('cf2') + '" subid1="' + x.getAttribute('subid1') + '" cfsa2="' + x.getAttribute('cfsa2') + '" subid2="' + x.getAttribute('subid2') + '" nicheid="' + x.getAttribute('nicheid') + '" degreid="' + x.getAttribute('degreid') + '" bt="' + x.getAttribute('bt') + '" vis="' + x.getAttribute('vis') + '" hid="' + x.getAttribute('hid') + '" snd="' + x.getAttribute('snd') + '" aabd="' + x.getAttribute('aabd') + '" aabs="' + x.getAttribute('aabs') + '"></div>';
3711        });
3712
3713        for (i = 0; i < uniqIds.length; i += 1) {
3714            uri = 'http://www.promotools.biz/da/popunder/script.php?';
3715            uri += 'comfrom=' + document.getElementById(uniqIds[i]).getAttribute('comfrom') + '&';
3716            uri += 'promo=' + document.getElementById(uniqIds[i]).getAttribute('promo') + '&';
3717            uri += 'product_id=' + document.getElementById(uniqIds[i]).getAttribute('productid') + '&';
3718            uri += 'submitconfig=' + document.getElementById(uniqIds[i]).getAttribute('submitconfig') + '&';
3719            uri += 'ur=' + document.getElementById(uniqIds[i]).getAttribute('ur') + '&';
3720            uri += 'brand=' + document.getElementById(uniqIds[i]).getAttribute('brand') + '&';
3721            uri += 'lang=' + document.getElementById(uniqIds[i]).getAttribute('lang') + '&';
3722            uri += 'cf0=' + document.getElementById(uniqIds[i]).getAttribute('cf0') + '&';
3723            uri += 'cf2=' + document.getElementById(uniqIds[i]).getAttribute('cf2') + '&';
3724            uri += 'subid1=' + document.getElementById(uniqIds[i]).getAttribute('subid1') + '&';
3725            uri += 'cfsa2=' + document.getElementById(uniqIds[i]).getAttribute('cfsa2') + '&';
3726            uri += 'subid2=' + document.getElementById(uniqIds[i]).getAttribute('subid2') + '&';
3727            uri += 'nicheId=' + document.getElementById(uniqIds[i]).getAttribute('nicheid') + '&';
3728            uri += 'degreId=' + document.getElementById(uniqIds[i]).getAttribute('degreid') + '&';
3729            uri += 'bt=' + document.getElementById(uniqIds[i]).getAttribute('bt') + '&';
3730            uri += 'vis=' + document.getElementById(uniqIds[i]).getAttribute('vis') + '&';
3731            uri += 'hid=' + document.getElementById(uniqIds[i]).getAttribute('hid') + '&';
3732            uri += 'snd=' + document.getElementById(uniqIds[i]).getAttribute('snd') + '&';
3733            uri += 'aabd=' + document.getElementById(uniqIds[i]).getAttribute('aabd') + '&';
3734            uri += 'aabs=' + document.getElementById(uniqIds[i]).getAttribute('aabs');
3735
3736            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
3737        }
3738    },
3739    "fallback": function () {
3740        "use strict";
3741        var id = 'datingaffiliationpopup';
3742        tarteaucitron.fallback(['datingaffiliationpopup-canvas'], tarteaucitron.engage(id));
3743    }
3744};
3745
3746// deezer
3747tarteaucitron.services.deezer = {
3748    "key": "deezer",
3749    "type": "video",
3750    "name": "Deezer",
3751    "uri": "https://www.deezer.com/legal/personal-datas",
3752    "needConsent": true,
3753    "cookies": [],
3754    "js": function () {
3755        "use strict";
3756        tarteaucitron.fallback(['deezer_player'], function (x) {
3757            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Deezer iframe'),
3758                deezer_id = x.getAttribute("deezerID"),
3759                deezer_width = x.getAttribute("width"),
3760                frame_width = 'width=',
3761                deezer_height = x.getAttribute("height"),
3762                frame_height = 'height=',
3763                deezer_frame,
3764                embed_theme = x.getAttribute("theme"),
3765                embed_type = x.getAttribute("embedType"),
3766                radius = x.getAttribute("radius"),
3767                tracklist = x.getAttribute("tracklist"),
3768                allowfullscreen = x.getAttribute("allowfullscreen"),
3769                params;
3770
3771            if (deezer_id === undefined) {
3772                return "";
3773            }
3774            if (deezer_width !== undefined) {
3775                frame_width += '"' + deezer_width + '" ';
3776            } else {
3777                frame_width += '"" ';
3778            }
3779            if (deezer_height !== undefined) {
3780                frame_height += '"' + deezer_height + '" ';
3781            } else {
3782                frame_height += '"" ';
3783            }
3784            if (embed_theme === undefined || !['auto', 'light', 'dark'].includes(embed_theme)) {
3785                embed_theme = "auto";
3786            }
3787            if (embed_type === undefined || !['album', 'track', 'playlist'].includes(embed_type)) {
3788                embed_type = "album";
3789            }
3790            if (radius === undefined || !['true', 'false'].includes(radius)) {
3791                radius = "true";
3792            }
3793            if (tracklist === undefined || !['true', 'false'].includes(tracklist)) {
3794                tracklist = "true";
3795            }
3796            params = 'tracklist=' + tracklist + '&radius=' + radiu
vendor: 21,930 bytes, lines 3796-4454
3796s;
3797            deezer_frame = '<iframe title="' + frame_title + '" src="//widget.deezer.com/widget/' + embed_theme + '/' + embed_type + '/' + deezer_id + '?' + params + '" ' + frame_width + frame_height + ' ' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
3798            return deezer_frame;
3799        });
3800    },
3801    "fallback": function () {
3802        "use strict";
3803        var id = 'deezer';
3804        tarteaucitron.fallback(['deezer_player'], function (elem) {
3805            elem.style.width = elem.getAttribute('width') + 'px';
3806            elem.style.height = elem.getAttribute('height') + 'px';
3807            return tarteaucitron.engage(id);
3808        });
3809    }
3810};
3811
3812// leadforensics
3813tarteaucitron.services.leadforensics = {
3814    "key": "leadforensics",
3815    "type": "analytic",
3816    "name": "LeadForensics",
3817    "uri": "https://www.leadforensics.com/privacy-policy/",
3818    "needConsent": true,
3819    "cookies": ['trackalyzer'],
3820    "js": function () {
3821        "use strict";
3822        if (tarteaucitron.user.leadforensicsSf14gv === undefined ||
3823            tarteaucitron.user.leadforensicsIidentifier === undefined) {
3824            return;
3825        }
3826
3827        window.sf14gv = tarteaucitron.user.leadforensicsSf14gv;
3828
3829        (function () {
3830            var sf14g = document.createElement('script'); sf14g.async = true;
3831            sf14g.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 't.sf14g.com/sf14g.js';
3832            var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sf14g, s);
3833        })();
3834
3835        tarteaucitron.addScript('//secure.leadforensics.com/js/' + tarteaucitron.user.leadforensicsIidentifier + '.js');
3836    }
3837};
3838
3839// disqus
3840tarteaucitron.services.disqus = {
3841    "key": "disqus",
3842    "type": "comment",
3843    "name": "Disqus",
3844    "uri": "https://help.disqus.com/customer/portal/articles/466259-privacy-policy",
3845    "needConsent": true,
3846    "cookies": [],
3847    "js": function () {
3848        "use strict";
3849        if (tarteaucitron.user.disqusShortname === undefined) {
3850            return;
3851        }
3852        tarteaucitron.addScript('//' + tarteaucitron.user.disqusShortname + '.disqus.com/embed.js');
3853        tarteaucitron.addScript('//' + tarteaucitron.user.disqusShortname + '.disqus.com/count.js');
3854    },
3855    "fallback": function () {
3856        "use strict";
3857        var id = 'disqus';
3858
3859        if (document.getElementById('disqus_thread')) {
3860            document.getElementById('disqus_thread').innerHTML = tarteaucitron.engage(id);
3861        }
3862    }
3863};
3864
3865// ekomi
3866tarteaucitron.services.ekomi = {
3867    "key": "ekomi",
3868    "type": "social",
3869    "name": "eKomi",
3870    "uri": "http://www.ekomi-us.com/us/privacy/",
3871    "needConsent": true,
3872    "cookies": [],
3873    "js": function () {
3874        "use strict";
3875        if (tarteaucitron.user.ekomiCertId === undefined) {
3876            return;
3877        }
3878        window.eKomiIntegrationConfig = [
3879            { certId: tarteaucitron.user.ekomiCertId }
3880        ];
3881        tarteaucitron.addScript('//connect.ekomi.de/integration_1410173009/' + tarteaucitron.user.ekomiCertId + '.js');
3882    }
3883};
3884
3885// etracker
3886tarteaucitron.services.etracker = {
3887    "key": "etracker",
3888    "type": "analytic",
3889    "name": "eTracker",
3890    "uri": "https://www.etracker.com/en/data-protection.html",
3891    "needConsent": true,
3892    "cookies": [],
3893    "js": function () {
3894        "use strict";
3895        if (tarteaucitron.user.etracker === undefined) {
3896            return;
3897        }
3898
3899        tarteaucitron.addScript('//static.etracker.com/code/e.js', '_etLoader', function () { }, true, "data-secure-code", tarteaucitron.user.etracker);
3900    }
3901};
3902
3903// facebook
3904tarteaucitron.services.facebook = {
3905    "key": "facebook",
3906    "type": "social",
3907    "name": "Facebook",
3908    "uri": "https://www.facebook.com/policy.php",
3909    "needConsent": true,
3910    "cookies": ['xs', 'sb', 'fr', 'datr', 'dpr', 'c_user'],
3911    "js": function () {
3912        "use strict";
3913        tarteaucitron.fallback(['fb-post', 'fb-follow', 'fb-activity', 'fb-send', 'fb-share-button', 'fb-like', 'fb-video'], '');
3914        tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.0', 'facebook-jssdk');
3915        if (tarteaucitron.isAjax === true) {
3916            if (typeof FB !== "undefined") {
3917                FB.XFBML.parse();
3918            }
3919        }
3920    },
3921    "fallback": function () {
3922        "use strict";
3923        var id = 'facebook';
3924        tarteaucitron.fallback(['fb-post', 'fb-follow', 'fb-activity', 'fb-send', 'fb-share-button', 'fb-like', 'fb-video'], tarteaucitron.engage(id));
3925    }
3926};
3927
3928// facebooklikebox
3929tarteaucitron.services.facebooklikebox = {
3930    "key": "facebooklikebox",
3931    "type": "social",
3932    "name": "Facebook (like box)",
3933    "uri": "https://www.facebook.com/policy.php",
3934    "needConsent": true,
3935    "cookies": [],
3936    "js": function () {
3937        "use strict";
3938        tarteaucitron.fallback(['fb-like-box', 'fb-page'], '');
3939        tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.3', 'facebook-jssdk');
3940        if (tarteaucitron.isAjax === true) {
3941            if (typeof FB !== "undefined") {
3942                FB.XFBML.parse();
3943            }
3944        }
3945    },
3946    "fallback": function () {
3947        "use strict";
3948        var id = 'facebooklikebox';
3949        tarteaucitron.fallback(['fb-like-box', 'fb-page'], tarteaucitron.engage(id));
3950    }
3951};
3952
3953// facebookcomment
3954tarteaucitron.services.facebookcomment = {
3955    "key": "facebookcomment",
3956    "type": "comment",
3957    "name": "Facebook (commentaire)",
3958    "uri": "https://www.facebook.com/policy.php",
3959    "needConsent": true,
3960    "cookies": [],
3961    "js": function () {
3962        "use strict";
3963        tarteaucitron.fallback(['fb-comments'], '');
3964        tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.0', 'facebook-jssdk');
3965        if (tarteaucitron.isAjax === true) {
3966            if (typeof FB !== "undefined") {
3967                FB.XFBML.parse();
3968            }
3969        }
3970    },
3971    "fallback": function () {
3972        "use strict";
3973        var id = 'facebookcomment';
3974        tarteaucitron.fallback(['fb-comments'], tarteaucitron.engage(id));
3975    }
3976};
3977
3978// ferank
3979tarteaucitron.services.ferank = {
3980    "key": "ferank",
3981    "type": "analytic",
3982    "name": "FERank",
3983    "uri": "https://www.ferank.fr/respect-vie-privee/#mesureaudience",
3984    "needConsent": false,
3985    "cookies": [],
3986    "js": function () {
3987        "use strict";
3988        tarteaucitron.addScript('//static.ferank.fr/pixel.js', '', function () {
3989            if (typeof tarteaucitron.user.ferankMore === 'function') {
3990                tarteaucitron.user.ferankMore();
3991            }
3992        });
3993    }
3994};
3995
3996// pingdom
3997tarteaucitron.services.pingdom = {
3998    "key": "pingdom",
3999    "type": "api",
4000    "name": "Pingdom",
4001    "uri": "https://www.solarwinds.com/general-data-protection-regulation-cloud",
4002    "needConsent": true,
4003    "cookies": [],
4004    "js": function () {
4005        "use strict";
4006
4007        if (tarteaucitron.user.pingdomId === undefined) {
4008            return;
4009        }
4010
4011        window._prum = [['id', tarteaucitron.user.pingdomId], ['mark', 'firstbyte', (new Date()).getTime()]];
4012
4013        tarteaucitron.addScript('https://rum-static.pingdom.net/prum.min.js');
4014    }
4015};
4016
4017
4018// simpleanalytics
4019tarteaucitron.services.simpleanalytics = {
4020    "key": "simpleanalytics",
4021    "type": "analytic",
4022    "name": "Simple Analytics",
4023    "uri": "https://docs.simpleanalytics.com/what-we-collect",
4024    "needConsent": false,
4025    "cookies": [],
4026    "js": function () {
4027        "use strict";
4028        tarteaucitron.addScript('https://scripts.simpleanalyticscdn.com/latest.js');
4029    }
4030};
4031
4032// stonly
4033tarteaucitron.services.stonly = {
4034    "key": "stonly",
4035    "type": "api",
4036    "name": "Stonly",
4037    "uri": "https://stonly.com/privacy",
4038    "needConsent": true,
4039    "cookies": [],
4040    "js": function () {
4041        "use strict";
4042        if (tarteaucitron.user.stonlyId === undefined) {
4043            return;
4044        }
4045
4046        window.STONLY_WID = tarteaucitron.user.stonlyId;
4047        window.StonlyWidget || ((window.w = window.StonlyWidget = function () {
4048            window.w._api ? window.w._api.apply(window.w, arguments) : window.w.queue.push(arguments)
4049        }).queue = []);
4050
4051        tarteaucitron.addScript('https://stonly.com/js/widget/v2/stonly-widget.js?v=' + Date.now());
4052    }
4053};
4054
4055// stripe
4056/*tarteaucitron.services.stripe = {
4057    "key": "stripe",
4058    "type": "api",
4059    "name": "Stripe",
4060    "uri": "https://stripe.com/cookies-policy/legal",
4061    "needConsent": true,
4062    "cookies": [],
4063    "js": function () {
4064        "use strict";
4065        tarteaucitron.addScript('https://js.stripe.com/v3/');
4066    }
4067};*/
4068
4069// ferank pub
4070tarteaucitron.services.ferankpub = {
4071    "key": "ferankpub",
4072    "type": "ads",
4073    "name": "FERank (pub)",
4074    "uri": "https://www.ferank.fr/respect-vie-privee/#regiepublicitaire",
4075    "needConsent": false,
4076    "cookies": [],
4077    "js": function () {
4078        "use strict";
4079        tarteaucitron.addScript('//static.ferank.fr/publicite.async.js');
4080        if (tarteaucitron.isAjax === true) {
4081            if (typeof ferankReady === 'function') {
4082                ferankReady();
4083            }
4084        }
4085    },
4086    "fallback": function () {
4087        "use strict";
4088        var id = 'ferankpub';
4089        tarteaucitron.fallback(['ferank-publicite'], tarteaucitron.engage(id));
4090    }
4091};
4092
4093// get+
4094tarteaucitron.services.getplus = {
4095    "key": "getplus",
4096    "type": "analytic",
4097    "name": "Get+",
4098    "uri": "http://www.getplus.fr/Conditions-generales-de-vente_a226.html",
4099    "needConsent": true,
4100    "cookies": ['_first_pageview', '_jsuid', 'no_trackyy_' + tarteaucitron.user.getplusId, '_eventqueue'],
4101    "js": function () {
4102        "use strict";
4103        if (tarteaucitron.user.getplusId === undefined) {
4104            return;
4105        }
4106
4107        window.webleads_site_ids = window.webleads_site_ids || [];
4108        window.webleads_site_ids.push(tarteaucitron.user.getplusId);
4109        tarteaucitron.addScript('//stats.webleads-tracker.com/js');
4110    }
4111};
4112
4113// google+
4114tarteaucitron.services.gplus = {
4115    "key": "gplus",
4116    "type": "social",
4117    "name": "Google+",
4118    "uri": "https://policies.google.com/privacy",
4119    "needConsent": true,
4120    "cookies": [],
4121    "js": function () {
4122        "use strict";
4123        tarteaucitron.addScript('https://apis.google.com/js/platform.js');
4124    },
4125    "fallback": function () {
4126        "use strict";
4127        var id = 'gplus';
4128        tarteaucitron.fallback(['g-plus', 'g-plusone'], tarteaucitron.engage(id));
4129    }
4130};
4131
4132// google+ badge
4133tarteaucitron.services.gplusbadge = {
4134    "key": "gplusbadge",
4135    "type": "social",
4136    "name": "Google+ (badge)",
4137    "uri": "https://policies.google.com/privacy",
4138    "needConsent": true,
4139    "cookies": [],
4140    "js": function () {
4141        "use strict";
4142        tarteaucitron.addScript('https://apis.google.com/js/platform.js');
4143    },
4144    "fallback": function () {
4145        "use strict";
4146        var id = 'gplusbadge';
4147        tarteaucitron.fallback(['g-page', 'g-person'], tarteaucitron.engage(id));
4148    }
4149};
4150
4151// google adsense
4152tarteaucitron.services.adsense = {
4153    "key": "adsense",
4154    "type": "ads",
4155    "name": "Google Adsense",
4156    "uri": "https://adssettings.google.com/",
4157    "needConsent": true,
4158    "readmoreLink": "https://policies.google.com/technologies/partner-sites",
4159    "cookies": ['__gads'],
4160    "js": function () {
4161        "use strict";
4162        tarteaucitron.fallback(['adsbygoogle'], '');
4163        tarteaucitron.addScript('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js');
4164    },
4165    "fallback": function () {
4166        "use strict";
4167        var id = 'adsense';
4168        tarteaucitron.fallback(['adsbygoogle'], tarteaucitron.engage(id));
4169    }
4170};
4171
4172
4173// google adsense automatic
4174tarteaucitron.services.adsenseauto = {
4175    "key": "adsenseauto",
4176    "type": "ads",
4177    "name": "Google Adsense Automatic",
4178    "uri": "https://adssettings.google.com/",
4179    "needConsent": true,
4180    "readmoreLink": "https://policies.google.com/technologies/partner-sites",
4181    "cookies": ['__gads'],
4182    "js": function () {
4183        "use strict";
4184
4185        if (tarteaucitron.user.adsensecapub === undefined) {
4186            return;
4187        }
4188        tarteaucitron.addScript('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=' + tarteaucitron.user.adsensecapub, '', '', '', 'crossorigin', 'anonymous');
4189    }
4190};
4191
4192// Google Adsense Search
4193tarteaucitron.services.adsensesearch = {
4194    "key": "adsensesearch",
4195    "type": "ads",
4196    "name": "Google Adsense Search",
4197    "uri": "https://adssettings.google.com/",
4198    "needConsent": true,
4199    "readmoreLink": "https://policies.google.com/technologies/partner-sites",
4200    "cookies": ['__gads'],
4201    "js": function () {
4202        "use strict";
4203        tarteaucitron.addScript('https://www.google.com/adsense/search/ads.js');
4204    },
4205    "fallback": function () {
4206        "use strict";
4207        var id = 'adsensesearch';
4208        tarteaucitron.fallback(['afscontainer1'], tarteaucitron.engage(id));
4209    }
4210};
4211
4212// google partners badge
4213tarteaucitron.services.googlepartners = {
4214    "key": "googlepartners",
4215    "type": "ads",
4216    "name": "Google Partners Badge",
4217    "uri": "https://adssettings.google.com/",
4218    "needConsent": true,
4219    "cookies": [],
4220    "js": function () {
4221        "use strict";
4222        tarteaucitron.addScript('https://apis.google.com/js/platform.js');
4223    },
4224    "fallback": function () {
4225        "use strict";
4226        var id = 'googlepartners';
4227        tarteaucitron.fallback(['g-partnersbadge'], tarteaucitron.engage(id));
4228    }
4229};
4230
4231// google adsense search (form)
4232tarteaucitron.services.adsensesearchform = {
4233    "key": "adsensesearchform",
4234    "type": "ads",
4235    "name": "Google Adsense Search (form)",
4236    "uri": "https://adssettings.google.com/",
4237    "needConsent": true,
4238    "cookies": [],
4239    "js": function () {
4240        "use strict";
4241        tarteaucitron.addScript('//www.google.com/coop/cse/brand?form=cse-search-box&lang=' + tarteaucitron.getLanguage());
4242    }
4243};
4244
4245// google adsense search (result)
4246tarteaucitron.services.adsensesearchresult = {
4247    "key": "adsensesearchresult",
4248    "type": "ads",
4249    "name": "Google Adsense Search (result)",
4250    "uri": "https://adssettings.google.com/",
4251    "needConsent": true,
4252    "cookies": [],
4253    "js": function () {
4254        "use strict";
4255        if (tarteaucitron.user.adsensesearchresultCx === undefined) {
4256            return;
4257        }
4258        tarteaucitron.addScript('//www.google.com/cse/cse.js?cx=' + tarteaucitron.user.adsensesearchresultCx);
4259    },
4260    "fallback": function () {
4261        "use strict";
4262        var id = 'adsensesearchresult';
4263
4264        if (document.getElementById('gcse_searchresults')) {
4265            document.getElementById('gcse_searchresults').innerHTML = tarteaucitron.engage(id);
4266        }
4267    }
4268};
4269
4270// googleadwordsconversion
4271tarteaucitron.services.googleadwordsconversion = {
4272    "key": "googleadwordsconversion",
4273    "type": "ads",
4274    "name": "Google Adwords (conversion)",
4275    "uri": "https://www.google.com/settings/ads",
4276    "needConsent": true,
4277    "cookies": [],
4278    "js": function () {
4279        "use strict";
4280        if (tarteaucitron.user.adwordsconversionId === undefined) {
4281            return;
4282        }
4283
4284        tarteaucitron.addScript('//www.googleadservices.com/pagead/conversion_async.js', '', function () {
4285            window.google_trackConversion({
4286                google_conversion_id: tarteaucitron.user.adwordsconversionId,
4287                google_conversion_label: tarteaucitron.user.adwordsconversionLabel,
4288                google_conversion_language: tarteaucitron.user.adwordsconversionLanguage,
4289                google_conversion_format: tarteaucitron.user.adwordsconversionFormat,
4290                google_conversion_color: tarteaucitron.user.adwordsconversionColor,
4291                google_conversion_value: tarteaucitron.user.adwordsconversionValue,
4292                google_conversion_currency: tarteaucitron.user.adwordsconversionCurrency,
4293                google_custom_params: {
4294                    parameter1: tarteaucitron.user.adwordsconversionCustom1,
4295                    parameter2: tarteaucitron.user.adwordsconversionCustom2
4296                }
4297            });
4298        });
4299    }
4300};
4301
4302// googleadwordsremarketing
4303tarteaucitron.services.googleadwordsremarketing = {
4304    "key": "googleadwordsremarketing",
4305    "type": "ads",
4306    "name": "Google Adwords (remarketing)",
4307    "uri": "https://www.google.com/settings/ads",
4308    "needConsent": true,
4309    "cookies": [],
4310    "js": function () {
4311        "use strict";
4312        if (tarteaucitron.user.adwordsremarketingId === undefined) {
4313            return;
4314        }
4315
4316        tarteaucitron.addScript('//www.googleadservices.com/pagead/conversion_async.js', '', function () {
4317            window.google_trackConversion({
4318                google_conversion_id: tarteaucitron.user.adwordsremarketingId,
4319                google_remarketing_only: true
4320            });
4321        });
4322    }
4323};
4324
4325// google analytics (old)
4326tarteaucitron.services.gajs = {
4327    "key": "gajs",
4328    "type": "analytic",
4329    "name": "Google Analytics (ga.js)",
4330    "uri": "https://policies.google.com/privacy",
4331    "needConsent": true,
4332    "cookies": (function () {
4333        var googleIdentifier = tarteaucitron.user.gajsUa,
4334            tagUaCookie = '_gat_gtag_' + googleIdentifier,
4335            tagGCookie = '_ga_' + googleIdentifier;
4336
4337        tagUaCookie = tagUaCookie.replace(/-/g, '_');
4338        tagGCookie = tagGCookie.replace(/G-/g, '');
4339
4340        return ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', tagUaCookie, tagGCookie, '_gcl_au'];
4341    })(),
4342    "js": function () {
4343        "use strict";
4344        window._gaq = window._gaq || [];
4345        window._gaq.push(['_setAccount', tarteaucitron.user.gajsUa]);
4346        if (timeExpire !== undefined) {
4347            _gaq.push(['_setVisitorCookieTimeout', timeExpire]);
4348        }
4349
4350        if (tarteaucitron.user.gajsAnonymizeIp) {
4351            window._gaq.push(['_gat._anonymizeIp']);
4352        }
4353
4354        if (tarteaucitron.user.gajsPageView) {
4355            window._gaq.push(['_trackPageview, ' + tarteaucitron.user.gajsPageView]);
4356        } else {
4357            window._gaq.push(['_trackPageview']);
4358        }
4359
4360        tarteaucitron.addScript('//www.google-analytics.com/ga.js', '', function () {
4361            if (typeof tarteaucitron.user.gajsMore === 'function') {
4362                tarteaucitron.user.gajsMore();
4363            }
4364        });
4365    }
4366};
4367
4368// google analytics
4369tarteaucitron.services.analytics = {
4370    "key": "analytics",
4371    "type": "analytic",
4372    "name": "Google Analytics (universal)",
4373    "uri": "https://policies.google.com/privacy",
4374    "needConsent": true,
4375    "cookies": (function () {
4376        var googleIdentifier = tarteaucitron.user.analyticsUa,
4377            tagUaCookie = '_gat_gtag_' + googleIdentifier,
4378            tagGCookie = '_ga_' + googleIdentifier;
4379
4380        tagUaCookie = tagUaCookie.replace(/-/g, '_');
4381        tagGCookie = tagGCookie.replace(/G-/g, '');
4382
4383        return ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', tagUaCookie, tagGCookie, '_gcl_au'];
4384    })(),
4385    "js": function () {
4386        "use strict";
4387        window.GoogleAnalyticsObject = 'ga';
4388        window.ga = window.ga || function () {
4389            window.ga.q = window.ga.q || [];
4390            window.ga.q.push(arguments);
4391        };
4392        window.ga.l = new Date();
4393        tarteaucitron.addScript('https://www.google-analytics.com/analytics.js', '', function () {
4394            var uaCreate = { 'cookieExpires': (timeExpire !== undefined) ? timeExpire : 34128000 };
4395            tarteaucitron.extend(uaCreate, tarteaucitron.user.analyticsUaCreate || {});
4396            ga('create', tarteaucitron.user.analyticsUa, uaCreate);
4397
4398            if (tarteaucitron.user.analyticsAnonymizeIp) {
4399                ga('set', 'anonymizeIp', true);
4400            }
4401
4402            if (typeof tarteaucitron.user.analyticsPrepare === 'function') {
4403                tarteaucitron.user.analyticsPrepare();
4404            }
4405
4406            if (tarteaucitron.user.analyticsPageView) {
4407                ga('send', 'pageview', tarteaucitron.user.analyticsPageView);
4408            } else {
4409                ga('send', 'pageview');
4410            }
4411
4412            if (typeof tarteaucitron.user.analyticsMore === 'function') {
4413                tarteaucitron.user.analyticsMore();
4414            }
4415        });
4416    }
4417};
4418
4419// google ads
4420tarteaucitron.services.googleads = {
4421    "key": "googleads",
4422    "type": "ads",
4423    "name": "Google Ads",
4424    "uri": "https://policies.google.com/privacy",
4425    "needConsent": true,
4426    "cookies": (function () {
4427        var googleIdentifier = tarteaucitron.user.googleadsId,
4428            tagUaCookie = '_gat_gtag_' + googleIdentifier,
4429            tagGCookie = '_ga_' + googleIdentifier;
4430
4431        tagUaCookie = tagUaCookie.replace(/-/g, '_');
4432        tagGCookie = tagGCookie.replace(/G-/g, '');
4433
4434        return ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', tagUaCookie, tagGCookie, '_gcl_au'];
4435    })(),
4436    "js": function () {
4437        "use strict";
4438        window.dataLayer = window.dataLayer || [];
4439        tarteaucitron.addScript('https://www.googletagmanager.com/gtag/js?id=' + tarteaucitron.user.googleadsId, '', function () {
4440            window.gtag = function gtag() { dataLayer.push(arguments); }
4441            gtag('js', new Date());
4442            var additional_config_info = (timeExpire !== undefined) ? {'anonymize_ip': true, 'cookie_expires': timeExpire / 1000} : {'anonymize_ip': true};
4443
4444            gtag('config', tarteaucitron.user.googleadsId, additional_config_info);
4445
4446            if (typeof tarteaucitron.user.googleadsMore === 'function') {
4447                tarteaucitron.user.googleadsMore();
4448            }
4449        });
4450    }
4451};
4452
4453// google analytics
4454tarteaucitron.services.gtag = {
4455    "key": "gtag",
4456    "type": "analytic",
4457    "name": "Google Analytics (GA4)",
4458    "uri": "https://policies.google.com/privacy",
4459    "needConsent": true,
4460    "cookies": (function () {
4461        var googleIdentifier = tarteaucitron.user.gtagUa,
4462            tagUaCookie = '_gat_gtag_' + googleIdentifier,
4463            tagGCookie = '_ga_' + googleIdentifier;
4464
4465        tagUaCookie = tagUaCookie.replace(/-/g, '_');
4466        tagGCookie = tagGCookie.replace(/G-/g, '');
4467
4468        return ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', tagUaCookie, tagGCookie, '_gcl_au'];
4469    })(),
4470    "js": function () {
4471        "use strict";
4472        window.dataLayer = window.dataLayer || [];
4473        tarteaucitron.addScript('https://www.googletagmanager.com/gtag/js?id=' + tarteaucitron.user.gtagUa, '', function () {
4474            window.gtag = function gtag() { dataLayer.push(arguments); }
4475            gtag('js', new Date());
4476            var additional_config_info = (timeExpire !== undefined) ? {'anonymize_ip': true, 'cookie_expires': timeExpire / 1000} : {'anonymize_ip': true};
4477
4478            if (tarteaucitron.user.gtagCrossdomain) {
4479                /**
4480                 * https://support.google.com/analytics/answer/7476333?hl=en
4481                 * https://developers.google.com/analytics/devguides/collection/gtagjs/cross-domain
4482                 */
4483                gtag('config', tarteaucitron.user.gtagUa, additional_config_info, { linker: { domains: tarteaucitron.user.gtagCrossdomain, } });
4484            } else {
4485                gtag('config', tarteaucitron.user.gtagUa, additional_config_info);
4486            }
4487
4488            if (typeof tarteaucitron.user.gtagMore === 'function') {
4489                tarteaucitron.user.gtagMore();
4490            }
4491        });
4492    }
4493};
4494
4495tarteaucitron.services.firebase = {
4496    "key": "firebase",
4497    "type": "analytic",
4498    "name": "Firebase",
4499    "uri": "https://firebase.google.com/support/privacy",
4500    "needConsent": true,
4501    "cookies": (function () {
4502        var googleIdentifier = tarteaucitron.user.firebaseMeasurementId,
4503            tagGCookie = '_ga_' + googleIdentifier;
4504
4505        tagGCookie = tagGCookie.replace(/G-/g, '');
4506
4507        return ['_ga', tagGCookie];
4508    })(),
4509    "js": function () {
4510        "use strict";
4511
4512        if (tarteaucitron.user.firebaseApiKey === undefined) {
4513            return;
4514        }
4515
4516        tarteaucitron.addScript('https://www.gstatic.com/firebasejs/8.6.2/firebase-app.js', '', function () {
4517            tarteaucitron.addScript('https://www.gstatic.com/firebasejs/8.6.2/firebase-analytics.js', '', function () {
4518
4519                var firebaseConfig = {
4520                    apiKey: tarteaucitron.user.firebaseApiKey,
4521                    authDomain: tarteaucitron.user.firebaseAuthDomain,
4522                    databaseURL: tarteaucitron.user.firebaseDatabaseUrl,
4523                    projectId: tarteaucitron.user.firebaseProjectId,
4524                    storageBucket: tarteaucitron.user.firebaseStorageBucket,
4525                    appId: tarteaucitron.user.firebaseAppId,
4526                    measurementId: tarteaucitron.user.firebaseMeasurementId,
4527                };
4528                firebase.initializeApp(firebaseConfig);
4529                firebase.analytics();
4530            });
4531        });
4532    }
4533};
4534
4535// genially
4536tarteaucitron.services.genially = {
4537    "key": "genially",
4538    "type": "api",
4539    "name": "genially",
4540    "uri": "https://www.genial.ly/cookies",
4541    "needConsent": true,
4542    "cookies": ['_gat', '_ga', '_gid'],
4543    "js": function () {
4544        "use strict";
4545
4546        tarteaucitron.fallback(['tac_genially'], function (x) {
4547            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'genially iframe'),
4548                width = x.getAttribute("width"),
4549                height = x.getAttribute("height"),
4550                geniallyid = x.getAttribute("geniallyid"),
4551                allowfullscreen = x.getAttribute("allowfullscreen");
4552
4553            return '<div style="position: relative; padding-bottom: 109.00%; padding-top: 0; height: 0;"><iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" title="' + frame_title + '" src="https://view.genial.ly/' + geniallyid + '" width="' + width + '" height="' + height + '" scrolling="auto" allowtransparency ' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe></div>';
4554        });
4555    },
4556    "fallback": function () {
4557        "use strict";
4558        var id = 'genially';
4559        tarteaucitron.fallback(['tac_genially'], function (elem) {
4560            elem.style.width = elem.getAttribute('width') + 'px';
4561            elem.style.height = elem.getAttribute('height') + 'px';
4562            return tarteaucitron.engage(id);
4563        });
4564    }
4565};
4566
4567// google maps
4568tarteaucitron.services.googlemaps = {
4569    "key": "googlemaps",
4570    "type": "api",
4571    "name": "Google Maps",
4572    "uri": "https://policies.google.com/privacy",
4573    "needConsent": true,
4574    "cookies": [],
4575    "js": function () {
4576        "use strict";
4577        var mapOptions,
4578            map,
4579            uniqIds = [],
4580            i;
4581
4582        if (tarteaucitron.user.mapscallback === undefined) {
4583            tarteaucitron.user.mapscallback = 'tac_googlemaps_callback';
4584        }
4585
4586        // Add Google Maps libraries if any (https://developers.google.com/maps/documentation/javascript/libraries)
4587        var googleMapsLibraries = '';
4588        if (tarteaucitron.user.googlemapsLibraries) {
4589            googleMapsLibraries = '&libraries=' + tarteaucitron.user.googlemapsLibraries;
4590        }
4591
4592        tarteaucitron.addScript('//maps.googleapis.com/maps/api/js?v=3.exp&key=' + tarteaucitron.user.googlemapsKey + '&callback=' + tarteaucitron.user.mapscallback + googleMapsLibraries);
4593
4594        window.tac_googlemaps_callback = function () {
4595            tarteaucitron.fallback(['googlemaps-canvas'], function (x) {
4596                var uniqId = '_' + Math.random().toString(36).substr(2, 9);
4597                uniqIds.push(uniqId);
4598                return '<div id="' + uniqId + '" zoom="' + x.getAttribute('zoom') + '" latitude="' + x.getAttribute('latitude') + '" longitude="' + x.getAttribute('longitude') + '" style="width:' + x.offsetWidth + 'px;height:' + x.offsetHeight + 'px"></div>';
4599            });
4600
4601            var i;
4602            for (i = 0; i < uniqIds.length; i += 1) {
4603                mapOptions = {
4604                    zoom: parseInt(document.getElementById(uniqIds[i]).getAttribute('zoom'), 10),
4605                    center: new google.maps.LatLng(parseFloat(document.getElementById(uniqIds[i]).getAttribute('latitude'), 10), parseFloat(document.getElementById(uniqIds[i]).getAttribute('longitude'), 10))
4606                };
4607                map = new google.maps.Map(document.getElementById(uniqIds[i]), mapOptions);
4608                new google.maps.Marker({ position: { lat: parseFloat(document.getElementById(uniqIds[i]).getAttribute('latitude'), 10), lng: parseFloat(document.getElementById(uniqIds[i]).getAttribute('longitude'), 10) }, map: map });
4609            }
4610        };
4611    },
4612    "fallback": function () {
4613        "use strict";
4614        var id = 'googlemaps';
4615        tarteaucitron.fallback(['googlemaps-canvas'], tarteaucitron.engage(id));
4616    }
4617};
4618
4619// googlemaps search
4620tarteaucitron.services.googlemapssearch = {
4621    "key": "googlemapssearch",
4622    "type": "api",
4623    "name": "Google Maps Search API",
4624    "uri": "https://policies.google.com/privacy",
4625    "needConsent": true,
4626    "cookies": ['nid'],
4627    "js": function () {
4628        "use strict";
4629        tarteaucitron.fallback(['googlemapssearch'], function (x) {
4630            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Google search iframe'),
4631                width = x.getAttribute("width"),
4632                height = x.getAttribute("height"),
4633                // url = x.getAttribute("data-url");
4634                query = escape(x.getAttribute("data-search")),
4635                key = x.getAttribute("data-api-key");
4636
4637            return '<iframe title="' + frame_title + '" width="' + width + '" height="' + height + '" style="border:0" src="https://www.google.com/maps/embed/v1/place?q=' + query + '&key=' + key + '" allowfullscreen></iframe> '
4638        });
4639    },
4640    "fallback": function () {
4641        "use strict";
4642        var id = 'googlemapssearch';
4643        tarteaucitron.fallback(['googlemapssearch'], function (elem) {
4644            elem.style.width = elem.getAttribute('width') + 'px';
4645            elem.style.height = elem.getAttribute('height') + 'px';
4646            return tarteaucitron.engage(id);
4647        });
4648    }
4649};
4650
4651// googlemaps embed iframe
4652tarteaucitron.services.googlemapsembed = {
4653    "key": "googlemapsembed",
4654    "type": "api",
4655    "name": "Google Maps Embed",
4656    "uri": "https://policies.google.com/privacy",
4657    "needConsent": true,
4658    "cookies": ['apisid', 'hsid', 'nid', 'sapisid', 'sid', 'sidcc', 'ssid', '1p_jar'],
4659    "js": function () {
4660        "use strict";
4661        tarteaucitron.fallback(['googlemapsembed'], function (x) {
4662            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Google maps iframe'),
4663                width = tarteaucitron.getElemWidth(x),
4664                height = tarteaucitron.getElemHeight(x),
4665                url = x.getAttribute("data-url");
4666
4667            return '<iframe title="' + frame_title + '" src="' + url + '" width="' + width + '" height="' + height + '" scrolling="no" allowtransparency allowfullscreen></iframe>';
4668        });
4669    },
4670    "fallback": function () {
4671        "use strict";
4672        var id = 'googlemapsembed';
4673        tarteaucitron.fallback(['googlemapsembed'], function (elem) {
4674            elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
4675            elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
4676            return tarteaucitron.engage(id);
4677        });
4678    }
4679};
4680
4681
4682// openstreetmap embed iframe
4683tarteaucitron.services.openstreetmap = {
4684    "key": "openstreetmap",
4685    "type": "api",
4686    "name": "Openstreetmap Embed",
4687    "uri": "https://wiki.osmfoundation.org/wiki/Privacy_Policy#Cookies",
4688    "needConsent": true,
4689    "cookies": ['apisid', 'hsid', 'nid', 'sapisid', 'sid', 'sidcc', 'ssid', '1p_jar'],
4690    "js": function () {
4691        "use strict";
4692        tarteaucitron.fallback(['openstreetmap'], function (x) {
4693            var width = tarteaucitron.getElemWidth(x),
4694                height = tarteaucitron.getElemHeight(x),
4695                url = x.getAttribute("data-url");
4696
4697            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" allowfullscreen></iframe>';
4698        });
4699    },
4700    "fallback": function () {
4701        "use strict";
4702        var id = 'openstreetmap';
4703        tarteaucitron.fallback(['openstreetmap'], function (elem) {
4704            elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
4705            elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
4706            return tarteaucitron.engage(id);
4707        });
4708    }
4709};
4710
4711// geoportail embed iframe
4712tarteaucitron.services.geoportail = {
4713    "key": "geoportail",
4714    "type": "api",
4715    "name": "Geoportail maps Embed",
4716    "uri": "https://www.ign.fr/institut/gestion-des-cookies",
4717    "needConsent": true,
4718    "cookies": ['apisid', 'hsid', 'nid', 'sapisid', 'sid', 'sidcc', 'ssid', '1p_jar'],
4719    "js": function () {
4720        "use strict";
4721        tarteaucitron.fallback(['geoportail'], function (x) {
4722            var width = tarteaucitron.getElemWidth(x),
4723                height = tarteaucitron.getElemHeight(x),
4724                url = x.getAttribute("data-url");
4725
4726            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" sandbox="allow-forms allow-scripts allow-same-origin" allowfullscreen></iframe>';
4727        });
4728    },
4729    "fallback": function () {
4730        "use strict";
4731        var id = 'geoportail';
4732        tarteaucitron.fallback(['geoportail'], function (elem) {
4733            elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
4734            elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
4735            return tarteaucitron.engage(id);
4736        });
4737    }
4738};
4739
4740
4741// google tag manager
4742tarteaucitron.services.googletagmanager = {
4743    "key": "googletagmanager",
4744    "type": "api",
4745    "name": "Google Tag Manager",
4746    "uri": "https://policies.google.com/privacy",
4747    "needConsent": true,
4748    "cookies": ['_ga', '_gat', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', '__gads', '_drt_', 'FLC', 'exchange_uid', 'id', 'fc', 'rrs', 'rds', 'rv', 'uid', 'UIDR', 'UID', 'clid', 'ipinfo', 'acs'],
4749    "js": function () {
4750        "use strict";
4751        if (tarteaucitron.user.googletagmanagerId === undefined) {
4752            return;
4753        }
4754        window.dataLayer = window.dataLayer || [];
4755        window.dataLayer.push({
4756            'gtm.start': new Date().getTime(),
4757            event: 'gtm.js'
4758        });
4759        tarteaucitron.addScript('https://www.googletagmanager.com/gtm.js?id=' + tarteaucitron.user.googletagmanagerId);
4760    }
4761};
4762
4763// google tag manager multiple
4764tarteaucitron.services.multiplegoogletagmanager = {
4765    "key": "multiplegoogletagmanager",
4766    "type": "api",
4767    "name": "Google Tag Manager",
4768    "uri": "https://policies.google.com/privacy",
4769    "needConsent": true,
4770    "cookies": ['_ga', '_gat', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', '__gads', '_drt_', 'FLC', 'exchange_uid', 'id', 'fc', 'rrs', 'rds', 'rv', 'uid', 'UIDR', 'UID', 'clid', 'ipinfo', 'acs'],
4771    "js": function () {
4772        "use strict";
4773        if (tarteaucitron.user.multiplegoogletagmanagerId === undefined) {
4774            return;
4775        }
4776        window.dataLayer = window.dataLayer || [];
4777        window.dataLayer.push({
4778            'gtm.start': new Date().getTime(),
4779            event: 'gtm.js'
4780        });
4781
4782        tarteaucitron.user.multiplegoogletagmanagerId.forEach(function (id) {
4783            tarteaucitron.addScript('https://www.googletagmanager.com/gtm.js?id=' + id);
4784        });
4785
4786    }
4787};
4788
4789// google webfonts
4790tarteaucitron.services.googlefonts = {
4791    "key": "googlefonts",
4792    "type": "api",
4793    "name": "Google Webfonts",
4794    "uri": "https://policies.google.com/privacy",
4795    "needConsent": true,
4796    "cookies": [],
4797    "js": function () {
4798        "use strict";
4799        if (tarteaucitron.user.googleFonts === undefined) {
4800            return;
4801        }
4802        tarteaucitron.addScript('//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js', '', function () {
4803            WebFont.load({
4804                google: {
4805                    families: tarteaucitron.user.googleFonts
4806                }
4807            });
4808        });
4809    }
4810};
4811
4812// hubspot
4813tarteaucitron.services.hubspot = {
4814    "key": "hubspot",
4815    "type": "analytic",
4816    "name": "Hubspot",
4817    "uri": "https://legal.hubspot.com/privacy-policy",
4818    "needConsent": true,
4819    "cookies": ['hubspotutk', 'fr', '__hstc', '__hssrc', '__hssc', '__cfduid'],
4820    "js": function () {
4821        "use strict";
4822        tarteaucitron.addScript('//js.hs-scripts.com/' + tarteaucitron.user.hubspotId + '.js', 'hs-script-loader');
4823    }
4824};
4825
4826// instagram
4827tarteaucitron.services.instagram = {
4828    "key": "instagram",
4829    "type": "social",
4830    "name": "Instagram",
4831    "uri": "https://www.instagram.com/legal/privacy/",
4832    "needConsent": true,
4833    "cookies": ['shbts', 'sessionid', 'csrftoken', 'rur', 'shbid', 'mid', 'ds_usr_id', 'ig_did', 'ig_cb', 'datr'],
4834    "js": function () {
4835        "use strict";
4836        tarteaucitron.fallback(['instagram_post'], function (x) {
4837            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Instagram iframe'),
4838                post_id = x.getAttribute('postId'),
4839                post_permalink = x.getAttribute('data-instgrm-permalink'),
4840                embed_width = x.getAttribute('width'),
4841                embed_height = x.getAttribute('height'),
4842                frame_width,
4843                frame_height,
4844                post_frame;
4845
4846            if (post_permalink != null) {
4847                tarteaucitron.addScript('//www.instagram.com/embed.js', 'instagram-embed');
4848
4849                return '';
4850            }
4851
4852            if (post_id === undefined) {
4853                return "";
4854            }
4855
4856            if (embed_width !== undefined) {
4857                frame_width = 'width="' + embed_width + '" ';
4858            } else {
4859                frame_width = '"" ';
4860            }
4861            if (embed_height !== undefined) {
4862                frame_height = 'height="' + embed_height + '" ';
4863            } else {
4864                frame_height = '"" ';
4865            }
4866
4867            post_frame = '<iframe title="' + frame_title + '" src="//www.instagram.com/' + post_id + '/embed" ' + frame_width + frame_height + '></iframe>';
4868
4869            return post_frame;
4870        });
4871    },
4872    "fallback": function () {
4873        "use strict";
4874        var id = 'instagram';
4875        tarteaucitron.fallback(['instagram_post'], function (elem) {
4876            elem.style.width = elem.getAttribute('width') + 'px';
4877            elem.style.height = elem.getAttribute('height') + 'px';
4878            return tarteaucitron.engage(id);
4879        });
4880    }
4881};
4882
4883// jsapi
4884tarteaucitron.services.jsapi = {
4885    "key": "jsapi",
4886    "type": "api",
4887    "name": "Google jsapi",
4888    "uri": "https://policies.google.com/privacy",
4889    "needConsent": true,
4890    "cookies": [],
4891    "js": function () {
4892        "use strict";
4893        tarteaucitron.addScript('//www.google.com/jsapi');
4894    }
4895};
4896
4897// twitterwidgetsapi
4898tarteaucitron.services.twitterwidgetsapi = {
4899    "key": "twitterwidgetsapi",
4900    "type": "api",
4901    "name": "Twitter Widgets API",
4902    "uri": "https://support.twitter.com/articles/20170514",
4903    "needConsent": true,
4904    "cookies": [],
4905    "js": function () {
4906        "use strict";
4907        tarteaucitron.fallback(['tacTwitterAPI'], '');
4908        tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs');
4909    },
4910    "fallback": function () {
4911        "use strict";
4912        var id = 'twitterwidgetsapi';
4913        tarteaucitron.fallback(['tacTwitterAPI'], tarteaucitron.engage(id));
4914    }
4915};
4916
4917// recaptcha
4918tarteaucitron.services.recaptcha = {
4919    "key": "recaptcha",
4920    "type": "api",
4921    "name": "reCAPTCHA",
4922    "uri": "https://policies.google.com/privacy",
4923    "needConsent": true,
4924    "cookies": ['nid'],
4925    "js": function () {
4926        "use strict";
4927        window.tacRecaptchaOnLoad = tarteaucitron.user.recaptchaOnLoad || function () { };
4928        tarteaucitron.fallback(['g-recaptcha'], '');
4929
4930        if (tarteaucitron.user.recaptchaapi === undefined) {
4931            tarteaucitron.addScript('https://www.google.com/recaptcha/api.js?onload=tacRecaptchaOnLoad');
4932        } else {
4933            tarteaucitron.addScript('https://www.google.com/recaptcha/api.js?onload=tacRecaptchaOnLoad&render=' + tarteaucitron.user.recaptchaapi);
4934        }
4935
4936    },
4937    "fallback": function () {
4938        "use strict";
4939        var id = 'recaptcha';
4940        tarteaucitron.fallback(['g-recaptcha'], tarteaucitron.engage(id));
4941    }
4942};
4943
4944// linkedin
4945tarteaucitron.services.linkedin = {
vendor: 5,096 bytes, lines 4946-5099
4946    "key": "linkedin",
4947    "type": "social",
4948    "name": "Linkedin",
4949    "uri": "https://www.linkedin.com/legal/cookie_policy",
4950    "needConsent": true,
4951    "cookies": [],
4952    "js": function () {
4953        "use strict";
4954        tarteaucitron.fallback(['tacLinkedin'], '');
4955        tarteaucitron.addScript('//platform.linkedin.com/in.js');
4956        if (tarteaucitron.isAjax === true) {
4957            if (typeof IN !== "undefined") {
4958                IN.parse();
4959            }
4960        }
4961    },
4962    "fallback": function () {
4963        "use strict";
4964        var id = 'linkedin';
4965        tarteaucitron.fallback(['tacLinkedin'], tarteaucitron.engage(id));
4966    }
4967};
4968
4969// mautic
4970tarteaucitron.services.mautic = {
4971    "key": "mautic",
4972    "type": "analytic",
4973    "name": "Mautic",
4974    "uri": "https://www.mautic.org/privacy-policy/",
4975    "needConsent": true,
4976    "cookies": ['mtc_id', 'mtc_sid'],
4977    "js": function () {
4978        "use strict";
4979        if (tarteaucitron.user.mauticurl === undefined) {
4980            return;
4981        }
4982
4983        window.MauticTrackingObject = 'mt';
4984        window.mt = window.mt || function () {
4985            window.mt.q = window.mt.q || [];
4986            window.mt.q.push(arguments);
4987        };
4988
4989        tarteaucitron.addScript(tarteaucitron.user.mauticurl, '', function () {
4990            mt('send', 'pageview');
4991        });
4992    }
4993};
4994
4995// microsoftcampaignanalytics
4996tarteaucitron.services.microsoftcampaignanalytics = {
4997    "key": "microsoftcampaignanalytics",
4998    "type": "analytic",
4999    "name": "Microsoft Campaign Analytics",
5000    "uri": "https://privacy.microsoft.com/privacystatement/",
5001    "needConsent": true,
5002    "cookies": [],
5003    "js": function () {
5004        "use strict";
5005        if (tarteaucitron.user.microsoftcampaignanalyticsUUID === undefined) {
5006            return;
5007        }
5008
5009        tarteaucitron.addScript('//flex.atdmt.com/mstag/site/' + tarteaucitron.user.microsoftcampaignanalyticsUUID + '/mstag.js', 'mstag_tops', function () {
5010            window.mstag = { loadTag: function () { }, time: (new Date()).getTime() };
5011            window.mstag.loadTag("analytics", { dedup: "1", domainId: tarteaucitron.user.microsoftcampaignanalyticsdomainId, type: "1", actionid: tarteaucitron.user.microsoftcampaignanalyticsactionId });
5012        });
5013    }
5014};
5015
5016// onesignal
5017tarteaucitron.services.onesignal = {
5018    "key": "onesignal",
5019    "type": "api",
5020    "name": "OneSignal",
5021    "uri": "https://onesignal.com/privacy_policy",
5022    "needConsent": true,
5023    "cookies": [],
5024    "js": function () {
5025        "use strict";
5026        if (tarteaucitron.user.onesignalAppId === undefined) {
5027            return;
5028        }
5029        window.OneSignal = window.OneSignal || [];
5030
5031        window.OneSignal.push(function () {
5032            window.OneSignal.init({
5033                appId: tarteaucitron.user.onesignalAppId,
5034            });
5035        });
5036
5037        tarteaucitron.addScript('https://cdn.onesignal.com/sdks/OneSignalSDK.js');
5038    }
5039};
5040
5041// pinterest
5042tarteaucitron.services.pinterest = {
5043    "key": "pinterest",
5044    "type": "social",
5045    "name": "Pinterest",
5046    "uri": "https://about.pinterest.com/privacy-policy",
5047    "needConsent": true,
5048    "cookies": [],
5049    "js": function () {
5050        "use strict";
5051        tarteaucitron.fallback(['tacPinterest'], '');
5052        tarteaucitron.addScript('//assets.pinterest.com/js/pinit.js');
5053    },
5054    "fallback": function () {
5055        "use strict";
5056        var id = 'pinterest';
5057        tarteaucitron.fallback(['tacPinterest'], tarteaucitron.engage(id));
5058    }
5059};
5060
5061// prelinker
5062tarteaucitron.services.prelinker = {
5063    "key": "prelinker",
5064    "type": "ads",
5065    "name": "Prelinker",
5066    "uri": "http://www.prelinker.com/index/index/cgu/",
5067    "needConsent": true,
5068    "cookies": ['_sp_id.32f5', '_sp_ses.32f5'],
5069    "js": function () {
5070        "use strict";
5071        var uniqIds = [],
5072            i,
5073            uri;
5074
5075        tarteaucitron.fallback(['prelinker-canvas'], function (x) {
5076            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
5077            uniqIds.push(uniqId);
5078            return '<div id="' + uniqId + '" siteId="' + x.getAttribute('siteId') + '" bannerId="' + x.getAttribute('bannerId') + '" defaultLanguage="' + x.getAttribute('defaultLanguage') + '" tracker="' + x.getAttribute('tracker') + '"></div>';
5079        });
5080
5081        for (i = 0; i < uniqIds.length; i += 1) {
5082            uri = 'http://promo.easy-dating.org/banner/index?';
5083            uri += 'site_id=' + document.getElementById(uniqIds[i]).getAttribute('siteId') + '&';
5084            uri += 'banner_id=' + document.getElementById(uniqIds[i]).getAttribute('bannerId') + '&';
5085            uri += 'default_language=' + document.getElementById(uniqIds[i]).getAttribute('defaultLanguage') + '&';
5086            uri += 'tr4ck=' + document.getElementById(uniqIds[i]).getAttribute('trackrt');
5087
5088            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
5089        }
5090    },
5091    "fallback": function () {
5092        "use strict";
5093        var id = 'prelinker';
5094        tarteaucitron.fallback(['prelinker-canvas'], tarteaucitron.engage(id));
5095    }
5096};
5097
5098// prezi
5099tarteaucitron.services.prezi = {
5100    "key": "prezi",
5101    "type": "video",
5102    "name": "Prezi",
5103    "uri": "https://prezi.com/privacy-policy/",
5104    "needConsent": true,
5105    "cookies": [],
5106    "js": function () {
5107        "use strict";
5108        tarteaucitron.fallback(['prezi-canvas'], function (x) {
5109            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Prezi iframe'),
5110                id = x.getAttribute("data-id"),
5111                width = x.getAttribute("width"),
5112                height = x.getAttribute("height"),
5113                url = 'https://prezi.com/embed/' + id + '/?bgcolor=ffffff&amp;lock_to_path=0&amp;autoplay=0&amp;autohide_ctrls=0';
5114
5115            return '<iframe title="' + frame_title + '" src="' + url + '" width="' + width + '" height="' + height + '" scrolling="no" allowtransparency allowfullscreen></iframe>';
5116        });
5117    },
5118    "fallback": function () {
5119        "use strict";
5120        var id = 'prezi';
5121        tarteaucitron.fallback(['prezi-canvas'], function (elem) {
5122            elem.style.width = elem.getAttribute('width') + 'px';
5123            elem.style.height = elem.getAttribute('height') + 'px';
5124            return tarteaucitron.engage(id);
5125        });
5126    }
5127};
5128
5129// pubdirecte
5130tarteaucitron.services.pubdirecte = {
5131    "key": "pubdirecte",
5132    "type": "ads",
5133    "name": "Pubdirecte",
5134    "uri": "http://pubdirecte.com/contact.php",
5135    "needConsent": true,
5136    "cookies": [],
5137    "js": function () {
5138        "use strict";
5139        var uniqIds = [],
5140            i,
5141            uri;
5142
5143        tarteaucitron.fallback(['pubdirecte-canvas'], function (x) {
5144            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
5145            uniqIds.push(uniqId);
5146            return '<div id="' + uniqId + '" pid="' + x.getAttribute('pid') + '" ref="' + x.getAttribute('ref') + '"></div>';
5147        });
5148
5149        for (i = 0; i < uniqIds.length; i += 1) {
5150            uri = '//www.pubdirecte.com/script/banniere.php?';
5151            uri += 'id=' + document.getElementById(uniqIds[i]).getAttribute('pid') + '&';
5152            uri += 'ref=' + document.getElementById(uniqIds[i]).getAttribute('ref');
5153
5154            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
5155        }
5156    },
5157    "fallback": function () {
5158        "use strict";
5159        var id = 'pubdirecte';
5160        tarteaucitron.fallback(['pubdirecte-canvas'], tarteaucitron.engage(id));
5161    }
5162};
5163
5164// purechat
5165tarteaucitron.services.purechat = {
5166    "key": "purechat",
5167    "type": "support",
5168    "name": "PureChat",
5169    "uri": "https://www.purechat.com/privacy",
5170    "needConsent": true,
5171    "cookies": [],
5172    "js": function () {
5173        "use strict";
5174        if (tarteaucitron.user.purechatId === undefined) {
5175            return;
5176        }
5177
5178        tarteaucitron.addScript('//app.purechat.com/VisitorWidget/WidgetScript', '', function () {
5179            try {
5180                window.w = new PCWidget({ c: tarteaucitron.user.purechatId, f: true });
5181            } catch (e) { }
5182        });
5183    }
5184};
5185
5186// Intercom
5187tarteaucitron.services.intercomChat = {
5188    "key": "intercomChat",
5189    "type": "support",
5190    "name": "Intercom",
5191    "uri": "https://www.intercom.com/",
5192    "needConsent": true,
5193    "cookies": [
5194        "intercom-id-" + tarteaucitron.user.intercomKey,
5195        "intercom-session-" + tarteaucitron.user.intercomKey,
5196    ],
5197    "readmoreLink": "https://www.intercom.com/legal/privacy",
5198    "js": function () {
5199        window.intercomSettings = {
5200            app_id: tarteaucitron.user.intercomKey,
5201        };
5202
5203        var w = window;
5204        var ic = w.Intercom;
5205        if (typeof ic === "function") {
5206            ic("reattach_activator");
5207            ic("update", w.intercomSettings);
5208        } else {
5209            var i = function () {
5210                i.c(arguments);
5211            };
5212            i.q = [];
5213            i.c = function (args) {
5214                i.q.push(args);
5215            };
5216            w.Intercom = i;
5217            tarteaucitron.addScript(
5218                "https://widget.intercom.io/widget/" + tarteaucitron.user.intercomKey,
5219                "",
5220                function () {
5221                    // Execute callback if function `intercomChatEnable`
5222                    // is defined
5223                    if (typeof intercomChatEnable === 'function') {
5224                        intercomChatEnable()
5225                    }
5226                }
5227            );
5228        }
5229    },
5230    "fallback": function () {
5231        "use strict";
5232        var id = "intercomChat";
5233        tarteaucitron.fallback(
5234            ["intercom-chat"],
5235            function () {
5236                // Execute callback if function `intercomChatDisable`
5237                // is defined
5238                if (typeof intercomChatDisable === 'function') {
5239                    intercomChatDisable()
5240                }
5241                return tarteaucitron.engage(id)
5242            }
5243        );
5244    },
5245};
5246
5247// rumbletalk
5248tarteaucitron.services.rumbletalk = {
5249    "key": "rumbletalk",
5250    "type": "social",
5251    "name": "RumbleTalk",
5252    "needConsent": true,
5253    "cookies": ['AWSALB'],
5254    "js": function () {
5255        "use strict";
5256        if (tarteaucitron.user.rumbletalkid === undefined) {
5257            return;
5258        }
5259
5260        tarteaucitron.addScript('https://rumbletalk.com/client/?' + tarteaucitron.user.rumbletalkid);
5261
5262        tarteaucitron.fallback(['rumbletalk'], function (x) {
5263            var width = tarteaucitron.getElemWidth(x),
5264                height = tarteaucitron.getElemHeight(x),
5265                id = x.getAttribute("data-id");
5266
5267            return '<div style="height: ' + height + 'px; width: ' + width + 'px;"><div id="' + id + '"></div></div>';
5268        });
5269    },
5270    "fallback": function () {
5271        "use strict";
5272        var id = 'rumbletalk';
5273        tarteaucitron.fallback(['rumbletalk'], function (elem) {
5274            elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
5275            elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
5276
5277            return tarteaucitron.engage(id);
5278        });
5279    }
5280};
5281
5282// shareaholic
5283tarteaucitron.services.shareaholic = {
5284    "key": "shareaholic",
5285    "type": "social",
5286    "name": "Shareaholic",
5287    "uri": "https://shareaholic.com/privacy/choices",
5288    "needConsent": true,
5289    "cookies": ['__utma', '__utmb', '__utmc', '__utmz', '__utmt_Shareaholic%20Pageviews'],
5290    "js": function () {
5291        "use strict";
5292        if (tarteaucitron.user.shareaholicSiteId === undefined) {
5293            return;
5294        }
5295
5296        tarteaucitron.fallback(['shareaholic-canvas'], '');
5297        tarteaucitron.addScript('//dsms0mj1bbhn4.cloudfront.net/assets/pub/shareaholic.js', '', function () {
5298            try {
5299                Shareaholic.init(tarteaucitron.user.shareaholicSiteId);
5300            } catch (e) { }
5301        });
5302    },
5303    "fallback": function () {
5304        "use strict";
5305        var id = 'shareaholic';
5306        tarteaucitron.fallback(['shareaholic-canvas'], tarteaucitron.engage(id));
5307    }
5308};
5309
5310// shareasale
5311tarteaucitron.services.shareasale = {
5312    "key": "shareasale",
5313    "type": "ads",
5314    "name": "ShareASale",
5315    "uri": "https://www.shareasale.com/PrivacyPolicy.pdf",
5316    "needConsent": true,
5317    "cookies": [],
5318    "js": function () {
5319        "use strict";
5320        var uniqIds = [],
5321            i,
5322            uri;
5323
5324        tarteaucitron.fallback(['shareasale-canvas'], function (x) {
5325            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
5326            uniqIds.push(uniqId);
5327            return '<div id="' + uniqId + '" amount="' + x.getAttribute('amount') + '" tracking="' + x.getAttribute('tracking') + '" transtype="' + x.getAttribute('transtype') + '" persale="' + x.getAttribute('persale') + '" perlead="' + x.getAttribute('perlead') + '" perhit="' + x.getAttribute('perhit') + '" merchantID="' + x.getAttribute('merchantID') + '"></div>';
5328        });
5329
5330        for (i = 0; i < uniqIds.length; i += 1) {
5331            uri = 'https://shareasale.com/sale.cfm?';
5332            uri += 'amount=' + document.getElementById(uniqIds[i]).getAttribute('amount') + '&';
5333            uri += 'tracking=' + document.getElementById(uniqIds[i]).getAttribute('tracking') + '&';
5334            uri += 'transtype=' + document.getElementById(uniqIds[i]).getAttribute('transtype') + '&';
5335            uri += 'persale=' + document.getElementById(uniqIds[i]).getAttribute('persale') + '&';
5336            uri += 'perlead=' + document.getElementById(uniqIds[i]).getAttribute('perlead') + '&';
5337            uri += 'perhit=' + document.getElementById(uniqIds[i]).getAttribute('perhit') + '&';
5338            uri += 'merchantID=' + document.getElementById(uniqIds[i]).getAttribute('merchantID');
5339
5340            document.getElementById(uniqIds[i]).innerHTML = '<img src=\'' + uri + '\' width=\'1\' height=\'1\' />';
5341        }
5342    },
5343    "fallback": function () {
5344        "use strict";
5345        var id = 'shareasale';
5346        tarteaucitron.fallback(['shareasale-canvas'], tarteaucitron.engage(id));
5347    }
5348};
5349
5350// sharethis
5351tarteaucitron.services.sharethis = {
5352    "key": "sharethis",
5353    "type": "social",
5354    "name": "ShareThis",
5355    "uri": "http://www.sharethis.com/legal/privacy/",
5356    "needConsent": true,
5357    "cookies": ['__unam'],
5358    "js": function () {
5359        "use strict";
5360        if (tarteaucitron.user.sharethisPublisher === undefined) {
5361            return;
5362        }
5363        var switchTo5x = true,
5364            uri = ('https:' === document.location.protocol ? 'https://ws' : 'http://w') + '.sharethis.com/button/buttons.js';
5365
5366        tarteaucitron.fallback(['tacSharethis'], '');
5367        tarteaucitron.addScript(uri, '', function () {
5368            stLight.options({ publisher: tarteaucitron.user.sharethisPublisher, doNotHash: false, doNotCopy: false, hashAddressBar: false });
5369        });
5370
5371        if (tarteaucitron.isAjax === true) {
5372            if (typeof stButtons !== "undefined") {
5373                stButtons.locateElements();
5374            }
5375        }
5376    },
5377    "fallback": function () {
5378        "use strict";
5379        var id = 'sharethis';
5380        tarteaucitron.fallback(['tacSharethis'], tarteaucitron.engage(id));
5381    }
5382};
5383
5384// slideshare
5385tarteaucitron.services.slideshare = {
5386    "key": "slideshare",
5387    "type": "video",
5388    "name": "SlideShare",
5389    "uri": "https://www.linkedin.com/legal/privacy-policy",
5390    "needConsent": true,
5391    "cookies": [],
5392    "js": function () {
5393        "use strict";
5394        tarteaucitron.fallback(['slideshare-canvas'], function (x) {
5395            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Slideshare iframe'),
5396                id = x.getAttribute("data-id"),
5397                width = x.getAttribute("width"),
5398                height = x.getAttribute("height"),
5399                url = '//www.slideshare.net/slideshow/embed_code/' + id;
5400
5401            return '<iframe title="' + frame_title + '" src="' + url + '" width="' + width + '" height="' + height + '" scrolling="no" allowtransparency allowfullscreen></iframe>';
5402        });
5403    },
5404    "fallback": function () {
5405        "use strict";
5406        var id = 'slideshare';
5407        tarteaucitron.fallback(['slideshare-canvas'], function (elem) {
5408            elem.style.width = elem.getAttribute('width') + 'px';
5409            elem.style.height = elem.getAttribute('height') + 'px';
5410            return tarteaucitron.engage(id);
5411        });
5412    }
5413};
5414
5415// soundcloud
5416tarteaucitron.services.soundcloud = {
5417    key: 'soundcloud',
5418    type: 'video',
5419    name: 'SoundCloud',
5420    needConsent: true,
5421    cookies: ['sc_anonymous_id', 'sclocale'],
5422    js: function () {
5423        "use strict";
5424        tarteaucitron.fallback(['soundcloud_player'], function (x) {
5425            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Soundcloud iframe'),
5426                player_height = x.getAttribute('data-height'),
5427                frame_height = 'height="' + player_height + '" ',
5428                playable_id = x.getAttribute('data-playable-id'),
5429                playable_type = x.getAttribute('data-playable-type'),
5430                playable_url = x.getAttribute('data-playable-url'),
5431                color = x.getAttribute('data-color'),
5432                autoplay = x.getAttribute('data-auto-play'),
5433                hideRelated = x.getAttribute('data-hide-related'),
5434                showComments = x.getAttribute('data-show-comments'),
5435                showUser = x.getAttribute('data-show-user'),
5436                showReposts = x.getAttribute('data-show-reposts'),
5437                showTeaser = x.getAttribute('data-show-teaser'),
5438                visual = x.getAttribute('data-visual'),
5439                artwork = x.getAttribute('data-artwork');
5440
5441            var allowAutoplay = autoplay === 'true' ? 'allow="autoplay"' : '';
5442
5443            if (playable_id === undefined && playable_url === undefined) {
5444                return "";
5445            }
5446
5447            // Allow to embed from API results (playable_type + playable_id)
5448            var qs = '?url=https%3A//api.soundcloud.com/' + playable_type + '/' + playable_id;
5449            // Or from raw URL from Soundcloud website
5450            if (playable_url && playable_url.length > 0) qs = '?url=' + escape(playable_url);
5451
5452            if (hideRelated && hideRelated.length > 0) qs += '&hide_related=' + hideRelated;
5453            if (color && color.length > 0) qs += '&color=' + color.replace('#', '%23');
5454            if (autoplay && autoplay.length > 0) qs += '&auto_play=' + autoplay;
5455            if (showComments && showComments.length > 0) qs += '&show_comments=' + showComments;
5456            if (hideRelated && hideRelated.length > 0) qs += '&hide_related=' + hideRelated;
5457            if (showUser && showUser.length > 0) qs += '&show_user=' + showUser;
5458            if (showReposts && showReposts.length > 0) qs += '&show_reposts=' + showReposts;
5459            if (showTeaser && showTeaser.length > 0) qs += '&show_teaser=' + showTeaser;
5460            if (visual && visual.length > 0) qs += '&visual=' + visual;
5461            if (artwork && artwork.length >
5461 0) qs += '&show_artwork=' + artwork;
5462
5463            return '<iframe title="' + frame_title + '" width="100%" ' + frame_height + ' scrolling="no" ' + allowAutoplay + ' src="https://w.soundcloud.com/player/' + qs + '"></iframe>';
5464        });
5465    },
5466    fallback: function () {
5467        "use strict";
5468        tarteaucitron.fallback(['soundcloud_player'], function (elem) {
5469            elem.style.height = elem.getAttribute('data-height') + 'px';
5470            return tarteaucitron.engage('soundcloud');
5471        });
5472    }
5473};
5474
5475// spotify
5476tarteaucitron.services.spotify = {
5477    "key": "spotify",
5478    "type": "video",
5479    "name": "Spotify",
5480    "uri": "https://www.spotify.com/us/legal/privacy-policy/",
5481    "needConsent": true,
5482    "cookies": ['sp_landing', '_ga', 'sp_ab', 'sp_landingref', 'sp_t', 'sp_usid', 'OptanonConsent', 'sp_m', 'spot'],
5483    "js": function () {
5484        "use strict";
5485        tarteaucitron.fallback(['spotify_player'], function (x) {
5486            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Spotify iframe'),
5487                spotify_id = x.getAttribute("spotifyID"),
5488                spotify_width = x.getAttribute("width"),
5489                frame_width = 'width=',
5490                spotify_height = x.getAttribute("height"),
5491                frame_height = 'height=',
5492                spotify_frame;
5493
5494            if (spotify_id === undefined) {
5495                return "";
5496            }
5497            if (spotify_width !== undefined) {
5498                frame_width += '"' + spotify_width + '" ';
5499            } else {
5500                frame_width += '"" ';
5501            }
5502            if (spotify_height !== undefined) {
5503                frame_height += '"' + spotify_height + '" ';
5504            } else {
5505                frame_height += '"" ';
5506            }
5507            spotify_frame = '<iframe title="' + frame_title + '" src="//open.spotify.com/embed/' + spotify_id + '" ' + frame_width + frame_height + ' allowfullscreen></iframe>';
5508            return spotify_frame;
5509        });
5510    },
5511    "fallback": function () {
5512        "use strict";
5513        var id = 'spotify';
5514        tarteaucitron.fallback(['spotify_player'], function (elem) {
5515            elem.style.width = elem.getAttribute('width') + 'px';
5516            elem.style.height = elem.getAttribute('height') + 'px';
5517            return tarteaucitron.engage(id);
5518        });
5519    }
5520};
5521
5522// statcounter
5523tarteaucitron.services.statcounter = {
5524    "key": "statcounter",
5525    "type": "analytic",
5526    "name": "StatCounter",
5527    "uri": "https://fr.statcounter.com/about/legal/#privacy",
5528    "needConsent": true,
5529    "cookies": ['sc_is_visitor_unique'],
5530    "js": function () {
5531        "use strict";
5532        var uniqIds = [],
5533            i,
5534            uri = '//statcounter.com/counter/counter.js';
5535
5536        tarteaucitron.fallback(['statcounter-canvas'], function (x) {
5537            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
5538            uniqIds.push(uniqId);
5539            return '<div id="' + uniqId + '"></div>';
5540        });
5541
5542        for (i = 0; i < uniqIds.length; i += 1) {
5543            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
5544        }
5545    },
5546    "fallback": function () {
5547        "use strict";
5548        var id = 'statcounter';
5549        tarteaucitron.fallback(['statcounter-canvas'], tarteaucitron.engage(id));
5550    }
5551};
5552
5553// timelinejs
5554tarteaucitron.services.timelinejs = {
5555    "key": "timelinejs",
5556    "type": "api",
5557    "name": "Timeline JS",
5558    "uri": "http://timeline.knightlab.com/#help",
5559    "needConsent": true,
5560    "cookies": [],
5561    "js": function () {
5562        "use strict";
5563        tarteaucitron.fallback(['timelinejs-canvas'], function (x) {
5564            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Twitter iframe'),
5565                spreadsheet_id = x.getAttribute("spreadsheet_id"),
5566                width = x.getAttribute("width"),
5567                height = x.getAttribute("height"),
5568                lang = x.getAttribute("lang_2_letter"),
5569                font = x.getAttribute("font"),
5570                map = x.getAttribute("map"),
5571                start_at_end = x.getAttribute("start_at_end"),
5572                hash_bookmark = x.getAttribute("hash_bookmark"),
5573                start_at_slide = x.getAttribute("start_at_slide"),
5574                start_zoom = x.getAttribute("start_zoom"),
5575                url = '//cdn.knightlab.com/libs/timeline/latest/embed/index.html?source=' + spreadsheet_id + '&font=' + font + '&maptype=' + map + '&lang=' + lang + '&start_at_end=' + start_at_end + '&hash_bookmark=' + hash_bookmark + '&start_at_slide=' + start_at_slide + '&start_zoom_adjust=' + start_zoom + '&height=' + height;
5576
5577            return '<iframe title="' + frame_title + '" src="' + url + '" width="' + width + '" height="' + height + '" allowtransparency allowfullscreen></iframe>';
5578        });
5579    },
5580    "fallback": function () {
5581        "use strict";
5582        var id = 'timelinejs';
5583        tarteaucitron.fallback(['timelinejs-canvas'], function (elem) {
5584            elem.style.width = elem.getAttribute('width') + 'px';
5585            elem.style.height = elem.getAttribute('height') + 'px';
5586            return tarteaucitron.engage(id);
5587        });
5588    }
5589};
5590
5591// tagcommander
5592tarteaucitron.services.tagcommander = {
5593    "key": "tagcommander",
5594    "type": "api",
5595    "name": "TagCommander",
5596    "uri": "https://www.commandersact.com/en/privacy/",
5597    "needConsent": true,
5598    "cookies": [],
5599    "js": function () {
5600        "use strict";
5601        if (tarteaucitron.user.tagcommanderid === undefined) {
5602            return;
5603        }
5604        tarteaucitron.addScript('https://cdn.tagcommander.com/' + tarteaucitron.user.tagcommanderid + '.js');
5605    }
5606};
5607
5608// typekit
5609tarteaucitron.services.typekit = {
5610    "key": "typekit",
5611    "type": "api",
5612    "name": "Typekit (adobe)",
5613    "uri": "https://www.adobe.com/privacy.html",
5614    "needConsent": true,
5615    "cookies": [],
5616    "js": function () {
5617        "use strict";
5618        if (tarteaucitron.user.typekitId === undefined) {
5619            return;
5620        }
5621        tarteaucitron.addScript('//use.typekit.net/' + tarteaucitron.user.typekitId + '.js', '', function () {
5622            try {
5623                Typekit.load();
5624            } catch (e) { }
5625        });
5626    }
5627};
5628
5629// twenga
5630tarteaucitron.services.twenga = {
5631    "key": "twenga",
5632    "type": "ads",
5633    "name": "Twenga",
5634    "uri": "http://www.twenga.com/privacy.php",
5635    "needConsent": true,
5636    "cookies": [],
5637    "js": function () {
5638        "use strict";
5639
5640        if (tarteaucitron.user.twengaId === undefined || tarteaucitron.user.twengaLocale === undefined) {
5641            return;
5642        }
5643
5644        tarteaucitron.addScript('//tracker.twenga.' + tarteaucitron.user.twengaLocale + '/st/tracker_' + tarteaucitron.user.twengaId + '.js');
5645    }
5646};
5647
5648// twitter
5649tarteaucitron.services.twitter = {
5650    "key": "twitter",
5651    "type": "social",
5652    "name": "Twitter",
5653    "uri": "https://support.twitter.com/articles/20170514",
5654    "needConsent": true,
5655    "cookies": [],
5656    "js": function () {
5657        "use strict";
5658        tarteaucitron.fallback(['tacTwitter'], '');
5659        tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs');
5660    },
5661    "fallback": function () {
5662        "use strict";
5663        var id = 'twitter';
5664        tarteaucitron.fallback(['tacTwitter'], tarteaucitron.engage(id));
5665    }
5666};
5667
5668// twitter embed
5669tarteaucitron.services.twitterembed = {
5670    "key": "twitterembed",
5671    "type": "social",
5672    "name": "Twitter (cards)",
5673    "uri": "https://support.twitter.com/articles/20170514",
5674    "needConsent": true,
5675    "cookies": [],
5676    "js": function () {
5677        "use strict";
5678        var uniqIds = [],
5679            i,
5680            e,
5681            html;
5682
5683        tarteaucitron.fallback(['twitterembed-canvas'], function (x) {
5684            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
5685            uniqIds.push(uniqId);
5686            html = '<div id="' + uniqId + '" ';
5687            html += 'tweetid="' + x.getAttribute('tweetid') + '" ';
5688            html += 'theme="' + x.getAttribute('theme') + '" ';
5689            html += 'cards="' + x.getAttribute('cards') + '" ';
5690            html += 'conversation="' + x.getAttribute('conversation') + '" ';
5691            html += 'data-width="' + x.getAttribute('data-width') + '" ';
5692            html += 'data-align="' + x.getAttribute('data-align') + '" ';
5693            html += '></div>';
5694            return html;
5695        });
5696
5697        tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs', function () {
5698            var i;
5699            for (i = 0; i < uniqIds.length; i += 1) {
5700                e = document.getElementById(uniqIds[i]);
5701                twttr.widgets.createTweet(
5702                    e.getAttribute('tweetid'),
5703                    e,
5704                    {
5705                        theme: e.getAttribute('theme'),
5706                        cards: e.getAttribute('cards'),
5707                        conversation: e.getAttribute('conversation'),
5708                        lang: tarteaucitron.getLanguage(),
5709                        dnt: true,
5710                        width: e.getAttribute('data-width'),
5711                        align: e.getAttribute('data-align')
5712                    }
5713                );
5714            }
5715        });
5716    },
5717    "fallback": function () {
5718        "use strict";
5719        var id = 'twitterembed';
5720        tarteaucitron.fallback(['twitterembed-canvas'], function (elem) {
5721            elem.style.width = elem.getAttribute('data-width') + 'px';
5722            return tarteaucitron.engage(id);
5723        });
5724    }
5725};
5726
5727// twitter timeline
5728tarteaucitron.services.twittertimeline = {
5729    "key": "twittertimeline",
5730    "type": "social",
5731    "name": "Twitter (timelines)",
5732    "uri": "https://support.twitter.com/articles/20170514",
5733    "needConsent": true,
5734    "cookies": [],
5735    "js": function () {
5736        "use strict";
5737        tarteaucitron.fallback(['tacTwitterTimelines'], '');
5738        tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs');
5739    },
5740    "fallback": function () {
5741        "use strict";
5742        var id = 'twittertimeline';
5743        tarteaucitron.fallback(['tacTwitterTimelines'], tarteaucitron.engage(id));
5744    }
5745};
5746
5747// twitter universal website tag
5748tarteaucitron.services.twitteruwt = {
5749    "key": "twitteruwt",
5750    "type": "analytic",
5751    "name": "Twitter Universal Website Tag",
5752    "uri": "https://business.twitter.com/en/help/campaign-measurement-and-analytics/conversion-tracking-for-websites.html",
5753    "needConsent": true,
5754    "cookies": [],
5755    "js": function () {
5756        "use strict";
5757
5758        window.twq = function () {
5759            window.twq.exe ? window.twq.exe.apply(window.twq, arguments) : window.twq.queue.push(arguments);
5760        }
5761        window.twq.version = '1.1';
5762        window.twq.queue = [];
5763
5764        tarteaucitron.addScript('https://static.ads-twitter.com/uwt.js', '', function () {
5765            window.twq('init', tarteaucitron.user.twitteruwtId);
5766            window.twq('track', 'PageView');
5767        });
5768    }
5769};
5770
5771// user voice
5772tarteaucitron.services.uservoice = {
5773    "key": "uservoice",
5774    "type": "support",
5775    "name": "UserVoice",
5776    "uri": "https://www.uservoice.com/privacy/",
5777    "needConsent": true,
5778    "cookies": [],
5779    "js": function () {
5780        "use strict";
5781        if (tarteaucitron.user.userVoiceApi === undefined) {
5782            return;
5783        }
5784        tarteaucitron.addScript('//widget.uservoice.com/' + tarteaucitron.user.userVoiceApi + '.js');
5785    }
5786};
5787
5788// vimeo
5789tarteaucitron.services.vimeo = {
5790    "key": "vimeo",
5791    "type": "video",
5792    "name": "Vimeo",
5793    "uri": "https://vimeo.com/privacy",
5794    "needConsent": true,
5795    "cookies": ['__utmt_player', '__utma', '__utmb', '__utmc', '__utmv', 'vuid', '__utmz', 'player'],
5796    "js": function () {
5797        "use strict";
5798        tarteaucitron.fallback(['vimeo_player'], function (x) {
5799            var frame_title = tarteaucitron.fixSelfXSS(tarteaucitron.getElemAttr(x, "title") || 'Vimeo iframe'),
5800                video_width = tarteaucitron.getElemAttr(x, "width"),
5801                frame_width = 'width=',
5802                video_height = tarteaucitron.getElemAttr(x, "height"),
5803                frame_height = 'height=',
5804
5805                video_id = tarteaucitron.getElemAttr(x, "videoID"),
5806                video_hash = tarteaucitron.getElemAttr(x, "data-hash") || '',
5807                video_allowfullscreen = tarteaucitron.getElemAttr(x, "data-allowfullscreen"),
5808
5809                video_qs = "",
5810                attrs = ["title", "byline", "portrait", "loop", "autoplay", "autopause", "background", "color", "controls", "maxheight", "maxwidth", "muted", "playsinline", "speed", "transparent"],
5811                params = attrs.filter(function (a) {
5812                    return tarteaucitron.getElemAttr(x, a) !== null;
5813                }).map(function (a) {
5814                    return a + "=" + tarteaucitron.getElemAttr(x, a);
5815                }),
5816
5817                video_frame;
5818
5819            if (video_id === undefined) {
5820                return "";
5821            }
5822
5823            // query params
5824            if (video_hash.length > 0) {
5825                params.push("h=" + video_hash);
5826            }
5827            if (params.length > 0) {
5828                video_qs = "?" + params.join("&");
5829            }
5830
5831            // attributes
5832            if (video_width !== undefined) {
5833                frame_width += '"' + video_width + '" ';
5834            } else {
5835                frame_width += '"" ';
5836            }
5837            if (video_height !== undefined) {
5838                frame_height += '"' + video_height + '" ';
5839            } else {
5840                frame_height += '"" ';
5841            }
5842
5843            video_frame = '<iframe title="' + frame_title + '" src="//player.vimeo.com/video/' + video_id + video_qs + '" ' + frame_width + frame_height + (video_allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
5844
5845            return video_frame;
5846        });
5847    },
5848    "fallback": function () {
5849        "use strict";
5850        var id = 'vimeo';
5851        tarteaucitron.fallback(['vimeo_player'], function (elem) {
5852            elem.style.width = elem.getAttribute('width') + 'px';
5853            elem.style.height = elem.getAttribute('height') + 'px';
5854            return tarteaucitron.engage(id);
5855        });
5856    }
5857};
5858
5859// visualrevenue
5860tarteaucitron.services.visualrevenue = {
vendor: 4,299 bytes, lines 5861-5990
5861    "key": "visualrevenue",
5862    "type": "analytic",
5863    "name": "VisualRevenue",
5864    "uri": "http://www.outbrain.com/legal/privacy-713/",
5865    "needConsent": true,
5866    "cookies": ['__vrf', '__vrm', '__vrl', '__vry', '__vru', '__vrid', '__vrz'],
5867    "js": function () {
5868        "use strict";
5869        if (tarteaucitron.user.visualrevenueId === undefined) {
5870            return;
5871        }
5872        window._vrq = window._vrq || [];
5873        window._vrq.push(['id', tarteaucitron.user.visualrevenueId]);
5874        window._vrq.push(['automate', true]);
5875        window._vrq.push(['track', function () { }]);
5876        tarteaucitron.addScript('http://a.visualrevenue.com/vrs.js');
5877    }
5878};
5879
5880// verizon dot tag
5881tarteaucitron.services.verizondottag = {
5882    "key": "verizondottag",
5883    "type": "analytic",
5884    "name": "Verizon Dot Tag",
5885    "uri": "https://developer.verizonmedia.com/native/guide/audience-management/dottags/",
5886    "needConsent": true,
5887    "cookies": [],
5888    "js": function () {
5889        "use strict";
5890
5891        window.dotq = window.dotq || [];
5892        window.dotq.push({
5893            'projectId': tarteaucitron.user.verizondottagProjectId,
5894            'properties': { 'pixelId': tarteaucitron.user.verizondottagPixelId }
5895        });
5896
5897        tarteaucitron.addScript('https://s.yimg.com/wi/ytc.js', '', function () {
5898            //const items = window.dotq;
5899            window.dotq = [];
5900            window.dotq.push = function (item) {
5901                YAHOO.ywa.I13N.fireBeacon([item])
5902            };
5903            YAHOO.ywa.I13N.fireBeacon(items)
5904        });
5905    }
5906};
5907
5908// vshop
5909tarteaucitron.services.vshop = {
5910    "key": "vshop",
5911    "type": "ads",
5912    "name": "vShop",
5913    "uri": "http://vshop.fr/privacy-policy",
5914    "needConsent": true,
5915    "cookies": [],
5916    "js": function () {
5917        "use strict";
5918        tarteaucitron.fallback(['vcashW'], '');
5919        tarteaucitron.addScript('//vshop.fr/js/w.js');
5920    },
5921    "fallback": function () {
5922        "use strict";
5923        var id = 'vshop';
5924        tarteaucitron.fallback(['vcashW'], tarteaucitron.engage(id));
5925    }
5926};
5927
5928// wysistat
5929tarteaucitron.services.wysistat = {
5930    "key": "wysistat",
5931    "type": "analytic",
5932    "name": "Wysistat",
5933    "uri": "http://wysistat.net/contact/",
5934    "needConsent": true,
5935    "cookies": ['Wysistat'],
5936    "js": function () {
5937        "use strict";
5938        if (tarteaucitron.user.wysistat === undefined) {
5939            return;
5940        }
5941        tarteaucitron.addScript('//www.wysistat.com/statistique.js', '', function () {
5942            window.stat(tarteaucitron.user.wysistat.cli, tarteaucitron.user.wysistat.frm, tarteaucitron.user.wysistat.prm, tarteaucitron.user.wysistat.ce, tarteaucitron.user.wysistat.page, tarteaucitron.user.wysistat.roi, tarteaucitron.user.wysistat.prof, tarteaucitron.user.wysistat.cpt);
5943        });
5944    }
5945};
5946
5947// xiti
5948tarteaucitron.services.xiti = {
5949    "key": "xiti",
5950    "type": "analytic",
5951    "name": "Xiti",
5952    "uri": "https://www.atinternet.com/rgpd-et-vie-privee/",
5953    "needConsent": true,
5954    "cookies": [],
5955    "js": function () {
5956        "use strict";
5957        if (tarteaucitron.user.xitiId === undefined) {
5958            return;
5959        }
5960        var Xt_param = 's=' + tarteaucitron.user.xitiId + '&p=',
5961            Xt_r,
5962            Xt_h,
5963            Xt_i,
5964            Xt_s,
5965            div = document.createElement('div');
5966        try {
5967            Xt_r = top.document.referrer;
5968        } catch (e) {
5969            Xt_r = document.referrer;
5970        }
5971        Xt_h = new Date();
5972        Xt_i = '<img style="display:none" border="0" alt="" ';
5973        Xt_i += 'src="http://logv3.xiti.com/hit.xiti?' + Xt_param;
5974        Xt_i += '&hl=' + Xt_h.getHours() + 'x' + Xt_h.getMinutes() + 'x' + Xt_h.getSeconds();
5975        if (parseFloat(navigator.appVersion) >= 4) {
5976            Xt_s = screen;
5977            Xt_i += '&r=' + Xt_s.width + 'x' + Xt_s.height + 'x' + Xt_s.pixelDepth + 'x' + Xt_s.colorDepth;
5978        }
5979
5980        div.innerHTML = Xt_i + '&ref=' + Xt_r.replace(/[<>"]/g, '').replace(/&/g, '$') + '" title="Internet Audience">';
5981        document.getElementsByTagName('body')[0].appendChild(div.firstChild);
5982
5983        if (typeof tarteaucitron.user.xitiMore === 'function') {
5984            tarteaucitron.user.xitiMore();
5985        }
5986    }
5987};
5988
5989// AT Internet
5990tarteaucitron.services.atinternet = {
5991    "key": "atinternet",
5992    "type": "analytic",
5993    "name": "AT Internet (privacy by design)",
5994    "uri": "https://www.atinternet.com/rgpd-et-vie-privee/",
5995    "needConsent": true,
5996    "safeanalytic": false,
5997    "cookies": ['atidvisitor', 'atreman', 'atredir', 'atsession'],
5998    "js": function () {
5999        "use strict";
6000        if (tarteaucitron.user.atLibUrl === undefined) {
6001            return;
6002        }
6003
6004        if (tarteaucitron.user.atinternetAlreadyLoaded !== undefined) {
6005            return;
6006        }
6007
6008        tarteaucitron.addScript(tarteaucitron.user.atLibUrl, '', function () {
6009
6010            window.tag = new ATInternet.Tracker.Tag();
6011
6012            if (typeof window.tag.privacy !== 'undefined') {
6013                window.tag.privacy.setVisitorOptin();
6014            }
6015
6016            if (typeof tarteaucitron.user.atMore === 'function') {
6017                tarteaucitron.user.atMore();
6018            }
6019
6020            if (tarteaucitron.user.atinternetSendData !== false) {
6021                window.tag.page.send();
6022            }
6023        });
6024    },
6025    "fallback": function () {
6026        "use strict";
6027        if (tarteaucitron.user.atLibUrl === undefined) {
6028            return;
6029        }
6030
6031        if (tarteaucitron.user.atNoFallback === true) {
6032            return;
6033        }
6034
6035        tarteaucitron.user.atinternetAlreadyLoaded = true;
6036
6037        tarteaucitron.addScript(tarteaucitron.user.atLibUrl, '', function () {
6038
6039            window.tag = new ATInternet.Tracker.Tag();
6040
6041            if (typeof window.tag.privacy !== 'undefined') {
6042
6043                var visitorMode = window.tag.privacy.getVisitorMode();
6044                if (visitorMode !== null && visitorMode.name !== undefined && visitorMode.name == "optout") {
6045                    window.tag.privacy.setVisitorOptout();
6046                } else {
6047                    window.tag.privacy.setVisitorMode('cnil', 'exempt');
6048                }
6049            }
6050
6051            if (typeof tarteaucitron.user.atMore === 'function') {
6052                tarteaucitron.user.atMore();
6053            }
6054
6055            if (tarteaucitron.user.atinternetSendData !== false) {
6056                window.tag.page.send();
6057            }
6058        });
6059    }
6060};
6061
6062// AT Internet
6063tarteaucitron.services.atinternethightrack = {
6064    "key": "atinternethightrack",
6065    "type": "analytic",
6066    "name": "AT Internet",
6067    "uri": "https://www.atinternet.com/rgpd-et-vie-privee/",
6068    "needConsent": true,
6069    "cookies": ['atidvisitor', 'atreman', 'atredir', 'atsession'],
6070    "js": function () {
6071        "use strict";
6072        if (tarteaucitron.user.atLibUrl === undefined) {
6073            return;
6074        }
6075
6076        tarteaucitron.addScript(tarteaucitron.user.atLibUrl, '', function () {
6077
6078            var tag = new ATInternet.Tracker.Tag();
6079
6080            if (typeof tarteaucitron.user.atMore === 'function') {
6081                tarteaucitron.user.atMore();
6082            }
6083        })
6084    }
6085};
6086
6087// youtube
6088tarteaucitron.services.youtube = {
6089    "key": "youtube",
6090    "type": "video",
6091    "name": "YouTube",
6092    "uri": "https://policies.google.com/privacy",
6093    "needConsent": true,
6094    "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP'],
6095    "js": function () {
6096        "use strict";
6097        tarteaucitron.fallback(['youtube_player'], function (x) {
6098            var frame_title = tarteaucitron.fixSelfXSS(tarteaucitron.getElemAttr(x, "title") || 'Youtube iframe'),
6099                video_id = tarteaucitron.getElemAttr(x, "videoID"),
6100                srcdoc = tarteaucitron.getElemAttr(x, "srcdoc"),
6101                loading = tarteaucitron.getElemAttr(x, "loading"),
6102                video_width = tarteaucitron.getElemAttr(x, "width"),
6103                frame_width = 'width=',
6104                video_height = tarteaucitron.getElemAttr(x, "height"),
6105                frame_height = 'height=',
6106                video_frame,
6107                allowfullscreen = tarteaucitron.getElemAttr(x, "allowfullscreen"),
6108                attrs = ["theme", "rel", "controls", "showinfo", "autoplay", "mute", "start", "loop", "enablejsapi"],
6109                params = attrs.filter(function (a) {
6110                    return tarteaucitron.getElemAttr(x, a) !== null;
6111                }).map(function (a) {
6112                    return a + "=" + tarteaucitron.getElemAttr(x, a);
6113               }).join("&");
6114
6115            if(tarteaucitron.getElemAttr(x, "loop") == 1) {
6116               params = params + "&playlist=" + video_id;
6117            }
6118
6119            if (video_id === undefined) {
6120                return "";
6121            }
6122            if (video_width !== undefined) {
6123                frame_width += '"' + video_width + '" ';
6124            } else {
6125                frame_width += '"" ';
6126            }
6127            if (video_height !== undefined) {
6128                frame_height += '"' + video_height + '" ';
6129            } else {
6130                frame_height += '"" ';
6131            }
6132
6133            if (srcdoc !== undefined && srcdoc !== null && srcdoc !== "") {
6134                srcdoc = 'srcdoc="' + srcdoc + '" ';
6135            } else {
6136                srcdoc = '';
6137            }
6138
6139            if (loading !== undefined && loading !== null && loading !== "") {
6140                loading = 'loading ';
6141            } else {
6142                loading = '';
6143            }
6144
6145            video_frame = '<iframe title="' + frame_title + '" type="text/html" ' + frame_width + frame_height + ' src="//www.youtube-nocookie.com/embed/' + video_id + '?' + params + '"' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + ' ' + srcdoc + ' ' + loading + '></iframe>';
6146            return video_frame;
6147        });
6148    },
6149    "fallback": function () {
6150        "use strict";
6151        var id = 'youtube';
6152        tarteaucitron.fallback(['youtube_player'], function (elem) {
6153            elem.style.width = elem.getAttribute('width') + 'px';
6154            elem.style.height = elem.getAttribute('height') + 'px';
6155            return tarteaucitron.engage(id);
6156        });
6157    }
6158};
6159
6160// youtube playlist
6161tarteaucitron.services.youtubeplaylist = {
6162    "key": "youtubeplaylist",
6163    "type": "video",
6164    "name": "YouTube (playlist)",
6165    "uri": "https://policies.google.com/privacy",
6166    "needConsent": true,
6167    "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP'],
6168    "js": function () {
6169        "use strict";
6170        tarteaucitron.fallback(['youtube_playlist_player'], function (x) {
6171            var frame_title = tarteaucitron.fixSelfXSS(tarteaucitron.getElemAttr(x, "title") || 'Youtube iframe'),
6172                playlist_id = tarteaucitron.getElemAttr(x, "playlistID"),
6173                video_width = tarteaucitron.getElemAttr(x, "width"),
6174                frame_width = 'width=',
6175                video_height = tarteaucitron.getElemAttr(x, "height"),
6176                frame_height = 'height=',
6177                video_frame,
6178                allowfullscreen = tarteaucitron.getElemAttr(x, "allowfullscreen"),
6179                params = 'theme=' + tarteaucitron.getElemAttr(x, "theme") + '&rel=' + tarteaucitron.getElemAttr(x, "rel") + '&controls=' + tarteaucitron.getElemAttr(x, "controls") + '&showinfo=' + tarteaucitron.getElemAttr(x, "showinfo") + '&autoplay=' + tarteaucitron.getElemAttr(x, "autoplay") + '&mute=' + tarteaucitron.getElemAttr(x, "mute");
6180
6181            if (playlist_id === undefined) {
6182                return "";
6183            }
6184            if (video_width !== undefined) {
6185                frame_width += '"' + video_width + '" ';
6186            } else {
6187                frame_width += '"" ';
6188            }
6189            if (video_height !== undefined) {
6190                frame_height += '"' + video_height + '" ';
6191            } else {
6192                frame_height += '"" ';
6193            }
6194            video_frame = '<iframe title="' + frame_title + '" type="text/html" ' + frame_width + frame_height + ' src="//www.youtube-nocookie.com/embed/videoseries?list=' + playlist_id + '&' + params + '"' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
6195            return video_frame;
6196        });
6197    },
6198    "fallback": function () {
6199        "use strict";
6200        var id = 'youtubeplaylist';
6201        tarteaucitron.fallback(['youtube_playlist_player'], function (elem) {
6202            elem.style.width = elem.getAttribute('width') + 'px';
6203            elem.style.height = elem.getAttribute('height') + 'px';
6204            return tarteaucitron.engage(id);
6205        });
6206    }
6207};
6208
6209// zopim
6210tarteaucitron.services.zopim = {
6211    "key": "zopim",
6212    "type": "support",
6213    "name": "Zopim",
6214    "uri": "https://www.zopim.com/privacy",
6215    "needConsent": true,
6216    "cookies": ['__zlcid', '__zprivacy'],
6217    "js": function () {
6218        "use strict";
6219        if (tarteaucitron.user.zopimID === undefined) {
6220            return;
6221        }
6222        tarteaucitron.addScript('//v2.zopim.com/?' + tarteaucitron.user.zopimID);
6223    }
6224};
6225
6226// kameleoon
6227tarteaucitron.services.kameleoon = {
6228    "key": "kameleoon",
6229    "type": "analytic",
6230    "name": "Kameleoon",
6231    "uri": "https://www.kameleoon.com/fr/compliance/rgpd",
6232    "needConsent": true,
6233    "cookies": [],
6234    "js": function () {
6235        "use strict";
6236        if (tarteaucitron.user.kameleoon !== undefined) {
6237            tarteaucitron.addScript("https://" + tarteaucitron.user.kameleoon + ".kameleoon.eu/kameleoon.js");
6238        }
6239    }
6240};
6241
6242// linkedin insight
6243tarteaucitron.services.linkedininsighttag = {
6244    "key": "linkedininsighttag",
6245    "type": "ads",
6246    "name": "Linkedin Insight",
6247    "uri": "https://www.linkedin.com/legal/cookie_policy",
6248    "needConsent": true,
6249    "cookies": [],
6250    "js": function () {
6251        "use strict";
6252        if (tarteaucitron.user.linkedininsighttag !== undefined) {
6253            window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
6254            window._linkedin_data_partner_ids.push(tarteaucitron.user.linkedininsighttag);
6255        }
6256
6257        tarteaucitron.addScript('https://snap.licdn.com/li.lms-analytics/insight.min.js');
6258    }
6259};
6260
6261// xiti smartTag
6262tarteaucitron.services.xiti_smarttag = {
6263    "key": "xiti_smarttag",
6264    "type": "analytic",
6265    "name": "Xiti (SmartTag)",
6266    "uri": "https://www.atinternet.com/rgpd-et-vie-privee/",
6267    "needConsent": true,
6268    "cookies": ["atidvisitor", "atreman", "atredir", "atsession", "attvtreman", "attvtsession"],
6269    "js": function () {
6270        "use strict";
6271        if (tarteaucitron.user.xiti_smarttagLocalPath !== undefined) {
6272            tarteaucitron.addScript(tarteaucitron.user.xiti_smarttagLocalPath, 'smarttag', null, null, "onload", "addTracker();");
6273        } else {
6274            var xitiSmarttagId = tarteaucitron.user.xiti_smarttagSiteId;
6275            if (xitiSmarttagId === undefined) {
6276                return;
6277            }
6278
6279            tarteaucitron.addScript('//tag.aticdn.net/' + xitiSmarttagId + '/smarttag.js', 'smarttag', null, null, "onload", "addTracker();");
6280        }
6281    }
6282};
6283
6284// facebook pixel
6285tarteaucitron.services.facebookpixel = {
6286    "key": "facebookpixel",
6287    "type": "ads",
6288    "name": "Facebook Pixel",
6289    "uri": "https://www.facebook.com/policy.php",
6290    "needConsent": true,
6291    "cookies": ['datr', 'fr', 'reg_ext_ref', 'reg_fb_gate', 'reg_fb_ref', 'sb', 'wd', 'x-src', '_fbp'],
6292    "js": function () {
6293        "use strict";
6294        var n;
6295        if (window.fbq) return;
6296        n = window.fbq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) };
6297        if (!window._fbq) window._fbq = n;
6298        n.push = n;
6299        n.loaded = !0;
6300        n.version = '2.0';
6301        n.queue = [];
6302        tarteaucitron.addScript('https://connect.facebook.net/en_US/fbevents.js');
6303        fbq('init', tarteaucitron.user.facebookpixelId);
6304        fbq('track', 'PageView');
6305
6306        if (typeof tarteaucitron.user.facebookpixelMore === 'function') {
6307            tarteaucitron.user.facebookpixelMore();
6308        }
6309    }
6310};
6311
6312//Issuu
6313tarteaucitron.services.issuu = {
6314    "key": "issuu",
6315    "type": "other",
6316    "name": "Issuu",
6317    "uri": "https://issuu.com/legal/privacy",
6318    "needConsent": true,
6319    "cookies": ['__qca', 'iutk', 'mc'],
6320    "js": function () {
6321        "use strict";
6322        tarteaucitron.fallback(['issuu_player'], function (x) {
6323            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Issuu iframe'),
6324                issuu_id = x.getAttribute("issuuID"),
6325                issuu_width = x.getAttribute("width"),
6326                frame_width = 'width=',
6327                issuu_height = x.getAttribute("height"),
6328                frame_height = 'height=',
6329                issuu_frame,
6330                issuu_embed;
6331
6332            if (issuu_id === undefined) {
6333                return "";
6334            }
6335            if (issuu_width !== undefined) {
6336                frame_width += '"' + issuu_width + '" ';
6337            } else {
6338                frame_width += '"" ';
6339            }
6340            if (issuu_height !== undefined) {
6341                frame_height += '"' + issuu_height + '" ';
6342            } else {
6343                frame_height += '"" ';
6344            }
6345
6346
6347            if (issuu_id.match(/\d+\/\d+/)) { issuu_embed = '#' + issuu_id; } else if (issuu_id.match(/d=(.*)&u=(.*)/)) { issuu_embed = '?' + issuu_id; }
6348
6349
6350            issuu_frame = '<iframe title="' + frame_title + '" type="text/html" ' + frame_width + frame_height + ' src="//e.issuu.com/embed.html' + issuu_embed + '"></iframe>';
6351
6352            return issuu_frame;
6353        });
6354    },
6355    "fallback": function () {
6356        "use strict";
6357        var id = 'issuu';
6358        tarteaucitron.fallback(['issuu_player'], function (elem) {
6359            elem.style.width = elem.getAttribute('width') + 'px';
6360            elem.style.height = elem.getAttribute('height') + 'px';
6361            return tarteaucitron.engage(id);
6362        });
6363    }
6364};
6365
6366// webmecanik
6367tarteaucitron.services.webmecanik = {
6368    "key": "webmecanik",
6369    "type": "analytic",
6370    "name": "Webmecanik",
6371    "uri": "https://webmecanik.com/tos",
6372    "needConsent": true,
6373    "cookies": ['mtc_id', 'mtc_sid'],
6374    "js": function () {
6375        "use strict";
6376        if (tarteaucitron.user.webmecanikurl === undefined) {
6377            return;
6378        }
6379
6380        window.MauticTrackingObject = 'mt';
6381        window.mt = window.mt || function () {
6382            window.mt.q = window.mt.q || [];
6383            window.mt.q.push(arguments);
6384        };
6385
6386        tarteaucitron.addScript(tarteaucitron.user.webmecanikurl, '', function () {
6387            mt('send', 'pageview');
6388        });
6389    }
6390};
6391
6392// google analytics multiple
6393tarteaucitron.services.multiplegtag = {
6394    "key": "multiplegtag",
6395    "type": "analytic",
6396    "name": "Google Analytics (gtag.js)",
6397    "uri": "https://support.google.com/analytics/answer/6004245",
6398    "needConsent": true,
6399    "cookies": (function () {
6400
6401        var cookies = ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', '_gcl_au'];
6402
6403        if (tarteaucitron.user.multiplegtagUa !== undefined) {
6404            tarteaucitron.user.multiplegtagUa.forEach(function (ua) {
6405                cookies.push('_gat_gtag_' + ua.replace(/-/g, '_'));
6406                cookies.push('_ga_' + ua.replace(/G-/g, ''));
6407            });
6408        }
6409
6410        return cookies;
6411    })(),
6412    "js": function () {
6413        "use strict";
6414        window.dataLayer = window.dataLayer || [];
6415
6416        if (tarteaucitron.user.multiplegtagUa !== undefined) {
vendor: 8,641 bytes, lines 6417-6644
6417            tarteaucitron.user.multiplegtagUa.forEach(function (ua) {
6418                tarteaucitron.addScript('https://www.googletagmanager.com/gtag/js?id=' + ua, '', function () {
6419                    window.gtag = function gtag() { dataLayer.push(arguments); }
6420                    gtag('js', new Date());
6421                    var additional_config_info = (timeExpire !== undefined) ? {'anonymize_ip': true, 'cookie_expires': timeExpire / 1000} : {'anonymize_ip': true};
6422                    gtag('config', ua, additional_config_info);
6423                });
6424            });
6425        }
6426    }
6427};
6428
6429// Koban
6430tarteaucitron.services.koban = {
6431    "key": "koban",
6432    "type": "analytic",
6433    "name": "Koban",
6434    "uri": "https://koban.cloud/tos",
6435    "needConsent": true,
6436    "cookies": ['kbntrk'],
6437    "js": function () {
6438        "use strict";
6439        if (tarteaucitron.user.kobanurl === undefined) {
6440            return;
6441        }
6442        if (tarteaucitron.user.kobanapi === undefined) {
6443            return;
6444        }
6445        window.KobanObject = 'kb';
6446        window.kb = window.kb || function () {
6447            window.kb.q = window.kb.q || [];
6448            window.kb.q.push(arguments);
6449        };
6450        window.kb.l = new Date();
6451        kb('reg', tarteaucitron.user.kobanapi);
6452        tarteaucitron.addScript(tarteaucitron.user.kobanurl, '', function () {
6453        });
6454    }
6455};
6456
6457// matomo
6458
6459/*
6460    1. Set the following variable before the initialization :
6461
6462    tarteaucitron.user.matomoId = YOUR_SITE_ID_FROM_MATOMO;
6463    tarteaucitron.user.matomoHost = "YOUR_MATOMO_URL"; //eg: https://stat.mydomain.com/
6464
6465    2. Push the service :
6466
6467    (tarteaucitron.job = tarteaucitron.job || []).push('matomo');  // (or 'matomocloud' for cloud version)
6468
6469    3. HTML
6470    You don't need to add any html code, if the service is authorized, the javascript is added. otherwise no.
6471 */
6472tarteaucitron.services.matomo = {
6473    "key": "matomo",
6474    "type": "analytic",
6475    "name": "Matomo (privacy by design)",
6476    "uri": "https://matomo.org/faq/general/faq_146/",
6477    "needConsent": false,
6478    "cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'piwik_ignore', '_pk_uid'],
6479    "js": function () {
6480        "use strict";
6481        if (tarteaucitron.user.matomoId === undefined) {
6482            return;
6483        }
6484
6485        window._paq = window._paq || [];
6486        window._paq.push(["setSiteId", tarteaucitron.user.matomoId]);
6487        window._paq.push(["setTrackerUrl", tarteaucitron.user.matomoHost + "piwik.php"]);
6488        window._paq.push(["setDoNotTrack", 1]);
6489        window._paq.push(["trackPageView"]);
6490        window._paq.push(["setIgnoreClasses", ["no-tracking", "colorbox"]]);
6491        window._paq.push(["enableLinkTracking"]);
6492        window._paq.push([function () {
6493            var self = this;
6494            function getOriginalVisitorCookieTimeout() {
6495                var now = new Date(),
6496                    nowTs = Math.round(now.getTime() / 1000),
6497                    visitorInfo = self.getVisitorInfo();
6498                var createTs = parseInt(visitorInfo[2]);
6499                var cookieTimeout = 33696000; // 13 mois en secondes
6500                var originalTimeout = createTs + cookieTimeout - nowTs;
6501                return originalTimeout;
6502            }
6503            this.setVisitorCookieTimeout(getOriginalVisitorCookieTimeout());
6504        }]);
6505
6506        tarteaucitron.addScript(tarteaucitron.user.matomoHost + 'piwik.js', '', '', true, 'defer', true);
6507
6508        // waiting for piwik to be ready to check first party cookies
6509        var interval = setInterval(function () {
6510            if (typeof Piwik === 'undefined') return
6511
6512            clearInterval(interval)
6513
6514            // make piwik/matomo cookie accessible by getting tracker
6515            Piwik.getTracker();
6516
6517            // looping throught cookies
6518            var theCookies = document.cookie.split(';');
6519            for (var i = 1; i <= theCookies.length; i++) {
6520                var cookie = theCookies[i - 1].split('=');
6521                var cookieName = cookie[0].trim();
6522
6523                // if cookie starts like a piwik one, register it
6524                if (cookieName.indexOf('_pk_') === 0) {
6525                    tarteaucitron.services.matomo.cookies.push(cookieName);
6526                }
6527            }
6528        }, 100)
6529    }
6530};
6531
6532
6533tarteaucitron.services.matomohightrack = {
6534    "key": "matomohightrack",
6535    "type": "analytic",
6536    "name": "Matomo",
6537    "uri": "https://matomo.org/faq/general/faq_146/",
6538    "needConsent": false,
6539    "cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'piwik_ignore', '_pk_uid'],
6540    "js": function () {
6541        "use strict";
6542        if (tarteaucitron.user.matomoId === undefined) {
6543            return;
6544        }
6545
6546        window._paq = window._paq || [];
6547        window._paq.push(["setSiteId", tarteaucitron.user.matomoId]);
6548        window._paq.push(["setTrackerUrl", tarteaucitron.user.matomoHost + "piwik.php"]);
6549        window._paq.push(["trackPageView"]);
6550        window._paq.push(["setIgnoreClasses", ["no-tracking", "colorbox"]]);
6551        window._paq.push(["enableLinkTracking"]);
6552        window._paq.push([function () {
6553            var self = this;
6554        }]);
6555
6556        tarteaucitron.addScript(tarteaucitron.user.matomoHost + 'piwik.js', '', '', true, 'defer', true);
6557
6558        // waiting for piwik to be ready to check first party cookies
6559        var interval = setInterval(function () {
6560            if (typeof Piwik === 'undefined') return
6561
6562            clearInterval(interval)
6563            Piwik.getTracker();
6564
6565            var theCookies = document.cookie.split(';');
6566            for (var i = 1; i <= theCookies.length; i++) {
6567                var cookie = theCookies[i - 1].split('=');
6568                var cookieName = cookie[0].trim();
6569
6570                if (cookieName.indexOf('_pk_') === 0) {
6571                    tarteaucitron.services.matomo.cookies.push(cookieName);
6572                }
6573            }
6574        }, 100)
6575    }
6576};
6577
6578
6579tarteaucitron.services.matomocloud = {
6580    "key": "matomocloud",
6581    "type": "analytic",
6582    "name": "Matomo Cloud (privacy by design)",
6583    "uri": "https://matomo.org/faq/general/faq_146/",
6584    "needConsent": false,
6585    "cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'mtm_consent', 'matomo_ignore', 'matomo_sessid'],
6586    "js": function () {
6587        "use strict";
6588        if (tarteaucitron.user.matomoId === undefined) {
6589            return;
6590        }
6591
6592        window._paq = window._paq || [];
6593        window._paq.push(["setSiteId", tarteaucitron.user.matomoId]);
6594        window._paq.push(["setTrackerUrl", tarteaucitron.user.matomoHost + "matomo.php"]);
6595        window._paq.push(["setDoNotTrack", 1]);
6596        window._paq.push(["trackPageView"]);
6597        window._paq.push(["setIgnoreClasses", ["no-tracking", "colorbox"]]);
6598        window._paq.push(["enableLinkTracking"]);
6599        window._paq.push([function () {
6600            var self = this;
6601            function getOriginalVisitorCookieTimeout() {
6602                var now = new Date(),
6603                    nowTs = Math.round(now.getTime() / 1000),
6604                    visitorInfo = self.getVisitorInfo();
6605                var createTs = parseInt(visitorInfo[2]);
6606                var cookieTimeout = 33696000; // 13 mois en secondes
6607                var originalTimeout = createTs + cookieTimeout - nowTs;
6608                return originalTimeout;
6609            }
6610            this.setVisitorCookieTimeout(getOriginalVisitorCookieTimeout());
6611        }]);
6612
6613        if (tarteaucitron.user.matomoCustomJSPath === undefined) {
6614            tarteaucitron.addScript('https://cdn.matomo.cloud/matomo.js', '', '', true, 'defer', true);
6615        } else {
6616            tarteaucitron.addScript(tarteaucitron.user.matomoCustomJSPath, '', '', true, 'defer', true);
6617        }
6618
6619        // waiting for Matomo to be ready to check first party cookies
6620        var interval = setInterval(function () {
6621            if (typeof Matomo === 'undefined') return
6622
6623            clearInterval(interval)
6624
6625            // make Matomo cookie accessible by getting tracker
6626            Matomo.getTracker();
6627
6628            // looping through cookies
6629            var theCookies = document.cookie.split(';');
6630            for (var i = 1; i <= theCookies.length; i++) {
6631                var cookie = theCookies[i - 1].split('=');
6632                var cookieName = cookie[0].trim();
6633
6634                // if cookie starts like a matomo one, register it
6635                if (cookieName.indexOf('_pk_') === 0) {
6636                    tarteaucitron.services.matomo.cookies.push(cookieName);
6637                }
6638            }
6639        }, 100)
6640    }
6641};
6642
6643// matomotm
6644tarteaucitron.services.matomotm = {
6645    "key": "matomotm",
6646    "type": "api",
6647    "name": "Matomo Tag Manager",
6648    "uri": "https://matomo.org/privacy/",
6649    "needConsent": true,
6650    "cookies": [],
6651    "js": function () {
6652        "use strict";
6653        if (tarteaucitron.user.matomotmUrl === undefined) {
6654            return;
6655        }
6656
6657        var _mtm = window._mtm = window._mtm || [];
6658        _mtm.push({'mtm.startTime': (new Date().getTime()), 'event': 'mtm.Start'});
6659
6660        tarteaucitron.addScript(tarteaucitron.user.matomotmUrl);
6661    }
6662};
6663
6664
6665// Hotjar
6666/*
6667   1. Set the following variable before the initialization :
6668    tarteaucitron.user.hotjarId = YOUR_WEBSITE_ID;
6669   tarteaucitron.user.HotjarSv = XXXX; // Can be found in your website tracking code as "hjvs=XXXX"
6670    2. Push the service :
6671    (tarteaucitron.job = tarteaucitron.job || []).push('hotjar');
6672    3. HTML
6673   You don't need to add any html code, if the service is autorized, the javascript is added. otherwise no.
6674 */
6675tarteaucitron.services.hotjar = {
6676    "key": "hotjar",
6677    "type": "analytic",
6678    "name": "Hotjar",
6679    "uri": "https://help.hotjar.com/hc/en-us/categories/115001323967-About-Hotjar",
6680    "needConsent": true,
6681    "cookies": ["hjClosedSurveyInvites", "_hjDonePolls", "_hjMinimizedPolls", "_hjDoneTestersWidgets", "_hjMinimizedTestersWidgets", "_hjDoneSurveys", "_hjIncludedInSample", "_hjShownFeedbackMessage", "_hjAbsoluteSessionInProgress", "_hjIncludeInPageviewSample", "_hjid"],
6682    "js": function () {
6683        "use strict";
6684        if (tarteaucitron.user.hotjarId === undefined || tarteaucitron.user.HotjarSv === undefined) {
6685            return;
6686        }
6687        window.hj = window.hj || function () {
6688            (window.hj.q = window.hj.q || []).push(arguments)
6689        };
6690        window._hjSettings = {
6691            hjid: tarteaucitron.user.hotjarId,
6692            hjsv: tarteaucitron.user.HotjarSv
6693        };
6694        var uri = 'https://static.hotjar.com/c/hotjar-';
6695        var extension = '.js?sv=';
6696        tarteaucitron.addScript(uri + window._hjSettings.hjid + extension + window._hjSettings.hjsv);
6697    }
6698};
6699
6700// bing ads universal event tracking
6701tarteaucitron.services.bingads = {
6702    'key': 'bingads',
6703    'type': 'ads',
6704    'name': 'Bing Ads Universal Event Tracking',
6705    'uri': 'https://advertise.bingads.microsoft.com/en-us/resources/policies/personalized-ads',
6706    'needConsent': true,
6707    'cookies': ['_uetmsclkid', '_uetvid', '_uetsid'],
6708    'js': function () {
6709        'use strict';
6710        //var u = tarteaucitron.user.bingadsTag || 'uetq';
6711        window.uetq = window.uetq || [];
6712
6713        tarteaucitron.addScript('https://bat.bing.com/bat.js', '', function () {
6714            var bingadsCreate = { ti: tarteaucitron.user.bingadsID };
6715
6716            if ('bingadsStoreCookies' in tarteaucitron.user) {
6717                bingadsCreate['storeConvTrackCookies'] = tarteaucitron.user.bingadsStoreCookies;
6718            }
6719
6720            bingadsCreate.q = window.uetq;
6721            window.uetq = new UET(bingadsCreate);
6722            window.uetq.push('pageLoad');
6723
6724            if (typeof tarteaucitron.user.bingadsMore === 'function') {
6725                tarteaucitron.user.bingadsMore();
6726            }
6727        });
6728    }
6729};
6730
6731//Matterport
6732tarteaucitron.services.matterport = {
6733    "key": "matterport",
6734    "type": "other",
6735    "name": "Matterport",
6736    "uri": "https://matterport.com/es/legal/privacy-policy/",
6737    "needConsent": true,
6738    "cookies": ['__cfduid', 'ajs_anonymous_id', 'ajs_group_id', 'ajs_user_id'],
6739    "js": function () {
6740        "use strict";
6741        tarteaucitron.fallback(['matterport'], function (x) {
6742            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Matterport iframe'),
6743                matterport_id = x.getAttribute("matterportID"),
6744                matterport_width = x.getAttribute("width"),
6745                frame_width = 'width=',
6746                matterport_height = x.getAttribute("height"),
6747                frame_height = 'height=',
6748                matterport_parameters = x.getAttribute("parameters"),
6749                matterport_allowfullscreen = x.getAttribute('allowfullscreen'),
6750                matterport_frame;
6751
6752            if (matterport_id === undefined) {
6753                return "";
6754            }
6755            if (matterport_width !== undefined) {
6756                frame_width += '"' + matterport_width + '" ';
6757            } else {
6758                frame_width += '"" ';
6759            }
6760            if (matterport_height !== undefined) {
6761                frame_height += '"' + matterport_height + '" ';
6762            } else {
6763                frame_height += '"" ';
6764            }
6765            if (matterport_parameters === undefined) {
6766                return "";
6767            }
6768
6769            matterport_frame = '<iframe title="' + frame_title + '" type="text/html" ' + frame_width + frame_height + ' src="https://my.matterport.com/show/?m=' + matterport_id + '&utm_source=hit-content' + matterport_parameters + '"' + (matterport_allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
6770            return matterport_frame;
6771        });
6772    },
6773    "fallback": function () {
6774        "use strict";
6775        var id = 'matterport';
6776        tarteaucitron.fallback(['matterport'], function (elem) {
6777            elem.style.width = elem.getAttribute('width') + 'px';
6778            elem.style.height = elem.getAttribute('height') + 'px'
vendor: 4,453 bytes, lines 6778-6924
6778;
6779            return tarteaucitron.engage(id);
6780        });
6781    }
6782};
6783
6784// Adform
6785tarteaucitron.services.adform = {
6786    "key": "adform",
6787    "type": "ads",
6788    "name": "Adform",
6789    "uri": "https://site.adform.com/privacy-center/overview/",
6790    "needConsent": true,
6791    "cookies": [],
6792    "js": function () {
6793        "use strict";
6794
6795        if (tarteaucitron.user.adformpm === undefined || tarteaucitron.user.adformpagename === undefined) {
6796            return;
6797        }
6798
6799        window._adftrack = {
6800            pm: tarteaucitron.user.adformpm,
6801            divider: encodeURIComponent('|'),
6802            pagename: encodeURIComponent(tarteaucitron.user.adformpagename)
6803        };
6804
6805        tarteaucitron.addScript("https://track.adform.net/serving/scripts/trackpoint/async/");
6806    }
6807};
6808
6809// Active Campaign
6810tarteaucitron.services.activecampaign = {
6811    "key": "activecampaign",
6812    "type": "ads",
6813    "name": "Active Campaign",
6814    "uri": "https://www.activecampaign.com/privacy-policy/",
6815    "needConsent": true,
6816    "cookies": [],
6817    "js": function () {
6818        "use strict";
6819        if (tarteaucitron.user.actid === undefined) {
6820            return;
6821        }
6822
6823        window.trackcmp_email = '';
6824
6825        tarteaucitron.addScript('https://trackcmp.net/visit?actid=' + tarteaucitron.user.actid + '&e=' + encodeURIComponent(trackcmp_email) + '&r=' + encodeURIComponent(document.referrer) + '&u=' + encodeURIComponent(window.location.href));
6826    }
6827};
6828
6829// tawk.to
6830tarteaucitron.services.tawkto = {
6831    "key": "tawkto",
6832    "type": "support",
6833    "name": "Tawk.to chat",
6834    "uri": "https://www.tawk.to/data-protection/",
6835    "needConsent": true,
6836    "cookies": [],
6837    "js": function () {
6838        "use strict";
6839        if (tarteaucitron.user.tawktoId === undefined) {
6840            return;
6841        }
6842
6843        tarteaucitron.user.tawktoWidgetId = tarteaucitron.user.tawktoWidgetId || 'default';
6844
6845        window.Tawk_API = window.Tawk_API || {};
6846        window.Tawk_LoadStart = new Date();
6847
6848        tarteaucitron.addScript('https://embed.tawk.to/' + tarteaucitron.user.tawktoId + '/' + tarteaucitron.user.tawktoWidgetId);
6849    }
6850
6851};
6852
6853// getquanty
6854tarteaucitron.services.getquanty = {
6855    "key": "getquanty",
6856    "type": "analytic",
6857    "name": "GetQuanty",
6858    "uri": "https://www.getquanty.com/mentions-legales/",
6859    "needConsent": true,
6860    "cookies": ['_first_pageview', 'eqy_sessionid', 'eqy_siteid', 'cluid', 'eqy_company', 'cluid', 'gq_utm', '_jsuid'],
6861    "js": function () {
6862        "use strict";
6863        if (tarteaucitron.user.getguanty === undefined) {
6864            return;
6865        }
6866
6867        if (tarteaucitron.user.getquantyAlreadyLoaded !== undefined) {
6868            return;
6869        }
6870
6871        tarteaucitron.addScript('https://get.smart-data-systems.com/gq?site_id=' + tarteaucitron.user.getguanty + '&consent=1');
6872    },
6873    "fallback": function () {
6874        "use strict";
6875        if (tarteaucitron.user.getguanty === undefined) {
6876            return;
6877        }
6878
6879        tarteaucitron.user.getquantyAlreadyLoaded = true;
6880
6881        tarteaucitron.addScript('https://get.smart-data-systems.com/gq?site_id=' + tarteaucitron.user.getguanty + '&notrack=1');
6882    }
6883};
6884
6885// emolytics
6886tarteaucitron.services.emolytics = {
6887    "key": "emolytics",
6888    "type": "analytic",
6889    "name": "Emolytics",
6890    "uri": "https://www.emolytics.com/main/privacy-policy.php",
6891    "needConsent": true,
6892    "cookies": ['__hssc', '__hssrc', '__hstc', '_ga', '_gid', 'hubspotutk', 'lang', 'incap_ses_', 'nlbi_', 'visid_incap_'],
6893    "js": function () {
6894        "use strict";
6895        if (tarteaucitron.user.emolyticsID === undefined) {
6896            return;
6897        }
6898        var scriptEmolytics = document.createElement('script');
6899        scriptEmolytics.text = 'var getsmily_id="' + tarteaucitron.user.emolyticsID + '";';
6900        document.getElementsByTagName('body')[0].appendChild(scriptEmolytics);
6901        tarteaucitron.addScript('https://cdn.emolytics.com/script/emolytics-widget.js')
6902    }
6903};
6904
6905// youtubeapi
6906tarteaucitron.services.youtubeapi = {
6907    "key": "youtubeapi",
6908    "type": "video",
6909    "name": "Youtube (Js API)",
6910    "uri": "https://policies.google.com/privacy",
6911    "needConsent": true,
6912    "cookies": [],
6913    "js": function () {
6914        "use strict";
6915        tarteaucitron.addScript('https://www.youtube.com/player_api');
6916    }
6917};
6918
6919// Facil'ITI
6920tarteaucitron.services.faciliti = {
6921    "key": "faciliti",
6922    "type": "other",
6923    "name": "Facil'ITI",
6924    "uri": "https://w
6924s.facil-iti.com/mentions-legales.html",
6925    "needConsent": true,
6926    "cookies": ['FACIL_ITI_LS'],
6927    "js": function () {
6928        "use strict";
6929        if (tarteaucitron.user.facilitiID === undefined) {
6930            return;
6931        }
6932
6933        (function (w, d, s, f) {
6934            w[f] = w[f] || { conf: function () { (w[f].data = w[f].data || []).push(arguments); } };
6935            var l = d.createElement(s), e = d.getElementsByTagName(s)[0];
6936            l.async = 1; l.src = 'https://ws.facil-iti.com/tag/faciliti-tag.min.js'; e.parentNode.insertBefore(l, e);
6937        }(window, document, 'script', 'FACIL_ITI'));
6938        FACIL_ITI.conf('userId', tarteaucitron.user.facilitiID);
6939    }
6940};
6941
6942// userlike
6943tarteaucitron.services.userlike = {
6944    "key": "userlike",
6945    "type": "support",
6946    "name": "Userlike",
6947    "uri": "https://www.userlike.com/en/terms#privacy-policy",
6948    "needConsent": true,
6949    "cookies": ['uslk_s', 'uslk_e'],
6950    "js": function () {
6951        "use strict";
6952        if (tarteaucitron.user.userlikeKey === undefined) {
6953            return;
6954        }
6955        tarteaucitron.addScript('//userlike-cdn-widgets.s3-eu-west-1.amazonaws.com/' + tarteaucitron.user.userlikeKey);
6956    }
6957};
6958
6959// adobeanalytics
6960tarteaucitron.services.adobeanalytics = {
6961    "key": "adobeanalytics",
6962    "type": "analytic",
6963    "name": "Adobe Analytics",
6964    "uri": "https://www.adobe.com/privacy/policy.html",
6965    "needConsent": true,
6966    "cookies": ['s_ecid', 's_cc', 's_sq', 's_vi', 's_fid'],
6967    "js": function () {
6968        "use strict";
6969        if (tarteaucitron.user.adobeanalyticskey === undefined) {
6970            return;
6971        }
6972        tarteaucitron.addScript('//assets.adobedtm.com/launch-' + tarteaucitron.user.adobeanalyticskey + '.min.js');
6973    }
6974};
6975
6976// woopra customer journey analytics
6977tarteaucitron.services.woopra = {
6978    'key': 'woopra',
6979    'type': 'analytic',
6980    'name': 'Woopra Customer Journey Analytics',
6981    'uri': 'https://www.woopra.com/privacy',
6982    'needConsent': true,
6983    'cookies': ['wooTracker', 'intercom-session-erbfalba', 'intercom-id-erbfalba'],
6984    'js': function () {
6985        'use strict';
6986        //var w = tarteaucitron.user.woopraDomain;
6987        //window[w] = window[w] || [];
6988
6989        (function () {
6990            var t, i, e, n = window, o = document, a = arguments, s = "script", r = ["config", "track", "identify", "visit", "push", "call", "trackForm", "trackClick"], c = function () { var t, i = this; for (i._e = [], t = 0; r.length > t; t++)(function (t) { i[t] = function () { return i._e.push([t].concat(Array.prototype.slice.call(arguments, 0))), i } })(r[t]) }; for (n._w = n._w || {}, t = 0; a.length > t; t++)n._w[a[t]] = n[a[t]] = n[a[t]] || new c; i = o.createElement(s), i.async = 1, i.src = "//static.woopra.com/js/w.js", e = o.getElementsByTagName(s)[0], e.parentNode.insertBefore(i, e)
6991        })("woopra");
6992
6993        woopra.config({
6994            domain: tarteaucitron.user.woopraDomain
6995        });
6996        woopra.track();
6997    }
6998};
6999
7000// ausha
7001tarteaucitron.services.ausha = {
7002    key: "ausha",
7003    type: "video",
7004    name: "Ausha",
7005    uri: "https://www.ausha.co/protection-personal-data/",
7006    needConsent: true,
7007    cookies: [],
7008    js: function () {
7009        "use strict";
7010        tarteaucitron.fallback(['ausha_player'], function (x) {
7011            var player_height = x.getAttribute('data-height'),
7012                podcast_id = x.getAttribute('data-podcast-id'),
7013                player_id = x.getAttribute('data-player-id'),
7014                playlist = x.getAttribute('data-playlist'),
7015                useshowid = x.getAttribute('data-useshowid'),
7016                color = x.getAttribute('data-color');
7017
7018            if (podcast_id === undefined) {
7019                return "";
7020            }
7021
7022            var src = 'https://player.ausha.co/index.html?podcastId=' + podcast_id + '&v=3';
7023
7024            if (useshowid == "1") {
7025                src = 'https://player.ausha.co/index.html?showId=' + podcast_id + '&v=3';
7026            }
7027
7028            if (playlist && playlist.length > 0) src += '&playlist=' + playlist;
7029            if (color && color.length > 0) src += '&color=' + color.replace('#', '%23');
7030            if (player_id && player_id.length > 0) src += '&playerId=' + player_id;
7031
7032            return '<iframe id="' + player_id + '" loading="lazy" width="100%" height="' + player_height + '" scrolling="no" frameborder="no" src="' + src + '"></iframe>';
7033        });
7034
7035        tarteaucitron.addScript('//player.ausha.co/ausha-player.js', 'ausha-player');
7036    },
7037    fallback: function () {
7038        "use strict";
7039        tarteaucitron.fallback(['ausha_player'], function (elem) {
7040            elem.style.height = elem.getAttribute('data-height') + 'px';
7041            return tarteaucitron.engage('ausha');
7042        });
7043    }
7044};
7045
7046// visiblee
7047tarteaucitron.services.visiblee = {
7048    key: "visiblee",
7049    type: "analytic",
7050    name: "Visiblee",
7051    uri: "http://confidentiality.visiblee.io/fr/confidentialite",
7052    needConsent: true,
7053    cookies: ["visitor_v2", tarteaucitron.user.visibleedomain, "check", "campaign_ref_" + tarteaucitron.user.visibleedomain, "reload_" + tarteaucitron.user.visibleedomain],
7054    js: function () {
7055        "use strict";
7056
7057        if (tarteaucitron.user.visibleeclientid === undefined) {
7058            return;
7059        }
7060        tarteaucitron.addScript('//www.link-page.info/tracking_' + tarteaucitron.user.visibleeclientid + '.js', 'visiblee');
7061    }
7062};
7063
7064// bandcamp
7065tarteaucitron.services.bandcamp = {
7066    key: "bandcamp",
7067    type: "video",
7068    name: "Bandcamp",
7069    uri: "https://bandcamp.com",
7070    readmoreLink: "https://bandcamp.com/privacy",
7071    needConsent: true,
7072    cookies: ['client_id', 'BACKENDID', '_comm_playlist'],
7073    js: function () {
7074        "use strict";
7075        tarteaucitron.fallback(['bandcamp_player'], function (x) {
7076            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Bandcamp iframe'),
7077                album_id = x.getAttribute("albumID"),
7078                bandcamp_width = x.getAttribute("width"),
7079                frame_width = 'width=',
7080                bandcamp_height = x.getAttribute("height"),
7081                frame_height = 'height=',
7082                attrs = ["size", "bgcol", "linkcol", "artwork", "minimal", "tracklist", "package", "transparent"],
7083                params = attrs.filter(function (a) {
7084                    return x.getAttribute(a) !== null;
7085                }).map(function (a) {
7086                    if (a && a.length > 0) return a + "=" + x.getAttribute(a);
7087                }).join("/");
7088
7089            if (album_id === null) {
7090                return "";
7091            }
7092
7093            if (bandcamp_width !== null || bandcamp_width !== "") {
7094                frame_width += '"' + bandcamp_width + '" ';
7095            } else {
7096                frame_width += '"" ';
7097            }
7098            if (bandcamp_height !== null || bandcamp_height !== "") {
7099                frame_height += '"' + bandcamp_height + '" ';
7100            } else {
7101                frame_height += '"" ';
7102            }
7103
7104            var src = 'https://bandcamp.com/EmbeddedPlayer/album=' + album_id + '/' + params;
7105
7106            return '<iframe title="' + frame_title + '"' + frame_width + frame_height + 'src="' + src + '" frameborder="0" allowfullscreen seamless></iframe>';
7107        });
7108    },
7109    fallback: function () {
7110        "use strict";
7111        tarteaucitron.fallback(['bandcamp_player'], function (elem) {
7112            elem.style.width = elem.getAttribute('width');
7113            elem.style.height = elem.getAttribute('height');
7114            return tarteaucitron.engage('bandcamp');
7115        });
7116    }
7117};
7118
7119// Discord Widget
7120tarteaucitron.services.discord = {
7121    "key": "discord",
7122    "type": "social",
7123    "name": "Discord (Server Widget)",
7124    "needConsent": true,
7125    "cookies": ["__cfruid", "__dcfduid", "_ga", "_gcl_au", "OptanonConsent", "locale", "_gid"],
7126    "uri": "https://discord.com/privacy",
7127    "js": function () {
7128        "use strict";
7129        tarteaucitron.fallback(['discord_widget'], function (x) {
7130            var id = x.getAttribute("guildID"),
7131                width = x.getAttribute("width"),
7132                height = x.getAttribute("height")
7133            var widgetURL = "https://discord.com/widget?id=" + id;
7134            return "<iframe width=\"" + width + "\" height=\"" + height + "\" src=\"" + widgetURL + "\"></iframe>";
7135        });
7136    },
7137    "fallback": function () {
7138        "use strict";
7139        var id = 'discord';
7140        tarteaucitron.fallback(['discord_widget'], function (elem) {
7141            elem.style.width = elem.getAttribute('width') + 'px';
7142            elem.style.height = elem.getAttribute('height') + 'px';
7143            return tarteaucitron.engage(id);
7144        });
7145    }
7146};
7147
7148// Google Maps
7149tarteaucitron.services.maps_noapi = {
7150    "key": "maps_noapi",
7151    "type": "other",
7152    "name": "Google Maps",
7153    "needConsent": true,
7154    "cookies": ["NID", "OGPC", "1P_JAR", "CONSENT"],
7155    "uri": "https://policies.google.com/privacy",
7156    "js": function () {
7157        "use strict";
7158        tarteaucitron.fallback(['googlemaps_embed'], function (x) {
7159            var id = x.getAttribute("id"),
7160                width = x.getAttribute("width"),
7161                height = x.getAttribute("height")
7162            var widgetURL = "https://google.com/maps/embed?pb=" + id;
7163            return "<iframe width=\"" + width + "\" height=\"" + height + "\" src=\"" + widgetURL + "\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\"></iframe>";
7164        });
7165    },
7166    "fallback": function () {
7167        "use strict";
7168        var id = 'maps_noapi';
7169        tarteaucitron.fallback(['googlemaps_embed'], function (elem) {
7170            elem.style.width = elem.getAttribute('width') + 'px';
7171            elem.style.height = elem.getAttribute('height') + 'px';
7172            return tarteaucitron.engage(id);
7173        });
7174    }
7175};
7176
7177// hCaptcha
7178tarteaucitron.services.hcaptcha = {
7179    "key": "hcaptcha",
7180    "type": "other",
7181    "name": "hCaptcha",
7182    "needConsent": true,
7183    "cookies": [],
7184    "uri": "https://www.hcaptcha.com/privacy",
7185    "js": function () {
7186        "use strict";
7187        tarteaucitron.fallback(["h-captcha"], '');
7188        tarteaucitron.addScript("https://hcaptcha.com/1/api.js", "hcaptcha")
7189    },
7190    "fallback": function () {
7191        "use strict";
7192        var id = "hcaptcha";
7193        tarteaucitron.fallback(["h-captcha"], tarteaucitron.engage(id));
7194    }
7195};
7196
7197// France Culture
7198tarteaucitron.services.fculture = {
7199    "key": "fculture",
7200    "type": "video",
7201    "name": "France Culture",
7202    "needConsent": true,
7203    "cookies": ["_gid", "didomi_token", "outbrain_cid_fetch", "xtvrn", "xtant", "YSC", "ABTasty", "xtan", "ABTastySession", "xtidc", "_ga", "VISITOR_INFO1_LIVE", "euconsent-v2", "v1st", "dmvk", "ts", "VISITOR_INFO1_LIVE", "YSC"],
7204    "uri": "https://www.radiofrance.com/politique-d-utilisation-des-cookies-sur-les-sites-internet-du-groupe-radio-france",
7205    "js": function () {
7206        "use strict";
7207        tarteaucitron.fallback(['fculture_embed'], function (x) {
7208            var id = x.getAttribute('id'),
7209                width = x.getAttribute('width'),
7210                height = x.getAttribute('height');
7211            return "<iframe src=\"https://www.franceculture.fr/player/export-reecouter?content=" + id + "\" height=\"" + height + "\" width=\"" + width + "\"></iframe>"
7212        });
7213    },
7214    "fallback": function () {
7215        "use strict";
7216        var id = "fculture";
7217        tarteaucitron.fallback(["fculture_embed"], tarteaucitron.engage(id));
7218    }
7219};
7220
7221// Acast
7222tarteaucitron.services.acast = {
7223    "key": "acast",
7224    "type": "video",
7225    "name": "Acast",
7226    "needConsent": true,
7227    "cookies": ["intercom-id-ayi0335i", "intercom-session-ayi0335i"],
7228    "uri": "https://www.acast.com/en/privacy",
7229    "js": function () {
7230        "use strict";
7231        tarteaucitron.fallback(['acast_embed'], function (x) {
7232            var id = x.getAttribute('id1'),
7233                id2 = x.getAttribute('id2'),
7234                width = x.getAttribute('width'),
7235                height = x.getAttribute('height'),
7236                seek = x.getAttribute('seek');
7237            var widgetURL = "https://embed.acast.com/" + id + "/" + id2 + "?seek=" + seek;
7238            return "<iframe title=\"Embed Player\" width=\"" + width + "\" height=\"" + height + "\" src=\"" + widgetURL + "\" scrolling=\"no\" frameBorder=\"0\" style=\"border: none; overflow: hidden;\"></iframe>";
7239        });
7240    },
7241    "fallback": function () {
7242        "use strict";
7243        var id = "acast";
7244        tarteaucitron.fallback(["acast_embed"], tarteaucitron.engage(id));
7245    }
7246};
7247
7248// Mixcloud
7249tarteaucitron.services.mixcloud = {
7250    "key": "mixcloud",
7251    "type": "video",
7252    "name": "Mixcloud",
7253    "needConsent": true,
7254    "cookies": ["UID", "_gat", "__stripe_mid", "_gid", "_ga", "c", "csrftoken", "__stripe_sid", "mx_t"],
7255    "uri": "https://www.mixcloud.com/privacy/",
7256    "js": function () {
7257        "use strict";
7258        tarteaucitron.fallback(['mixcloud_embed'], function (x) {
7259            var id = x.getAttribute('id'),
7260                hidecover = x.getAttribute('hidecover'),
7261                mini = x.getAttribute('mini'),
7262                light = x.getAttribute('light'),
7263                width = x.getAttribute('width'),
7264                height = x.getAttribute('height');
7265            return "<iframe width=\"" + width + "\" height=\"" + height + "\" src=\"https://www.mixcloud.com/widget/iframe/?hide_cover=" + hidecover + "&mini=" + mini + "&light=" + light + "&feed=" + id + "\" frameborder=\"0\" ></iframe>";
7266        });
7267    },
7268    "fallback": function () {
7269        "use strict";
7270        var id = "mixcloud";
7271        tarteaucitron.fallback(["mixcloud_embed"], tarteaucitron.engage(id));
7272    }
7273};
7274
7275// Google Agenda
7276tarteaucitron.services.gagenda = {
7277    "key": "gagenda",
7278    "type": "other",
7279    "name": "Google Agenda",
7280    "needConsent": true,
7281    "cookies": ["CONSENT", "NID"],
7282    "uri": "https://policies.google.com/privacy",
7283    "js": function () {
7284        "use strict";
7285        tarteaucitron.fallback(['gagenda_embed'], function (x) {
7286            var calendar_data = x.getAttribute('data'),
7287                width = x.getAttribute('width'),
7288                height = x.getAttribute('height');
7289            return "<iframe loarding=\"lazy\" width=\"" + width + "\" height=\"" + height + "\" src=\"https://www.google.com/calendar/embed?" + calendar_data + "\" frameborder=\"0\" scrolling=\"no\" style=\"border-width:0\"></iframe>";
7290        });
7291    },
7292    "fallback": function () {
7293        "use strict";
7294        var id = "gagenda";
7295        tarteaucitron.fallback(["gagenda_embed"], tarteaucitron.engage(id));
7296    }
7297};
7298
7299// Google Docs
7300tarteaucitron.services.gdocs = {
vendor: 4,303 bytes, lines 7301-7419
7301    "key": "gdocs",
7302    "type": "other",
7303    "name": "Google Docs",
7304    "needConsent": true,
7305    "cookies": ["CONSENT", "NID"],
7306    "uri": "https://policies.google.com/privacy",
7307    "js": function () {
7308        "use strict";
7309        tarteaucitron.fallback(['gdocs_embed'], function (x) {
7310            var id = x.getAttribute('id'),
7311                width = x.getAttribute('width'),
7312                height = x.getAttribute('height');
7313            return "<iframe width=\"" + width + "\" height=\"" + height + "\" src=\"https://docs.google.com/document/d/e/" + id + "/pub?embedded=true\"></iframe>";
7314        });
7315    },
7316    "fallback": function () {
7317        "use strict";
7318        var id = "gdocs";
7319        tarteaucitron.fallback(["gdocs_embed"], tarteaucitron.engage(id));
7320    }
7321};
7322
7323// Google Sheets
7324tarteaucitron.services.gsheets = {
7325    "key": "gsheets",
7326    "type": "other",
7327    "name": "Google Sheets",
7328    "needConsent": true,
7329    "cookies": ["CONSENT", "NID"],
7330    "uri": "https://policies.google.com/privacy",
7331    "js": function () {
7332        "use strict";
7333        tarteaucitron.fallback(['gsheets_embed'], function (x) {
7334            var id = x.getAttribute('id'),
7335                width = x.getAttribute('width'),
7336                height = x.getAttribute('height'),
7337                headers = x.getAttribute('headers');
7338            return "<iframe width=\"" + width + "\" height=\"" + height + "\" src=\"https://docs.google.com/spreadsheets/d/e/" + id + "/pubhtml?widget=true&amp;headers=" + headers + "\"></iframe>";
7339        });
7340    },
7341    "fallback": function () {
7342        "use strict";
7343        var id = "gsheets";
7344        tarteaucitron.fallback(["gsheets_embed"], tarteaucitron.engage(id));
7345    }
7346};
7347
7348// Google Slides
7349tarteaucitron.services.gslides = {
7350    "key": "gslides",
7351    "type": "other",
7352    "name": "Google Slides",
7353    "needConsent": true,
7354    "cookies": ["CONSENT", "NID"],
7355    "uri": "https://policies.google.com/privacy",
7356    "js": function () {
7357        "use strict";
7358        tarteaucitron.fallback(['gslides_embed'], function (x) {
7359            var id = x.getAttribute('id'),
7360                width = x.getAttribute('width'),
7361                height = x.getAttribute('height'),
7362                autostart = x.getAttribute('autostart'),
7363                loop = x.getAttribute('loop'),
7364                delay = x.getAttribute('delay');
7365            return "<iframe width=\"" + width + "\" height=\"" + height + "\" src=\"https://docs.google.com/presentation/d/e/" + id + "/embed?start=" + autostart + "&loop=" + loop + "&delayms=" + delay + "\" frameborder=\"0\" allowfullscreen=\"true\" mozallowfullscreen=\"true\" webkitallowfullscreen=\"true\"></iframe>";
7366        });
7367    },
7368    "fallback": function () {
7369        "use strict";
7370        var id = "gslides";
7371        tarteaucitron.fallback(["gslides_embed"], tarteaucitron.engage(id));
7372    }
7373};
7374
7375// Google Forms
7376tarteaucitron.services.gforms = {
7377    "key": "gforms",
7378    "type": "other",
7379    "name": "Google Forms",
7380    "needConsent": true,
7381    "cookies": ["CONSENT", "NID"],
7382    "uri": "https://policies.google.com/privacy",
7383    "js": function () {
7384        "use strict";
7385        tarteaucitron.fallback(['gforms_embed'], function (x) {
7386            var id = x.getAttribute('id'),
7387                width = x.getAttribute('width'),
7388                height = x.getAttribute('height');
7389            return "<iframe width=\"" + width + "\" height=\"" + height + "\" src=\"https://docs.google.com/forms/d/e/" + id + "/viewform?embedded=true\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\"></iframe>";
7390        });
7391    },
7392    "fallback": function () {
7393        "use strict";
7394        var id = "gforms";
7395        tarteaucitron.fallback(['gforms_embed'], tarteaucitron.engage(id));
7396    }
7397};
7398
7399// Google Optimize
7400tarteaucitron.services.goptimize = {
7401    "key": "goptimize",
7402    "type": "other",
7403    "name": "Google Optimize",
7404    "needConsent": true,
7405    "cookies": ["CONSENT", "NID"],
7406    "uri": "https://policies.google.com/privacy",
7407    "js": function () {
7408        "use strict";
7409
7410        if (tarteaucitron.user.goptimize === undefined) {
7411            return;
7412        }
7413
7414        tarteaucitron.addScript('https://www.googleoptimize.com/optimize.js?id=' + tarteaucitron.user.goptimize);
7415    }
7416};
7417
7418// Marketo munchkin
7419tarteaucitron.services.marketomunchkin = {
7420    "key": "marketomunchkin",
7421    "type": "api",
7422    "name": "Marketo munchkin",
7423    "uri": "https://documents.marketo.com/legal/cookies",
7424    "needConsent": true,
7425    "cookies": ['OptAnon', '_mkto_trk'],
7426    "js": function () {
7427        "use strict";
7428        if (tarteaucitron.user.marketomunchkinkey === undefined) {
7429            return;
7430        }
7431        var didInit = false;
7432        function initMunchkin() {
7433            if (didInit === false) {
7434                didInit = true;
7435                Munchkin.init(tarteaucitron.user.marketomunchkinkey);
7436            }
7437        }
7438        var s = document.createElement('script');
7439        s.type = 'text/javascript';
7440        s.async = true;
7441        s.src = '//munchkin.marketo.net/munchkin.js';
7442        s.onreadystatechange = function () {
7443            if (this.readyState == 'complete' || this.readyState == 'loaded') {
7444                initMunchkin();
7445            }
7446        };
7447        s.onload = initMunchkin;
7448        document.getElementsByTagName('head')[0].appendChild(s);
7449    }
7450};
7451
7452// outbrain
7453tarteaucitron.services.outbrain = {
7454    "key": "outbrain",
7455    "type": "ads",
7456    "name": "Outbrain",
7457    "uri": "https://www.outbrain.com/fr/advertisers/guidelines/",
7458    "needConsent": true,
7459    "cookies": [],
7460    "js": function () {
7461        "use strict";
7462
7463        tarteaucitron.addScript('https://widgets.outbrain.com/outbrain.js');
7464    }
7465};
7466
7467// affilae
7468tarteaucitron.services.affilae = {
7469    "key": "affilae",
7470    "type": "ads",
7471    "name": "Affilae",
7472    "uri": "https://affilae.com/en/privacy-cookie-policy/",
7473    "needConsent": true,
7474    "cookies": [],
7475    "js": function () {
7476        "use strict";
7477
7478        if (tarteaucitron.user.affilae === undefined) {
7479           return;
7480        }
7481        
7482        window._ae = { "pid": tarteaucitron.user.affilae };
7483
7484        tarteaucitron.addScript('https://static.affilae.com/ae-v3.5.js');
7485    }
7486};
7487
7488// Canal-U.tv
7489tarteaucitron.services.canalu = {
7490    "key": "canalu",
7491    "type": "video",
7492    "name": "Canal-U.tv",
7493    "uri": "https://www.canal-u.tv/conditions-generales-utilisations",
7494    "needConsent": true,
7495    "cookies": [],
7496    "js": function () {
7497        "use strict";
7498        tarteaucitron.fallback(['canalu_player'], function (x) {
7499            var video_title = tarteaucitron.fixSelfXSS(x.getAttribute("videoTitle")),
7500                frame_url = 'https://www.canal-u.tv/embed/' + video_title;
7501
7502            return '<div style="position:relative;padding-bottom:56.25%;padding-top:10px;height:0;overflow:hidden;">' +
7503                   '<iframe src="' + frame_url + '?width=100%&amp;height=100%" ' +
7504                        'style="position:absolute;top:0;left:0;width:100%;height: 100%;" ' +
7505                        'frameborder="0" ' +
7506                        'allowfullscreen ' +
7507                        'scrolling="no">' +
7508                   '</iframe>' +
7509                   '</div>';
7510        });
7511    },
7512    "fallback": function () {
7513        "use strict";
7514        tarteaucitron.fallback(['canalu_player'], function (elem) {
7515            return tarteaucitron.engage('canalu');
7516        });
7517    }
7518};
7519
7520// WebTV Normandie Université
7521tarteaucitron.services.webtvnu = {
7522    "key": "webtvnu",
7523    "type": "video",
7524    "name": "WebTV Normandie Université",
7525    "uri": "https://docs.google.com/document/d/1tpVclj4QBoAq1meSZgYrpNECwp7dbmb_IhICY3sTl9c/edit",
7526    "needConsent": true,
7527    "cookies": [],
7528    "js": function () {
7529        "use strict";
7530        tarteaucitron.fallback(['webtvnu_player'], function (x) {
7531            var frame_url = 'https://webtv.normandie-univ.fr/permalink/' + x.getAttribute("videoID") + '/iframe/',
7532                width = x.getAttribute("width"),
7533                height = x.getAttribute("height");
7534
7535            return '<iframe width="' + width + '" height="' + height + '" src="' + frame_url + '" allowfullscreen="allowfullscreen" allow="autoplay"></iframe>';
7536        });
7537    },
7538    "fallback": function () {
7539        "use strict";
7540        tarteaucitron.fallback(['webtvnu_player'], function (elem) {
7541            return tarteaucitron.engage('webtvnu');
7542        });
7543    }
7544};
7545
7546// studizz
7547tarteaucitron.services.studizz = {
7548    "key": "studizz",
7549    "type": "other",
7550    "name": "Studizz Chatbot",
7551    "uri": "https://group.studizz.fr/",
7552    "needConsent": true,
7553    "cookies": [],
7554    "js": function () {
7555        "use strict";
7556
7557        if (tarteaucitron.user.studizzToken === undefined) {
7558            return;
7559        }
7560
7561        tarteaucitron.addScript('https://webchat.studizz.fr/webchat.js?token=' + tarteaucitron.user.studizzToken);
7562    }
7563};
7564
7565// meteofrance
7566tarteaucitron.services.meteofrance = {
7567    "key": "meteofrance",
7568    "type": "api",
7569    "name": "Météo France",
7570    "uri": "https://meteofrance.com/politique-de-confidentialite",
7571    "needConsent": true,
7572    "cookies": [],
7573    "js": function () {
7574        "use strict";
7575        tarteaucitron.fallback(['tac_meteofrance'], function (x) {
7576            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Météo France iframe'),
7577                width = x.getAttribute("width"),
7578                height = x.getAttribute("height"),
7579                insee = x.getAttribute("data-insee"),
7580                allowfullscreen = x.getAttribute("allowfullscreen");
7581
7582            return '<iframe title="' + frame_title + '" src="https://meteofrance.com/widget/prevision/' + insee + '" width="' + width + '" height="' + height + '" scrolling="auto" allowtransparency ' + (allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen') + '></iframe>';
7583        });
7584    },
7585    "fallback": function () {
7586        "use strict";
7587        var id = 'meteofrance';
7588        tarteaucitron.fallback(['tac_meteofrance'], function (elem) {
7589            elem.style.width = elem.getAttribute('width') + 'px';
7590            elem.style.height = elem.getAttribute('height') + 'px';
7591            return tarteaucitron.engage(id);
7592        });
7593    }
7594};
7595
7596// m6meteo
7597tarteaucitron.services.m6meteo = {
7598    "key": "m6meteo",
7599    "type": "api",
7600    "name": "M6 Météo",
7601    "uri": "https://gdpr.m6tech.net/charte-confidentialite-m6-web-meteocity.pdf",
7602    "needConsent": true,
7603    "cookies": [],
7604    "js": function () {
7605        "use strict";
7606        tarteaucitron.fallback(['tac_m6meteo'], function (x) {
7607            var id = x.getAttribute("data-id");
7608
7609            tarteaucitron.addScript('https://www.meteocity.com/widget/js/'+id);
7610
7611            return '<div id="cont_'+id+'"><div id="spa_'+id+'"><a id="a_'+id+'" href="#"></a> ©<a target="_top" href="https://www.meteocity.com">M6météo</a></div></div>';
7612        });
7613    },
7614    "fallback": function () {
7615        "use strict";
7616        var id = 'm6meteo';
7617        tarteaucitron.fallback(['tac_m6meteo'], function (elem) {
7618
7619            return tarteaucitron.engage(id);
7620        });
7621    }
7622};
7623
7624// mtcaptcha
7625tarteaucitron.services.mtcaptcha = {
7626    "key": "mtcaptcha",
7627    "type": "api",
7628    "name": "MTcaptcha",
7629    "uri": "https://www.mtcaptcha.com",
7630    "readmoreLink": "https://www.mtcaptcha.com/faq-cookie-declaration",
7631    "needConsent": true,
7632    "cookies": ['mtv1Pulse','mtv1ConfSum','mtv1Pong'],
7633
7634    "js": function () {
7635
7636        window.mtcaptchaConfig = {
7637            "sitekey": tarteaucitron.user.mtcaptchaSitekey
7638        };
7639
7640        tarteaucitron.addScript('https://service.mtcaptcha.com/mtcv1/client/mtcaptcha.min.js');
7641        tarteaucitron.addScript('https://service2.mtcaptcha.com/mtcv1/client/mtcaptcha2.min.js');
7642    }
7643};
7644
7645// Internet Archive / https://archive.org
7646tarteaucitron.services.archive = {
7647    "key": "archive",
7648    "type": "video",
7649    "name": "Internet Archive",
7650    "uri": "https://archive.org/about/terms.php",
7651    "needConsent": true,
7652    "cookies": ['abtest-identifier','donation-identifier'],
7653    "js": function () {
7654        "use strict";
7655        tarteaucitron.fallback(['archive_player'], function (x) {
7656            var video_id = tarteaucitron.getElemAttr(x, "data-videoID"),
7657                video_width = tarteaucitron.getElemAttr(x, "data-width"),
7658                frame_width = 'width=',
7659                video_height = tarteaucitron.getElemAttr(x, "data-height"),
7660                frame_height = 'height=',
7661                video_frame;
7662
7663            if (video_id === undefined) {
7664                return "";
7665            }
7666            if (video_width !== undefined) {
7667                frame_width += '"' + video_width + '" ';
7668            } else {
7669                frame_width += '"" ';
7670            }
7671            if (video_height !== undefined) {
7672                frame_height += '"' + video_height + '" ';
7673            } else {
7674                frame_height += '"" ';
7675            }
7676            video_frame = '<iframe src="https://archive.org/embed/' + video_id + '" ' + frame_width + frame_height + ' frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe>';
7677            return video_frame;
7678        });
7679    },
7680    "fallback": function () {
7681        "use strict";
7682        var id = 'archive';
7683        tarteaucitron.fallback(['archive_player'], function (elem) {
7684            elem.style.width = elem.getAttribute('data-width') + 'px';
7685            elem.style.height = elem.getAttribute('data-height') + 'px';
7686            return tarteaucitron.engage(id);
7687        });
7688    }
7689};
7690
7691// Gallica
7692tarteaucitron.services.gallica = {
vendor: 4,160 bytes, lines 7693-7827
7693    "key": "gallica",
7694    "type": "other",
7695    "name": "Gallica",
7696    "uri": "https://gallica.bnf.fr/edit/und/conditions-dutilisation-des-contenus-de-gallica",
7697    "needConsent": true,
7698    "cookies": ['dtCookie', 'dtLatC', 'dtPC', 'dtSa', 'rxVisitor', 'rxvt', 'xtvrn'],
7699    "js": function () {
7700        "use strict";
7701        tarteaucitron.fallback(['gallica_player'], function (x) {
7702            var src = tarteaucitron.getElemAttr(x, "data-src"),
7703                style = tarteaucitron.getElemAttr(x, "data-style"),
7704                frame;
7705            if (src === undefined) {
7706                return "";
7707            }
7708            frame = '<iframe style="'+ style + '" src="' + src + '"></iframe>';
7709            return frame;
7710        });
7711    },
7712    "fallback": function () {
7713        "use strict";
7714        var id = 'gallica';
7715        tarteaucitron.fallback(['gallica_player'], function (elem) {
7716            elem.style = elem.getAttribute('data-style');
7717            return tarteaucitron.engage(id);
7718        });
7719    }
7720};
7721
7722// crisp
7723tarteaucitron.services.crisp = {
7724    "key": "crisp",
7725    "type": "other",
7726    "name": "Crisp Chat",
7727    "uri": "https://help.crisp.chat/en/article/crisp-chatbox-cookie-ip-policy-1147xor/",
7728    "needConsent": false,
7729    "cookies": ['crisp-client', '__cfduid'],
7730    "js": function () {
7731        "use strict";
7732
7733        if (tarteaucitron.user.crispID === undefined) {
7734            return;
7735        }
7736
7737        window.$crisp = [];
7738        window.CRISP_WEBSITE_ID = tarteaucitron.user.crispID;
7739
7740        tarteaucitron.addScript('https://client.crisp.chat/l.js');
7741    }
7742};
7743
7744// microanalytics
7745tarteaucitron.services.microanalytics = {
7746    "key": "microanalytics",
7747    "type": "analytic",
7748    "name": "MicroAnalytic",
7749    "uri": "https://microanalytics.io/page/privacy",
7750    "needConsent": false,
7751    "cookies": [],
7752    "js": function () {
7753        "use strict";
7754
7755        if (tarteaucitron.user.microanalyticsID === undefined) {
7756            return;
7757        }
7758
7759        tarteaucitron.addScript('https://microanalytics.io/js/script.js', tarteaucitron.user.microanalyticsID, undefined, true, "data-host", "https://microanalytics.io");
7760    }
7761};
7762
7763// facebookcustomerchat
7764tarteaucitron.services.facebookcustomerchat = {
7765    "key": "facebookcustomerchat",
7766    "type": "social",
7767    "name": "Facebook (Customer Chat)",
7768    "uri": "https://www.facebook.com/policies/cookies/",
7769    "needConsent": true,
7770    "cookies": ['act','c_user','datr','dpr','presence','sb','wd','xs','/tr'],
7771    "js": function () {
7772        "use strict";
7773
7774        if (tarteaucitron.user.facebookChatID === undefined) {
7775            return;
7776        }
7777
7778        tarteaucitron.fallback(['fb-customerchat'], '');
7779	window.fbAsyncInit=function(){FB.init({appId:tarteaucitron.user.facebookChatID,autoLogAppEvents:!0,xfbml:!0,version:"v3.0"})};
7780	tarteaucitron.addScript('https://connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk/xfbml.customerchat.js', 'facebook-jssdk');
7781    },
7782    "fallback": function () {
7783        "use strict";
7784        var id = 'facebookcustomerchat';
7785        tarteaucitron.fallback(['fb-customerchat'], tarteaucitron.engage(id));
7786    }
7787};
7788
7789// weborama
7790tarteaucitron.services.weborama = {
7791    "key": "weborama",
7792    "type": "analytic",
7793    "name": "Weborama",
7794    "uri": "https://weborama.com/faq-cnil-avril-2021/",
7795    "needConsent": true,
7796    "cookies": [],
7797    "js": function () {
7798        "use strict";
7799        tarteaucitron.addScript('https://cstatic.weborama.fr/js/advertiserv2/adperf_conversion.js');
7800    }
7801};
7802
7803// tiktok
7804tarteaucitron.services.tiktok = {
7805    "key": "tiktok",
7806    "type": "analytic",
7807    "name": "Tiktok",
7808    "uri": "https://www.tiktok.com/legal/tiktok-website-cookies-policy",
7809    "needConsent": true,
7810    "cookies": [],
7811    "js": function () {
7812        "use strict";
7813
7814        if (tarteaucitron.user.tiktokId === undefined) {
7815            return;
7816        }
7817
7818        tarteaucitron.addScript('https://analytics.tiktok.com/i18n/pixel/sdk.js?sdkid=' + tarteaucitron.user.tiktokId);
7819
7820	if (typeof tarteaucitron.user.tiktokMore === 'function') {
7821            tarteaucitron.user.tiktokMore();
7822        }
7823    }
7824};
7825
7826// Klaviyo
7827tarteaucitron.services.klaviyo = {
7828    "key": "klaviyo",
7829    "type": "ads",
7830    "name": "Klaviyo",
7831    "uri": "https://help.klaviyo.com/hc/en-us/articles/360034666712-About-Cookies-in-Klaviyo",
7832    "needConsent": true,
7833    "cookies": ['__kla_id'],
7834    "js": function () {
7835        "use strict";
7836        if (tarteaucitron.user.klaviyoCompanyId === undefined) {
7837            return;
7838        }
7839        tarteaucitron.addScript('//static.klaviyo.com/onsite/js/klaviyo.js?company_id=' + tarteaucitron.user.klaviyoCompanyId);
7840    }
7841};
7842;
7843tarteaucitronNoAdBlocker = true;;
7844"use strict";
7845
7846(function($, Drupal) {
7847
7848  Drupal.behaviors.tandem_gdpr = {
7849    attach: function attach(context, settings) {
7850
7851      let atInternetPromise = {};
7852
7853      /**
7854       * Trim text.
7855       */
7856      function slugify(string) {
7857        "use strict";
7858
7859        return string
7860          .toString()
7861          .trim()
7862          .toLowerCase()
7863          .normalize("NFD")
7864          .replace(/[\u0300-\u036f]/g, "")
7865          .replace(/[-]/g,'_')
7866          .replace(/\s+/g, '_')
7867          .replace(/[^\w\-]+/g, "_")
7868          .replace(/^-+/, "")
7869          .replace(/-+$/, "");
7870      }
7871
7872      /**
7873       * Override addService method to have possibility enable service by default.
7874       * Add allowedByDefault property.
7875       */
7876      tarteaucitron.addService = function (serviceId) {
7877        "use strict";
7878        var html = '',
7879            s = tarteaucitron.services,
7880            service = s[serviceId],
7881            cookie = tarteaucitron.cookie.read(),
7882            hostname = document.location.hostname,
7883            hostRef = document.referrer.split('/')[2],
7884            isNavigating = (hostRef === hostname && window.location.href !== tarteaucitron.parameters.privacyUrl),
7885            isAutostart = (!service.needConsent),
7886            isWaiting = (cookie.indexOf(service.key + '=wait') >= 0),
7887            isDenied = (cookie.indexOf(service.key + '=false') >= 0),
7888            isAllowed = ((cookie.indexOf(service.key + '=true') >= 0) || (!service.needConsent && cookie.indexOf(service.key + '=false') < 0)),
7889            isResponded = (cookie.indexOf(service.key + '=false') >= 0 || cookie.indexOf(service.key + '=true') >= 0),
7890            isDNTRequested = (navigator.doNotTrack === "1" || navigator.doNotTrack === "yes" || navigator.msDoNotTrack === "1" || window.doNotTrack === "1"),
7891            currentStatus = (isAllowed) ? tarteaucitron.lang.allowed : tarteaucitron.lang.disallowed,
7892            state = (undefined !== service.defaultState) ? service.defaultState :
7893                (undefined !== tarteaucitron.parameters.serviceDefaultState ? tarteaucitron.parameters.serviceDefaultState : 'wait');
7894
7895
7896        if (tarteaucitron.added[service.key] !== true) {
7897          tarteaucitron.added[service.key] = true;
7898
7899          html += '<li id="' + service.key + 'Line" class="tarteaucitronLine">';
7900          html += '   <div class="tarteaucitronName">';
7901          html += '       <span class="tarteaucitronH3" role="heading" aria-level="3">' + service.name + '</span>';
7902          html += '       <span class="tacCurrentStatus" id="tacCurrentStatus' + service.key + '">'+currentStatus+'</span>';
7903          html += '       <span class="tarteaucitronReadmoreSeparator"> - </span>';
7904          html += '       <span id="tacCL' + service.key + '" class="tarteaucitronListCookies"></span><br/>';
7905          if (tarteaucitron.parameters.moreInfoLink == true) {
7906
7907            var link = 'https://tarteaucitron.io/service/' + service.key + '/';
7908            if (service.readmoreLink !== undefined && service.readmoreLink !== '') {
7909              link = service.readmoreLink;
7910            }
7911            if (tarteaucitron.parameters.readmoreLink !== undefined && tarteaucitron.parameters.readmoreLink !== '') {
7912              link = tarteaucitron.parameters.readmoreLink;
7913            }
7914            html += '       <a href="' + link + '" target="_blank" rel="noreferrer noopener nofollow" title="' + tarteaucitron.lang.more + ' : ' + tarteaucitron.lang.cookieDetail + ' ' + service.name + ' ' + tarteaucitron.lang.ourSite + ' ' + tarteaucitron.lang.newWindow +'" class="tarteaucitronReadmoreInfo">';
7915            html += '           ' + tarteaucitron.lang.more;
7916            html += '       </a>';
7917            html += '       <span class="tarteaucitronReadmoreSeparator"> - </span>';
7918            html += '       <a href="' + service.uri + '" target="_blank" rel="noreferrer noopener" title="' + tarteaucitron.lang.source + ' ' + service.name + ' ' + tarteaucitron.lang.newWindow + '" class="tarteaucitronReadmoreOfficial">';
7919            html += '           ' + tarteaucitron.lang.source;
7920            html += '       </a>';
7921          }
7922
7923          if (service.required) {
7924            html += '   </div>';
7925            html += '   <div class="tarteaucitronAsk" style="display: none">';
7926            html += '       <button type="button" aria-label="' + tarteaucitron.lang.allow + ' ' + service.name + '" id="' + service.key + 'Allowed" class="tarteaucitronAllow">';
7927            html += '           <span class="tarteaucitronCheck" aria-hidden="true"></span> ' + tarteaucitron.lang.allow;
7928            html += '       </button> ';
7929            html += '       <button type="button" aria-label="' + tarteaucitron.lang.deny + ' ' + service.name + '" id="' + service.key + 'Denied" class="tarteaucitronDeny">';
7930            html += '           <span class="tarteaucitronCross" aria-hidden="true"></span> ' + tarteaucitron.lang.deny;
7931            html += '       </button>';
7932            html += '   </div>';
7933            html += '   <div class="tarteaucitronAsk">';
7934            html += '       <span aria-hidden="true">Activé</span> ';
7935            html += '   </div>';
7936            html += '</li>';
7937            tarteaucitron.cookie.create(service.key, true);
7938          }
7939          else {
7940            html += '   </div>';
7941            html += '   <div class="tarteaucitronAsk">';
7942            html += '       <button type="button" aria-label="' + tarteaucitron.lang.allow + ' ' + service.name + '" id="' + service.key + 'Allowed" class="tarteaucitronAllow">';
7943            html += '           <span class="tarteaucitronCheck" aria-hidden="true"></span> ' + tarteaucitron.lang.allow;
7944            html += '       </button> ';
7945            html += '       <button type="button" aria-label="' + tarteaucitron.lang.deny + ' ' + service.name + '" id="' + service.key + 'Denied" class="tarteaucitronDeny">';
7946            html += '           <span class="tarteaucitronCross" aria-hidden="true"></span> ' + tarteaucitron.lang.deny;
7947            html += '       </button>';
7948            html += '   </div>';
7949            html += '</li>';
7950          }
7951
7952          tarteaucitron.userInterface.css('tarteaucitronServicesTitle_' + service.type, 'display', 'block');
7953
7954          if (document.getElementById('tarteaucitronServices_' + service.type) !== null) {
7955            document.getElementById('tarteaucitronServices_' + service.type).innerHTML += html;
7956          }
7957
7958          tarteaucitron.userInterface.css('tarteaucitronNoServicesTitle', 'display', 'none');
7959
7960          tarteaucitron.userInterface.order(service.type);
7961
7962          tarteaucitron.addClickEventToId(service.key + 'Allowed', function () {
7963            tarteaucitron.userInterface.respond(this, true);
7964          });
7965
7966          tarteaucitron.addClickEventToId(service.key + 'Denied', function () {
7967            tarteaucitron.userInterface.respond(this, false);
7968          });
7969        }
7970
7971        tarteaucitron.pro('!' + service.key + '=' + isAllowed);
7972
7973        // allow by default for non EU
7974        if (isResponded === false && tarteaucitron.user.bypass === true) {
7975          isAllowed = true;
7976          tarteaucitron.cookie.create(service.key, true);
7977        }
7978
7979        if ((!isResponded && (isAutostart || (isNavigating && isWaiting)) && !tarteaucitron.highPrivacy) || isAllowed) {
7980          if (!isAllowed || (!service.needConsent && cookie.indexOf(service.key + '=false') < 0)) {
7981            tarteaucitron.cookie.create(service.key, true);
7982          }
7983          if (tarteaucitron.launch[service.key] !== true) {
7984            tarteaucitron.launch[service.key] = true;
7985            if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + service.key + "_") < 0) { service.js(); }
7986            tarteaucitron.sendEvent(service.key + '_loaded');
7987          }
7988          tarteaucitron.state[service.key] = true;
7989          tarteaucitron.userInterface.color(service.key, true);
7990        } else if (isDenied) {
7991          if (typeof service.fallback === 'function') {
7992            if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + service.key + "_") < 0) { service.fallback(); }
7993          }
7994          tarteaucitron.state[service.key] = false;
7995          tarteaucitron.userInterface.color(service.key, false);
7996        } else if (!isResponded && isDNTRequested && tarteaucitron.handleBrowserDNTRequest) {
7997          tarteaucitron.cookie.create(service.key, 'false');
7998          if (typeof service.fallback === 'function') {
7999            if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + service.key + "_") < 0) { service.fallback(); }
8000          }
8001          tarteaucitron.state[service.key] = false;
8002          tarteaucitron.userInterface.color(service.key, false);
8003        } else if (!isResponded) {
8004          tarteaucitron.cookie.create(service.key, state);
8005          if (typeof tarteaucitronMagic === 'undefined' || tarteaucitronMagic.indexOf("_" + service.key + "_") < 0) {
8006            if(true === state && typeof service.js === 'function') {
8007              service.js();
8008            } else if (typeof service.fallback === 'function') {
8009              service.fallback();
8010            }
8011          }
8012
8013          tarteaucitron.userInterface.color(service.key, state);
8014
8015          if( 'wait' === state ) {
8016            tarteaucitron.userInterface.openAlert();
8017          }
8018        }
8019
8020        tarteaucitron.cookie.checkCount(service.key);
8021        tarteaucitron.sendEvent(service.key + '_added')
8022      }
8023
8024      // Dailymotion (Custom).
8025      tarteaucitron.services.dailymotion_custom = {
8026        "key": "dailymotion_custom",
8027        "type": "video",
8028        "name": "Dailymotion",
8029        "uri": "https://www.dailymotion.com/legal/privacy",
8030        "needConsent": true,
8031        "cookies": ['ts', 'dmvk', 'hist', 'v1st', 's_vi'],
8032        "js": function () {
8033          let html;
8034          let fake_video_tag = $('.tandem-media-wrapper--dailymotion .video-source');
8035          if (fake_video_tag.length > 0) {
8036            tarteaucitron.fallback(['tandem-media-wrapper--dailymotion'], function (elem) {
8037              $(elem).removeAttr('style');
8038
8039              let video_source = $(elem).find('.video-source');
8040              let src = video_source.attr('data-video-source');
8041              let media_title = video_source.attr('data-media-title');
8042              let media_id = video_source.attr('data-media-id');
8043
8044              html = '<video width="640" height="360" controls="" preload="none" ';
8045              html += 'style="max-width: 100%; width: 100%; height: 100%;" ';
8046              html += 'class="dailymotion_player_custom tandem-mediaelement tandem-mediaelement--dailymotion" ';
8047              html += 'data-original-type="dailymotion">';
8048              html += '<source src="' + src + '" type="video/dailymotion" data-media-title="' + media_title + '" data-media-id="' + media_id + '">';
8049              html += '</video>';
8050
8051              return html;
8052            });
8053          }
8054
8055          // Attach video player.
8056          attachMediaPlayerWaitAtInternet($('.dailymotion_player_custom'));
8057        },
8058        "fallback": function () {
8059          var id = 'dailymotion_custom';
8060          tarteaucitron.fallback(['tandem-media-wrapper--dailymotion'], function (elem) {
8061            let video_elem = $(elem).find('video');
8062            let video_source = $(elem).find('source');
8063            let src = video_source.attr('src');
8064            let media_title = video_source.attr('data-media-title');
8065            let media_id = video_source.attr('data-media-id');
8066            let aditional_div = '<div class="video-source" data-video-source ="' + src + '" data-media-title="' + media_title + '" data-media-id="' + media_id + '"></div>';
8067
8068            // Set element width and height.
8069            $(elem).height(video_elem.height());
8070
8071            return aditional_div + tarteaucitron.engage(id);
8072          });
8073        }
8074      };
8075
8076      // Vimeo (Custom).
8077      tarteaucitron.services.vimeo_custom = {
8078        "key": "vimeo_custom",
8079        "type": "video",
8080        "name": "Vimeo",
8081        "uri": "https://vimeo.com/privacy",
8082        "needConsent": true,
8083        "cookies": ['__utmt_player', '__utma', '__utmb', '__utmc', '__utmv', 'vuid', '__utmz', 'player'],
8084        "js": function () {
8085          let html;
8086          let fake_video_tag = $('.tandem-media-wrapper--vimeo .video-source');
8087          if (fake_video_tag.length > 0) {
8088            tarteaucitron.fallback(['tandem-media-wrapper--vimeo'], function (elem) {
8089              $(elem).removeAttr('style');
8090
8091              let video_source = $(elem).find('.video-source');
8092              let src = video_source.attr('data-video-source');
8093              let media_title = video_source.attr('data-media-title');
8094              let media_id = video_source.attr('data-media-id');
8095
8096              html = '<video width="640" height="360" controls="" preload="none" ';
8097              html += 'style="max-width: 100%; width: 100%; height: 100%;" ';
8098              html += 'class="vimeo_player_custom tandem-mediaelement tandem-mediaelement--vimeo" ';
8099              html += 'data-original-type="vimeo">';
8100              html += '<source src="' + src + '" type="video/vimeo" data-media-title="' + media_title + '" data-media-id="' + media_id + '">';
8101              html += '</video>';
8102
8103              return html;
8104            });
8105          }
8106
8107          let $vimeo_player_custom = $('.vimeo_player_custom');
8108          attachMediaPlayerWaitAtInternet($vimeo_player_custom);
8109        },
8110        "fallback": function () {
8111          var id = 'vimeo_custom';
8112          tarteaucitron.fallback(['tandem-media-wrapper--vimeo'], function (elem) {
8113            let video_elem = $(elem).find('video');
8114            let video_source = $(elem).find('source');
8115            let src = video_source.attr('src');
8116            let media_title = video_source.attr('data-media-title');
8117            let media_id = video_source.attr('data-media-id');
8118            let aditional_div = '<div class="video-source" data-video-source ="' + src + '" data-media-title="' + media_title + '" data-media-id="' + media_id + '"></div>';
8119
8120            // Set element width and height.
8121            $(elem).height(video_elem.height());
8122
8123            return aditional_div + tarteaucitron.engage(id);
8124          });
8125        }
8126      };
8127
8128      // Youtube (Custom).
8129      tarteaucitron.services.youtube_custom = {
8130        "key": "youtube_custom",
8131        "type": "video",
8132        "name": "YouTube",
8133        "uri": "https://policies.google.com/privacy",
8134        "needConsent": true,
8135        "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP', 'GPS'],
8136        "js": function () {
8137          let html;
8138          let fake_video_tag = $('.tandem-media-wrapper--youtube .video-source');
8139          if (fake_video_tag.length > 0) {
8140            tarteaucitron.fallback(['tandem-media-wrapper--youtube'], function (elem) {
8141              $(elem).removeAttr('style');
8142
8143              let video_source = $(elem).find('.video-source');
8144              let src = video_source.attr('data-video-source');
8145              let media_title = video_source.attr('data-media-title');
8146              let media_id = video_source.attr('data-media-id');
8147
8148              html = '<video width="640" height="360" controls="" preload="none" ';
8149              html += 'style="max-width: 100%; width: 100%; height: 100%;" ';
8150              html += 'class="youtube_player_custom tandem-mediaelement tandem-mediaelement--youtube" ';
8151              html += 'data-original-type="youtube">';
8152              html += '<source src="' + src + '" type="video/youtube" data-media-title="' + media_title + '" data-media-id="' + media_id + '">';
8153              html += '</video>';
8154
8155              return html;
8156            });
8157          }
8158
8159          attachMediaPlayerWaitAtInternet($('.youtube_player_custom'));
8160        },
8161        "fallback": function () {
8162          var id = 'youtube_custom';
8163
8164          tarteaucitron.fallback(['tandem-media-wrapper--youtube'], function (elem) {
8165            let video_elem = $(elem).find('video');
8166            let video_source = $(elem).find('source');
8167            let src = video_source.attr('src');
8168            let media_title = video_source.attr('data-media-title');
8169            let media_id = video_source.attr('data-media-id');
8170            let aditional_div = '<div class="video-source" data-video-source ="' + src + '" data-media-title="' + media_title + '" data-media-id="' + media_id + '"></div>';
8171
8172            // Set element width and height.
8173            $(elem).height(video_elem.height());
8174
8175            return aditional_div + tarteaucitron.engage(id);
8176          });
8177        }
8178      };
8179
8180      // Youtube Shorts (Custom).
8181      tarteaucitron.services.youtube_shorts_custom = {
8182        "key": "youtube_shorts_custom",
8183        "type": "video",
8184        "name": "YouTube Shorts",
8185        "uri": "https://policies.google.com/privacy",
8186        "needConsent": true,
8187        "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP', 'GPS'],
8188        "js": function () {
8189          let html;
8190          let fake_video_tag = $('.tandem-media-wrapper--youtube-shorts .video-source');
8191          if (fake_video_tag.length > 0) {
8192            tarteaucitron.fallback(['tandem-media-wrapper--youtube-shorts'], function (elem) {
8193              $(elem).removeAttr('style');
8194
8195              let video_source = $(elem).find('.video-source');
8196              let src = video_source.attr('data-video-source');
8197              let media_title = video_source.attr('data-media-title');
8198              let media_id = video_source.attr('data-media-id');
8199
8200              // Shorts format → vertical
8201              html = '<video controls preload="auto" ';
8202              html += 'style="width:389px; aspect-ratio:9/16; object-fit:contain;" ';
8203              html += 'class="youtube_shorts_custom tandem-mediaelement tandem-mediaelement--youtube-shorts" ';
8204              html += 'data-original-type="youtube_shorts">';
8205              html += '<source src="' + src + '" type="video/youtube" data-media-title="' + media_title + '" data-media-id="' + media_id + '">';
8206              html += '</video>';
8207
8208              return html;
8209            });
8210          }
8211
8212          attachMediaPlayerWaitAtInternet($('.youtube_shorts_custom'));
8213        },
8214        "fallback": function () {
8215          var id = 'youtube_shorts_custom';
8216          tarteaucitron.fallback(['tandem-media-wrapper--youtube-shorts'], function (elem) {
8217            let video_elem = $(elem).find('video');
8218            let video_source = $(elem).find('source');
8219            let src = video_source.attr('src');
8220            let media_title = video_source.attr('data-media-title');
8221            let media_id = video_source.attr('data-media-id');
8222            let aditional_div = '<div class="video-source" data-video-source ="' + src + '" data-media-title="' + media_title + '" data-media-id="' + media_id + '"></div>';
8223
8224            // keep same height as video
8225            $(elem).height(video_elem.height());
8226
8227            return aditional_div + tarteaucitron.engage(id);
8228          });
8229        }
8230      };
8231
8232
8233      // Youtube playlist (Custom).
8234      tarteaucitron.services.youtube_playlist_custom = {
8235        "key": "youtube_playlist_custom",
8236        "type": "video",
8237        "name": "YouTube playlist",
8238        "uri": "https://policies.google.com/privacy",
8239        "needConsent": true,
8240        "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP', 'GPS'],
8241        "js": function () {
8242          let html;
8243          tarteaucitron.fallback(['youtube_playlist_custom_wrapper'], function (elem) {
8244            $(elem).removeAttr('style');
8245            let src = elem.getAttribute("src");
8246            html = '<iframe class="youtube_playlist_custom" width="854px" height="480px" ';
8247            html += 'frameborder="0" allowfullscreen="allowfullscreen" src="' + src + '&enablejsapi=1' + '"> ';
8248            html += '</iframe>';
8249
8250            return html;
8251          });
8252        },
8253        "fallback": function () {
8254          var id = 'youtube_playlist_custom';
8255
8256          tarteaucitron.fallback(['youtube_playlist_custom_wrapper'], function (elem) {
8257            // Set element height.
8258            $(elem).height(elem.getAttribute("height"));
8259            return tarteaucitron.engage(id);
8260          });
8261        }
8262      };
8263
8264      // AddThis (Custom).
8265      tarteaucitron.services.addthis_custom = {
8266        "key": "addthis_custom",
8267        "type": "social",
8268        "name": "AddThis",
8269        "uri": "https://www.addthis.com/privacy/privacy-policy#publisher-visitors",
8270        "needConsent": true,
8271        "cookies": ['__atuvc', '__atuvs'],
8272        "js": function () {
8273          var $disallow = $('.addthis-box .tac_activate');
8274          if ($disallow.length > 0) {
8275            $('.addthis-box').once().each(function () {
8276              $disallow.remove();
8277              var mode = $('html').hasClass('no-touchevents') ? 'desktop' : 'mobile';
8278              var data = settings.tandem_addthis.services;
8279              if (data === null || mode === null) {
8280                return;
8281              }
8282              var services = data[mode];
8283              for (var service in services) {
8284                $(this).append('<a class="addthis_button_' + service + '" href=""></a>');
8285              }
8286            });
8287          }
8288          tarteaucitron.addScript('//s7.addthis.com/js/300/addthis_widget.js');
8289        },
8290        "fallback": function () {
8291          "use strict";
8292          var id = 'addthis_custom';
8293          tarteaucitron.fallback(['addthis-box'], tarteaucitron.engage(id));
8294        }
8295      };
8296
8297      // Twitter timeline (custom).
8298      tarteaucitron.services.twittertimeline_custom = {
8299        "key": "twittertimeline_custom",
8300        "type": "social",
8301        "name": "Twitter (timelines)",
8302        "uri": "https://support.twitter.com/articles/20170514",
8303        "needConsent": true,
8304        "cookies": ['ga', '_gat', '_gid', '_sl'],
8305        "js": function () {
8306          "use strict";
8307          tarteaucitron.fallback(['twitter-additional'], '');
8308          tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs');
8309
8310          let $twitter_iframe = $('.twitter-timeline');
8311          $twitter_iframe.once().each(function () {
8312            $(this).before('<div class="twitter-additional"></div>');
8313          });
8314          $twitter_iframe.css('display', 'block');
8315        },
8316        "fallback": function () {
8317          "use strict";
8318
8319          let id = 'twittertimeline_custom';
8320          let $twitter_iframe = $('.twitter-timeline, .twitter-tweet');
8321          $twitter_iframe.once().each(function () {
8322            $(this).before('<div class="twitter-additional"></div>');
8323          });
8324
8325          tarteaucitron.fallback(['twitter-additional'], function (elem) {
8326            $twitter_iframe.css('display', 'none');
8327            return tarteaucitron.engage(id);
8328          });
8329        },
8330      };
8331
8332      // Instagram (custom).
8333      tarteaucitron.services.instagram_custom = {
8334        "key": "instagram_custom",
8335        "type": "social",
8336        "name": "Instagram",
8337        "uri": "https://help.instagram.com/155833707900388",
8338        "needConsent": true,
8339        "cookies": ['csrftoken', 'datr', 'ig_cb', 'mid', 'rur', 'urlgen'],
8340        "js": function () {
8341          "use strict";
8342          tarteaucitron.fallback(['instagram-additional'], '');
8343          let $instagram_iframe = $('.instagram-media');
8344          $instagram_iframe.once().each(function () {
8345            $(this).before('<div class="instagram-additional"></div>');
8346          });
8347          $instagram_iframe.css('display', 'block');
8348
8349          tarteaucitron.addScript('//www.instagram.com/embed.js', 'instagram-wjs');
8350        },
8351        "fallback": function () {
8352          "use strict";
8353
8354          let id = 'instagram_custom';
8355          let $instagram_iframe = $('.instagram-media');
8356          $instagram_iframe.once().each(function () {
8357            $(this).before('<div class="instagram-additional"></div>');
8358          });
8359
8360          tarteaucitron.fallback(['instagram-additional'], function (elem) {
8361            $instagram_iframe.css('display', 'none');
8362            return tarteaucitron.engage(id);
8363          });
8364        },
8365      };
8366
8367      // AT Internet.
8368      tarteaucitron.services.atinternet_custom = {
8369        "key": "atinternet_custom",
8370        "type": "analytic",
8371        "name": "AT Internet",
8372        "uri": "http://www.atinternet.com/politique-du-respect-de-la-vie-privee/",
8373        "needConsent": false,
8374        "allowedByDefault" : true,
8375        "alternativeText" : typeof settings.tandem_gdpr.user.atDescription === 'object' ? settings.tandem_gdpr.user.atDescript
8375ion.value : '',
8376        "cookies": ['atidvisitor', 'atreman', 'atredir', 'atsession', 'atuserid'],
8377        "js": function () {
8378          "use strict";
8379
8380          atInternetPromise = new Promise((resolve, reject) => {
8381            tarteaucitron.addScript(tarteaucitron.user.atJsLibUrl, 'smarttag', function () {
8382              var smarttag_conf = window.smarttag_config || {};
8383              var tag = window.tag = window.tag || new ATInternet.Tracker.Tag(smarttag_conf);
8384              $(document).trigger('atinternetGdprAllow');
8385
8386              resolve("ok");
8387            });
8388          });
8389        },
8390        "fallback": function () {
8391          atInternetPromise = new Promise((resolve, reject) => {
8392            resolve("ok");
8393          });
8394        }
8395      };
8396
8397      // Flickr (custom).
8398      tarteaucitron.services.flickr_custom = {
8399        "key": "flickr_custom",
8400        "type": "social",
8401        "name": "Flickr",
8402        "uri": "https://www.flickr.com/help/cookies",
8403        "needConsent": true,
8404        "cookies": [],
8405        "js": function () {
8406          "use strict";
8407          tarteaucitron.fallback(['flickr-additional'], '');
8408          let $flickr_iframe = $('a[data-flickr-embed=true]');
8409
8410          $flickr_iframe.each(function () {
8411            $(this).before('<div class="flickr-additional"></div>');
8412            $(this).css('display', 'block');
8413            let src = $(this).attr('replace-href');
8414            if (src) {
8415              $(this).attr('href', src);
8416            }
8417          });
8418        },
8419        "fallback": function (elem) {
8420          "use strict";
8421
8422          let id = 'flickr_custom';
8423          let $flickr_iframe = $('a[data-flickr-embed=true]');
8424          $flickr_iframe.each(function () {
8425            $(this).before('<div class="flickr-additional"></div>');
8426            $(this).css('display', 'none');
8427            let src = $(this).attr('href');
8428            $(this).attr('href', '');
8429            $(this).attr('replace-href', src);
8430          });
8431
8432          tarteaucitron.fallback(['flickr-additional'], function () {
8433            return tarteaucitron.engage(id);
8434          });
8435        },
8436      };
8437
8438      // Soundcloud (custom).
8439      tarteaucitron.services.soundcloud_custom = {
8440        "key": "soundcloud_custom",
8441        "type": "social",
8442        "name": "Soundcloud",
8443        "uri": "https://soundcloud.com/pages/cookies",
8444        "needConsent": true,
8445        "cookies": [],
8446        "js": function () {
8447          "use strict";
8448          let html;
8449
8450          tarteaucitron.fallback(['media-soundcloud-content'], function (x) {
8451            html = '<iframe class="media-soundcloud-content" ';
8452            html += 'src="' + x.getAttribute('data-audio-source') + '" ';
8453            html += 'width="' + x.getAttribute('data-audio-width') + '" ';
8454            html += 'height="' + x.getAttribute('data-audio-height') + '" ';
8455            html += 'scrolling="no" ';
8456            html += 'frameborder="no"';
8457            html += '></iframe>';
8458            return html;
8459          });
8460
8461        },
8462        "fallback": function () {
8463          "use strict";
8464
8465          let id = 'soundcloud_custom';
8466          tarteaucitron.fallback(['media-soundcloud-content'], function (elem) {
8467            return tarteaucitron.engage(id);
8468          });
8469        },
8470      };
8471
8472      // Eulerian CNIL exemption
8473      tarteaucitron.services.euleriancnilexemption = {
8474        "key": "euleriancnilexemption",
8475        "type": "analytic",
8476        "name": "Eulerian (exemption CNIL)",
8477        "uri": "https://www.eulerian.com/rgpd",
8478        "needConsent": false,
8479        "allowedByDefault" : true,
8480        "required": true,
8481        "safeanalytic": true,
8482        "cookies": [],
8483        "js": function () {
8484          "use strict";
8485
8486          if (tarteaucitron.user.eulerianHost === undefined) {
8487            return;
8488          }
8489
8490          (function(e,a){var i=e.length,y=5381,k='script',s=window,v=document,o=v.createElement(k);for(;i;){i-=1;y=(y*33)^e.charCodeAt(i)}y='_EA_'+(y>>>=0);(function(e,a,s,y){s[a]=s[a]||function(){(s[y]=s[y]||[]).push(arguments);s[y].eah=e;};}(e,a,s,y));i=new Date/1E7|0;o.ea=y;y=i%26;o.async=1;o.src='//'+e+'/'+String.fromCharCode(97+y,122-y,65+y)+(i%1E3)+'.js?2';s=v.getElementsByTagName(k)[0];s.parentNode.insertBefore(o,s);})
8491          (tarteaucitron.user.eulerianHost,'EA_push');
8492          EA_push();
8493        }
8494      };
8495
8496      // Eulerian Analytics Consent
8497      tarteaucitron.services.eulerian = {
8498        "key": "eulerian",
8499        "type": "analytic",
8500        "name": "Eulerian Analytics",
8501        "needConsent": true,
8502        "cookies": ["etuix"],
8503        "uri" : "https://eulerian.com/vie-privee",
8504        "js": function () {
8505          "use strict";
8506          (function(x,w){ if (!x._ld){ x._ld = 1;
8507            let ff = function() { if(x._f){x._f('tac',tarteaucitron,1)} };
8508            w.__eaGenericCmpApi = function(f) { x._f = f; ff(); };
8509            w.addEventListener("tac.close_alert", ff);
8510            w.addEventListener("tac.close_panel", ff);
8511          }})(this,window);
8512        },
8513        "fallback": function () { this.js(); }
8514      };
8515
8516      // Force tarteaucitron cdn.
8517      tarteaucitron.cdn = "/libraries/tarteaucitron.js/";
8518
8519      // Load custom texts translation.
8520      tarteaucitronCustomText = {};
8521      Object.keys(settings.tandem_gdpr.texts)
8522        .filter(function (text) {
8523          return settings.tandem_gdpr.texts[text] !== "";
8524        })
8525        .map(function (text) {
8526          tarteaucitronCustomText[text] = Drupal.t(
8527            settings.tandem_gdpr.texts[text]
8528          );
8529        });
8530
8531      // Load added services.
8532      Object.keys(settings.tandem_gdpr.services)
8533        .filter(function (service) {
8534          return settings.tandem_gdpr.services[service];
8535        })
8536        .map(function (service) {
8537          return (tarteaucitron.job = tarteaucitron.job || []).push(service);
8538        });
8539
8540      // Load added users settings.
8541      Object.keys(settings.tandem_gdpr.user)
8542        .filter(function (id) {
8543          return settings.tandem_gdpr.user[id] !== "";
8544        })
8545        .map(function (id) {
8546          return (tarteaucitron.user[id] = settings.tandem_gdpr.user[id]);
8547        });
8548
8549      // Load tarteaucitron.
8550      tarteaucitron.init({
8551        DenyAllCta : true,
8552        privacyUrl: settings.tandem_gdpr.dialog.privacyUrl,
8553        hashtag: "#".concat(settings.tandem_gdpr.dialog.hashtag),
8554        cookieName: settings.tandem_gdpr.dialog.cookieName,
8555        orientation: settings.tandem_gdpr.dialog.orientation,
8556        showAlertSmall: settings.tandem_gdpr.dialog.showAlertSmall === 1,
8557        cookieslist: settings.tandem_gdpr.dialog.cookieslist === 1,
8558        adblocker: settings.tandem_gdpr.dialog.adblocker === 1,
8559        AcceptAllCta: settings.tandem_gdpr.dialog.AcceptAllCta === 1,
8560        highPrivacy: settings.tandem_gdpr.dialog.highPrivacy === 1,
8561        handleBrowserDNTRequest: settings.tandem_gdpr.dialog.handleBrowserDNTRequest === 1,
8562        removeCredit: settings.tandem_gdpr.dialog.removeCredit === 1,
8563        moreInfoLink: settings.tandem_gdpr.dialog.moreInfoLink === 1,
8564        useExternalCss: settings.tandem_gdpr.dialog.useExternalCss === 1,
8565        cookieDomain: settings.tandem_gdpr.dialog.cookieDomain,
8566        readmoreLink: settings.tandem_gdpr.dialog.readmoreLink,
8567        showIcon: false
8568      });
8569
8570      /**
8571       * Wrapper for attach media player when ATInternet tracker is loaded or wait it.
8572       *
8573       * @param $element
8574       */
8575      function attachMediaPlayerWaitAtInternet($element) {
8576
8577        // Attach immediately.
8578        if (typeof atInternetPromise.then !== 'function') {
8579          tandemMediaElementPlayer($element);
8580        }
8581
8582        // Wait ATInternet tracker load.
8583        else {
8584          atInternetPromise
8585            .then(
8586              result => {
8587                tandemMediaElementPlayer($element);
8588              },
8589              error => {
8590                console.log(error);
8591              }
8592            );
8593        }
8594      }
8595
8596      /**
8597       * Trigger event atinternetMediaGdprAllow when user allow tracking.
8598       *
8599       * @param $element
8600       *   Element for attach mediaplayer.
8601       */
8602      function tandemMediaElementPlayer($element) {
8603        $element.each(function () {
8604          if ($(this).parents('[class^="media-data"]').length === 0 && !$(this).hasClass('initialized')) {
8605            $(this).addClass('initialized');
8606
8607            $(this).once('at-media').each(function () {
8608              const mediaId = $('source', this).attr('data-media-id');
8609              const mediaName = slugify($('source', this).attr('data-media-title'));
8610
8611              $(this).mediaelementplayer({
8612                success: function (media, originalNode, instance) {
8613                  let cookie = tarteaucitron.cookie.read();
8614                  let isAtinternetAllowed = (cookie.indexOf('atinternet_custom=true') >= 0);
8615                  const mediaTitle = $(media).find('source').data('media-title');
8616                  if (isAtinternetAllowed) {
8617                    $(document).trigger('atinternetMediaGdprAllow', {'media': media, 'mediaId': mediaId, 'mediaName' : mediaName});
8618                  }
8619
8620                  media.addEventListener('canplay', () => {
8621                    $(media).find('iframe').attr('title', mediaTitle);
8622                  });
8623                }
8624              });
8625
8626              // Hide unnecesary controls for vimeo.
8627              let $vimeo_player_custom = $('.vimeo_player_custom');
8628              $vimeo_player_custom.each(function () {
8629                $(this).closest('.mejs__container').find('.mejs__controls').addClass('hide-control
8629s');
8630              });
8631            })
8632          }
8633        });
8634      }
8635
8636    }
8637  };
8638})(jQuery, Drupal);
8639;
8640/**
8641 * @file
8642 * SVE block.
8643 */
8644
8645(function ($, Drupal) {
8646
8647  'use strict';
8648
8649  Drupal.behaviors.sveFormManageErrors = {
8650    attach(context) {
8651      $('.webform-submission-form', context).each(function () {
8652        const $form = $(this);
8653        if ($form.data('sveFormManageErrors')) {
8654          return;
8655        }
8656        $form.data('sveFormManageErrors', true);
8657
8658        $(document).on('ajaxSuccess', function (event, xhr, settings) {
8659          if ($('.form-item--error-message').length) {
8660            const errors = $('.form-item--error-message');
8661            errors.each(function (index) {
8662              const $error = $(this);
8663              const $field = $error.closest('.form-item').find('input, select, textarea').first();
8664              if ($field.length && $field.attr('aria-describedby')) {
8665                $error.attr('id', $field.attr('aria-describedby'));
8666              }
8667              // RGAA wrapping error text with p element
8668              if (!$error.children('.fr-message--error').length) {
8669                $error.text($error.text()).contents().wrap('<p class="fr-message fr-message--error"></p>');
8670              }
8671            });
8672            // RGAA wrapping error alert text with p element
8673            const $alert = $('.webform-submission-form .fr-alert--error');
8674            $alert.contents().filter(function () {
8675              return this.nodeType === 3 && this.nodeValue.trim();
8676            }).first().wrap('<p></p>');
8677          }
8678        });
8679      });
8680    }
8681  };
8682
8683  // Upload file field; set attribute id for type validation error
8684  Drupal.behaviors.sveFormManageFile = {
8685    attach(context) {
8686      const target = $('.webform-submission-form .js-form-managed-file', context);
8687      if (target.length) {
8688        const observer = new MutationObserver(function (mutations) {
8689          mutations.forEach(function (mutation) {
8690            $(mutation.addedNodes).each(function () {
8691              const $node = $(this);
8692              if ($node.hasClass('file-upload-js-error')) {
8693                $node.attr('id','edit-piece-jointe-error-description');
8694                $node.parent().find('input').attr('aria-describedby',$node.attr('id'));
8695                $node.contents().wrapAll('<p class="fr-m-0"></p>');
8696              }
8697            });
8698          });
8699        });
8700        observer.observe(target.get(0), {
8701          childList: true,
8702          subtree: true
8703        });
8704      }
8705
8706      //DSFR Managing Uploaded files
8707      $('.webform-submission-form', context).each(function () {
8708        const $form = $(this);
8709        if ($form.data('sveFormManageFile')) {
8710          return;
8711        }
8712        $form.data('sveFormManageFile', true);
8713
8714        $(document).on('ajaxSuccess', function (event, xhr, settings) {
8715          if (settings.extraData && (settings.extraData._triggering_element_name === 'piece_jointe_upload_button' ||
8716            settings.extraData._triggering_element_name === 'piece_jointe_remove_button' ||
8717            settings.extraData._triggering_element_name === 'op')) {
8718            const $button = $(`input[name = "piece_jointe_upload_button"]`);
8719            const $checkboxes = $button.parent().find('.js-form-type-checkbox');
8720            if ($checkboxes.length && !$checkboxes.first().closest('fieldset.custom-wrapper').length) {
8721              const $fieldset = $('<fieldset class="fr-fieldset" aria-labelledby="documents_uploaded"></fieldset>');
8722              const $legend = $('<legend class="fr-sr-only" id="documents_uploaded">' + Drupal.t('Fichier(s) téléversé(s)') + '</legend>');
8723              $checkboxes.wrapAll($fieldset);
8724              $checkboxes.parent().prepend($legend);
8725              $checkboxes.each(function () {
8726                $(this).wrap($('<div class="fr-fieldset__element fr-mt-1w fr-mb-0"></div>'));
8727              });
8728            }
8729          }
8730        });
8731      });
8732    }
8733  };
8734})(jQuery, Drupal);
8735;

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.