PageSourceSearch

https://www.fleurderoy.com/assets/themes/theme-apiandyou/public/js/sources/externals/build/tarteaucitron.js

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

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.