PageSourceSearch

https://agrio-french-tech-seed.fr/bundles/common/js/tarteaucitron/tarteaucitron.services.js

js agrio-french-tech-seed.fr collected 2026-10-08 12:41:38 UTC 117,134 bytes, 3,133 lines download raw bytes

1/*global tarteaucitron, ga, Shareaholic, stLight, clicky, top, google, Typekit, FB, ferankReady, IN, stButtons, twttr, PCWidget*/
2/*jslint regexp: true, nomen: true*/
3
4// generic iframe
5tarteaucitron.services.iframe = {
6    "key": "iframe",
7    "type": "other",
8    "name": "Web content",
9    "uri": "",
10    "needConsent": true,
11    "cookies": [],
12    "js": function () {
13        "use strict";
14        tarteaucitron.fallback(['tac_iframe'], function (x) {
15            var width = x.getAttribute("width"),
16                height = x.getAttribute("height"),
17                url = x.getAttribute("data-url");
18
19            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" allowtransparency allowfullscreen></iframe>';
20        });
21    },
22    "fallback": function () {
23        "use strict";
24        var id = 'iframe';
25        tarteaucitron.fallback(['tac_iframe'], function (elem) {
26            elem.style.width = elem.getAttribute('width') + 'px';
27            elem.style.height = elem.getAttribute('height') + 'px';
28            return tarteaucitron.engage(id);
29        });
30    }
31};
32
33// addthis
34tarteaucitron.services.addthis = {
35    "key": "addthis",
36    "type": "social",
37    "name": "AddThis",
38    "uri": "https://www.addthis.com/privacy/privacy-policy#publisher-visitors",
39    "needConsent": true,
40    "cookies": ['__atuvc', '__atuvs'],
41    "js": function () {
42        "use strict";
43        if (tarteaucitron.user.addthisPubId === undefined) {
44            return;
45        }
46        if (tarteaucitron.isAjax === true) {
47            window.addthis = null;
48            window._adr = null;
49            window._atc = null;
50            window._atd = null;
51            window._ate = null;
52            window._atr = null;
53            window._atw = null;
54        }
55        tarteaucitron.fallback(['addthis_sharing_toolbox'], '');
56        tarteaucitron.addScript('//s7.addthis.com/js/300/addthis_widget.js#pubid=' + tarteaucitron.user.addthisPubId);
57    },
58    "fallback": function () {
59        "use strict";
60        var id = 'addthis';
61        tarteaucitron.fallback(['addthis_sharing_toolbox'], tarteaucitron.engage(id));
62    }
63};
64
65// addtoanyfeed
66tarteaucitron.services.addtoanyfeed = {
67    "key": "addtoanyfeed",
68    "type": "social",
69    "name": "AddToAny (feed)",
70    "uri": "https://www.addtoany.com/privacy",
71    "needConsent": true,
72    "cookies": [],
73    "js": function () {
74        "use strict";
75        if (tarteaucitron.user.addtoanyfeedUri === undefined) {
76            return;
77        }
78        tarteaucitron.user.addtoanyfeedSubscribeLink = 'https://www.addtoany.com/subscribe?linkurl=' + tarteaucitron.user.addtoanyfeedUri;
79        window.a2a_config = window.a2a_config || {};
80        window.a2a_config.linkurl = tarteaucitron.user.addtoanyfeedUri;
81        tarteaucitron.addScript('//static.addtoany.com/menu/feed.js');
82    },
83    "fallback": function () {
84        "use strict";
85        tarteaucitron.user.addtoanyfeedSubscribeLink = 'https://www.addtoany.com/subscribe?linkurl=' + tarteaucitron.user.addtoanyfeedUri;
86    }
87};
88
89// addtoanyshare
90tarteaucitron.services.addtoanyshare = {
91    "key": "addtoanyshare",
92    "type": "social",
93    "name": "AddToAny (share)",
94    "uri": "https://www.addtoany.com/privacy",
95    "needConsent": true,
96    "cookies": [],
97    "js": function () {
98        "use strict";
99        tarteaucitron.fallback(['tac_addtoanyshare'], '');
100        tarteaucitron.addScript('//static.addtoany.com/menu/page.js');
101    },
102    "fallback": function () {
103        "use strict";
104        var id = 'addtoanyshare';
105        tarteaucitron.fallback(['tac_addtoanyshare'], tarteaucitron.engage(id));
106    }
107};
108
109// aduptech ads
110tarteaucitron.services.aduptech_ads = {
111    "key": "aduptech_ads",
112    "type": "ads",
113    "name": "Ad Up Technology (ads)",
114    "uri": "https://www.adup-tech.com/datenschutz",
115    "needConsent": true,
116    "cookies": [],
117    "js": function () {
118        "use strict";
119
120        var IDENTIFIER = "aduptech_ads",
121            API_URL = "https://s.d.adup-tech.com/jsapi";
122
123        var elements = document.getElementsByClassName(IDENTIFIER);
124        if (!elements || elements.length === 0) {
125            return;
126        }
127
128        tarteaucitron.fallback([IDENTIFIER], "");
129
130        tarteaucitron.addScript(API_URL, "", function() {
131            for (var i = 0; i < elements.length; i++) {
132                var element = elements[i];
133
134                if (!element.getAttribute("id")) {
135                    element.setAttribute("id", IDENTIFIER + Math.random().toString(36).substr(2, 9));
136                }
137
138                window.uAd.embed(element.getAttribute("id"), {
139                    placementKey: element.getAttribute("placementKey"),
140                    responsive: Boolean(element.getAttribute("responsive")),
141                    lazy: Boolean(element.getAttribute("lazy")),
142                    adtest: Boolean(element.getAttribute("test")),
143                    query: element.getAttribute("query") || "",
144                    minCpc: element.getAttribute("minCpc") || "",
145                    pageUrl: element.getAttribute("pageUrl") || "",
146                    skip: element.getAttribute("skip") || ""
147                });
148            }
149        });
150
151    },
152    "fallback": function () {
153        "use strict";
154        tarteaucitron.fallback(["aduptech_ads"], tarteaucitron.engage("aduptech_ads"));
155    }
156};
157
158// aduptech conversion
159tarteaucitron.services.aduptech_conversion = {
160    "key": "aduptech_conversion",
161    "type": "ads",
162    "name": "Ad Up Technology (conversion)",
163    "uri": "https://www.adup-tech.com/datenschutz",
164    "needConsent": true,
165    "cookies": [],
166    "js": function () {
167        "use strict";
168
169        var IDENTIFIER = "aduptech_conversion",
170            CONVERSION_PIXEL_BASE_URL = "https://d.adup-tech.com/campaign/conversion";
171
172        var elements = document.getElementsByClassName(IDENTIFIER);
173        if (!elements || elements.length === 0) {
174            return;
175        }
176
177        tarteaucitron.fallback([IDENTIFIER], "");
178
179        for (var i = 0; i < elements.length; i++) {
180            var element = elements[i];
181
182            if (!element.getAttribute("advertiserId") || !element.getAttribute("conversionCode")) {
183                continue;
184            }
185
186            var url = CONVERSION_PIXEL_BASE_URL +
187                "/" + encodeURIComponent(element.getAttribute("advertiserId")) +
188                "?t=" + encodeURIComponent(element.getAttribute("conversionCode"));
189
190            if (element.getAttribute("price")) {
191                url += "&price=" + encodeURIComponent(element.getAttribute("price"));
192            }
193
194            if (element.getAttribute("quantity")) {
195                url += "&quantity=" + encodeURIComponent(element.getAttribute("quantity"));
196            }
197
198            if (element.getAttribute("total")) {
199                url += "&total=" + encodeURIComponent(element.getAttribute("total"));
200            }
201
202            if (element.getAttribute("orderId")) {
203                url += "&order_id=" + encodeURIComponent(element.getAttribute("orderId"));
204            }
205
206            if (element.getAttribute("itemNumber")) {
207                url += "&item_number=" + encodeURIComponent(element.getAttribute("itemNumber"));
208            }
209
210            if (element.getAttribute("description")) {
211                url += "&description=" + encodeURIComponent(element.getAttribute("description"));
212            }
213
214            (new Image()).src = url;
215        }
216    }
217};
218
219// aduptech retargeting
220tarteaucitron.services.aduptech_retargeting = {
221    "key": "aduptech_retargeting",
222    "type": "ads",
223    "name": "Ad Up Technology (retargeting)",
224    "uri": "https://www.adup-tech.com/datenschutz",
225    "needConsent": true,
226    "cookies": [],
227    "js": function () {
228        "use strict";
229
230        var IDENTIFIER = "aduptech_retargeting",
231            API_URL = "https://s.d.adup-tech.com/services/retargeting.js";
232
233        var elements = document.getElementsByClassName(IDENTIFIER);
234        if (!elements || elements.length === 0) {
235            return;
236        }
237
238        tarteaucitron.fallback([IDENTIFIER], "");
239
240        window.AdUpRetargeting = function(api) {
241            for (var i = 0; i < elements.length; i++) {
242                var element = elements[i];
243
244                api.init();
245
246                api.setAccount(element.getAttribute("account"));
247
248                if (element.getAttribute("email")) {
249                    api.setEmail(element.getAttribute("email"));
250                } else if (element.getAttribute("hashedEmail")) {
251                    api.setHashedEmail(element.getAttribute("hashedEmail"));
252                }
253
254                if (element.getAttribute("product")) {
255                    try {
256                        api.setProduct(JSON.parse(element.getAttribute("product")));
257                    } catch (e) {
258                        api.setProduct(element.getAttribute("product"));
259                    }
260                }
261
262                if (element.getAttribute("transaction")) {
263                    try {
264                        api.setTransaction(JSON.parse(element.getAttribute("transaction")));
265                    } catch (e) {
266                        api.setTransaction(element.getAttribute("transaction"));
267                    }
268                }
269
270                if (element.getAttribute("demarkUser")) {
271                    api.setDemarkUser();
272                } else if (element.getAttribute("demarkProducts")) {
273                    api.setDemarkProducts();
274                }
275
276                if (element.getAttribute("conversionCode")) {
277                    api.setConversionCode(element.getAttribute("conversionCode"));
278                }
279
280                if (element.getAttribute("device")) {
281                    var setter = "set" + element.getAttribute("device").charAt(0).toUpperCase() + element.getAttribute("device").slice(1);
282                    if (typeof api[setter] === 'function') {
283                        api[setter]();
284                    }
285                }
286
287                if (element.getAttribute("track")) {
288                    var tracker = "track" + element.getAttribute("track").charAt(0).toUpperCase() + element.getAttribute("track").slice(1);
289                    if (typeof api[tracker] === "function") {
290                        api[tracker]();
291                    } else {
292                        api.trackHomepage();
293                    }
294                }
295            };
296        };
297
298        tarteaucitron.addScript(API_URL);
299    }
300};
301
302// alexa
303tarteaucitron.services.alexa = {
304    "key": "alexa",
305    "type": "analytic",
306    "name": "Alexa",
307    "uri": "https://www.alexa.com/help/privacy",
308    "needConsent": true,
309    "cookies": ['__asc', '__auc'],
310    "js": function () {
311        "use strict";
312        if (tarteaucitron.user.alexaAccountID === undefined) {
313            return;
314        }
315        window._atrk_opts = {
316            atrk_acct: tarteaucitron.user.alexaAccountID,
317            domain: window.location.hostname.match(/[^\.]*\.[^.]*$/)[0],
318            dynamic: true
319        };
320        tarteaucitron.addScript('https://d31qbv1cthcecs.cloudfront.net/atrk.js');
321    }
322};
323
324// amazon
325tarteaucitron.services.amazon = {
326    "key": "amazon",
327    "type": "ads",
328    "name": "Amazon",
329    "uri": "https://www.amazon.fr/gp/help/customer/display.html?ie=UTF8&*Version*=1&*entries*=0&nodeId=201149360",
330    "needConsent": true,
331    "cookies": [],
332    "js": function () {
333        "use strict";
334        tarteaucitron.fallback(['amazon_product'], function (x) {
335            var amazonId = x.getAttribute("amazonid"),
336                productId = x.getAttribute("productid"),
337                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',
338                iframe = '<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="' + url + '"></iframe>';
339
340            return iframe;
341        });
342    },
343    "fallback": function () {
344        "use strict";
345        var id = 'amazon';
346        tarteaucitron.fallback(['amazon_product'], tarteaucitron.engage(id));
347    }
348};
349
350// calameo
351tarteaucitron.services.calameo = {
352    "key": "calameo",
353    "type": "video",
354    "name": "Calameo",
355    "uri": "https://fr.calameo.com/privacy",
356    "needConsent": true,
357    "cookies": [],
358    "js": function () {
359        "use strict";
360        tarteaucitron.fallback(['calameo-canvas'], function (x) {
361            var id = x.getAttribute("data-id"),
362                width = x.getAttribute("width"),
363                height = x.getAttribute("height"),
364                url = '//v.calameo.com/?bkcode=' + id;
365
366            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" allowtransparency allowfullscreen></iframe>';
367        });
368    },
369    "fallback": function () {
370        "use strict";
371        var id = 'calameo';
372        tarteaucitron.fallback(['calameo-canvas'], function (elem) {
373            elem.style.width = elem.getAttribute('width') + 'px';
374            elem.style.height = elem.getAttribute('height') + 'px';
375            return tarteaucitron.engage(id);
376        });
377    }
378};
379
380// clicky
381tarteaucitron.services.clicky = {
382    "key": "clicky",
383    "type": "analytic",
384    "name": "Clicky",
385    "uri": "https://clicky.com/terms",
386    "needConsent": true,
387    "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],
388    "js": function () {
389        "use strict";
390        if (tarteaucitron.user.clickyId === undefined) {
391            return;
392        }
393        tarteaucitron.addScript('//static.getclicky.com/js', '', function () {
394            if (typeof clicky.init === 'function') {
395                clicky.init(tarteaucitron.user.clickyId);
396            }
397            if (typeof tarteaucitron.user.clickyMore === 'function') {
398                tarteaucitron.user.clickyMore();
399            }
400        });
401    }
402};
403
404// clicmanager
405tarteaucitron.services.clicmanager = {
406    "key": "clicmanager",
407    "type": "ads",
408    "name": "Clicmanager",
409    "uri": "http://www.clicmanager.fr/infos_legales.php",
410    "needConsent": true,
411    "cookies": [],
412    "js": function () {
413        "use strict";
414        var uniqIds = [],
415            i,
416            uri;
417
418        tarteaucitron.fallback(['clicmanager-canvas'], function (x) {
419            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
420            uniqIds.push(uniqId);
421            return '<div id="' + uniqId + '" c="' + x.getAttribute('c') + '" s="' + x.getAttribute('s') + '" t="' + x.getAttribute('t') + '"></div>';
422        });
423
424        for (i = 0; i < uniqIds.length; i += 1) {
425            uri = '//ads.clicmanager.fr/exe.php?';
426            uri += 'c=' + document.getElementById(uniqIds[i]).getAttribute('c') + '&';
427            uri += 's=' + document.getElementById(uniqIds[i]).getAttribute('s') + '&';
428            uri += 't=' + document.getElementById(uniqIds[i]).getAttribute('t');
429
430            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
431        }
432    },
433    "fallback": function () {
434        "use strict";
435        var id = 'clicmanager';
436        tarteaucitron.fallback(['clicmanager-canvas'], tarteaucitron.engage(id));
437    }
438};
439
440// crazyegg
441tarteaucitron.services.crazyegg = {
442    "key": "crazyegg",
443    "type": "analytic",
444    "name": "Crazy Egg",
445    "uri": "https://www.crazyegg.com/privacy",
446    "needConsent": true,
447    "cookies": [],
448    "js": function () {
449        "use strict";
450
451        if (tarteaucitron.user.crazyeggId === undefined) {
452            return;
453        }
454
455        tarteaucitron.addScript('//script.crazyegg.com/pages/scripts/' + tarteaucitron.user.crazyeggId.substr(0, 4) + '/' + tarteaucitron.user.crazyeggId.substr(4, 4) + '.js');
456    }
457};
458
459// criteo
460tarteaucitron.services.criteo = {
461    "key": "criteo",
462    "type": "ads",
463    "name": "Criteo",
464    "uri": "http://www.criteo.com/privacy/",
465    "needConsent": true,
466    "cookies": [],
467    "js": function () {
468        "use strict";
469        document.MAX_ct0 = '';
470        var uniqIds = [],
471            i,
472            uri;
473
474        tarteaucitron.fallback(['criteo-canvas'], function (x) {
475            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
476            uniqIds.push(uniqId);
477            return '<div id="' + uniqId + '" zoneid="' + x.getAttribute('zoneid') + '"></div>';
478        });
479
480        for (i = 0; i < uniqIds.length; i += 1) {
481            uri = '//cas.criteo.com/delivery/ajs.php?';
482            uri += 'zoneid=' + document.getElementById(uniqIds[i]).getAttribute('zoneid');
483            uri += '&nodis=1&cb=' + Math.floor(Math.random() * 99999999999);
484            uri += '&loc=' + encodeURI(window.location);
485            uri += (document.MAX_used !== ',') ? '&exclude=' + document.MAX_used : '';
486            uri += (document.charset !== undefined ? '&charset=' + document.charset : '');
487            uri += (document.characterSet !== undefined ? '&charset=' + document.characterSet : '');
488            uri += (document.referrer !== undefined) ? '&referer=' + encodeURI(document.referrer) : '';
489            uri += (document.context !== undefined) ? '&context=' + encodeURI(document.context) : '';
490            uri += ((document.MAX_ct0 !== undefined) && (document.MAX_ct0.substring(0, 4) === 'http')) ? '&ct0=' + encodeURI(document.MAX_ct0) : '';
491            uri += (document.mmm_fo !== undefined) ? '&mmm_fo=1' : '';
492
493            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
494        }
495    },
496    "fallback": function () {
497        "use strict";
498        var id = 'criteo';
499        tarteaucitron.fallback(['criteo-canvas'], tarteaucitron.engage(id));
500    }
501};
502
503// dailymotion
504tarteaucitron.services.dailymotion = {
505    "key": "dailymotion",
506    "type": "video",
507    "name": "Dailymotion",
508    "uri": "https://www.dailymotion.com/legal/privacy",
509    "needConsent": true,
510    "cookies": ['ts', 'dmvk', 'hist', 'v1st', 's_vi'],
511    "js": function () {
512        "use strict";
513        tarteaucitron.fallback(['dailymotion_player'], function (x) {
514            var video_id = x.getAttribute("videoID"),
515                video_width = x.getAttribute("width"),
516                frame_width = 'width=',
517                video_height = x.getAttribute("height"),
518                frame_height = 'height=',
519                video_frame,
520                params = 'info=' + x.getAttribute("showinfo") + '&autoPlay=' + x.getAttribute("autoplay");
521
522            if (video_id === undefined) {
523                return "";
524            }
525            if (video_width !== undefined) {
526                frame_width += '"' + video_width + '" ';
527            } else {
528                frame_width += '"" ';
529            }
530            if (video_height !== undefined) {
531                frame_height +=  '"' + video_height + '" ';
532            } else {
533                frame_height += '"" ';
534            }
535            video_frame = '<iframe src="//www.dailymotion.com/embed/video/' + video_id + '?' + params + '" ' + frame_width + frame_height + ' frameborder="0" allowfullscreen></iframe>';
536            return video_frame;
537        });
538    },
539    "fallback": function () {
540        "use strict";
541        var id = 'dailymotion';
542        tarteaucitron.fallback(['dailymotion_player'], function (elem) {
543            elem.style.width = elem.getAttribute('width') + 'px';
544            elem.style.height = elem.getAttribute('height') + 'px';
545            return tarteaucitron.engage(id);
546        });
547    }
548};
549
550// dating affiliation
551tarteaucitron.services.datingaffiliation = {
552    "key": "datingaffiliation",
553    "type": "ads",
554    "name": "Dating Affiliation",
555    "uri": "http://www.dating-affiliation.com/conditions-generales.php",
556    "needConsent": true,
557    "cookies": [],
558    "js": function () {
559        "use strict";
560        tarteaucitron.fallback(['datingaffiliation-canvas'], function (x) {
561            var comfrom = x.getAttribute("data-comfrom"),
562                r = x.getAttribute("data-r"),
563                p = x.getAttribute("data-p"),
564                cf0 = x.getAttribute("data-cf0"),
565                langue = x.getAttribute("data-langue"),
566                forward_affiliate = x.getAttribute("data-forwardAffiliate"),
567                cf2 = x.getAttribute("data-cf2"),
568                cfsa2 = x.getAttribute("data-cfsa2"),
569                width = x.getAttribute("width"),
570                height = x.getAttribute("height"),
571                url = 'http://www.tools-affil2.com/rotaban/ban.php?' + comfrom;
572
573            return '<iframe src="' + url + '&r=' + r + '&p=' + p + '&cf0=' + cf0 + '&langue=' + langue + '&forward_affiliate=' + forward_affiliate + '&cf2=' + cf2 + '&cfsa2=' + cfsa2 + '" width="' + width + '" height="' + height + '" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe>';
574        });
575    },
576    "fallback": function () {
577        "use strict";
578        var id = 'datingaffiliation';
579        tarteaucitron.fallback(['datingaffiliation-canvas'], function (elem) {
580            elem.style.width = elem.getAttribute('width') + 'px';
581            elem.style.height = elem.getAttribute('height') + 'px';
582            return tarteaucitron.engage(id);
583        });
584    }
585};
586
587// dating affiliation popup
588tarteaucitron.services.datingaffiliationpopup = {
589    "key": "datingaffiliationpopup",
590    "type": "ads",
591    "name": "Dating Affiliation (Pop Up)",
592    "uri": "http://www.dating-affiliation.com/conditions-generales.php",
593    "needConsent": true,
594    "cookies": ['__utma', '__utmb', '__utmc', '__utmt_Tools', '__utmv', '__utmz', '_ga', '_gat', '_gat_UA-65072040-17', '__da-pu-xflirt-ID-pc-o169'],
595    "js": function () {
596        "use strict";
597        var uniqIds = [],
598            i,
599            uri;
600
601        tarteaucitron.fallback(['datingaffiliationpopup-canvas'], function (x) {
602            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
603            uniqIds.push(uniqId);
604            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>';
605        });
606
607        for (i = 0; i < uniqIds.length; i += 1) {
608            uri = 'http://www.promotools.biz/da/popunder/script.php?';
609            uri += 'comfrom=' + document.getElementById(uniqIds[i]).getAttribute('comfrom') + '&';
610            uri += 'promo=' + document.getElementById(uniqIds[i]).getAttribute('promo') + '&';
611            uri += 'product_id=' + document.getElementById(uniqIds[i]).getAttribute('productid') + '&';
612            uri += 'submitconfig=' + document.getElementById(uniqIds[i]).getAttribute('submitconfig') + '&';
613            uri += 'ur=' + document.getElementById(uniqIds[i]).getAttribute('ur') + '&';
614            uri += 'brand=' + document.getElementById(uniqIds[i]).getAttribute('brand') + '&';
615            uri += 'lang=' + document.getElementById(uniqIds[i]).getAttribute('lang') + '&';
616            uri += 'cf0=' + document.getElementById(uniqIds[i]).getAttribute('cf0') + '&';
617            uri += 'cf2=' + document.getElementById(uniqIds[i]).getAttribute('cf2') + '&';
618            uri += 'subid1=' + document.getElementById(uniqIds[i]).getAttribute('subid1') + '&';
619            uri += 'cfsa2=' + document.getElementById(uniqIds[i]).getAttribute('cfsa2') + '&';
620            uri += 'subid2=' + document.getElementById(uniqIds[i]).getAttribute('subid2') + '&';
621            uri += 'nicheId=' + document.getElementById(uniqIds[i]).getAttribute('nicheid') + '&';
622            uri += 'degreId=' + document.getElementById(uniqIds[i]).getAttribute('degreid') + '&';
623            uri += 'bt=' + document.getElementById(uniqIds[i]).getAttribute('bt') + '&';
624            uri += 'vis=' + document.getElementById(uniqIds[i]).getAttribute('vis') + '&';
625            uri += 'hid=' + document.getElementById(uniqIds[i]).getAttribute('hid') + '&';
626            uri += 'snd=' + document.getElementById(uniqIds[i]).getAttribute('snd') + '&';
627            uri += 'aabd=' + document.getElementById(uniqIds[i]).getAttribute('aabd') + '&';
628            uri += 'aabs=' + document.getElementById(uniqIds[i]).getAttribute('aabs');
629
630            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
631        }
632    },
633    "fallback": function () {
634        "use strict";
635        var id = 'datingaffiliationpopup';
636        tarteaucitron.fallback(['datingaffiliationpopup-canvas'], tarteaucitron.engage(id));
637    }
638};
639
640// disqus
641tarteaucitron.services.disqus = {
vendor: 12,275 bytes, lines 642-1021
642    "key": "disqus",
643    "type": "comment",
644    "name": "Disqus",
645    "uri": "https://help.disqus.com/customer/portal/articles/466259-privacy-policy",
646    "needConsent": true,
647    "cookies": [],
648    "js": function () {
649        "use strict";
650        if (tarteaucitron.user.disqusShortname === undefined) {
651            return;
652        }
653        tarteaucitron.addScript('//' + tarteaucitron.user.disqusShortname + '.disqus.com/embed.js');
654        tarteaucitron.addScript('//' + tarteaucitron.user.disqusShortname + '.disqus.com/count.js');
655    },
656    "fallback": function () {
657        "use strict";
658        var id = 'disqus';
659
660        if (document.getElementById('disqus_thread')) {
661            document.getElementById('disqus_thread').innerHTML = tarteaucitron.engage(id);
662        }
663    }
664};
665
666// ekomi
667tarteaucitron.services.ekomi = {
668    "key": "ekomi",
669    "type": "social",
670    "name": "eKomi",
671    "uri": "http://www.ekomi-us.com/us/privacy/",
672    "needConsent": true,
673    "cookies": [],
674    "js": function () {
675        "use strict";
676        if (tarteaucitron.user.ekomiCertId === undefined) {
677            return;
678        }
679        window.eKomiIntegrationConfig = [
680            {certId: tarteaucitron.user.ekomiCertId}
681        ];
682        tarteaucitron.addScript('//connect.ekomi.de/integration_1410173009/' + tarteaucitron.user.ekomiCertId + '.js');
683    }
684};
685
686// etracker
687tarteaucitron.services.etracker = {
688    "key": "etracker",
689    "type": "analytic",
690    "name": "eTracker",
691    "uri": "https://www.etracker.com/en/data-protection.html",
692    "needConsent": true,
693    "cookies": [],
694    "js": function () {
695        "use strict";
696        if (tarteaucitron.user.etracker === undefined) {
697            return;
698        }
699
700        tarteaucitron.addScript('//static.etracker.com/code/e.js', '_etLoader', function () {}, true, "data-secure-code", tarteaucitron.user.etracker);
701    }
702};
703
704// facebook
705tarteaucitron.services.facebook = {
706    "key": "facebook",
707    "type": "social",
708    "name": "Facebook",
709    "uri": "https://www.facebook.com/policies/cookies/",
710    "needConsent": true,
711    "cookies": [],
712    "js": function () {
713        "use strict";
714        tarteaucitron.fallback(['fb-post', 'fb-follow', 'fb-activity', 'fb-send', 'fb-share-button', 'fb-like', 'fb-video'], '');
715        tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.0', 'facebook-jssdk');
716        if (tarteaucitron.isAjax === true) {
717            if (typeof FB !== "undefined") {
718                FB.XFBML.parse();
719            }
720        }
721    },
722    "fallback": function () {
723        "use strict";
724        var id = 'facebook';
725        tarteaucitron.fallback(['fb-post', 'fb-follow', 'fb-activity', 'fb-send', 'fb-share-button', 'fb-like', 'fb-video'], tarteaucitron.engage(id));
726    }
727};
728
729// facebooklikebox
730tarteaucitron.services.facebooklikebox = {
731    "key": "facebooklikebox",
732    "type": "social",
733    "name": "Facebook (like box)",
734    "uri": "https://www.facebook.com/policies/cookies/",
735    "needConsent": true,
736    "cookies": [],
737    "js": function () {
738        "use strict";
739        tarteaucitron.fallback(['fb-like-box', 'fb-page'], '');
740        tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.3', 'facebook-jssdk');
741        if (tarteaucitron.isAjax === true) {
742            if (typeof FB !== "undefined") {
743                FB.XFBML.parse();
744            }
745        }
746    },
747    "fallback": function () {
748        "use strict";
749        var id = 'facebooklikebox';
750        tarteaucitron.fallback(['fb-like-box', 'fb-page'], tarteaucitron.engage(id));
751    }
752};
753
754// facebookcomment
755tarteaucitron.services.facebookcomment = {
756    "key": "facebookcomment",
757    "type": "comment",
758    "name": "Facebook (commentaire)",
759    "uri": "https://www.facebook.com/policies/cookies/",
760    "needConsent": true,
761    "cookies": [],
762    "js": function () {
763        "use strict";
764        tarteaucitron.fallback(['fb-comments'], '');
765        tarteaucitron.addScript('//connect.facebook.net/' + tarteaucitron.getLocale() + '/sdk.js#xfbml=1&version=v2.0', 'facebook-jssdk');
766        if (tarteaucitron.isAjax === true) {
767            if (typeof FB !== "undefined") {
768                FB.XFBML.parse();
769            }
770        }
771    },
772    "fallback": function () {
773        "use strict";
774        var id = 'facebookcomment';
775        tarteaucitron.fallback(['fb-comments'], tarteaucitron.engage(id));
776    }
777};
778
779// ferank
780tarteaucitron.services.ferank = {
781    "key": "ferank",
782    "type": "analytic",
783    "name": "FERank",
784    "uri": "https://www.ferank.fr/respect-vie-privee/#mesureaudience",
785    "needConsent": false,
786    "cookies": [],
787    "js": function () {
788        "use strict";
789        tarteaucitron.addScript('//static.ferank.fr/pixel.js', '', function () {
790            if (typeof tarteaucitron.user.ferankMore === 'function') {
791                tarteaucitron.user.ferankMore();
792            }
793        });
794    }
795};
796
797// ferank pub
798tarteaucitron.services.ferankpub = {
799    "key": "ferankpub",
800    "type": "ads",
801    "name": "FERank (pub)",
802    "uri": "https://www.ferank.fr/respect-vie-privee/#regiepublicitaire",
803    "needConsent": false,
804    "cookies": [],
805    "js": function () {
806        "use strict";
807        tarteaucitron.addScript('//static.ferank.fr/publicite.async.js');
808        if (tarteaucitron.isAjax === true) {
809            if (typeof ferankReady === 'function') {
810                ferankReady();
811            }
812        }
813    },
814    "fallback": function () {
815        "use strict";
816        var id = 'ferankpub';
817        tarteaucitron.fallback(['ferank-publicite'], tarteaucitron.engage(id));
818    }
819};
820
821// get+
822tarteaucitron.services.getplus = {
823    "key": "getplus",
824    "type": "analytic",
825    "name": "Get+",
826    "uri": "http://www.getplus.fr/Conditions-generales-de-vente_a226.html",
827    "needConsent": true,
828    "cookies": ['_first_pageview', '_jsuid', 'no_trackyy_' + tarteaucitron.user.getplusId, '_eventqueue'],
829    "js": function () {
830        "use strict";
831        if (tarteaucitron.user.getplusId === undefined) {
832            return;
833        }
834
835        window.webleads_site_ids = window.webleads_site_ids || [];
836        window.webleads_site_ids.push(tarteaucitron.user.getplusId);
837        tarteaucitron.addScript('//stats.webleads-tracker.com/js');
838    }
839};
840
841// google+
842tarteaucitron.services.gplus = {
843    "key": "gplus",
844    "type": "social",
845    "name": "Google+",
846    "uri": "https://policies.google.com/privacy",
847    "needConsent": true,
848    "cookies": [],
849    "js": function () {
850        "use strict";
851        tarteaucitron.addScript('https://apis.google.com/js/platform.js');
852    },
853    "fallback": function () {
854        "use strict";
855        var id = 'gplus';
856        tarteaucitron.fallback(['g-plus', 'g-plusone'], tarteaucitron.engage(id));
857    }
858};
859
860// google+ badge
861tarteaucitron.services.gplusbadge = {
862    "key": "gplusbadge",
863    "type": "social",
864    "name": "Google+ (badge)",
865    "uri": "https://policies.google.com/privacy",
866    "needConsent": true,
867    "cookies": [],
868    "js": function () {
869        "use strict";
870        tarteaucitron.addScript('https://apis.google.com/js/platform.js');
871    },
872    "fallback": function () {
873        "use strict";
874        var id = 'gplusbadge';
875        tarteaucitron.fallback(['g-page', 'g-person'], tarteaucitron.engage(id));
876    }
877};
878
879// google adsense
880tarteaucitron.services.adsense = {
881    "key": "adsense",
882    "type": "ads",
883    "name": "Google Adsense",
884    "uri": "http://www.google.com/ads/preferences/",
885    "needConsent": true,
886    "cookies": [],
887    "js": function () {
888        "use strict";
889        tarteaucitron.addScript('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js');
890    },
891    "fallback": function () {
892        "use strict";
893        var id = 'adsense';
894        tarteaucitron.fallback(['adsbygoogle'], tarteaucitron.engage(id));
895    }
896};
897
898// google partners badge
899tarteaucitron.services.googlepartners = {
900    "key": "googlepartners",
901    "type": "ads",
902    "name": "Google Partners Badge",
903    "uri": "http://www.google.com/ads/preferences/",
904    "needConsent": true,
905    "cookies": [],
906    "js": function () {
907        "use strict";
908        tarteaucitron.addScript('https://apis.google.com/js/platform.js');
909    },
910    "fallback": function () {
911        "use strict";
912        var id = 'googlepartners';
913        tarteaucitron.fallback(['g-partnersbadge'], tarteaucitron.engage(id));
914    }
915};
916
917// google adsense search (form)
918tarteaucitron.services.adsensesearchform = {
919    "key": "adsensesearchform",
920    "type": "ads",
921    "name": "Google Adsense Search (form)",
922    "uri": "http://www.google.com/ads/preferences/",
923    "needConsent": true,
924    "cookies": [],
925    "js": function () {
926        "use strict";
927        tarteaucitron.addScript('//www.google.com/coop/cse/brand?form=cse-search-box&lang=' + tarteaucitron.getLanguage());
928    }
929};
930
931// google adsense search (result)
932tarteaucitron.services.adsensesearchresult = {
933    "key": "adsensesearchresult",
934    "type": "ads",
935    "name": "Google Adsense Search (result)",
936    "uri": "http://www.google.com/ads/preferences/",
937    "needConsent": true,
938    "cookies": [],
939    "js": function () {
940        "use strict";
941        if (tarteaucitron.user.adsensesearchresultCx === undefined) {
942            return;
943        }
944        tarteaucitron.addScript('//www.google.com/cse/cse.js?cx=' + tarteaucitron.user.adsensesearchresultCx);
945    },
946    "fallback": function () {
947        "use strict";
948        var id = 'adsensesearchresult';
949
950        if (document.getElementById('gcse_searchresults')) {
951            document.getElementById('gcse_searchresults').innerHTML = tarteaucitron.engage(id);
952        }
953    }
954};
955
956// googleadwordsconversion
957tarteaucitron.services.googleadwordsconversion = {
958    "key": "googleadwordsconversion",
959    "type": "ads",
960    "name": "Google Adwords (conversion)",
961    "uri": "https://www.google.com/settings/ads",
962    "needConsent": true,
963    "cookies": [],
964    "js": function () {
965        "use strict";
966        if (tarteaucitron.user.adwordsconversionId === undefined) {
967            return;
968        }
969
970        tarteaucitron.addScript('//www.googleadservices.com/pagead/conversion_async.js', '', function () {
971            window.google_trackConversion({
972                google_conversion_id: tarteaucitron.user.adwordsconversionId,
973                google_conversion_label: tarteaucitron.user.adwordsconversionLabel,
974                google_conversion_language: tarteaucitron.user.adwordsconversionLanguage,
975                google_conversion_format: tarteaucitron.user.adwordsconversionFormat,
976                google_conversion_color: tarteaucitron.user.adwordsconversionColor,
977                google_conversion_value: tarteaucitron.user.adwordsconversionValue,
978                google_conversion_currency: tarteaucitron.user.adwordsconversionCurrency,
979                google_custom_params: {
980                    parameter1: tarteaucitron.user.adwordsconversionCustom1,
981                    parameter2: tarteaucitron.user.adwordsconversionCustom2
982                }
983            });
984        });
985    }
986};
987
988// googleadwordsremarketing
989tarteaucitron.services.googleadwordsremarketing = {
990    "key": "googleadwordsremarketing",
991    "type": "ads",
992    "name": "Google Adwords (remarketing)",
993    "uri": "https://www.google.com/settings/ads",
994    "needConsent": true,
995    "cookies": [],
996    "js": function () {
997        "use strict";
998        if (tarteaucitron.user.adwordsremarketingId === undefined) {
999            return;
1000        }
1001
1002        tarteaucitron.addScript('//www.googleadservices.com/pagead/conversion_async.js', '', function () {
1003            window.google_trackConversion({
1004                google_conversion_id: tarteaucitron.user.adwordsremarketingId,
1005                google_remarketing_only: true
1006            });
1007        });
1008    }
1009};
1010
1011// google analytics (old)
1012tarteaucitron.services.gajs = {
1013    "key": "gajs",
1014    "type": "analytic",
1015    "name": "Google Analytics (ga.js)",
1016    "uri": "https://support.google.com/analytics/answer/6004245",
1017    "needConsent": true,
1018    "cookies": ['_ga', '_gat', '__utma', '__utmb', '__utmc', '__utmt', '__utmz'],
1019    "js": function () {
1020        "use strict";
1021        window._gaq = window._gaq || [];
1022        window._gaq.push(['_setAccount', tarteaucitron.user.gajsUa]);
1023
1024        if (tarteaucitron.user.gajsAnonymizeIp) {
1025            window._gaq.push (['_gat._anonymizeIp']);
1026        }
1027
1028        if (tarteaucitron.user.gajsPageView) {
1029            window._gaq.push(['_trackPageview, ' + tarteaucitron.user.gajsPageView]);
1030        } else {
1031            window._gaq.push(['_trackPageview']);
1032        }
1033
1034        tarteaucitron.addScript('//www.google-analytics.com/ga.js', '', function () {
1035            if (typeof tarteaucitron.user.gajsMore === 'function') {
1036                tarteaucitron.user.gajsMore();
1037            }
1038        });
1039    }
1040};
1041
1042// google analytics
1043tarteaucitron.services.analytics = {
1044    "key": "analytics",
1045    "type": "analytic",
1046    "name": "Google Analytics (universal)",
1047    "uri": "https://support.google.com/analytics/answer/6004245",
1048    "needConsent": true,
1049    "cookies": ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz'],
1050    "js": function () {
1051        "use strict";
1052        window.GoogleAnalyticsObject = 'ga';
1053        window.ga = window.ga || function () {
1054            window.ga.q = window.ga.q || [];
1055            window.ga.q.push(arguments);
1056        };
1057        window.ga.l = new Date();
1058        tarteaucitron.addScript('https://www.google-analytics.com/analytics.js', '', function () {
1059            var uaCreate = {'cookieExpires': 34128000};
1060            tarteaucitron.extend(uaCreate, tarteaucitron.user.analyticsUaCreate || {});
1061            ga('create', tarteaucitron.user.analyticsUa, uaCreate);
1062
1063            if (tarteaucitron.user.analyticsAnonymizeIp) {
1064                ga('set', 'anonymizeIp', true);
1065            }
1066
1067            if (typeof tarteaucitron.user.analyticsPrepare === 'function') {
1068                tarteaucitron.user.analyticsPrepare();
1069            }
1070
1071            if (tarteaucitron.user.analyticsPageView) {
1072                ga('send', 'pageview', tarteaucitron.user.analyticsPageView);
1073            } else {
1074                ga('send', 'pageview');
1075            }
1076
1077            if (typeof tarteaucitron.user.analyticsMore === 'function') {
1078                tarteaucitron.user.analyticsMore();
1079            }
1080        });
1081    }
1082};
1083
1084// google analytics
1085tarteaucitron.services.gtag = {
1086    "key": "gtag",
1087    "type": "analytic",
1088    "name": "Google Analytics (gtag.js)",
1089    "uri": "https://support.google.com/analytics/answer/6004245",
1090    "needConsent": true,
1091    "cookies": (function () {
1092        // Add _gat_gtag_UA_XXXXXXX_XX cookie to cookies array
1093        var gatGtagUaCookie = '_gat_gtag_' + tarteaucitron.user.gtagUa;
1094        gatGtagUaCookie = gatGtagUaCookie.replace(/-/g, '_');
1095        return ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', gatGtagUaCookie];
1096    })(),
1097    "js": function () {
1098        "use strict";
1099        window.dataLayer = window.dataLayer || [];
1100        tarteaucitron.addScript('https://www.googletagmanager.com/gtag/js?id=' + tarteaucitron.user.gtagUa, '', function () {
1101            window.gtag = function gtag(){dataLayer.push(arguments);}
1102            gtag('js', new Date());
1103            gtag('config', tarteaucitron.user.gtagUa);
1104
1105            if (typeof tarteaucitron.user.gtagMore === 'function') {
1106                tarteaucitron.user.gtagMore();
1107            }
1108        });
1109    }
1110};
1111
1112// genially
1113tarteaucitron.services.genially = {
1114    "key": "genially",
1115    "type": "api",
1116    "name": "genially",
1117    "uri": "https://www.genial.ly/cookies",
1118    "needConsent": true,
1119    "cookies": ['_gat', '_ga', '_gid'],
1120    "js": function () {
1121        "use strict";
1122
1123        tarteaucitron.fallback(['tac_genially'], function (x) {
1124            const frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'genially iframe');
1125            const width = x.getAttribute("data-width");
1126            const height = x.getAttribute("data-height");
1127            const align = x.getAttribute("data-align");
1128            const geniallyUrl = x.getAttribute("data-genially-url");
1129            const allowfullscreen = x.getAttribute("allowfullscreen");
1130
1131            return `<div style="display:flex; justify-content:${align};"><iframe style="max-width:100%; width:${width}px; height:${height}px" title="${frame_title}" src="${geniallyUrl}" scrolling="auto" allowtransparency ${allowfullscreen == '0' ? '' : ' webkitallowfullscreen mozallowfullscreen allowfullscreen'}></iframe></div>`;
1132        });
1133    },
1134    "fallback": function () {
1135        "use strict";
1136        var id = 'genially';
1137        tarteaucitron.fallback(['tac_genially'], function (elem) {
1138            elem.style.width = elem.getAttribute('width') + 'px';
1139            elem.style.height = elem.getAttribute('height') + 'px';
1140            return tarteaucitron.engage(id);
1141        });
1142    }
1143};
1144
1145// google maps
1146tarteaucitron.services.googlemaps = {
1147    "key": "googlemaps",
1148    "type": "api",
1149    "name": "Google Maps",
1150    "uri": "http://www.google.com/ads/preferences/",
1151    "needConsent": true,
1152    "cookies": [],
1153    "js": function () {
1154        "use strict";
1155        var mapOptions,
1156            map,
1157            uniqIds = [],
1158            i;
1159
1160        if (tarteaucitron.user.mapscallback === undefined) {
1161            tarteaucitron.user.mapscallback = 'tac_googlemaps_callback';
1162        }
1163
1164        // Add Google Maps libraries if any (https://developers.google.com/maps/documentation/javascript/libraries)
1165        var googleMapsLibraries = '';
1166        if (tarteaucitron.user.googlemapsLibraries) {
1167            googleMapsLibraries = '&libraries=' + tarteaucitron.user.googlemapsLibraries;
1168        }
1169
1170        tarteaucitron.addScript('//maps.googleapis.com/maps/api/js?v=3.exp&key=' + tarteaucitron.user.googlemapsKey + '&callback='+tarteaucitron.user.mapscallback + googleMapsLibraries);
1171
1172        window.tac_googlemaps_callback = function () {
1173            tarteaucitron.fallback(['googlemaps-canvas'], function (x) {
1174                var uniqId = '_' + Math.random().toString(36).substr(2, 9);
1175                uniqIds.push(uniqId);
1176                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>';
1177            });
1178
1179            for (i = 0; i < uniqIds.length; i += 1) {
1180                mapOptions = {
1181                    zoom: parseInt(document.getElementById(uniqIds[i]).getAttribute('zoom'), 10),
1182                    center: new google.maps.LatLng(parseFloat(document.getElementById(uniqIds[i]).getAttribute('latitude'), 10), parseFloat(document.getElementById(uniqIds[i]).getAttribute('longitude'), 10))
1183                };
1184                map = new google.maps.Map(document.getElementById(uniqIds[i]), mapOptions);
1185            }
1186        };
1187    },
1188    "fallback": function () {
1189        "use strict";
1190        var id = 'googlemaps';
1191        tarteaucitron.fallback(['googlemaps-canvas'], tarteaucitron.engage(id));
1192    }
1193};
1194
1195// googlemaps search
1196tarteaucitron.services.googlemapssearch = {
1197    "key": "googlemapssearch",
1198    "type": "api",
1199    "name": "Google Maps Seard API",
1200    "uri": "http://www.google.com/ads/preferences/",
1201    "needConsent": true,
1202    "cookies": ['nid'],
1203    "js": function () {
1204        "use strict";
1205        tarteaucitron.fallback(['googlemapssearch'], function (x) {
1206            var width = x.getAttribute("width"),
1207                height = x.getAttribute("height"),
1208                // url = x.getAttribute("data-url");
1209                query = escape(x.getAttribute("data-search")),
1210                key = x.getAttribute("data-api-key");
1211
1212            // return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" allowtransparency allowfullscreen></iframe>';
1213            return '<iframe width="' + width +'" height="' + height + '" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/place?q='+query+'&key='+key+'" allowfullscreen></iframe> '
1214        });
1215    },
1216    "fallback": function () {
1217        "use strict";
1218        var id = 'googlemapssearch';
1219        tarteaucitron.fallback(['googlemapssearch'], function (elem) {
1220            elem.style.width = elem.getAttribute('width') + 'px';
1221            elem.style.height = elem.getAttribute('height') + 'px';
1222            return tarteaucitron.engage(id);
1223        });
1224    }
1225};
1226
1227// googlemaps embed iframe
1228tarteaucitron.services.googlemapsembed = {
1229    "key": "googlemapsembed",
1230    "type": "api",
1231    "name": "Google Maps Embed",
1232    "uri": "http://www.google.com/ads/preferences/",
1233    "needConsent": true,
1234    "cookies": ['apisid', 'hsid', 'nid', 'sapisid', 'sid', 'sidcc', 'ssid', '1p_jar'],
1235    "js": function () {
1236        "use strict";
1237        tarteaucitron.fallback(['googlemapsembed'], function (x) {
1238            var width = tarteaucitron.getElemWidth(x),
1239                height = tarteaucitron.getElemHeight(x),
1240                url = x.getAttribute("data-url");
1241
1242            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" allowtransparency allowfullscreen></iframe>';
1243        });
1244    },
1245    "fallback": function () {
1246        "use strict";
1247        var id = 'googlemapsembed';
1248        tarteaucitron.fallback(['googlemapsembed'], function (elem) {
1249            elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
1250            elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
1251            return tarteaucitron.engage(id);
1252        });
1253    }
1254};
1255
1256// openstreetmap embed iframe
1257tarteaucitron.services.openstreetmap = {
1258    "key": "openstreetmap",
1259    "type": "api",
1260    "name": "Openstreetmap Embed",
1261    "uri": "https://wiki.osmfoundation.org/wiki/Privacy_Policy#Cookies",
1262    "needConsent": true,
1263    "cookies": ['apisid', 'hsid', 'nid', 'sapisid', 'sid', 'sidcc', 'ssid', '1p_jar'],
1264    "js": function () {
1265        "use strict";
1266        tarteaucitron.fallback(['openstreetmap'], function (x) {
1267            var width = tarteaucitron.getElemWidth(x),
1268                height = tarteaucitron.getElemHeight(x),
1269                url = x.getAttribute("data-url");
1270
1271            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" allowfullscreen></iframe>';
1272        });
1273    },
1274    "fallback": function () {
1275        "use strict";
1276        var id = 'openstreetmap';
1277        tarteaucitron.fallback(['openstreetmap'], function (elem) {
1278            elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
1279            elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
1280            return tarteaucitron.engage(id);
1281        });
1282    }
1283};
1284
1285// googlemaps embed iframe
1286tarteaucitron.services.geoportail = {
1287    "key": "geoportail",
1288    "type": "api",
1289    "name": "Geoportail maps Embed",
1290    "uri": "https://www.ign.fr/institut/gestion-des-cookies",
1291    "needConsent": true,
1292    "cookies": ['apisid', 'hsid', 'nid', 'sapisid', 'sid', 'sidcc', 'ssid', '1p_jar'],
1293    "js": function () {
1294        "use strict";
1295        tarteaucitron.fallback(['geoportail'], function (x) {
1296            var width = tarteaucitron.getElemWidth(x),
1297                height = tarteaucitron.getElemHeight(x),
1298                url = x.getAttribute("data-url");
1299
1300            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>';
1301        });
1302    },
1303    "fallback": function () {
1304        "use strict";
1305        var id = 'geoportail';
1306        tarteaucitron.fallback(['geoportail'], function (elem) {
1307            elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
1308            elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
1309            return tarteaucitron.engage(id);
1310        });
1311    }
1312};
1313
1314// maps geosas and mviewer
1315tarteaucitron.services.maps_geosas_mviewer = {
1316    "key": "maps_geosas_mviewer",
1317    "type": "api",
1318    "name": "Geosas / Mviewer",
1319    "uri": "https://www.ign.fr/institut/gestion-des-cookies",
1320    "needConsent": true,
1321    "cookies": ['apisid', 'hsid', 'nid', 'sapisid', 'sid', 'sidcc', 'ssid', '1p_jar'],
1322    "js": function () {
1323        "use strict";
1324        tarteaucitron.fallback(['maps_geosas_mviewer'], function (x) {
1325            var width = tarteaucitron.getElemWidth(x),
1326                height = tarteaucitron.getElemHeight(x),
1327                url = x.getAttribute("data-url");
1328
1329            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" allowfullscreen></iframe>';
1330        });
1331    },
1332    "fallback": function () {
1333        "use strict";
1334        var id = 'maps_geosas_mviewer';
1335        tarteaucitron.fallback(['maps_geosas_mviewer'], function (elem) {
1336            elem.style.width = tarteaucitron.getElemWidth(elem) + 'px';
1337            elem.style.height = tarteaucitron.getElemHeight(elem) + 'px';
1338            return tarteaucitron.engage(id);
1339        });
1340    }
1341};
1342
1343// google tag manager
1344tarteaucitron.services.googletagmanager = {
1345    "key": "googletagmanager",
1346    "type": "api",
1347    "name": "Google Tag Manager",
1348    "uri": "http://www.google.com/ads/preferences/",
1349    "needConsent": true,
1350    "cookies": ['_ga', '_gat', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', '__gads', '_drt_', 'FLC', 'exchange_uid', 'id', 'fc', 'rrs', 'rds', 'rv', 'uid', 'UIDR', 'UID', 'clid', 'ipinfo', 'acs'],
1351    "js": function () {
1352        "use strict";
1353        if (tarteaucitron.user.googletagmanagerId === undefined) {
1354            return;
1355        }
1356        window.dataLayer = window.dataLayer || [];
1357        window.dataLayer.push({
1358            'gtm.start': new Date().getTime(),
1359            event: 'gtm.js'
1360        });
1361        tarteaucitron.addScript('//www.googletagmanager.com/gtm.js?id=' + tarteaucitron.user.googletagmanagerId);
1362    }
1363};
1364
1365// jsapi
1366tarteaucitron.services.jsapi = {
1367    "key": "jsapi",
1368    "type": "api",
1369    "name": "Google jsapi",
1370    "uri": "http://www.google.com/policies/privacy/",
1371    "needConsent": true,
1372    "cookies": [],
1373    "js": function () {
1374        "use strict";
1375        tarteaucitron.addScript('//www.google.com/jsapi');
1376    }
1377};
1378
1379// recaptcha
1380//
1381// HACK KALIOP
1382// line 1270: lang attribute does not exist in original lib
1383// line 1275: script added by default is https://www.google.com/recaptcha/api.js
1384tarteaucitron.services.recaptcha = {
1385    "key": "recaptcha",
1386    "type": "api",
1387    "name": "reCAPTCHA",
1388    "uri": "http://www.google.com/policies/privacy/",
1389    "needConsent": true,
1390    "cookies": ['nid'],
1391    "lang": tarteaucitron.getLanguage(),
1392    "js": function () {
1393        "use strict";
1394        tarteaucitron.fallback(['g-recaptcha'], '');
1395        tarteaucitron.addScript('https://www.google.com/recaptcha/api.js?onload=CaptchaCallback&hl='+this.lang);
1396    },
1397    "fallback": function () {
1398        "use strict";
1399        var id = 'recaptcha';
1400        tarteaucitron.fallback(['g-recaptcha'], tarteaucitron.engage(id));
1401    }
1402};
1403
1404// linkedin
1405tarteaucitron.services.linkedin = {
1406    "key": "linkedin",
1407    "type": "social",
1408    "name": "Linkedin",
1409    "uri": "https://www.linkedin.com/legal/cookie_policy",
1410    "needConsent": true,
1411    "cookies": [],
1412    "js": function () {
1413        "use strict";
1414        tarteaucitron.fallback(['tacLinkedin'], function (x) {
1415            const url = x.getAttribute('data-url'),
1416                width = x.getAttribute('data-width') || 504,
1417                height = x.getAttribute('data-height') || 446;
1418
1419            if (!url) {
1420                return '';
1421            }
1422
1423            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" allowfullscreen="" title="Post intégré"></iframe>';
1424        });
1425    },
1426    "fallback": function () {
1427        "use strict";
1428        var id = 'linkedin';
1429        tarteaucitron.fallback(['tacLinkedin'], tarteaucitron.engage(id));
1430    }
1431};
1432
1433// mautic
1434tarteaucitron.services.mautic = {
1435    "key": "mautic",
1436    "type": "analytic",
1437    "name": "Mautic",
1438    "uri": "https://www.mautic.org/privacy-policy/",
1439    "needConsent": true,
1440    "cookies": ['mtc_id', 'mtc_sid'],
1441    "js": function () {
1442        "use strict";
1443        if (tarteaucitron.user.mauticurl === undefined) {
1444            return;
1445        }
1446
1447        window['MauticTrackingObject'] = 'mt';
1448        window['mt'] = window['mt'] || function() {
1449            (window['mt'].q = window['mt'].q || []).push(arguments);
1450        };
1451
1452        tarteaucitron.addScript(tarteaucitron.user.mauticurl, '', function() {
1453            mt('send', 'pageview');
1454        });
1455    }
1456};
1457
1458// microsoftcampaignanalytics
1459tarteaucitron.services.microsoftcampaignanalytics = {
1460    "key": "microsoftcampaignanalytics",
1461    "type": "analytic",
1462    "name": "Microsoft Campaign Analytics",
1463    "uri": "https://privacy.microsoft.com/privacystatement/",
1464    "needConsent": true,
1465    "cookies": [],
1466    "js": function () {
1467        "use strict";
1468        if (tarteaucitron.user.microsoftcampaignanalyticsUUID === undefined) {
1469            return;
1470        }
1471
1472        tarteaucitron.addScript('//flex.atdmt.com/mstag/site/' + tarteaucitron.user.microsoftcampaignanalyticsUUID + '/mstag.js', 'mstag_tops', function () {
1473            window.mstag = {loadTag : function () {}, time : (new Date()).getTime()};
1474            window.mstag.loadTag("analytics", {dedup: "1", domainId: tarteaucitron.user.microsoftcampaignanalyticsdomainId, type: "1", actionid: tarteaucitron.user.microsoftcampaignanalyticsactionId});
1475        });
1476    }
1477};
1478
1479// pinterest
1480tarteaucitron.services.pinterest = {
1481    "key": "pinterest",
1482    "type": "social",
1483    "name": "Pinterest",
1484    "uri": "https://about.pinterest.com/privacy-policy",
1485    "needConsent": true,
1486    "cookies": [],
1487    "js": function () {
1488        "use strict";
1489        tarteaucitron.fallback(['tacPinterest'], '');
1490        tarteaucitron.addScript('//assets.pinterest.com/js/pinit.js');
1491    },
1492    "fallback": function () {
1493        "use strict";
1494        var id = 'pinterest';
1495        tarteaucitron.fallback(['tacPinterest'], tarteaucitron.engage(id));
1496    }
1497};
1498
1499// prelinker
1500tarteaucitron.services.prelinker = {
1501    "key": "prelinker",
1502    "type": "ads",
1503    "name": "Prelinker",
1504    "uri": "http://www.prelinker.com/index/index/cgu/",
1505    "needConsent": true,
1506    "cookies": ['_sp_id.32f5', '_sp_ses.32f5'],
1507    "js": function () {
1508        "use strict";
1509        var uniqIds = [],
1510            i,
1511            uri;
1512
1513        tarteaucitron.fallback(['prelinker-canvas'], function (x) {
1514            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
1515            uniqIds.push(uniqId);
1516            return '<div id="' + uniqId + '" siteId="' + x.getAttribute('siteId') + '" bannerId="' + x.getAttribute('bannerId') + '" defaultLanguage="' + x.getAttribute('defaultLanguage') + '" tracker="' + x.getAttribute('tracker') + '"></div>';
1517        });
1518
1519        for (i = 0; i < uniqIds.length; i += 1) {
1520            uri = 'http://promo.easy-dating.org/banner/index?';
1521            uri += 'site_id=' + document.getElementById(uniqIds[i]).getAttribute('siteId') + '&';
1522            uri += 'banner_id=' + document.getElementById(uniqIds[i]).getAttribute('bannerId') + '&';
1523            uri += 'default_language=' + document.getElementById(uniqIds[i]).getAttribute('defaultLanguage') + '&';
1524            uri += 'tr4ck=' + document.getElementById(uniqIds[i]).getAttribute('trackrt');
1525
1526            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
1527        }
1528    },
1529    "fallback": function () {
1530        "use strict";
1531        var id = 'prelinker';
1532        tarteaucitron.fallback(['prelinker-canvas'], tarteaucitron.engage(id));
1533    }
1534};
1535
1536// prezi
1537tarteaucitron.services.prezi = {
1538    "key": "prezi",
1539    "type": "video",
1540    "name": "Prezi",
1541    "uri": "https://prezi.com/privacy-policy/",
1542    "needConsent": true,
1543    "cookies": [],
1544    "js": function () {
1545        "use strict";
1546        tarteaucitron.fallback(['prezi-canvas'], function (x) {
1547            var id = x.getAttribute("data-id"),
1548                width = x.getAttribute("width"),
1549                height = x.getAttribute("height"),
1550                url = 'https://prezi.com/embed/' + id + '/?bgcolor=ffffff&amp;lock_to_path=0&amp;autoplay=0&amp;autohide_ctrls=0';
1551
1552            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" allowtransparency allowfullscreen></iframe>';
1553        });
1554    },
1555    "fallback": function () {
1556        "use strict";
1557        var id = 'prezi';
1558        tarteaucitron.fallback(['prezi-canvas'], function (elem) {
1559            elem.style.width = elem.getAttribute('width') + 'px';
1560            elem.style.height = elem.getAttribute('height') + 'px';
1561            return tarteaucitron.engage(id);
1562        });
1563    }
1564};
1565
1566// pubdirecte
1567tarteaucitron.services.pubdirecte = {
1568    "key": "pubdirecte",
1569    "type": "ads",
1570    "name": "Pubdirecte",
1571    "uri": "http://pubdirecte.com/contact.php",
1572    "needConsent": true,
1573    "cookies": [],
1574    "js": function () {
1575        "use strict";
1576        var uniqIds = [],
1577            i,
1578            uri;
1579
1580        tarteaucitron.fallback(['pubdirecte-canvas'], function (x) {
1581            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
1582            uniqIds.push(uniqId);
1583            return '<div id="' + uniqId + '" pid="' + x.getAttribute('pid') + '" ref="' + x.getAttribute('ref') + '"></div>';
1584        });
1585
1586        for (i = 0; i < uniqIds.length; i += 1) {
1587            uri = '//www.pubdirecte.com/script/banniere.php?';
1588            uri += 'id=' + document.getElementById(uniqIds[i]).getAttribute('pid') + '&';
1589            uri += 'ref=' + document.getElementById(uniqIds[i]).getAttribute('ref');
1590
1591            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
1592        }
1593    },
1594    "fallback": function () {
1595        "use strict";
1596        var id = 'pubdirecte';
1597        tarteaucitron.fallback(['pubdirecte-canvas'], tarteaucitron.engage(id));
1598    }
1599};
1600
1601// purechat
1602tarteaucitron.services.purechat = {
1603    "key": "purechat",
1604    "type": "support",
1605    "name": "PureChat",
1606    "uri": "https://www.purechat.com/privacy",
1607    "needConsent": true,
1608    "cookies": [],
1609    "js": function () {
1610        "use strict";
1611        if (tarteaucitron.user.purechatId === undefined) {
1612            return;
1613        }
1614
1615        tarteaucitron.addScript('//app.purechat.com/VisitorWidget/WidgetScript', '', function () {
1616            try {
1617                window.w = new PCWidget({ c: tarteaucitron.user.purechatId, f: true });
1618            } catch (e) {}
1619        });
1620    }
1621};
1622
1623// shareaholic
1624tarteaucitron.services.shareaholic = {
1625    "key": "shareaholic",
1626    "type": "social",
1627    "name": "Shareaholic",
1628    "uri": "https://shareaholic.com/privacy/choices",
1629    "needConsent": true,
1630    "cookies": ['__utma', '__utmb', '__utmc', '__utmz', '__utmt_Shareaholic%20Pageviews'],
1631    "js": function () {
1632        "use strict";
1633        if (tarteaucitron.user.shareaholicSiteId === undefined) {
1634            return;
1635        }
1636
1637        tarteaucitron.fallback(['shareaholic-canvas'], '');
1638        tarteaucitron.addScript('//dsms0mj1bbhn4.cloudfront.net/assets/pub/shareaholic.js', '', function () {
1639            try {
1640                Shareaholic.init(tarteaucitron.user.shareaholicSiteId);
1641            } catch (e) {}
1642        });
1643    },
1644    "fallback": function () {
1645        "use strict";
1646        var id = 'shareaholic';
1647        tarteaucitron.fallback(['shareaholic-canvas'], tarteaucitron.engage(id));
1648    }
1649};
1650
1651// shareasale
1652tarteaucitron.services.shareasale = {
1653    "key": "shareasale",
1654    "type": "ads",
1655    "name": "ShareASale",
1656    "uri": "https://www.shareasale.com/PrivacyPolicy.pdf",
1657    "needConsent": true,
1658    "cookies": [],
1659    "js": function () {
1660        "use strict";
1661        var uniqIds = [],
1662            i,
1663            uri;
1664
1665        tarteaucitron.fallback(['shareasale-canvas'], function (x) {
1666            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
1667            uniqIds.push(uniqId);
1668            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>';
1669        });
1670
1671        for (i = 0; i < uniqIds.length; i += 1) {
1672            uri = 'https://shareasale.com/sale.cfm?';
1673            uri += 'amount=' + document.getElementById(uniqIds[i]).getAttribute('amount') + '&';
1674            uri += 'tracking=' + document.getElementById(uniqIds[i]).getAttribute('tracking') + '&';
1675            uri += 'transtype=' + document.getElementById(uniqIds[i]).getAttribute('transtype') + '&';
1676            uri += 'persale=' + document.getElementById(uniqIds[i]).getAttribute('persale') + '&';
1677            uri += 'perlead=' + document.getElementById(uniqIds[i]).getAttribute('perlead') + '&';
1678            uri += 'perhit=' + document.getElementById(uniqIds[i]).getAttribute('perhit') + '&';
1679            uri += 'merchantID=' + document.getElementById(uniqIds[i]).getAttribute('merchantID');
1680
1681            document.getElementById(uniqIds[i]).innerHTML = '<img src=\'' + uri + '\' width=\'1\' height=\'1\' />';
1682        }
1683    },
1684    "fallback": function () {
1685        "use strict";
1686        var id = 'shareasale';
1687        tarteaucitron.fallback(['shareasale-canvas'], tarteaucitron.engage(id));
1688    }
1689};
1690
1691// sharethis
1692tarteaucitron.services.sharethis = {
1693    "key": "sharethis",
1694    "type": "social",
1695    "name": "ShareThis",
1696    "uri": "http://www.sharethis.com/legal/privacy/",
1697    "needConsent": true,
1698    "cookies": ['__unam'],
1699    "js": function () {
1700        "use strict";
1701        if (tarteaucitron.user.sharethisPublisher === undefined) {
1702            return;
1703        }
1704        var switchTo5x = true,
1705            uri = ('https:' === document.location.protocol ? 'https://ws' : 'http://w') + '.sharethis.com/button/buttons.js';
1706
1707        tarteaucitron.fallback(['tacSharethis'], '');
1708        tarteaucitron.addScript(uri, '', function () {
1709            stLight.options({publisher: tarteaucitron.user.sharethisPublisher, doNotHash: false, doNotCopy: false, hashAddressBar: false});
1710        });
1711
1712        if (tarteaucitron.isAjax === true) {
1713            if (typeof stButtons !== "undefined") {
1714                stButtons.locateElements();
1715            }
1716        }
1717    },
1718    "fallback": function () {
1719        "use strict";
1720        var id = 'sharethis';
1721        tarteaucitron.fallback(['tacSharethis'], tarteaucitron.engage(id));
1722    }
1723};
1724
1725// slideshare
1726tarteaucitron.services.slideshare = {
1727    "key": "slideshare",
1728    "type": "video",
1729    "name": "SlideShare",
1730    "uri": "https://www.linkedin.com/legal/privacy-policy",
1731    "needConsent": true,
1732    "cookies": [],
1733    "js": function () {
1734        "use strict";
1735        tarteaucitron.fallback(['slideshare-canvas'], function (x) {
1736            var id = x.getAttribute("data-id"),
1737                width = x.getAttribute("width"),
1738                height = x.getAttribute("height"),
1739                url = '//www.slideshare.net/slideshow/embed_code/' + id;
1740
1741            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" scrolling="no" allowtransparency allowfullscreen></iframe>';
1742        });
1743    },
1744    "fallback": function () {
1745        "use strict";
1746        var id = 'slideshare';
1747        tarteaucitron.fallback(['slideshare-canvas'], function (elem) {
1748            elem.style.width = elem.getAttribute('width') + 'px';
1749            elem.style.height = elem.getAttribute('height') + 'px';
1750            return tarteaucitron.engage(id);
1751        });
1752    }
1753};
1754
1755// statcounter
1756tarteaucitron.services.statcounter = {
1757    "key": "statcounter",
1758    "type": "analytic",
1759    "name": "StatCounter",
1760    "uri": "https://fr.statcounter.com/about/legal/#privacy",
1761    "needConsent": true,
1762    "cookies": ['sc_is_visitor_unique'],
1763    "js": function () {
1764        "use strict";
1765        var uniqIds = [],
1766            i,
1767            uri = '//statcounter.com/counter/counter.js';
1768
1769        tarteaucitron.fallback(['statcounter-canvas'], function (x) {
1770            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
1771            uniqIds.push(uniqId);
1772            return '<div id="' + uniqId + '"></div>';
1773        });
1774
1775        for (i = 0; i < uniqIds.length; i += 1) {
1776            tarteaucitron.makeAsync.init(uri, uniqIds[i]);
1777        }
1778    },
1779    "fallback": function () {
1780        "use strict";
1781        var id = 'statcounter';
1782        tarteaucitron.fallback(['statcounter-canvas'], tarteaucitron.engage(id));
1783    }
1784};
1785
1786// timelinejs
1787tarteaucitron.services.timelinejs = {
1788    "key": "timelinejs",
1789    "type": "api",
1790    "name": "Timeline JS",
1791    "uri": "http://timeline.knightlab.com/#help",
1792    "needConsent": true,
1793    "cookies": [],
1794    "js": function () {
1795        "use strict";
1796        tarteaucitron.fallback(['timelinejs-canvas'], function (x) {
1797            var spreadsheet_id = x.getAttribute("spreadsheet_id"),
1798                width = x.getAttribute("width"),
1799                height = x.getAttribute("height"),
1800                lang = x.getAttribute("lang_2_letter"),
1801                font = x.getAttribute("font"),
1802                map = x.getAttribute("map"),
1803                start_at_end = x.getAttribute("start_at_end"),
1804                hash_bookmark = x.getAttribute("hash_bookmark"),
1805                start_at_slide = x.getAttribute("start_at_slide"),
1806                start_zoom = x.getAttribute("start_zoom"),
1807                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;
1808
1809            return '<iframe src="' + url + '" width="' + width + '" height="' + height + '" frameborder="0" allowtransparency allowfullscreen></iframe>';
1810        });
1811    },
1812    "fallback": function () {
1813        "use strict";
1814        var id = 'timelinejs';
1815        tarteaucitron.fallback(['timelinejs-canvas'], function (elem) {
1816            elem.style.width = elem.getAttribute('width') + 'px';
1817            elem.style.height = elem.getAttribute('height') + 'px';
1818            return tarteaucitron.engage(id);
1819        });
1820    }
1821};
1822
1823// typekit
1824tarteaucitron.services.typekit = {
1825    "key": "typekit",
1826    "type": "api",
1827    "name": "Typekit (adobe)",
1828    "uri": "http://www.adobe.com/fr/privacy.html",
1829    "needConsent": true,
1830    "cookies": [],
1831    "js": function () {
1832        "use strict";
1833        if (tarteaucitron.user.typekitId === undefined) {
1834            return;
1835        }
1836        tarteaucitron.addScript('//use.typekit.net/' + tarteaucitron.user.typekitId + '.js', '', function () {
1837            try {
1838                Typekit.load();
1839            } catch (e) {}
1840        });
1841    }
1842};
1843
1844// twenga
1845tarteaucitron.services.twenga = {
1846    "key": "twenga",
1847    "type": "ads",
1848    "name": "Twenga",
1849    "uri": "http://www.twenga.com/privacy.php",
1850    "needConsent": true,
1851    "cookies": [],
1852    "js": function () {
1853        "use strict";
1854
1855        if (tarteaucitron.user.twengaId === undefined || tarteaucitron.user.twengaLocale === undefined) {
1856            return;
1857        }
1858
1859        tarteaucitron.addScript('//tracker.twenga.' + tarteaucitron.user.twengaLocale + '/st/tracker_' + tarteaucitron.user.twengaId + '.js');
1860    }
1861};
1862
1863// instagram
1864tarteaucitron.services.instagram = {
1865    "key": "instagram",
1866    "type": "social",
1867    "name": "Instagram",
1868    "uri": "https://www.instagram.com/legal/privacy/",
1869    "needConsent": true,
1870    "cookies": ['shbts', 'sessionid', 'csrftoken', 'rur', 'shbid', 'mid', 'ds_usr_id', 'ig_did', 'ig_cb', 'datr'],
1871    "js": function () {
1872        "use strict";
1873        tarteaucitron.fallback(['instagram_post'], function (x) {
1874            var frame_title = tarteaucitron.fixSelfXSS(x.getAttribute("title") || 'Instagram iframe'),
1875                post_id = x.getAttribute('postId'),
1876                post_permalink = x.getAttribute('data-instgrm-permalink'),
1877                embed_width = x.getAttribute('width'),
1878                embed_height = x.getAttribute('height'),
1879                frame_width,
1880                frame_height,
1881                post_frame;
1882
1883            if (post_permalink != null) {
1884                tarteaucitron.addScript('//www.instagram.com/embed.js', 'instagram-embed');
1885
1886                return '';
1887            }
1888
1889            if (post_id === undefined) {
1890                return "";
1891            }
1892
1893            if (embed_width !== undefined) {
1894                frame_width = 'width="' + embed_width + '" ';
1895            } else {
1896                frame_width = '"" ';
1897            }
1898            if (embed_height !== undefined) {
1899                frame_height = 'height="' + embed_height + '" ';
1900            } else {
1901                frame_height = '"" ';
1902            }
1903
1904            post_frame = '<iframe title="' + frame_title + '" src="//www.instagram.com/' + post_id + '/embed" ' + frame_width + frame_height + '></iframe>';
1905
1906            return post_frame;
1907        });
1908    },
1909    "fallback": function () {
1910        "use strict";
1911        var id = 'instagram';
1912        tarteaucitron.fallback(['instagram_post'], function (elem) {
1913            elem.style.width = elem.getAttribute('width') + 'px';
1914            elem.style.height = elem.getAttribute('height') + 'px';
1915            return tarteaucitron.engage(id);
1916        });
1917    }
1918};
1919
1920// twitter
1921tarteaucitron.services.twitter = {
1922    "key": "twitter",
1923    "type": "social",
1924    "name": "Twitter",
1925    "uri": "https://support.twitter.com/articles/20170514",
1926    "needConsent": true,
1927    "cookies": [],
1928    "js": function () {
1929        "use strict";
1930        tarteaucitron.fallback(['tacTwitter'], '');
1931        tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs');
1932    },
1933    "fallback": function () {
1934        "use strict";
1935        var id = 'twitter';
1936        tarteaucitron.fallback(['tacTwitter'], tarteaucitron.engage(id));
1937    }
1938};
1939
1940// twitter embed
1941tarteaucitron.services.twitterembed = {
1942    "key": "twitterembed",
1943    "type": "social",
1944    "name": "Twitter (cards)",
1945    "uri": "https://support.twitter.com/articles/20170514",
1946    "needConsent": true,
1947    "cookies": [],
1948    "js": function () {
1949        "use strict";
1950        var uniqIds = [],
1951            i,
1952            e,
1953            html;
1954
1955        tarteaucitron.fallback(['twitterembed-canvas'], function (x) {
1956            var uniqId = '_' + Math.random().toString(36).substr(2, 9);
1957            uniqIds.push(uniqId);
1958            html = '<div id="' + uniqId + '" ';
1959            html += 'tweetid="' + x.getAttribute('tweetid') + '" ';
1960            html += 'theme="' + x.getAttribute('theme') + '" ';
1961            html += 'cards="' + x.getAttribute('cards') + '" ';
1962            html += 'conversation="' + x.getAttribute('conversation') + '" ';
1963            html += 'data-width="' + x.getAttribute('data-width') + '" ';
1964            html += 'data-align="' + x.getAttribute('data-align') + '" ';
1965            html += '></div>';
1966            return html;
1967        });
1968
1969        tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs', function () {
1970            for (i = 0; i < uniqIds.length; i += 1) {
1971                e = document.getElementById(uniqIds[i]);
1972                twttr.widgets.createTweet(
1973                    e.getAttribute('tweetid'),
1974                    e,
1975                    {
1976                        theme: e.getAttribute('theme'),
1977                        cards: e.getAttribute('cards'),
1978                        conversation: e.getAttribute('conversation'),
1979                        lang: tarteaucitron.getLanguage(),
1980                        dnt: true,
1981                        width: e.getAttribute('data-width'),
1982                        align: e.getAttribute('data-align')
1983                    }
1984                );
1985            }
1986        });
1987    },
1988    "fallback": function () {
1989        "use strict";
1990        var id = 'twitterembed';
1991        tarteaucitron.fallback(['twitterembed-canvas'], function (elem) {
1992            elem.style.width = elem.getAttribute('data-width') + 'px';
1993            return tarteaucitron.engage(id);
1994        });
1995    }
1996};
1997
1998// twitter timeline
1999tarteaucitron.services.twittertimeline = {
2000    "key": "twittertimeline",
2001    "type": "social",
2002    "name": "Twitter (timelines)",
2003    "uri": "https://support.twitter.com/articles/20170514",
2004    "needConsent": true,
2005    "cookies": [],
2006    "js": function () {
2007        "use strict";
2008        tarteaucitron.fallback(['tacTwitterTimelines'], '');
2009        tarteaucitron.addScript('//platform.twitter.com/widgets.js', 'twitter-wjs');
2010    },
2011    "fallback": function () {
2012        "use strict";
2013        var id = 'twittertimeline';
2014        tarteaucitron.fallback(['tacTwitterTimelines'], tarteaucitron.engage(id));
2015    }
2016};
2017
2018// user voice
2019tarteaucitron.services.uservoice = {
2020    "key": "uservoice",
2021    "type": "support",
2022    "name": "UserVoice",
2023    "uri": "https://www.uservoice.com/privacy/",
2024    "needConsent": true,
2025    "cookies": [],
2026    "js": function () {
2027        "use strict";
2028        if (tarteaucitron.user.userVoiceApi === undefined) {
2029            return;
2030        }
2031        tarteaucitron.addScript('//widget.uservoice.com/' + tarteaucitron.user.userVoiceApi + '.js');
2032    }
2033};
2034
2035// vimeo
2036tarteaucitron.services.vimeo = {
2037    "key": "vimeo",
2038    "type": "video",
2039    "name": "Vimeo",
2040    "uri": "http://vimeo.com/privacy",
2041    "needConsent": true,
2042    "cookies": ['__utmt_player', '__utma', '__utmb', '__utmc', '__utmv', 'vuid', '__utmz', 'player'],
2043    "js": function () {
2044        "use strict";
2045        tarteaucitron.fallback(['vimeo_player'], function (x) {
2046            var video_id = x.getAttribute("videoID"),
2047                video_width = x.getAttribute("width"),
2048                frame_width = 'width=',
2049                video_height = x.getAttribute("height"),
2050                frame_height = 'height=',
2051                video_frame;
2052
2053            if (video_id === undefined) {
2054                return "";
2055            }
2056            if (video_width !== undefined) {
2057                frame_width += '"' + video_width + '" ';
2058            } else {
2059                frame_width += '"" ';
2060            }
2061            if (video_height !== undefined) {
2062                frame_height +=  '"' + video_height + '" ';
2063            } else {
2064                frame_height += '"" ';
2065            }
2066            video_frame = '<iframe src="//player.vimeo.com/video/' + video_id + '" ' + frame_width + frame_height + ' frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
2067            return video_frame;
2068        });
2069    },
2070    "fallback": function () {
2071        "use strict";
2072        var id = 'vimeo';
2073        tarteaucitron.fallback(['vimeo_player'], function (elem) {
2074            elem.style.width = elem.getAttribute('width') + 'px';
2075            elem.style.height = elem.getAttribute('height') + 'px';
2076            return tarteaucitron.engage(id);
2077        });
2078    }
2079};
2080
2081// visualrevenue
2082tarteaucitron.services.visualrevenue = {
2083    "key": "visualrevenue",
2084    "type": "analytic",
2085    "name": "VisualRevenue",
2086    "uri": "http://www.outbrain.com/legal/privacy-713/",
2087    "needConsent": true,
2088    "cookies": ['__vrf', '__vrm', '__vrl', '__vry', '__vru', '__vrid', '__vrz'],
2089    "js": function () {
2090        "use strict";
2091        if (tarteaucitron.user.visualrevenueId === undefined) {
2092            return;
2093        }
2094        window._vrq = window._vrq || [];
2095        window._vrq.push(['id', tarteaucitron.user.visualrevenueId]);
2096        window._vrq.push(['automate', true]);
2097        window._vrq.push(['track', function () {}]);
2098        tarteaucitron.addScript('http://a.visualrevenue.com/vrs.js');
2099    }
2100};
2101
2102// vshop
2103tarteaucitron.services.vshop = {
2104    "key": "vshop",
2105    "type": "ads",
2106    "name": "vShop",
2107    "uri": "http://vshop.fr/privacy-policy",
2108    "needConsent": true,
2109    "cookies": [],
2110    "js": function () {
2111        "use strict";
2112        tarteaucitron.fallback(['vcashW'], '');
2113        tarteaucitron.addScript('//vshop.fr/js/w.js');
2114    },
2115    "fallback": function () {
2116        "use strict";
2117        var id = 'vshop';
2118        tarteaucitron.fallback(['vcashW'], tarteaucitron.engage(id));
2119    }
2120};
2121
2122// wysistat
2123tarteaucitron.services.wysistat = {
2124    "key": "wysistat",
2125    "type": "analytic",
2126    "name": "Wysisinsttat",
2127    "uri": "http://wysistat.net/contact/",
2128    "needConsent": true,
2129    "cookies": ['Wysistat'],
2130    "js": function () {
2131        "use strict";
2132        if (tarteaucitron.user.wysistat === undefined) {
2133            return;
2134        }
2135        tarteaucitron.addScript('//www.wysistat.com/statistique.js', '', function () {
2136            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);
2137        });
2138    }
2139};
2140
2141// xiti
2142tarteaucitron.services.xiti = {
2143    "key": "xiti",
2144    "type": "analytic",
2145    "name": "Xiti",
2146    "uri": "http://www.atinternet.com/politique-du-respect-de-la-vie-privee/",
2147    "needConsent": true,
2148    "cookies": [],
2149    "js": function () {
2150        "use strict";
2151        if (tarteaucitron.user.xitiId === undefined) {
2152            return;
2153        }
2154
2155        // HACK KALIOP:
2156        // Use custom xiti lib instead code below (see here Inra/CommonBundle/Resources/public/js/xiti.js)
2157        //
2158        // var Xt_param = 's=' + tarteaucitron.user.xitiId + '&p=',
2159        //     Xt_r,ram
2160        //     Xt_h,
2161        //     Xt_i,
2162        //     Xt_s,
2163        //     div = document.createElement('div');
2164        // try {
2165        //     Xt_r = top.document.referrer;
2166        // } catch (e) {
2167        //     Xt_r = document.referrer;
2168        // }
2169        // Xt_h = new Date();
2170        // Xt_i = '<img style="display:none" border="0" alt="" ';
2171        // Xt_i += 'src="http://logv3.xiti.com/hit.xiti?' + Xt_param;
2172        // Xt_i += '&hl=' + Xt_h.getHours() + 'x' + Xt_h.getMinutes() + 'x' + Xt_h.getSeconds();
2173        // if (parseFloat(navigator.appVersion) >= 4) {
2174        //     Xt_s = screen;
2175        //     Xt_i += '&r=' + Xt_s.width + 'x' + Xt_s.height + 'x' + Xt_s.pixelDepth + 'x' + Xt_s.colorDepth;
2176        // }
2177        //
2178        // div.innerHTML = Xt_i + '&ref=' + Xt_r.replace(/[<>"]/g, '').replace(/&/g, '$') + '" title="Internet Audience">';
2179        // document.getElementsByTagName('body')[0].appendChild(div.firstChild);
2180        //
2181        // END HACK KALIOP
2182
2183        if (typeof tarteaucitron.user.xitiMore === 'function') {
2184            tarteaucitron.user.xitiMore();
2185        }
2186    }
2187};
2188
2189// youtube
2190tarteaucitron.services.youtube = {
2191    "key": "youtube",
2192    "type": "video",
2193    "name": "YouTube",
2194    "uri": "https://www.google.fr/intl/fr/policies/privacy/",
2195    "needConsent": true,
2196    "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP'],
2197    "js": function () {
2198        "use strict";
2199        tarteaucitron.fallback(['youtube_player'], function (x) {
2200            var video_id = x.getAttribute("videoID"),
2201                video_width = x.getAttribute("width"),
2202                frame_width = 'width=',
2203                video_height = x.getAttribute("height"),
2204                frame_height = 'height=',
2205                video_frame,
2206                params = 'theme=' + x.getAttribute("theme") + '&rel=' + x.getAttribute("rel") + '&controls=' + x.getAttribute("controls") + '&showinfo=' + x.getAttribute("showinfo") + '&autoplay=' + x.getAttribute("autoplay");
2207
2208            if (video_id === undefined) {
2209                return "";
2210            }
2211            if (video_width !== undefined) {
2212                frame_width += '"' + video_width + '" ';
2213            } else {
2214                frame_width += '"" ';
2215            }
2216            if (video_height !== undefined) {
2217                frame_height +=  '"' + video_height + '" ';
2218            } else {
2219                frame_height += '"" ';
2220            }
2221
2222            if (video_id.substring(0, 9) === 'playlist:') { // if video ID begins with "PL", this is a playlist and the embed code is different than a standard video
2223                // Example of playlist iframe URL https://www.youtube.com/embed/videoseries?list=PL4AjK9XnGZ96AMJETbzq2TBi8eG7EtuvE
2224                video_frame = '<iframe type="text/html" ' + frame_width + frame_height + ' src="//www.youtube-nocookie.com/embed/videoseries?list=' + video_id.substring(9) + '&' + params + '" frameborder="0" allowfullscreen></iframe>';
2225            }
2226            else {
2227                video_frame = '<iframe type="text/html" ' + frame_width + frame_height + ' src="//www.youtube-nocookie.com/embed/' + video_id + '?' + params + '" frameborder="0" allowfullscreen></iframe>';
2228            }
2229            return video_frame;
2230        });
2231    },
2232    "fallback": function () {
2233        "use strict";
2234        var id = 'youtube';
2235        tarteaucitron.fallback(['youtube_player'], function (elem) {
2236            elem.style.width = elem.getAttribute('width') + 'px';
2237            elem.style.height = elem.getAttribute('height') + 'px';
2238            return tarteaucitron.engage(id);
2239        });
2240    }
2241};
2242
2243// youtube playlist
2244tarteaucitron.services.youtubeplaylist = {
2245    "key": "youtubeplaylist",
2246    "type": "video",
2247    "name": "YouTube (playlist)",
2248    "uri": "https://www.google.fr/intl/fr/policies/privacy/",
2249    "needConsent": true,
2250    "cookies": ['VISITOR_INFO1_LIVE', 'YSC', 'PREF', 'GEUP'],
2251    "js": function () {
2252        "use strict";
2253        tarteaucitron.fallback(['youtube_playlist_player'], function (x) {
2254            var playlist_id = x.getAttribute("playlistID"),
2255                video_width = x.getAttribute("width"),
2256                frame_width = 'width=',
2257                video_height = x.getAttribute("height"),
2258                frame_height = 'height=',
2259                video_frame,
2260                params = 'theme=' + x.getAttribute("theme") + '&rel=' + x.getAttribute("rel") + '&controls=' + x.getAttribute("controls") + '&showinfo=' + x.getAttribute("showinfo") + '&autoplay=' + x.getAttribute("autoplay");
2261
2262            if (playlist_id === undefined) {
2263                return "";
2264            }
2265            if (video_width !== undefined) {
2266                frame_width += '"' + video_width + '" ';
2267            } else {
2268                frame_width += '"" ';
2269            }
2270            if (video_height !== undefined) {
2271                frame_height +=  '"' + video_height + '" ';
2272            } else {
2273                frame_height += '"" ';
2274            }
2275            video_frame = '<iframe type="text/html" ' + frame_width + frame_height + ' src="//www.youtube-nocookie.com/embed/videoseries?list=' + playlist_id + '&' + params + '" frameborder="0"></iframe>';
2276            return video_frame;
2277        });
2278    },
2279    "fallback": function () {
2280        "use strict";
2281        var id = 'youtubeplaylist';
2282        tarteaucitron.fallback(['youtube_playlist_player'], function (elem) {
2283            elem.style.width = elem.getAttribute('width') + 'px';
2284            elem.style.height = elem.getAttribute('height') + 'px';
2285            return tarteaucitron.engage(id);
2286        });
2287    }
2288};
2289
2290// zopim
2291tarteaucitron.services.zopim = {
2292    "key": "zopim",
2293    "type": "support",
2294    "name": "Zopim",
2295    "uri": "https://www.zopim.com/privacy",
2296    "needConsent": true,
2297    "cookies": ['__zlcid', '__zprivacy'],
2298    "js": function () {
2299        "use strict";
2300        if (tarteaucitron.user.zopimID === undefined) {
2301            return;
2302        }
2303        tarteaucitron.addScript('//v2.zopim.com/?' + tarteaucitron.user.zopimID);
2304    }
2305};
2306
2307// xiti smartTag
2308tarteaucitron.services.xiti_smarttag = {
2309    "key": "xiti_smarttag",
2310    "type": "analytic",
2311    "name": "Xiti (SmartTag)",
2312    "uri": "https://www.atinternet.com/societe/protection-des-donnees/",
2313    "needConsent": true,
2314    "cookies": ["atidvisitor", "atreman", "atredir", "atsession", "atuserid", "attvtreman", "attvtsession"],
2315    "js": function () {
2316        "use strict";
2317        if (tarteaucitron.user.smarttag === undefined) {
2318            return;
2319        }
2320        if (typeof tarteaucitron.user.smarttagFunction === 'function') {
2321            tarteaucitron.user.smarttagFunction();
2322        }
2323    }
2324};
2325
2326// facebook pixel
2327tarteaucitron.services.facebookpixel = {
2328    "key": "facebookpixel",
2329    "type": "ads",
2330    "name": "Facebook Pixel",
2331    "uri": "https://fr-fr.facebook.com/business/help/www/651294705016616",
2332    "needConsent": true,
2333    "cookies": ['datr', 'fr', 'reg_ext_ref', 'reg_fb_gate', 'reg_fb_ref', 'sb', 'wd', 'x-src'],
2334    "js": function () {
2335        "use strict";
2336        var n;
2337        if(window.fbq)return;
2338        n=window.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ;
2339        if(!window._fbq)window._fbq=n;
2340        n.push=n;
2341        n.loaded=!0;
2342        n.version='2.0';
2343        n.queue=[];
2344        tarteaucitron.addScript('https://connect.facebook.net/en_US/fbevents.js');
2345        fbq('init', tarteaucitron.user.facebookpixelId);
2346        fbq('track', 'PageView');
2347
2348        if (typeof tarteaucitron.user.facebookpixelMore === 'function') {
2349            tarteaucitron.user.facebookpixelMore();
2350        }
2351    }
2352};
2353
2354//Issuu
2355tarteaucitron.services.issuu = {
2356    "key": "issuu",
2357    "type": "other",
2358    "name": "Issuu",
2359    "uri": "https://issuu.com/legal/privacy",
2360    "needConsent": true,
2361    "cookies": ['__qca', 'iutk', 'mc'],
2362    "js": function () {
2363        "use strict";
2364        tarteaucitron.fallback(['issuu_player'], function (x) {
2365            var issuu_id = x.getAttribute("issuuID"),
2366                issuu_width = x.getAttribute("width"),
2367                frame_width = 'width=',
2368                issuu_height = x.getAttribute("height"),
2369                frame_height = 'height=',
2370                issuu_frame;
2371
2372            if (issuu_id === undefined) {
2373                return "";
2374            }
2375            if (issuu_width !== undefined) {
2376                frame_width += '"' + issuu_width + '" ';
2377            } else {
2378                frame_width += '"" ';
2379            }
2380            if (issuu_height !== undefined) {
2381                frame_height +=  '"' + issuu_height + '" ';
2382            } else {
2383                frame_height += '"" ';
2384            }
2385            issuu_frame = '<iframe type="text/html" ' + frame_width + frame_height + ' src="//e.issuu.com/embed.html#' + issuu_id + '" frameborder="0"></iframe>';
2386            return issuu_frame;
2387        });
2388    },
2389    "fallback": function () {
2390        "use strict";
2391        var id = 'issuu';
2392        tarteaucitron.fallback(['issuu_player'], function (elem) {
2393            elem.style.width = elem.getAttribute('width') + 'px';
2394            elem.style.height = elem.getAttribute('height') + 'px';
2395            return tarteaucitron.engage(id);
2396        });
2397    }
2398};
2399
2400// webmecanik
2401tarteaucitron.services.webmecanik = {
vendor: 5,148 bytes, lines 2402-2558
2402    "key": "webmecanik",
2403    "type": "analytic",
2404    "name": "Webmecanik",
2405    "uri": "https://webmecanik.com/tos",
2406    "needConsent": true,
2407    "cookies": ['mtc_id', 'mtc_sid'],
2408    "js": function () {
2409        "use strict";
2410        if (tarteaucitron.user.webmecanikurl === undefined) {
2411            return;
2412        }
2413        window['WebmecanikTrackingObject'] = 'mt';
2414        window['mt'] = window['mt'] || function() {
2415            (window['mt'].q = window['mt'].q || []).push(arguments);
2416        };
2417
2418        tarteaucitron.addScript(tarteaucitron.user.webmecanikurl, '', function() {
2419            mt('send', 'pageview');
2420        });
2421    }
2422};
2423
2424// google analytics multiple
2425tarteaucitron.services.multiplegtag = {
2426    "key": "multiplegtag",
2427    "type": "analytic",
2428    "name": "Google Analytics (gtag.js)",
2429    "uri": "https://support.google.com/analytics/answer/6004245",
2430    "needConsent": true,
2431    "cookies": (function () {
2432
2433        var cookies = ['_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz'];
2434
2435        if (tarteaucitron.user.multiplegtagUa !== undefined) {
2436            tarteaucitron.user.multiplegtagUa.forEach(function(ua) {
2437                cookies.push('_gat_gtag_' + ua.replace(/-/g, '_'));
2438            });
2439        }
2440
2441        return cookies;
2442    })(),
2443    "js": function () {
2444        "use strict";
2445        window.dataLayer = window.dataLayer || [];
2446
2447        tarteaucitron.user.multiplegtagUa.forEach(function(ua) {
2448
2449            tarteaucitron.addScript('https://www.googletagmanager.com/gtag/js?id=' + ua, '', function () {
2450                window.gtag = function gtag(){dataLayer.push(arguments);}
2451                gtag('js', new Date());
2452                gtag('config', ua);
2453            });
2454        });
2455    }
2456};
2457
2458// Koban
2459tarteaucitron.services.koban = {
2460    "key": "koban",
2461    "type": "analytic",
2462    "name": "Koban",
2463    "uri": "https://koban.cloud/tos",
2464    "needConsent": true,
2465    "cookies": ['kbntrk'],
2466    "js": function () {
2467        "use strict";
2468        if (tarteaucitron.user.kobanurl === undefined) {
2469            return;
2470        }
2471        if (tarteaucitron.user.kobanapi === undefined) {
2472            return;
2473        }
2474        window.KobanObject = 'kb';
2475        window.kb = window.kb || function() {
2476            window.kb.q = window.kb.q || [];
2477            window.kb.q.push(arguments);
2478        };
2479        window.kb.l = new Date();
2480        kb('reg', tarteaucitron.user.kobanapi);
2481        tarteaucitron.addScript(tarteaucitron.user.kobanurl, '', function() {
2482        });
2483    }
2484};
2485
2486// matomo
2487
2488/*
2489    1. Set the following variable before the initialization :
2490
2491    tarteaucitron.user.matomoId = YOUR_SITE_ID_FROM_MATOMO;
2492    tarteaucitron.user.matomoHost = "YOUR_MATOMO_URL"; //eg: https://stat.mydomain.com/
2493
2494    2. Push the service :
2495
2496    (tarteaucitron.job = tarteaucitron.job || []).push('matomo');
2497
2498    3. HTML
2499    You don't need to add any html code, if the service is autorized, the javascript is added. otherwise no.
2500 */
2501tarteaucitron.services.matomo = {
2502    "key": "matomo",
2503    "type": "analytic",
2504    "name": "Matomo (formerly known as Piwik)",
2505    "uri": "https://matomo.org/faq/general/faq_146/",
2506    "needConsent": false,
2507    "cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'piwik_ignore', '_pk_uid'],
2508    "js": function () {
2509        "use strict";
2510        if (tarteaucitron.user.matomoId === undefined) {
2511            return;
2512        }
2513
2514        if (typeof tarteaucitron.user.matomoFunction === 'function') {
2515            tarteaucitron.user.matomoFunction();
2516        }
2517    }
2518};
2519
2520// Hotjar
2521/*
2522   1. Set the following variable before the initialization :
2523    tarteaucitron.user.hotjarId = YOUR_WEBSITE_ID;
2524   tarteaucitron.user.HotjarSv = XXXX; // Can be found in your website tracking code as "hjvs=XXXX"
2525    2. Push the service :
2526    (tarteaucitron.job = tarteaucitron.job || []).push('hotjar');
2527    3. HTML
2528   You don't need to add any html code, if the service is autorized, the javascript is added. otherwise no.
2529 */
2530tarteaucitron.services.hotjar = {
2531    "key": "hotjar",
2532    "type": "analytic",
2533    "name": "Hotjar",
2534    "uri": "https://help.hotjar.com/hc/en-us/categories/115001323967-About-Hotjar",
2535    "needConsent": true,
2536    "cookies": ["hjClosedSurveyInvites", "_hjDonePolls", "_hjMinimizedPolls", "_hjDoneTestersWidgets", "_hjMinimizedTestersWidgets", "_hjDoneSurveys", "_hjIncludedInSample", "_hjShownFeedbackMessage"],
2537    "js": function () {
2538        "use strict";
2539        if (tarteaucitron.user.hotjarId === undefined || tarteaucitron.user.HotjarSv === undefined) {
2540            return;
2541        }
2542        window.hj = window.hj || function() {
2543            (window.hj.q = window.hj.q || []).push(arguments)
2544        };
2545        window._hjSettings = {
2546            hjid: tarteaucitron.user.hotjarId,
2547            hjsv: tarteaucitron.user.HotjarSv
2548        };
2549        var uri = 'https://static.hotjar.com/c/hotjar-';
2550        var extension = '.js?sv=';
2551        tarteaucitron.addScript(uri + window._hjSettings.hjid + extension + window._hjSettings.hjsv);
2552    }
2553};
2554
2555// bing ads universal event tracking
2556tarteaucitron.services.bingads = {
2557    'key': 'bingads',
2558    'type': 'ads',
2559    'name': 'Bing Ads Universal Event Tracking',
2560    'uri': 'https://advertise.bingads.microsoft.com/en-us/resources/policies/personalized-ads',
2561    'needConsent': true,
2562    'cookies': ['_uetmsclkid'],
2563    'js': function () {
2564        'use strict';
2565        var u = tarteaucitron.user.bingadsTag || 'uetq';
2566        window[u] = window[u] || [];
2567
2568        tarteaucitron.addScript('https://bat.bing.com/bat.js', '', function () {
2569            var bingadsCreate = {ti: tarteaucitron.user.bingadsID};
2570
2571            if ('bingadsStoreCookies' in tarteaucitron.user) {
2572                bingadsCreate['storeConvTrackCookies'] = tarteaucitron.user.bingadsStoreCookies;
2573            }
2574
2575            bingadsCreate.q = window[u];
2576            window[u] = new UET(bingadsCreate);
2577            window[u].push('pageload');
2578        });
2579    }
2580};
2581
2582//Matterport
2583/*
2584SERVICE INIT
2585    (tarteaucitron.job = tarteaucitron.job || []).push('matterport');
2586
2587HTML TAG
2588    <div class="matterport" matterportid="N2Q67sZUNUd" width="100%" height="550" parameters="&play=1"></div>
2589
2590DELETE IFRAME
2591    <iframe type="text/html" width="100%" height="550" src="https://my.matterport.com/show/?m=N2Q67sZUNUd&utm_source=hit-content&play=1" frameborder="0" allowfullscreen="allowfullscreen"></iframe>'
2592 */
2593tarteaucitron.services.matterport = {
2594    "key": "matterport",
2595    "type": "other",
2596    "name": "Matterport",
2597    "uri": "https://matterport.com/es/legal/privacy-policy/",
2598    "needConsent": true,
2599    "cookies": ['__cfduid', 'ajs_anonymous_id', 'ajs_group_id', 'ajs_user_id'],
2600    "js": function () {
2601        "use strict";
2602        tarteaucitron.fallback(['matterport'], function (x) {
2603            var matterport_id = x.getAttribute("matterportID"),
2604                matterport_width = x.getAttribute("width"),
2605                frame_width = 'width=',
2606                matterport_height = x.getAttribute("height"),
2607                frame_height = 'height=',
2608                matterport_parameters = x.getAttribute("parameters"),
2609                matterport_frame;
2610
2611            if (matterport_id === undefined) {
2612                return "";
2613            }
2614            if (matterport_width !== undefined) {
2615                frame_width += '"' + matterport_width + '" ';
2616            } else {
2617                frame_width += '"" ';
2618            }
2619            if (matterport_height !== undefined) {
2620                frame_height += '"' + matterport_height + '" ';
2621            } else {
2622                frame_height += '"" ';
2623            }
2624            if (matterport_parameters === undefined) {
2625                return "";
2626            }
2627
2628            matterport_frame = '<iframe type="text/html" ' + frame_width + frame_height + ' src="https://my.matterport.com/show/?m=' + matterport_id + '&utm_source=hit-content' + matterport_parameters + '" frameborder="0" allowfullscreen="allowfullscreen"></iframe>';
2629            return matterport_frame;
2630        });
2631    },
2632    "fallback": function () {
2633        "use strict";
2634        var id = 'matterport';
2635        tarteaucitron.fallback(['matterport'], function (elem) {
2636            elem.style.width = elem.getAttribute('width') + 'px';
2637            elem.style.height = elem.getAttribute('height') + 'px';
2638            return tarteaucitron.engage(id);
2639        });
2640    }
2641};
2642
2643// Adform
2644tarteaucitron.services.adform = {
2645    "key": "adform",
2646    "type": "ads",
2647    "name": "Adform",
2648    "uri": "https://site.adform.com/privacy-center/overview/",
2649    "needConsent": true,
2650    "cookies": [],
2651    "js": function () {
2652        "use strict";
2653
2654        if (tarteaucitron.user.adformpm === undefined || tarteaucitron.user.adformpagename === undefined) {
2655            return;
2656        }
2657
2658        window._adftrack = {
2659            pm: tarteaucitron.user.adformpm,
2660            divider: encodeURIComponent('|'),
2661            pagename: encodeURIComponent(tarteaucitron.user.adformpagename)
2662        };
2663
2664        tarteaucitron.addScript("https://track.adform.net/serving/scripts/trackpoint/async/");
2665    }
2666};
2667
2668// Active Campaign
2669tarteaucitron.services.activecampaign = {
2670    "key": "activecampaign",
2671    "type": "ads",
2672    "name": "Active Campaign",
2673    "uri": "https://www.activecampaign.com/privacy-policy/",
2674    "needConsent": true,
2675    "cookies": [],
2676    "js": function () {
2677        "use strict";
2678        if (tarteaucitron.user.actid === undefined) {
2679            return;
2680        }
2681
2682        window.trackcmp_email = '';
2683
2684        tarteaucitron.addScript('https://trackcmp.net/visit?actid='+tarteaucitron.user.actid+'&e='+encodeURIComponent(trackcmp_email)+'&r='+encodeURIComponent(document.referrer)+'&u='+encodeURIComponent(window.location.href));
2685    }
2686};
2687
2688// tawk.to
2689tarteaucitron.services.tawkto = {
vendor: 8,494 bytes, lines 2690-2901
2690    "key": "tawkto",
2691    "type": "support",
2692    "name": "Tawk.to chat",
2693    "uri": "https://www.tawk.to/data-protection/",
2694    "needConsent": true,
2695    "cookies": [],
2696    "js": function () {
2697        "use strict";
2698        if (tarteaucitron.user.tawktoId === undefined) {
2699            return;
2700        }
2701
2702        window.Tawk_API=window.Tawk_API||{};
2703        window.Tawk_LoadStart=new Date();
2704
2705        tarteaucitron.addScript('https://embed.tawk.to/' + tarteaucitron.user.tawktoId + '/default');
2706    }
2707
2708};
2709
2710// getquanty
2711tarteaucitron.services.getquanty = {
2712    "key": "getquanty",
2713    "type": "analytic",
2714    "name": "GetQuanty",
2715    "uri": "https://www.getquanty.com/mentions-legales/",
2716    "needConsent": true,
2717    "cookies": [],
2718    "js": function () {
2719        "use strict";
2720        if (tarteaucitron.user.getguanty === undefined) {
2721            return;
2722        }
2723
2724        window.webleads_site_ids = window.webleads_site_ids || [];
2725        window.webleads_site_ids.push(tarteaucitron.user.getguanty);
2726
2727        tarteaucitron.addScript('https://stats.webleads-tracker.com/js');
2728        tarteaucitron.addScript('https://get.smart-data-systems.com/track?site_id=' + tarteaucitron.user.getguanty);
2729    }
2730};
2731
2732// Google Docs
2733tarteaucitron.services.gdocs = {
2734    "key": "gdocs",
2735    "type": "other",
2736    "name": "Google Docs (sheets, slides...)",
2737    "needConsent": true,
2738    "cookies": ["CONSENT", "NID"],
2739    "uri": "https://policies.google.com/privacy",
2740    "js": function () {
2741        "use strict";
2742        tarteaucitron.fallback(['gdocs_embed'], function (x) {
2743            var width = tarteaucitron.getElemWidth(x),
2744                height = tarteaucitron.getElemHeight(x),
2745                datasource = x.getAttribute('data-url');
2746            return "<iframe loading=\"lazy\" frameborder=\"0\" allowtransparency=\"true\" allow=\"fullscreen\" scrolling=\"auto\" width=\"" + width + "\" height=\"" + height + "\" src=\"" + datasource + "\" style=\"border-width:0\" sandbox=\"allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-forms\"></iframe>";
2747        });
2748    },
2749    "fallback": function () {
2750        "use strict";
2751        var id = "gdocs";
2752        tarteaucitron.fallback(["gdocs_embed"], tarteaucitron.engage(id));
2753    }
2754};
2755
2756// Google Forms
2757tarteaucitron.services.gforms = {
2758    "key": "gforms",
2759    "type": "other",
2760    "name": "Google Forms",
2761    "needConsent": true,
2762    "cookies": ["CONSENT", "NID"],
2763    "uri": "https://policies.google.com/privacy",
2764    "js": function () {
2765        "use strict";
2766        tarteaucitron.fallback(['gforms_embed'], function (x) {
2767            var width = tarteaucitron.getElemWidth(x),
2768                height = tarteaucitron.getElemHeight(x),
2769                datasource = x.getAttribute('data-url');
2770            return "<iframe loading=\"lazy\" frameborder=\"0\" allowtransparency=\"true\" allow=\"fullscreen\" scrolling=\"auto\" width=\"" + width + "\" height=\"" + height + "\" src=\"" + datasource + "\" style=\"border-width:0\" sandbox=\"allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox\"></iframe>";
2771        });
2772    },
2773    "fallback": function () {
2774        "use strict";
2775        var id = "gforms";
2776        tarteaucitron.fallback(['gforms_embed'], tarteaucitron.engage(id));
2777    }
2778};
2779
2780// Google Agenda
2781tarteaucitron.services.gagenda = {
2782    "key": "gagenda",
2783    "type": "other",
2784    "name": "Google Agenda",
2785    "needConsent": true,
2786    "cookies": ["CONSENT", "NID"],
2787    "uri": "https://policies.google.com/privacy",
2788    "js": function () {
2789        "use strict";
2790        tarteaucitron.fallback(['gagenda_embed'], function (x) {
2791            var width = tarteaucitron.getElemWidth(x),
2792                height = tarteaucitron.getElemHeight(x),
2793                datasource = x.getAttribute('data-url');
2794            return "<iframe loading=\"lazy\" frameborder=\"0\" allowtransparency=\"true\" allow=\"fullscreen\" scrolling=\"auto\" width=\"" + width + "\" height=\"" + height + "\" src=\"" + datasource + "\" style=\"border-width:0\" sandbox=\"allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox\"></iframe>";
2795        });
2796    },
2797    "fallback": function () {
2798        "use strict";
2799        var id = "gagenda";
2800        tarteaucitron.fallback(["gagenda_embed"], tarteaucitron.engage(id));
2801    }
2802};
2803
2804// Google Drive
2805tarteaucitron.services.gdrive = {
2806    "key": "gdrive",
2807    "type": "other",
2808    "name": "Google Drive",
2809    "needConsent": true,
2810    "cookies": ["CONSENT", "NID"],
2811    "uri": "https://policies.google.com/privacy",
2812    "js": function () {
2813        "use strict";
2814        tarteaucitron.fallback(['gdrive_embed'], function (x) {
2815            var width = tarteaucitron.getElemWidth(x),
2816                height = tarteaucitron.getElemHeight(x),
2817                datasource = x.getAttribute('data-url');
2818            return "<iframe loading=\"lazy\" frameborder=\"0\" allowtransparency=\"true\" allow=\"fullscreen\" scrolling=\"auto\" width=\"" + width + "\" height=\"" + height + "\" src=\"" + datasource + "\" style=\"border-width:0\" sandbox=\"allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox\"></iframe>";
2819        });
2820    },
2821    "fallback": function () {
2822        "use strict";
2823        var id = "gdrive";
2824        tarteaucitron.fallback(["gdrive_embed"], tarteaucitron.engage(id));
2825    }
2826};
2827
2828// Google Scholar
2829tarteaucitron.services.gscholar = {
2830    "key": "gscholar",
2831    "type": "other",
2832    "name": "Google Scholar",
2833    "needConsent": true,
2834    "cookies": ["CONSENT", "NID"],
2835    "uri": "https://policies.google.com/privacy",
2836    "js": function () {
2837        "use strict";
2838        tarteaucitron.fallback(['gscholar_embed'], function (x) {
2839            var width = tarteaucitron.getElemWidth(x),
2840                height = tarteaucitron.getElemHeight(x),
2841                datasource = x.getAttribute('data-url');
2842            return "<iframe loading=\"lazy\" frameborder=\"0\" allowtransparency=\"true\" allow=\"fullscreen\" scrolling=\"auto\" width=\"" + width + "\" height=\"" + height + "\" src=\"" + datasource + "\" style=\"border-width:0\" sandbox=\"allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox\"></iframe>";
2843        });
2844    },
2845    "fallback": function () {
2846        "use strict";
2847        var id = "gscholar";
2848        tarteaucitron.fallback(["gscholar_embed"], tarteaucitron.engage(id));
2849    }
2850};
2851
2852// Google CSE
2853tarteaucitron.services.gcse = {
2854    "key": "gcse",
2855    "type": "other",
2856    "name": "Google CSE",
2857    "needConsent": true,
2858    "cookies": ["CONSENT", "NID"],
2859    "uri": "https://policies.google.com/privacy",
2860    "js": function () {
2861        "use strict";
2862        tarteaucitron.fallback(['gcse_embed'], function (x) {
2863            var width = tarteaucitron.getElemWidth(x),
2864                height = tarteaucitron.getElemHeight(x),
2865                datasource = x.getAttribute('data-url');
2866            return "<iframe loading=\"lazy\" frameborder=\"0\" allowtransparency=\"true\" allow=\"fullscreen\" scrolling=\"auto\" width=\"" + width + "\" height=\"" + height + "\" src=\"" + datasource + "\" style=\"border-width:0\" sandbox=\"allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox\"></iframe>";
2867        });
2868    },
2869    "fallback": function () {
2870        "use strict";
2871        var id = "gcse";
2872        tarteaucitron.fallback(["gcse_embed"], tarteaucitron.engage(id));
2873    }
2874};
2875
2876// ResearchGate
2877tarteaucitron.services.researchgate = {
2878    "key": "researchgate",
2879    "type": "other",
2880    "name": "Researchgate",
2881    "needConsent": true,
2882    "cookies": [],
2883    "uri": "https://www.researchgate.net/privacy-policy",
2884    "js": function () {
2885        "use strict";
2886        tarteaucitron.fallback(['researchgate_embed'], function (x) {
2887            var width = tarteaucitron.getElemWidth(x),
2888                height = tarteaucitron.getElemHeight(x),
2889                datasource = x.getAttribute('data-url');
2890            return "<iframe loading=\"lazy\" frameborder=\"0\" allowtransparency=\"true\" allow=\"fullscreen\" scrolling=\"auto\" width=\"" + width + "\" height=\"" + height + "\" src=\"" + datasource + "\" style=\"border-width:0\" sandbox=\"allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox\"></iframe>";
2891        });
2892    },
2893    "fallback": function () {
2894        "use strict";
2895        var id = "researchgate";
2896        tarteaucitron.fallback(["researchgate_embed"], tarteaucitron.engage(id));
2897    }
2898};
2899
2900// Archives ouvertes
2901tarteaucitron.services.archivesouvertes = {
2902    "key": "archivesouvertes",
2903    "type": "other",
2904    "name": "HAL",
2905    "needConsent": true,
2906    "cookies": ["hal"],
2907    "uri": "https://hal.archives-ouvertes.fr/view/privacy",
2908    "js": function () {
2909        "use strict";
2910        tarteaucitron.fallback(['archivesouvertes_embed'], function (x) {
2911            var datasource = x.getAttribute('data-url'),
2912                width = tarteaucitron.getElemWidth(x),
2913                height = tarteaucitron.getElemHeight(x);
2914            let strHeight = "";
2915            if (height !== 0) {
2916                strHeight = "height=\""+height+"\"";
2917            }
2918            let strWidth = "width=\"100%\"";
2919            if (width !== 0) {
2920                strWidth = "width=\""+width+"\"";
2921            }
2922            return "<iframe loading=\"lazy\" "+strHeight+" "+strWidth+" frameborder=\"0\" allowtransparency=\"true\" allow=\"fullscreen\" scrolling=\"auto\"  src=\"" + datasource + "\" style=\"border-width:0;\" sandbox=\"allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox\"></iframe>";
2923        });
2924    },
2925    "fallback": function () {
2926        "use strict";
2927        var id = "archivesouvertes";
2928        tarteaucitron.fallback(["archivesouvertes_embed"], tarteaucitron.engage(id));
2929    }
2930};
2931
2932// Canva
2933tarteaucitron.services.canva = {
2934    "key": "canva",
2935    "type": "other",
2936    "name": "Canva",
2937    "needConsent": true,
2938    "cookies": [],
2939    "uri": "https://www.canva.com/policies/privacy-policy/",
2940    "js": function () {
2941        "use strict";
2942        tarteaucitron.fallback(['canva_embed'], function (x) {
2943            var datasource = x.getAttribute("data-url"),
2944                width = tarteaucitron.getElemWidth(x),
2945                height = tarteaucitron.getElemHeight(x);
2946
2947            return '<div style="position: relative; width: '+width+'px; height: '+height+'px; box-shadow: 0 2px 8px 0 rgba(63,69,81,0.16); margin-top: 1.6em; margin-bottom: 0.9em; overflow: hidden; border-radius: 8px; will-change: transform;">\n' +
2948                '    <iframe loading="lazy" style="position: absolute; width: '+width+'px; height: '+height+'px; top: 0; left: 0; border: none; padding: 0;margin: 0;" src="' + datasource + '" allowfullscreen="allowfullscreen" allow="fullscreen"></iframe></div>';
2949        });
2950    },
2951    "fallback": function () {
2952        "use strict";
2953        var id = "canva";
2954        tarteaucitron.fallback(["canva_embed"], tarteaucitron.engage(id));
2955    }
2956};
2957
2958// Piktochart
2959tarteaucitron.services.piktochart = {
2960    "key": "piktochart",
2961    "type": "other",
2962    "name": "Piktochart",
2963    "needConsent": true,
2964    "cookies": [],
2965    "uri": "https://www.piktochart.com/policies/privacy-policy/",
2966    "js": function () {
2967        "use strict";
2968        tarteaucitron.fallback(['piktochart_embed', 'piktochart_iframe'], function (x) {
2969            var datasource = x.getAttribute("data-uid");
2970
2971            if(x.classList.contains('piktochart_iframe')) {
2972                var width = tarteaucitron.getElemWidth(x),
2973                    height = tarteaucitron.getElemHeight(x);
2974                return '<iframe width="'+width+'" height="'+height+'" frameborder="0" src="https://create.piktochart.com/embed/'+datasource+'"></iframe>'
2975            }
2976
2977            var js, id = "pikto-embed-js", ref = document.getElementsByTagName("script")[0];
2978
2979            if (document.getElementById(id) == null) {
2980                js = document.createElement("script");
2981                js.id = id;
2982                js.async = true;
2983                js.src = "https://create.piktochart.com/assets/embedding/embed.js";
2984                ref.parentNode.insertBefore(js, ref);
2985            }
2986
2987            return '<div class="piktowrapper-embed"\n' +
2988                '                 data-uid="'+datasource+'">\n' +
2989                '                <div class="pikto-canvas-wrap">\n' +
2990                '                    <div class="pikto-canvas">\n' +
2991                '                        <div class="embed-loading-overlay"\n' +
2992                '                             style="width: 100%; height: 100%; position: absolute; text-align: center;"><img\n' +
2993                '                                    width="60px"\n' +
2994                '                                    alt="Loading..."\n' +
2995                '                                    style="margin-top: 100px"\n' +
2996                '                                    src="https://create.piktochart.com/loading.gif"/>\n' +
2997                '                            <p style="margin: 0; padding: 0; font-family: Lato, Helvetica, Arial, sans-serif; font-weight: 600; font-size: 16px">\n' +
2998                '                                Loading...</p></div>\n' +
2999                '                    </div>\n' +
3000                '                </div>\n' +
3001                '            </div>\n';
3002        });
3003    },
3004    "fallback": function () {
3005        "use strict";
3006        var id = "piktochart";
3007        tarteaucitron.fallback(["piktochart_embed", 'piktochart_iframe'], tarteaucitron.engage(id));
3008    }
3009};
3010
3011// matomocloud
3012tarteaucitron.services.matomocloud = {
3013    "key": "matomocloud",
3014    "type": "analytic",
3015    "name": "Matomo Cloud (privacy by design)",
3016    "uri": "https://matomo.org/faq/general/faq_146/",
3017    "needConsent": false,
3018    "cookies": ['_pk_ref', '_pk_cvar', '_pk_id', '_pk_ses', '_pk_hsr', 'mtm_consent', 'matomo_ignore', 'matomo_sessid'],
3019    "js": function () {
3020        "use strict";
3021        if (tarteaucitron.user.matomoId === undefined) {
3022            return;
3023        }
3024
3025        window._paq = window._paq || [];
3026        window._paq.push(["requireCookieConsent"]);
3027        window._paq.push(["setCookieConsentGiven"]);
3028        window._paq.push(["setSiteId", tarteaucitron.user.matomoId]);
3029        window._paq.push(["setTrackerUrl", tarteaucitron.user.matomoHost + "matomo.php"]);
3030        window._paq.push(["trackPageView"]);
3031        window._paq.push(["enableLinkTracking"]);
3032
3033        if (tarteaucitron.user.matomoCustomJSPath === undefined || tarteaucitron.user.matomoCustomJSPath == '') {
3034            tarteaucitron.addScript('https://cdn.matomo.cloud/matomo.js', '', '', true, 'defer', true);
3035        } else {
3036            tarteaucitron.addScript(tarteaucitron.user.matomoCustomJSPath, '', '', true, 'defer', true);
3037        }
3038
3039        // waiting for Matomo to be ready to check first party cookies
3040        var interval = setInterval(function () {
3041            if (typeof Matomo === 'undefined') return
3042
3043            clearInterval(interval)
3044
3045            // make Matomo cookie accessible by getting tracker
3046            Matomo.getTracker();
3047
3048            // looping through cookies
3049            const theCookies = document.cookie.split(';');
3050            for (let i = 1; i <= theCookies.length; i++) {
3051                const cookie = theCookies[i - 1].split('=');
3052                const cookieName = cookie[0].trim();
3053
3054                // if cookie starts like a matomo one, register it
3055                if (cookieName.indexOf('_pk_') === 0) {
3056                    tarteaucitron.services.matomo.cookies.push(cookieName);
3057                }
3058            }
3059        }, 100);
3060    },
3061    "fallback": function () {
3062        "use strict";
3063        if (tarteaucitron.user.matomoId === undefined) {
3064            return;
3065        }
3066
3067        window._paq = window._paq || [];
3068        window._paq.push(["requireCookieConsent"]);
3069        window._paq.push(["setSiteId", tarteaucitron.user.matomoId]);
3070        window._paq.push(["setTrackerUrl", tarteaucitron.user.matomoHost + "matomo.php"]);
3071        window._paq.push(["trackPageView"]);
3072        window._paq.push(["enableLinkTracking"]);
3073
3074        if (tarteaucitron.user.matomoCustomJSPath === undefined || tarteaucitron.user.matomoCustomJSPath == '') {
3075            tarteaucitron.addScript('https://cdn.matomo.cloud/matomo.js', '', '', true, 'defer', true);
3076        } else {
3077            tarteaucitron.addScript(tarteaucitron.user.matomoCustomJSPath, '', '', true, 'defer', true);
3078        }
3079    }
3080};
3081
3082// rotatingImg
3083tarteaucitron.services.rotatingImg = {
3084    "key": "rotatingImg",
3085    "type": "other",
3086    "name": "Image 360 (uptale,imageenvue)",
3087    "needConsent": true,
3088    "cookies": [],
3089    "uri": "https://www.canva.com/policies/privacy-policy/",
3090    "js": function () {
3091        "use strict";
3092        tarteaucitron.fallback(["uptale", "imageenvue"], function (x) {
3093            console.log(x);
3094            var datasource = x.getAttribute("data-url");
3095            let dataallow = x.getAttribute("data-allow");
3096            let width = x.getAttribute("data-width");
3097            let height = x.getAttribute("data-height");
3098            let align = x.getAttribute("data-align");
3099
3100            return "<iframe class='align-" + align + "' src='" + datasource + "' width='" + width + "' height='" + height + "'" + (dataallow != null ? ' allow="microphone; accelerometer; gyroscope; vr; fullscreen; xr-spatial-tracking"' : "") + "></iframe>";
3101
3102        });
3103    },
3104    "fallback": function () {
3105        "use strict";
3106        var id = "rotatingImg";
3107        tarteaucitron.fallback(["uptale", "imageenvue"], tarteaucitron.engage(id));
3108    }
3109};
3110
3111// Grist
3112tarteaucitron.services.grist = {
3113    "key": "grist",
3114    "type": "other",
3115    "name": "Grist",
3116    "needConsent": true,
3117    "cookies": [],
3118    "uri": "https://www.getgrist.com/privacy",
3119    "js": function () {
3120        "use strict";
3121        tarteaucitron.fallback(['grist'], function (element) {
3122            const width = tarteaucitron.getElemWidth(element),
3123                height = tarteaucitron.getElemHeight(element),
3124                src = element.getAttribute('data-url');
3125            return `<iframe loading='lazy' width='${width}' height='${height}' src='${src}' allowtransparency='true' allow='fullscreen' scrolling='auto' style='border-width:0;'></iframe>`;
3126        });
3127    },
3128    "fallback": function () {
3129        "use strict";
3130        var id = "grist";
3131        tarteaucitron.fallback(["grist"], tarteaucitron.engage(id));
3132    }
3133};

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.