PageSourceSearch

https://www.webschoolfactory.fr/sites/all/modules/custom/cookie_google_analytics/js/ggee.js?1790383103

js webschoolfactory.fr collected 2026-09-26 06:22:14 UTC 12,286 bytes, 381 lines download raw bytes

1/* Mobile Detect */
2var siteDomain = location.hostname;
3var CurrentUrl = window.location.href;
4var md = new MobileDetect(window.navigator.userAgent);
5var detectMobile = 'computer';
6
7if (typeof md.mobile() !== 'undefined' && md.mobile()) {
8    detectMobile = "phone";
9}
10if (typeof md.tablet() !== 'undefined' && md.tablet()) {
11    detectMobile = "tablet";
12}
13
14
15/* visibilityState */
16function getHiddenProp() {
17    var prefixes = ['webkit', 'moz', 'ms', 'o'];
18    // if 'hidden' is natively supported just return it
19    if ('hidden' in document) {
20        return 'hidden';
21    }
22    // otherwise loop over all the known prefixes until we find one
23    for (var i = 0; i < prefixes.length; i++) {
24        if ((prefixes[i] + 'Hidden') in document) {
25            return prefixes[i] + 'Hidden';
26        }
27    }
28    // otherwise it's not supported
29    return null;
30}
31
32var bHavePV = getHiddenProp();
33var bInitialShow = false;
34
35if (bHavePV) {
36    document.addEventListener("visibilityChange", handleVisEvt);
37} else {
38    // console.log("PageVisibility is not present"); // track page view normally
39    // when PageVisibility is not present
40}
41
42function handleVisEvt() {
43    var value = bInitialShow;
44
45    if (document.visibilityState == "prerender") {
46        // console.log("PageVisibility is pre-rendering"); // might be interesting
47        // to keep track of pre-rendering
48    }
49    if (document.visibilityState == "visible" && !bInitialShow) {
50        bInitialShow = true; // don't trigger this code again
51        // console.log("PageVisibility is visible and trigger will not push again");
52    }
53    value = true;
54
55    return value;
56}
57
58
59/* CreateCookie */
60var j = new Date;
61j.setTime(j.getTime());
62j = new Date(j.getTime());
63
64// console.log(j.toString());
65
66function crumbleCookie(a) {
67    for (var d = document.cookie.split(";"), c = {}, b = 0; b < d.length; b++) {
68        var e = d[b].substring(0, d[b].indexOf("=")).trim(),
69            i = d[b].substring(d[b].indexOf("=") + 1, d[b].length).trim();
70        c[e] = i
71    }
72    if (a) {
73        return c[a] ? c[a] : null;
74    }
75    return c
76}
77
78function bakeCookie(a, d, c, b, e, i) {
79    var j = new Date;
80    j.setTime(j.getTime());
81    c && (c *= 864E5);
82    j = new Date(j.getTime() + c);
83    document.cookie = a + "=" + d + (c ? ";expires=" + j.toGMTString() : "") + (b ? ";path=" + b : "") + (e ? ";domain=" + e : "") + (i ? ";secure" : "")
84}
85
86
87/* Let's create the __dplz cookie*/
88function __dplz(n) {
89    var a = getTrafficSource(n, siteDomain);
90
91    a = a.replace(/\|{2,}/g, "|");
92    a = a.replace(/^\|/, "");
93    a = unescape(a);
94    60
95
96    bakeCookie(n, a, 0.125, "/", siteDomain, ""); //Cookie expiration sets to 3 hours ((1/24)*3)
97};
98
99/* Let's create the __dpla cookie*/
100function __dpla(n) {
101    var f = visitData(n);
102    f = unescape(f);
103
104    bakeCookie(n, f, 0.125, "/", siteDomain, ""); //Cookie expiration sets to 3 hours ((1/24)*3)
105};
106
107/* Let's create the __dplf cookie*/
108function __dplf(n) {
109    var j = new Date;
110    j.setTime(j.getTime());
111    j = new Date(j.getTime());
112    var g = 1;
113    g = unescape(g);
114
115    bakeCookie(n, g, 0.125, "/", siteDomain, ""); //Cookie expiration sets to 3 hours ((1/24)*3)
116};
117
118/* Let's create the mobile_detect cookie*/
119function mobile_detect(n) {
120    var j = new Date;
121    j.setTime(j.getTime());
122    j = new Date(j.getTime());
123
124    bakeCookie(n, detectMobile, 30, "/", siteDomain, ""); //Cookie expiration sets to 30 days
125};
126
127/* Let's create the first_page cookie*/
128function first_page(n) {
129    var j = new Date;
130    j.setTime(j.getTime());
131    j = new Date(j.getTime());
132
133    bakeCookie(n, CurrentUrl.substring(0, CurrentUrl.indexOf('?') != -1 ? CurrentUrl.indexOf('?') : CurrentUrl.length), 30, "/", siteDomain, ""); //Cookie expiration sets to 30 days
134};
135
136/* Check is cookie exists */
137function getCookie(name) {
138    var dc = document.cookie;
139    var prefix = name + "=";
140    var begin = dc.indexOf("; " + prefix);
141    if (begin == -1) {
142        begin = dc.indexOf(prefix);
143        if (begin != 0) {
144            return null;
145        }
146    } else {
147        begin += 2;
148        var end = document.cookie.indexOf(";", begin);
149        if (end == -1) {
150            end = dc.length;
151        }
152    }
153    return unescape(dc.substring(begin + prefix.length, end));
154}
155
156function doSomething() {
157    var value = false;
158    var myCookie = getCookie("__dplf");
159
160    if (myCookie == null) {
161        // do cookie doesn't exist stuff;
162        value = true;
163    }
164
165    return value;
166}
167
168
169/*Provide __dpla information*/
170function visitData() {
171    var domaineHash = Math.floor((Math.random() * 10000000) + 1);
172    var dateNow = new Date().getTime() / 1000;
173    var firstVisit = "";
174    var lastVisit = "";
175    var currentVisit = dateNow;
176    var sessionNumber = "";
177
178    /*Test firsVisit*/
179    if (firstVisit !== dateNow) {
180        firstVisit = dateNow;
181        lastVisit = dateNow;
182        sessionNumber = 1;
183    }
184    ;
185
186    var value =
187        domaineHash +
188        '.' + domaineHash +
189        '.' + firstVisit +
190        '.' + lastVisit +
191        '.' + currentVisit +
192        '.' + sessionNumber;
193
194    return value;
195}
196
197
198function getParam(s, q) {
199    try {
200        var match = s.match('[?&]' + q + '=([^&]+)');
201        return match ? match[1] : '';
202    } catch (e) {
203        return '';
204    }
205}
206
207/*Provide __dplz information*/
208function calculateTrafficSource() {
209    var dplcsr = '', dplcmd = '', dplccn = '', dplctr = '', dplcct = '', gclid = '', gclidSynapse = '';
210
211    // Identify the method
212    var ref = document.referrer;
213    ref = ref.substr(ref.indexOf('//') + 2);
214    ref_domain = ref;
215    ref_path = '/';
216    ref_search = '';
217    var url_search = document.location.search;
218
219
220    if (getParam(url_search, 'utm_source').length >= 1) {
221        dplcsr = getParam(url_search, 'utm_source');
222        dplcmd = getParam(url_search, 'utm_medium').length >= 1 ? getParam(url_search, 'utm_medium') : '(not set)';
223        dplccn = getParam(url_search, 'utm_campaign').length >= 1 ? getParam(url_search, 'utm_campaign') : '(not set)';
224        dplctr = getParam(url_search, 'utm_term').length >= 1 ? getParam(url_search, 'utm_term') : '';
225        dplcct = getParam(url_search, 'utm_content').length >= 1 ? getParam(url_search, 'utm_content') : '';
226        gclidSynapse = getParam(url_search, 'gclid').length >= 1 ? getParam(url_search, 'gclid') : '';
227        method = 'dpl_source';
228    } else if (getParam(url_search, 'gge_source').length >= 1) {
229        dplcsr = getParam(url_search, 'gge_source');
230        dplcmd = getParam(url_search, 'gge_medium').length >= 1 ? getParam(url_search, 'gge_medium') : '(not set)';
231        dplccn = getParam(url_search, 'gge_campaign').length >= 1 ? getParam(url_search, 'gge_campaign') : '(not set)';
232        dplctr = getParam(url_search, 'gge_term').length >= 1 ? getParam(url_search, 'gge_term') : '';
233        dplcct = getParam(url_search, 'gge_content').length >= 1 ? getParam(url_search, 'gge_content') : '';
234        gclidSynapse = getParam(url_search, 'gclid').length >= 1 ? getParam(url_search, 'gclid') : '';
235        method = 'gge_source';
236
237        // console.log(gclidSynapse);
238    } else if (getParam(url_search, 'gclid').length >= 1) {
239        gclid = getParam(url_search, 'gclid');
240        dplcsr = '';
241        dplcmd = '(not set)';
242        dplccn = 'undefined';
243        dplcct = '(none)';
244        gclidSynapse = getParam(url_search, 'gclid').length >= 1 ? getParam(url_search, 'gclid') : '';
245        method = 'gclid';
246    } else if (ref) {
247        // separate domain, path and query parameters
248        if (ref.indexOf('/') > -1) {
249            ref_domain = ref.substr(0, ref.indexOf('/'));
250            ref_path = ref.substr(ref.indexOf('/'));
251            method = 'ref';
252            if (ref_path.indexOf('?') > -1) {
253                ref_search = ref_path.substr(ref_path.indexOf('?') + 1);
254                ref_path = ref_path.substr(0, ref_path.indexOf('?'));
255            }
256        }
257        var search_engines = [['bing', 'q'], ['google', 'q'], ['yahoo', 'p'], ['baidu', 'q'], ['yandex', 'text'], ['ask', 'q'], ['duckduckgo', 'q'], ['naver', 'query'], ['baidu', 'wd']]; //List of search engines
258        // Tester le referral, est-ce organic ou referral
259        dplcmd = 'referral';
260        dplcsr = ref_domain;
261        dplcct = '(none)';
262        dplccn = '(referral)';
263        method = 'ref';
264        // Extract dplctr for organic dplcsr
265        for (var i = 0; i < search_engines.length; i++) {
266            if (ref_domain.indexOf(search_engines[i][0]) > -1) {
267                dplcmd = 'organic';
268                dplccn = '(not set)';
269                dplcsr = search_engines[i][0];
270                dplctr = getParam(ref_search, search_engines[i][1]) || '(not provided)';
271                break;
272            }
273        }
274    } else {
275        dplcsr = '(direct)';
276        dplccn = '(direct)';
277        dplcmd = '(none)';
278        method = 'direct';
279    }
280
281    return {
282        'gclid': gclid,
283        'dplcsr': dplcsr,
284        'dplccn': dplccn,
285        'dplcmd': dplcmd,
286        'dplctr': dplctr,
287        'dplcct': dplcct,
288        'gclidSynapse': gclidSynapse,
289        'method': method,
290    };
291
292}
293
294
295/* Search engine and campaing parse */
296function getTrafficSource(cookieName, hostname) {
297    var trafficSource = calculateTrafficSource();
298    var domaineHash = Math.floor((Math.random() * 10000000) + 1);
299    var dateNow = new Date().getTime() / 1000;
300
301    /* Let's create the variables*/
302    var gclid = trafficSource.gclid.length > 0 ? '.utmgclid=' + trafficSource.gclid : '';
303    var dplcsr = trafficSource.dplcsr.length > 0 ? '.utmcsr=' + trafficSource.dplcsr : '';
304    var dplccn = trafficSource.dplccn.length > 0 ? '|utmccn=' + trafficSource.dplccn : '';
305    var dplcmd = trafficSource.dplcmd.length > 0 ? '|utmcmd=' + trafficSource.dplcmd : '';
306    var dplctr = trafficSource.dplctr.length > 0 ? '|utmctr=' + trafficSource.dplctr : '';
307    var dplcct = trafficSource.dplcct.length > 0 ? '|utmcct=' + trafficSource.dplcct : '';
308    var gclidSynapse = trafficSource.gclidSynapse.length > 0 ? '|dplgclid=' + trafficSource.gclidSynapse : '';
309
310    var testData =
311        gclid +
312        dplcsr +
313        dplccn +
314        dplcmd +
315        dplctr +
316        dplcct +
317        gclidSynapse +
318        '';
319
320    var sessionVisit =
321        domaineHash +
322        '.' + dateNow +
323        '.' + '1' +
324        '';
325
326    var value =
327        sessionVisit +
328        testData +
329        '';
330
331    // console.log(trafficSource);
332
333    return decodeURIComponent(value);
334}
335
336
337/* generateCookie_dpl */
338function generateCookie_dpl() {
339    var date = new Date();
340    var fr_date = date.getUTCFullYear().toString() + ((date.getUTCMonth() < 9) ? '0' + (date.getUTCMonth() + 1).toString() : (d
340ate.getUTCMonth() + 1).toString()) + ((date.getUTCDate() < 10) ? '0' + date.getUTCDate().toString() : date.getUTCDate().toString());
341    var session = crumbleCookie()['__dplz'];
342    __dplf('__dplf');
343    __dplz('__dplz');
344    __dpla('__dpla');
345    mobile_detect('mobile_detect');
346    first_page('first_page');
347}
348
349/* generateCookie_firstpage */
350function generateCookie_first_page() {
351    var date = new Date();
352    var fr_date = date.getUTCFullYear().toString() + ((date.getUTCMonth() < 9) ? '0' + (date.getUTCMonth() + 1).toString() : (date.getUTCMonth() + 1).toString()) + ((date.getUTCDate() < 10) ? '0' + date.getUTCDate().toString() : date.getUTCDate().toString());
353    var session = crumbleCookie()['first_page'];
354    first_page('first_page');
355}
356
357/* generateCookie_mobile_detect */
358function generateCookie_mobile_detect() {
359    var date = new Date();
360    var fr_date = date.getUTCFullYear().toString() + ((date.getUTCMonth() < 9) ? '0' + (date.getUTCMonth() + 1).toString() : (date.getUTCMonth() + 1).toString()) + ((date.getUTCDate() < 10) ? '0' + date.getUTCDate().toString() : date.getUTCDate().toString());
361    var session = crumbleCookie()['mobile_detect'];
362    mobile_detect('mobile_detect');
363}
364
365/* Let's cook */
366var gclidUrl = calculateTrafficSource('gclid')['gclid'];
367var methodUrl = calculateTrafficSource('method')['method'];
368
369
370if (handleVisEvt()) {
371    if (doSomething()) {
372        generateCookie_dpl();
373    }
374}
375
376if (document.cookie.indexOf('mobile_detect') <= 0) {
377    generateCookie_mobile_detect();
378}
379if (document.cookie.indexOf('first_page') <= 0) {
380    generateCookie_first_page();
381}

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.