PageSourceSearch

https://www.est-hotels.com/typo3temp/assets/compressed/merged-05e6…27aadb670ef79b5192273852c3c4d.js?1790672066

js est-hotels.com collected 2026-10-04 19:08:43 UTC 2,122 bytes, 57 lines download raw bytes

1
2(function () {
3    // --- cookie helpers ---
4    function getC(n) { const m = document.cookie.match('(?:^|; )' + n.replace(/([.$?*|{}()\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)'); return m ? decodeURIComponent(m[1]) : null; }
5    function setC(n, v, hours) { const d = new Date(); d.setTime(d.getTime() + hours * 3600 * 1000); document.cookie = n + '=' + encodeURIComponent(v) + ';path=/;expires=' + d.toUTCString(); }
6 
7    const stateChangeed = function (show) {
8        if (show) {
9            wrap.style.display = 'block';
10            document.body.classList.add('ads_present');
11        } else {
12            wrap.style.display = 'none';
13            document.body.classList.remove('ads_present');
14        }
15        window.dispatchEvent(new Event('resize')); // for some layouts it is needed
16    };
17 
18    const wrap = document.getElementById('grbanner');
19    if (!wrap) return;
20
21    const closeCookie = wrap.dataset.cookie || 'grbanner_closed';
22    if (getC(closeCookie) === '1') { 
23        wrap.remove(); 
24        stateChangeed(false);
25        return; 
26    }
27
28    // --- randomize per group (same as before) ---
29    var ads_present = false;
30    document.querySelectorAll('#grbanner .grbanner .banner').forEach(li => {
31        const opts = li.querySelectorAll('.ab_option');
32        ads_present = true;
33        if (opts.length <= 1) return;
34        const group = li.getAttribute('data-group') || 'default';
35        const cname = 'ab_' + group;
36        let idx = parseInt(getC(cname), 10);
37        if (isNaN(idx) || idx < 0 || idx >= opts.length) {
38            idx = Math.floor(Math.random() * opts.length);
39            setC(cname, String(idx), 1); // 1h sticky
40        }
41        opts.forEach((el, i) => { if (i !== idx) el.remove(); });
42    });
43
44    stateChangeed(ads_present);
45
46    // --- close button ---
47    const btn = wrap.querySelector('.grbanner-close');
48    if (btn) {
49        btn.addEventListener('click', function () {
50            console.log("Close the banner...");
51            setC(closeCookie, '1', 0.1); // 6 Minuten merken
52            wrap.remove();
53            stateChangeed(false);
54        });
55    }
56
57})();

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.