PageSourceSearch

https://www.athinorama.gr/tv/programma/simera

html athinorama.gr collected 2026-10-02 03:19:58 UTC 120,792 bytes, 3,208 lines download raw bytes

1
2<!doctype html>
3<html class="no-js" lang="el">
4<head>
5
6    
7    <meta name="google-site-verification" content="ayor6MwycgXMHXvgAsleyygImz-rqcqJt4ER5h4H0k0" />
8    <meta charset="utf-8">
9    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
10    <meta name="viewport" content="width=device-width, initial-scale=1">
11    <title>Πρόγραμμα τηλεόρασης (TV) σήμερα Πέμπτη 01 Οκτωβρίου - Athinorama.gr</title>
12    <meta name="robots" content="index,follow" />
13    <meta name="Googlebot" content="index,follow" />
14    <meta name="MSNbot" content="index,follow" />
15    <meta name="Slurp" content="index,follow" />
16        <meta name="description" content="Δες όλο το πρόγραμμα της ελληνικής τηλεόρασης και μάθε ποιες ταινίες παίζουν στην TV: Πέμπτη 01 Οκτωβρίου" />
17            <link rel="canonical" href="https://www.athinorama.gr/tv/programma/simera/" />
18        
19        
19<script>
20            window.onerror = function (msg, url, lineNo, columnNo, error) {
21                //console.error("msg:", msg, " url: ", url, " lineNo: ", lineNo, " columnNo", columnNo, " error: ", error);
22                return true;
23            }
24        </script>
24
25
26    
26<script>
27        var reconsent = window.localStorage.getItem('reconsent4');
28        if (!reconsent) {
29            window.localStorage.clear();
30            window.localStorage.setItem('reconsent4', 'enforced');
31            (function () {
32                var cookies = document.cookie.split("; ");
33                for (var c = 0; c < cookies.length; c++) {
34                    var d = window.location.hostname.split(".");
35                    while (d.length > 0) {
36                        var cookieBase = encodeURIComponent(cookies[c].split(";")[0].split("=")[0]) + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; domain=' + d.join('.') + ' ;path=';
37                        var p = location.pathname.split('/');
38                        document.cookie = cookieBase + '/';
39                        while (p.length > 0) {
40                            document.cookie = cookieBase + p.join('/');
41                            p.pop();
42                        };
43                        d.shift();
44                    }
45                }
46            })();
47        }
48    </script>
48
49
50    
51<script>var dataLayer = [{"dlVersion":1,"page":{"site":"athinorama.gr","pageType":"Desktop"}}];</script>
51        <link rel="shortcut icon" type="image/x-icon" href="/content/favicons/favicon.ico" />
52    <link rel="apple-touch-icon" sizes="180x180" href="/content/favicons/apple-touch-icon.png">
53    <link rel="shortcut icon" type="image/png" sizes="32x32" href="/content/favicons/favicon-32x32.png">
54    <link rel="shortcut icon" type="image/png" sizes="16x16" href="/content/favicons/favicon-16x16.png">
55    
56    <link rel="mask-icon" href="/content/favicons/safari-pinned-tab.svg" color="#000000">
57    <link rel="preconnect" href="https://phaistos-ssp.adman.gr" crossorigin />
58
59    <meta name="apple-mobile-web-app-title" content="Athinorama">
60    <meta name="application-name" content="Athinorama">
61    <meta name="msapplication-TileColor" content="#000000">
62    <meta name="theme-color" content="#ffffff">
63
64    
65
66
67    
68    <link href="/content/sitecss?v=16" rel="stylesheet"/>
69
70
71
72
73    
74
75    
76    
77    <style>
78        .bannerlazy {
79            position: absolute;
80        }
81    </style>
82
83    
84    
85    
86
87
88    <!--RenderAdScripts START-->
89<script>
90    // Τρέχουμε όλους τους providers σειριακά, με βάση το priority
91    function runProviderChain(tcData) {
92        var providers = (window.capitalAdProviders || []).slice();
93
94        // sort by priority (αύξουσα)
95        providers.sort(function (a, b) {
96            return (a.priority || 0) - (b.priority || 0);
97        });
98
99        var chain = Promise.resolve();
100
101        providers.forEach(function (provider) {
102            chain = chain.then(function () {
103                try {
104                    var result = provider.run(tcData);
105                    console.log("%c " + provider.name + " Promise Resolved", "color: #e7c036; font-weight: bold; font-size: 24px;");
106                    return result;
107                } catch (e) {
108                    console.error("Error running provider:", provider.name, e);
109                    return Promise.resolve();
110                }
111            });
112        });
113
114        return chain;
115    }
116</script>
116
117
118<script>
119    window['gtag_enable_tcf_support'] = true; // SEE THIS: https://support.google.com/analytics/answer/10022331?hl=en
120</script>
120
121
122<!-- ==== BEGIN - Google Analytics ==== -->
123
124 
124<script>
125     window.dataLayer = window.dataLayer || [];
126     function gtag() { dataLayer.push(arguments); }
127     gtag('consent', 'default', {
128         'analytics_storage': 'granted',
129         'ad_storage': 'granted',
130         'ad_user_data': 'denied',
131         'ad_personalization': 'denied',
132         'wait_for_update': 1000
133     });
134
135 </script>
135
136 <!-- ==== END - Google Analytics ==== -->
137
138 <!-- ==== Google Tag Manager ==== -->
139 
139<script>
vendor: 471 bytes, lines 139-147
139
140     (function (w, d, s, l, i) {
141         w[l] = w[l] || []; w[l].push({
142             'gtm.start':
143                 new Date().getTime(), event: 'gtm.js'
144         }); var f = d.getElementsByTagName(s)[0],
145             j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
146                 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
147     })(window, document, 'script', 'dataLayer', '
147GTM-KPFR2P7
vendor: 6 bytes, lines 147-148
147');
148 
148</script>
148
149
150<!-- ==== END Google Tag Manager ==== -->
151<script async id="ebx" src="//applets.ebxcdn.com/ebx.js"></script>
vendor: 2 bytes, line 151
151
152<script>
153function responsiveAdsFn(bannerDivId, adWidth, adHeight) {
154    var container = document.getElementById(bannerDivId);
155    var advWidth = container.clientWidth;
156    var advHeight = container.clientHeight;
157    var iframe = container.querySelectorAll('iframe')[0];
158    var iframeWidth = iframe.clientWidth;
159    var iframeHeight = iframe.clientHeight;
160
161    var baseBanner = {
162        width: iframeWidth,
163        height: iframeHeight,
164        scale: 1
165    };
166
167    scaleBanner(iframe, advWidth, advHeight);
168
169    function scaleBanner(iframe, maxWidth, maxHeight) {
170        var scaleX = 1,
171            scaleY = 1;
172        scaleX = maxWidth / baseBanner.width;
173        scaleY = maxHeight / baseBanner.height;
174        baseBanner.scaleX = scaleX;
175        baseBanner.scaleY = scaleY;
176        baseBanner.scale = (scaleX > scaleY) ? scaleY : scaleX;
177        iframe.style.transformOrigin = "left top 0px";
178        iframe.style.transform = "matrix(" + baseBanner.scale + ", 0, 0, " + baseBanner.scale + ", 0, 0)";
179        container.style.height = (baseBanner.height * baseBanner.scale) + "px";
180    }
181}
182
183//AD SCRIPTS
184var getClosest = function (elem, selector) {
185    for (; elem && elem !== document; elem = elem.parentNode) {
186        if (elem.matches(selector)) return elem;
187    }
188    return null;
189};
190
191function fadeOut(el) {
192    el.style.opacity = 1;
193
194    (function fade() {
195        if ((el.style.opacity -= .1) < 0) {
196            el.style.display = "none";
197        } else {
198            requestAnimationFrame(fade);
199        }
200    })();
201};
202
203</script>
203
204 
204<script async="async" src="https://cdn.membrana.media/pub_scripts/attika/ym.js?site=anr&ad_unit_code=ANR_ADWALL"></script>
vendor: 2 bytes, line 204
204
205<script async src="https://htagpa.tech/c/athinorama.gr.js"></script>
vendor: 2 bytes, line 205
205
206<script>
207    // Αυτό είναι για extra scripts που χρειάζονται πληροφορίες απο το TCData του Consent
208    window.gdprExtras = window.gdprExtras || [];
209
210    (function () {
211
212
213        var insertGdprScripts = function (tcData) {
214            try {
215                var adStorageGranted = "granted";
216                if (tcData && tcData.purpose && tcData.purpose.consents) {
217                    adStorageGranted = tcData.purpose.consents[1] ? "granted" : "denied";
218                }
219                gtag('consent', 'update', {
220                    'analytics_storage': 'granted',
221                    'ad_storage': adStorageGranted //'granted'
222                });
223
224                runProviderChain(tcData);
225
226
227            } catch { };
228
229        }
230
231        // Run this in an interval (every 0.1s) just in case we are still waiting for consent
232        var cmpEventSet = false;
233        var cnt = 0;
234        var consentSetInterval = setInterval(function () {
235            cnt += 1;
236            // Bail if we have not gotten a consent response after 60 seconds.
237            if (cnt >= 15) {
238                clearInterval(consentSetInterval);
239                insertGdprScripts(tcData);
240                //runProviderChain(tcData);
241            }
242            if (typeof window.__tcfapi !== 'undefined') { // Check if window.__tcfapi has been set
243                if (!cmpEventSet) {
244                    clearInterval(consentSetInterval);
245                    cmpEventSet = true;
246                    window.__tcfapi('addEventListener', 2, function (tcData, listenerSuccess) {
247                        if (listenerSuccess) {
248                            if (tcData.eventStatus === 'tcloaded' || tcData.eventStatus === 'useractioncomplete') {
249                                insertGdprScripts(tcData);
250                                //runProviderChain(tcData)
251                            }
252                        }
253                    });
254                }
255            }
256            //cnt++;
257        }, 100);
258    })();
259</script>
259
260<!--RenderAdScripts END-->
261
262
263    <!--Render AdProviders Start-->
264<script>
265window.capitalAdProviders = window.capitalAdProviders || [];
266(function () {
267  window.capitalAdProviders.push({
268    id: 1,
269    name: "lotame",
270    priority: 10,
271    position: "AdProvider",
272    run: function (tcData) {
273      try {
274        var result = (function (tcData) {
275// LOTAME provider – έχεις διαθέσιμο tcData εδώ μέσα
276
277var lotameClientId = "16329";
278var audTargetingKey = "lotame";
279var panoramaIdTargetingKey = "lpanoramaid";
280var audLocalStorageKey = "lotame_" + lotameClientId + "_auds";
281
282// Επιστρέφουμε Promise γιατί φορτώνουμε script
283return new Promise(function(resolve) {
284
285    window.googletag = window.googletag || {};
286    window.googletag.cmd = window.googletag.cmd || [];
287
288    // 1. LocalStorage audiences (instant targeting)
289    try {
290        var storedAuds = localStorage.getItem(audLocalStorageKey) || "";
291        if (storedAuds) {
292            googletag.cmd.push(function() {
293                googletag.pubads().setTargeting(audTargetingKey, storedAuds.split(","));
294            });
295        }
296
297        var localPanorama = localStorage.getItem("panoramaId") || "";
298        if (localPanorama) {
299            googletag.cmd.push(function() {
300                googletag.pubads().setTargeting(panoramaIdTargetingKey, localPanorama);
301            });
302        }
303    } catch(e) {}
304
305    // 2. Callback όταν Lotame profile είναι έτοιμο
306    var audienceReadyCallback = function (profile) {
307        try {
308            var audiences = profile.getAudiences() || [];
309            googletag.cmd.push(function () {
310                googletag.pubads().setTargeting(audTargetingKey, audiences);
311            });
312
313            var panId = profile.getPanoramaId() || "";
314            if (panId) {
315                googletag.cmd.push(function () {
316                    googletag.pubads().setTargeting(panoramaIdTargetingKey, panId);
317                });
318            }
319        } catch(e){}
320        resolve();
321    };
322
323    // 3. Lotame tag setup
324    var lotameInput = {
325        data: window.dataLayer && window.dataLayer[0] ? window.dataLayer[0].page : {},
326        config: {
327            clientId: Number(lotameClientId),
328            audienceLocalStorage: audLocalStorageKey,
329            autoRun: true,
330            onProfileReady: audienceReadyCallback,
331            onTagReady: function(ns){ console.log("Lotame ready:", ns); }
332        }
333    };
334
335    var ns = window["lotame_" + lotameInput.config.clientId] = {};
336    ns.config = lotameInput.config;
337    ns.data = lotameInput.data;
338    ns.cmd = ns.cmd || [];
339
340    // 4. Φόρτωμα script
341    var s = document.createElement("script");
342    s.src = "https://tags.crwdcntrl.net/lt/c/" + lotameClientId + "/lt.min.js";
343    s.async = true;
344    s.onload = function(){};
345    s.onerror = function(){ resolve(); };
346    document.head.appendChild(s);
347});
348
349        })(tcData);
350        if (result && typeof result.then === 'function') {
351          return result;
352        }
353        return Promise.resolve();
354      } catch (e) {
355        console.error('AdProvider error (id=1, name=' + "lotame" + ')', e);
356        return Promise.resolve();
357      }
358    }
359  });
360  window.capitalAdProviders.push({
361    id: 9,
362    name: "procter_and_gamble",
363    priority: 20,
364    position: "AdProvider",
365    run: function (tcData) {
366      try {
367        var result = (function (tcData) {
368    let procterAndGamblePromise = new Promise(function (resolveProc, rejectProc) {
369        resolveProc();
370        return;
371        if (tcData) {
372            var s = document.createElement('script');
373            s.type = 'text/javascript';
374            s.async = true;
375            var x = document.getElementsByTagName('script')[0];
376            x.parentNode.insertBefore(s, x);
377            s.addEventListener("load", function (event) {
378                //if gdpr is not relevant, null values are passed for gdpr related parameters
379                //if gdpr is relevant, send gdpr and gdpr consent values
380                //if ccpa is not relevant, null values are passed for ccpa related parameters
381                //if ccpa is relevant, send ccpa value
382                //see integration guide for gdpr and ccpa details
383                //bpid = business partner id, this is a unique code for identifying partner data to P&G
384                var metadata = {
385                    gdpr: ~~tcData.gdprApplies,
386                    gdpr_consent: null,
387                    ccpa: null,
388                    bp_id: "athinorama"
389                };
390
391                if (tcData.purpose.consents[1] &&
392                    tcData.vendor.consents[577] &&
393                    tcData.vendor.consents[89] &&
394                    (tcData.purpose.consents[2] || tcData.purpose.legitimateInterests[2]) &&
395                    (tcData.purpose.consents[3] || tcData.purpose.legitimateInterests[3]) &&
396                    (tcData.purpose.consents[4] || tcData.purpose.legitimateInterests[4]) &&
397                    (tcData.purpose.consents[5] || tcData.purpose.legitimateInterests[5]) &&
398                    (tcData.purpose.consents[6] || tcData.purpose.legitimateInterests[6]) &&
399                    (tcData.purpose.consents[7] || tcData.purpose.legitimateInterests[7]) &&
400                    (tcData.purpose.consents[8] || tcData.purpose.legitimateInterests[8]) &&
401                    (tcData.purpose.consents[9] || tcData.purpose.legitimateInterests[9])
402                ) {
403                    metadata.gdpr_consent = tcData.tcString;
404                }
405
406                //required configuration parameters do not change
407                var config = {
408                    name: "P&G",
409                    pixelUrl: "https://pandg.tapad.com/tag"
410                };
411
412                //initialize tag object
413                var tagger = Tapad.init(metadata, config);
414
415                //prepare object for passing custom data parameters
416                //object can be empty if passing no custom data parameters
417                //one or more additional parameters can be added - depen
417ding on availability
418                var data = {
419                    category: dataLayer[0] ? dataLayer[0].page ? dataLayer[0].page.category ?? "" : "" : ""
420                    //sample custom parameters
421                    //category: "Parenting",
422                    //age_range: "26_30",
423                    //gender: "female"
424                };
425
426                //for more information on firing the tag on custom events see the integration guide
427                //fire tag sync when ready
428                tagger.sync(data).then(console.log);
429                // Pankak
430                resolveProc();
431            });
432            s.src = 'https://pghub.io/js/pandg-sdk.js';
433        }
434        else {
435            // Pankak
436            resolveProc();
437        }
438    });
439    return procterAndGamblePromise;
440
441        })(tcData);
442        if (result && typeof result.then === 'function') {
443          return result;
444        }
445        return Promise.resolve();
446      } catch (e) {
447        console.error('AdProvider error (id=9, name=' + "procter_and_gamble" + ')', e);
448        return Promise.resolve();
449      }
450    }
451  });
452  window.capitalAdProviders.push({
453    id: 10,
454    name: "copper",
455    priority: 1000,
456    position: "AdProvider",
457    run: function (tcData) {
458      try {
459        var result = (function (tcData) {
460    return new Promise((resolve, reject) => {
461        (function () {
462            window.googletag = window.googletag || {};
463            window.vmpbjs = window.vmpbjs || {};
464            window.vpb = window.vpb || {};
465            vpb.cmd = vpb.cmd || [];
466            vpb.st = Date.now();
467            vpb.fastLoad = true;
468
469            googletag.cmd = googletag.cmd || [];
470            vmpbjs.cmd = vmpbjs.cmd || [];
471
472            var cmds = [];
473            try {
474                cmds = googletag.cmd.slice(0);
475                googletag.cmd.length = 0;
476            } catch (e) { }
477
478            var ready = false;
479            function exec(cb) { return cb.call(googletag); }
480
481            var overriden = false;
482
483            googletag.cmd.push(function () {
484                overriden = true;
485
486                googletag.cmd.unshift = function (cb) {
487                    if (ready) {
488                        return exec(cb);
489                    }
490                    cmds.unshift(cb);
491                    if (cb._startgpt) {
492                        ready = true;
493                        for (var k = 0; k < cmds.length; k++) {
494                            exec(cmds[k]);
495                        }
496                    }
497                };
498
499                googletag.cmd.push = function (cb) {
500                    if (ready) {
501                        return exec(cb);
502                    }
503                    cmds.push(cb);
504                };
505            });
506
507            if (!overriden) {
508                googletag.cmd.push = function (cb) { cmds.push(cb); };
509
510                googletag.cmd.unshift = function (cb) {
511                    cmds.unshift(cb);
512                    if (cb._startgpt) {
513                        ready = true;
514                        if (googletag.apiReady) {
515                            cmds.forEach(function (cb) { googletag.cmd.push(cb); });
516                        } else {
517                            googletag.cmd = cmds;
518                        }
519                    }
520                };
521            }
522
523            var dayMs = 36e5;
524            var cb = parseInt(Date.now() / dayMs);
525
526            var vpbSrc = '//player.hb.selectmedia.asia/prebidlink/' + cb + '/wrapper_hb_308331_10078.js';
527            var pbSrc = vpbSrc.replace('wrapper_hb', 'hb');
528            var gptSrc = '//securepubads.g.doubleclick.net/tag/js/gpt.js';
529
530            var c = document.head || document.body || document.documentElement;
531
532            function loadScript(src) {
533                return new Promise((resolveScript, rejectScript) => {
534                    var s = document.createElement('script');
535                    s.src = src;
536                    s.defer = true;
537                    c.appendChild(s);
538
539                    s.onload = resolveScript;
540                    s.onerror = function () {
541                        // Fallback start GPT
542                        var fn = function () { };
543                        fn._startgpt = true;
544                        googletag.cmd.unshift(fn);
545                        rejectScript(new Error("Failed to load: " + src));
546                    };
547                });
548            }
549
550            Promise.all([
551                loadScript(pbSrc),
552                loadScript(gptSrc),
553                loadScript(vpbSrc)
554            ])
555                .then(() => resolve("All GPT/Prebid scripts loaded"))
556                .catch(err => reject(err));
557
558        })();
559    });
560
561
562        })(tcData);
563        if (result && typeof result.then === 'function') {
564          return result;
565        }
566        return Promise.resolve();
567      } catch (e) {
568        console.error('AdProvider error (id=10, name=' + "copper" + ')', e);
569        return Promise.resolve();
570      }
571    }
572  });
573  window.capitalAdProviders.push({
574    id: 11,
575    name: "gdpr_extras",
576    priority: 1010,
577    position: "AdProvider",
578    run: function (tcData) {
579      try {
580        var result = (function (tcData) {
581function insertGdprExtrasPromise(tcData) {
582    return new Promise((resolve, reject) => {
583
584        try {
585            if (window.gdprExtras && Array.isArray(window.gdprExtras)) {
586
587                for (let i = 0; i < window.gdprExtras.length; i++) {
588
589                    // Safely preprocess the function string
590                    window.gdprExtras[i] = window.gdprExtras[i]
591                        .toString()
592                        .replace(/\${GDPR_CONSENT_\d+}/mg, tcData.tcString)
593                        .replace("${GDPR}", ~~tcData.gdprApplies)
594                        .replace("[timestamp]", (Date.now() / 1000) | 0);
595
596                    // Convert text to function
597                    let fn = eval("(" + window.gdprExtras[i] + ")");
598
599                    // Execute function with tcData
600                    fn(tcData);
601                }
602            }
603
604            resolve("GDPR extras executed");
605
606        } catch (err) {
607            reject(err);
608        }
609    });
610}
611
612
613        })(tcData);
614        if (result && typeof result.then === 'function') {
615          return result;
616        }
617        return Promise.resolve();
618      } catch (e) {
619        console.error('AdProvider error (id=11, name=' + "gdpr_extras" + ')', e);
620        return Promise.resolve();
621      }
622    }
623  });
624})();
625</script>
625
626<!--Render AdProviders End-->
627
628
629
630
631
632    
632<script>
633        var googletag = googletag || {};
634        googletag.cmd = googletag.cmd || [];
635    </script>
635
636    
636<script>
637
638       function responsiveAdsFn(bannerDivId, adWidth, adHeight) {
639           var container = document.getElementById(bannerDivId);
640           var advWidth = container.clientWidth;
641           var advHeight = container.clientHeight;
642           var iframe = container.querySelectorAll('iframe')[0];
643           var iframeWidth = iframe.clientWidth;
644           var iframeHeight = iframe.clientHeight;
645
646           var baseBanner = {
647               width: iframeWidth,
648               height: iframeHeight,
649               scale: 1
650           };
651
652           scaleBanner(iframe, advWidth, advHeight);
653
654           function scaleBanner(iframe, maxWidth, maxHeight) {
655               var scaleX = 1,
656                   scaleY = 1;
657               scaleX = maxWidth / baseBanner.width;
658               scaleY = maxHeight / baseBanner.height;
659               baseBanner.scaleX = scaleX;
660               baseBanner.scaleY = scaleY;
661               baseBanner.scale = (scaleX > scaleY) ? scaleY : scaleX;
662               iframe.style.transformOrigin = "left top 0px";
663               iframe.style.transform = "matrix(" + baseBanner.scale + ", 0, 0, " + baseBanner.scale + ", 0, 0)";
664               container.style.height = (baseBanner.height * baseBanner.scale) + "px";
665           }
666       }
667
668       //AD SCRIPTS
669       var getClosest = function (elem, selector) {
670           for (; elem && elem !== document; elem = elem.parentNode) {
671               if (elem.matches(selector)) return elem;
672           }
673           return null;
674       };
675
676       function fadeOut(el) {
677           el.style.opacity = 1;
678
679           (function fade() {
680               if ((el.style.opacity -= .1) < 0) {
681                   el.style.display = "none";
682               } else {
683                   requestAnimationFrame(fade);
684               }
685           })();
686       };
687
688
689
690
691
692       googletag.cmd.push(function () {
693
694           googletag.pubads().addEventListener('impressionViewable', function (event) {
695               var containerId = event.slot.getSlotElementId();
696               console.log('Impression for slot', containerId, 'became viewable.');
697               if (window.innerWidth <= 670) {
698                   var adunitContainer = document.getElementById(containerId);
699                   var parentSection = getClosest(adunitContainer, "section");
700                   if (parentSection.classList.contains("topbillboard")) {
701                       console.log("topbillboard Viewable");
702                       setTimeout(function () {
703                           console.log("topbillboard hidding");
704                           fadeOut(parentSection);
705                       }, 5000);
706                   }
707
708               }
709           });
710
711
712           googletag.pubads().addEventListener('slotRenderEnded', function (event) {
713
714               var containerId = event.slot.getSlotElementId();
715               var containsAd = !event.isEmpty;
716               console.log('%c slotRenderEnded: ' + event.slot.getAdUnitPath() + ' Container:' + containerId, 'font-size:15px;font-weight:bold; background: #222; color: #99ccff');
717               var parentNode = getClosest(document.getElementById(containerId), ".bannerparent");
718               if (containsAd == true) {
719                   console.log('%c AD OK!!! DISPLAYING: ' + event.slot.getAdUnitPath() + ' Container:' + containerId, 'font-size:15px;font-weight:bold;background: #222; color: #009933');
720
721                   if (window.innerWidth <= 670) {
722                       var adunitContainer = document.getElementById(containerId);
723                       var parentSection = getClosest(adunitContainer, "section");
724                       if (parentSection.classList.contains("topbillboard")) {
725                           console.log("topbillboard Render");
726                           parentSection.style.zIndex = 100;
727                           //setTimeout(function () {
728                           //    fadeOut(parentSection);
729                           //}, 8000);
730                       }
731                       //else if (event.size[0] > 300) {
732                       //parentSection.classList.add("stickyad");
733                       // setTimeout(function () {
734                       //parentSection.classList.remove("stickyad");
735                       //}, 8000);
736                       //console.log('resize:' +containerId);
737                       //responsiveAdsFn(containerId, event.size[0], event.size[1]);
738                       //}
739                   }
740
741                   
742                   if (document.getElementById("aboveHeaderBanner")) {
743                       if (window.innerWidth <= 670) {
744                           document.getElementById("aboveHeaderBanner").style.display = "none";
745                           document.getElementById("mainContentFirstBillboard").style.display = "block";
746                       } else {
747                           document.getElementById("aboveHeaderBanner").style.display = "block";
748                           document.getElementById("mainContentFirstBillboard").style.display = "none";
749                       }
750                   }
751
752                   if (document.getElementById(containerId).classList.contains("advertising-skin")) {
753                       console.log("HAS SKIN!")
754                       document.body.className += ' skin-layout';
755                   }
756                   if (typeof parentNode != 'undefined' && parentNode != null) {
757                       // parentNode.style.display = "block";
758                   }
759               } else {
760                   console.log('%c NO AD Hiding: ' + event.slot.getAdUnitPath() + ' Container:' + containerId, 'font-size:15px;font-weight:bold; background: #222; color: #ff4d4d');
761               //    document.getElementById(containerId).style.display = "none";
762               //    if (typeof parentNode != 'undefined' && parentNode != null) {
763               //        parentNode.style.display = "none";
764               //    }
765               }
766
767           });
768       });
769
770
771       if (window.innerWidth <= 600) {
772           //Mobile
773           appendImageToEndOfPageWithTimestamp("https://bit.ly/4bZiREq");
774       } else {
775           //Desktop
776           appendImageToEndOfPageWithTimestamp("https://bit.ly/48GweXk");
777       }
778
779    </script>
779
780
781
782
783
784    
785    
786
787    
787<script>
788
789        var IgnoreAdProviders = "0";
790
791        var firedOnce = false;
792
793    </script>
793
794
795    <style>
796        .stickyad {
797            position: sticky;
798            position: -webkit-sticky;
799            top: 56px;
800            z-index: 100000;
801        }
802
803        .fixedHeightBillboard, .fixedHeightBillboardArticle {
804            height: 274px;
805        }
806
807
808            .fixedHeightBillboard .banner-container {
809                top: 50%;
810                transform: translateY(-50%);
811            }
812
813        @media only screen and (max-width: 600px) {
814            .fixedHeightBillboard {
815                height: 130px;
816            }
817
818                .fixedHeightBillboard .banner-container {
819                    top: 50%;
820                    transform: translateY(-50%);
821                }
822
823            .fixedHeightBillboardArticle {
824                position: fixed;
825                top: 56px;
826                width: 100vw;
827                height: 130px;
828                z-index: -1
829            }
830
831                .fixedHeightBillboardArticle .banner-container {
832                    top: 50%;
833                    transform: translateY(-50%);
834                }
835        }
836    </style>
837
838    <style>
839        .widget-header-cta,
840        .widget-logo {
841            color: #FFF !important;
842        }
843
844    </style>
845
846
847</head>
848<body>
849    <div id='adv96c5684a3977435bbd488e9bbfd8dd2f' class="advert DFPPrestitial_New" style="position:fixed;top:90px;left:1px;width:1px;height:1px;z-index:9999"></div>
850<script>
851  window.ATH_ADS = window.ATH_ADS || [];
852  ATH_ADS.push({
853    id: 'adv96c5684a3977435bbd488e9bbfd8dd2f',
854    all: {
855      path: '/145311068/Prestitial_New',
856      sizes: [1, 1]
857    },
858    targeting: function (slot) {
859      
860    }
861  });
862</script>
862
863    <style>
864    .advertising-skin div:first-of-type{
865        left:50%;
866        transform: translateX(-50%);
867        position:absolute;
868        top:0;
869        display:block;
870    }
871</style>
872<div id='adv7e466124d9a6412b9bca092e677ae924' class="advert advertising-skin" style="width: 100%;position: fixed;top: 0;text-align:center;z-index:0"></div>
873<script>
874  window.ATH_ADS = window.ATH_ADS || [];
875  ATH_ADS.push({
876    id: 'adv7e466124d9a6412b9bca092e677ae924',
877    breakpoint: 1200,          // ← desktop μόνο πάνω από 1200px
878    desktop: {
879      path: '/145311068/Athinorama_Skin_New',
880      sizes: [1, 1]
881    },
882    targeting: function (slot) {
883      
884    }
885  });
886</script>
886
887<div class="DFPAthinorama_Skin_New"></div>
vendor: 93 bytes, lines 887-892
887
888
889
890    
891    <noscript>
892        <iframe src="https://www.googletagmanager.com/ns.html?id=
892GTM-KPFR2P7
vendor: 130 bytes, lines 892-903
892" height="0" width="0" style="display:none;visibility:hidden"></iframe>
893    </noscript>
894
895    
896    
897
898
899
900    
901    
902    
903
904<header class="category-tv">
905    <div class="header-inner">
906
907        <div class="controls-nav left">
908            <button class="trigger-nav">
909
910                <span class="burger-icon">
911                    <span class="line"></span>
912                    <span class="line"></span>
913                    <span class="line"></span>
914                </span>
915
916                <span class="search-icon">
917                    <span></span>
918                </span>
919
920                <span class="text">Τηλεόραση</span>
921
922            </button>
923        </div>
924
925        <div class="main-logo">
926            <a href="/" class="logo">
927                <svg class="icon">
928                    <use href="/content/images/logos/logo.svg#logo" xlink:href="/content/images/logos/logo.svg#logo" />
929                </svg>
930            </a>
931            
932        </div>
933
934        <div class="controls-nav right">
935            <ul>
936                <li class="user-info">
937                    <a href="https://members.athinorama.gr/">
938                        <span class="text">My Αθηνόραμα</span>
939                        <span class="user">
940                            <span class="icon"></span>
941                        </span>
942                    </a>
943                </li>
944                <li class="tv-program">
945                    <a href="/tv/programma/simera">
946                        <span class="text">Ταινίες</span>
947                        <svg class="icon">
948                            <use href="/content/images/icons/ath-stroke-icons.svg#tv" xlink:href="/content/images/icons/ath-icons.svg#tv" />
949                        </svg>
950                    </a>
951                </li>
952            </ul>
953        </div>
954
955    </div>
956</header>
957
958    <!-- Main Navigation -->
959        <nav class="main-navigation">
960        <ul>
961                    <li class="category-cinema">
962                        <a href="/cinema">
963                            ΣΙΝΕΜΑ
964                        </a>
965                      
966                        </li>
967                    <li class="category-theatre">
968                        <a href="/theatre">
969                            ΘΕΑΤΡΟ
970                        </a>
971                      
972                        </li>
973                    <li class="category-music">
974                        <a href="/music">
975                            ΜΟΥΣΙΚΗ
976                        </a>
977                      
978                        </li>
979                    <li class="category-restaurants">
980                        <a href="/restaurants">
981                            ΕΣΤΙΑΤΟΡΙΑ
982                        </a>
983                      
984                        </li>
985                    <li class="category-clubbing">
986                        <a href="/clubbing">
987                            BARS &amp; CLUBS
988                        </a>
989                      
990                        </li>
991                    <li class="category-nightlife">
992                        <a href="/nightlife">
993                            NIGHTLIFE
994                        </a>
995                      
996                        </li>
997                    <li class="category-culture">
998                        <a href="/texnes">
999                            ΤΕΧΝΕΣ
1000                        </a>
1001                      
1002                        </li>
1003                    <li class="category-child">
1004                        <a href="/child">
1005                            ΠΑΙΔΙ
1006                        </a>
1007                      
1008                        </li>
1009                    <li class="category-umami">
1010                        <a href="https://tasty.athinorama.gr">
1011                            TASTY
1012                        </a>
1013                      
1014                        </li>
1015                    <li class="category-travel">
1016                        <a href="/travel">
1017                            TRAVEL
1018                        </a>
1019                      
1020                        </li>
1021                    <li class="category-wine">
1022                        <a href="/winebox">
1023                            WINEBOX
1024                        </a>
1025                      
1026                        </li>
1027
1028            <li class=""><a href="#0" class="trigger-nav">Περισσότερα <span></span></a></li>
1029        </ul>
1030    </nav>
1031
1032
1033
1034    
1035    <main id="main">
1036
1037        <!-- Category Search -->
1038
1039
1040                <section class="category-search">
1041
1042                        <div class="category-search-inner has-filters">
1043
1044        <div class="category-search-title">
1045            <h2>Μάθε τα πάντα για ό,τι γίνεται στην πόλη</h2>
1046        </div>
1047
1048        <div class="category-search-form">
1049            <form class="form general-search-form" action="/search" method="get">
1050                <fieldset class="general-search">
1051                    <input type="hidden" name="lat" class="search-form-lat" />
1052                    <input type="hidden" name="lon" class="search-form-lon"/>
1053                    <div class="form-item">
1054                        <input type="search" name="query" tabindex="1" placeholder="Γρήγορη αναζήτηση...">
1055                        <button class="button-primary submit-button" type="submit">
1056                            <span class="search-icon"></span>
1057                        </button>
1058                    </div>
1059
1060                </fieldset>
1061
1062            </form>
1063        </div>
1064
1065        <nav class="category-search-filters">
1066            <ul>
1067                    <li>
1068                        <a href="/cinema/guide">
1069                            <svg class="icon"><use href="/content/images/icons/icons.svg#map-pin" xlink:href="/content/images/icons/icons.svg#map-pin"></use></svg>
1070                            Οδηγός ΣΙΝΕΜΑ
1071                        </a>
1072                    </li>
1073                    <li>
1074                        <a href="/theatre/guide">
1075                            <svg class="icon"><use href="/content/images/icons/icons.svg#map-pin" xlink:href="/content/images/icons/icons.svg#map-pin"></use></svg>
1076                            Οδηγός ΘΕΑΤΡΟΥ
1077                        </a>
1078                    </li>
1079                    <li>
1080                        <a href="/music/guide">
1081                            <svg class="icon"><use href="/content/images/icons/icons.svg#map-pin" xlink:href="/content/images/icons/icons.svg#map-pin"></use></svg>
1082                            Οδηγός ΜΟΥΣΙΚΗΣ
1083                        </a>
1084                    </li>
1085                    <li>
1086                        <a href="/restaurants/guide">
1087                            <svg class="icon"><use href="/content/images/icons/icons.svg#map-pin" xlink:href="/content/images/icons/icons.svg#map-pin"></use></svg>
1088                            Οδηγός ΕΣΤΙΑΤΟΡΙΩΝ
1089                        </a>
1090                    </li>
1091                <li class="trigger-submenu">
1092                    <span>More</span>
1093                    <ul class="submenu">
1094                            <li>
1095                                <a href="/nightlife/guide">
1096                                    <svg class="icon"><use href="/content/images/icons/icons.svg#map-pin" xlink:href="/content/images/icons/icons.svg#map-pin"></use></svg>
1097                                    Οδηγός NIGHTLIFE
1098                                </a>
1099                            </li>
1100                            <li>
1101                                <a href="/clubbing/guide">
1102                                    <svg class="icon"><use href="/content/images/icons/icons.svg#map-pin" xlink:href="/content/images/icons/icons.svg#map-pin"></use></svg>
1103                                    Οδηγός BARS &amp; CLUBS 
1104                                </a>
1105                            </li>
1106                            <li>
1107                                <a href="/texnes/guide">
1108                                    <svg class="icon"><use href="/content/images/icons/icons.svg#map-pin" xlink:href="/content/images/icons/icons.svg#map-pin"></use></svg>
1109                                    Οδηγός ΤΕΧΝΩΝ
1110                                </a>
1111                            </li>
1112                            <li>
1113                                <a href="/child/cinema/guide/">
1114                                    <svg class="icon"><use href="/content/images/icons/icons.svg#map-pin" xlink:href="/content/images/icons/icons.svg#map-pin"></use></svg>
1115                                    Οδηγός ΠΑΙΔΙΟΥ
1116                                </a>
1117                            </li>
1118                    </ul>
1119                </li>
1120            </ul>
1121        </nav>
1122
1123    </div>
1124    <div class="cover-image category-search-cover"></div>
1125
1126
1127                </section>
1128                <section class="marquee-banner bannerparent" id="mainContentFirstBillboard">
1129
1130                    <div class="banner-container" style="overflow:hidden;">
1131                        <div id='Bnr04d151dbc3f849db85313a2f9c9108c4' class="advert"></div>
1132<script>
1133  window.ATH_ADS = window.ATH_ADS || [];
1134  ATH_ADS.push({
1135    id: 'Bnr04d151dbc3f849db85313a2f9c9108c4',
1136    collapseEmptyDiv: true,
1137    desktop: {
1138      path: '/145311068/Athinorama_Billboard_A',
1139      sizes: [[1,1],[970,250],[728,90],[970,90],[970,500],[1,1],[1080,430]]
1140    },
1141    tablet: {
1142      path: '/145311068/Athinorama_Billboard_A',
1143      sizes: [[1,1],[728,90]]
1144    },    
1145    mobile: {
1146      path: '/145311068/Athinorama_mobilebillboard_A',   // ← προσοχή: ΔΙΑΦΟΡΕΤΙΚΟ network code
1147      sizes: [[300,250],[300,50],[320,80],[300,100],[300,80],[320,100],[320,50],[1,1],[1080,430]]
1148    },
1149    targeting: function (slot) {
1150      
1151    }
1152  });
1153</script>
1153
1154                    </div>
1155                </section>
1156
1157
1158
1159
1160        
1161<!-- Feed Container ( Articles ) -->
1162<section class="feed-container category-tv">
1163
1164    <!-- Breaker Title -->
1165    <div class="breaker-title">
1166        <h2><a name="schedule" href="#0">Ταινίες Πέμπτη 01 Οκτωβρίου</a></h2>
1167        <div class="tags text-center">
1168            <ul>
1169    <li class="highlighted"><a href="/tv/programma/olatakanalia/">Πρόγραμμα Καναλιών</a></li>
1170    
1171    <li><a href="/tv/programma/simera/">Ταινίες TV Σήμερα</a></li>
1172    <li><a href="/tv/programma/athlitikesmetadoseis/">Αθλητικές Μεταδόσεις</a></li>
1173        <li><a href="/tv/programma/20261002">Πρόγραμμα 02/10</a></li>
1174    <li><a href="/tv/programma/20261003">Πρόγραμμα 03/10</a></li>
1175    <li><a href="/tv/programma/20261004">Πρόγραμμα 04/10</a></li>
1176    
1177</ul>
1178        </div>
1179    </div>
1180</section>
1181
1182
1183<section class="feed-container television bg-dark-gray">
1184
1185    <div class="grid-split-layout">
1186
1187        <!-- Left -->
1188        <div class="tv-live">
1189
1190            <div class="breaker-title-underline">
1191                <h3><span>Παίζουν τώρα</span></h3>
1192            </div>
1193
1194            <div class="grid">
1195
1196                
1197
1198
1199
1200<div class="item horizontal ">
1201    <div class="item-image normal-ratio">
1202        <a target="_self" title="Τα Καλύτερά μας Χρόνια Κ3 Ε53 (Ε)">
1203                <img loading="lazy" class="lazyload" data-src="/content/imagesdatabase/media/channels-logos/ert1.jpg" src="/Content/ImagesDatabase/noimage-icon.png?width=76&amp;height=76&amp;mode=crop&amp;v=1" alt="Τα Καλύτερά μας Χρόνια Κ3 Ε53 (Ε)" width="76" height="76" onerror="this.src = '/Content/images/noimage-icon.png?width=430&height=241&format=jpg&mode=crop&v=1'">
1204        </a>
1205    </div>
1206    <div class="item-content">
1207        <div class="item-description">
1208                    <h4>
1209                        <a target="_self" title="Τα Καλύτερά μας Χρόνια Κ3 Ε53 (Ε)">Τα Καλύτερά μας Χρόνια Κ3 Ε53 (Ε)</a>
1210                    </h4>
1211                                            </div>
1212    </div>
1213
1214</div>
1215
1216
1217
1218<div class="item horizontal ">
1219    <div class="item-image normal-ratio">
1220        <a target="_self" title="Κοινωνία Ώρα MEGA">
1221                <img loading="lazy" class="lazyload" data-src="/content/imagesdatabase/media/channels-logos/mega.jpg" src="/Content/ImagesDatabase/noimage-icon.png?width=76&amp;height=76&amp;mode=crop&amp;v=1" alt="Κοινωνία Ώρα MEGA" width="76" height="76" onerror="this.src = '/Content/images/noimage-icon.png?width=430&height=241&format=jpg&mode=crop&v=1'">
1222        </a>
1223    </div>
1224    <div class="item-content">
1225        <div class="item-description">
1226                    <h4>
1227                        <a target="_self" title="Κοινωνία Ώρα MEGA">Κοινωνία Ώρα MEGA</a>
1228                    </h4>
1229                                            </div>
1230    </div>
1231
1232</div>
1233
1234
1235
1236
1237            </div>
1238            <a href="/tv/programma/olatakanalia/" class="button-primary button-xs">Πλήρες Πρόγραμμα</a>
1239        </div>
1240
1241        <!-- Right -->
1242        <div class="tv-slider">
1243
1244            <div class="breaker-title-underline">
1245                <h3><span>TV - Αξίζει να δείτε</span></h3>
1246
1247                <div class="slider-controls">
1248                    <div class="arrow-prev"></div>
1249                    <div class="arrow-next"></div>
1250                </div>
1251
1252            </div>
1253
1254            <div class="swiper-container">
1255                <div class="swiper-wrapper">
1256                    
1257                        <div class="swiper-slide">
1258                            <div class="item category-tv horizontal">
1259                                <div class="item-image poster-image">
1260                                    <a href="/tv/movie/fonazei_o_kleftis-10033393/">
1261                                        <img loading="lazy" src="https://www.athinorama.gr/content/imagesdatabase/f6/f69c3358b1b8489094ba52e8320fcade.jpg?width=173&height=260&mode=pad&bgcolor=0e0d0d" alt="Φωνάζει ο Κλέφτης" width="173" height="260">
1262                                    </a>
1263                                </div>
1264                                <div class="item-content">
1265                                    <div class="item-description">
1266                                        <h2><a href="/tv/movie/fonazei_o_kleftis-10033393/">Φωνάζει ο Κλέφτης</a></h2>
1267
1268                                        <div class="title-infos">
1269                                            <div class="rating-stars gold" style="--stars: 2.5;">
1270                                                <span> 2,5</span>
1271                                            </div>
1272                                        </div>
1273
1274                                        <p>Ένας φιλότιμος λογιστής αναστατώνει την οικογένεια ενός απόστρατου στρατηγού όταν έρχεται να παραδώσει το χαμένο πορτοφόλι του που περιέχει ένα άκρως ενοχοποιητικό γράμμα.</p>
1275                                        <div class="item-infos">
1276                                            <span class="channel">MEGA</span>
1277                                            <span class="time">21:00</span>
1278                                        </div>
1279                                    </div>
1280
1281                                </div>
1282
1283                            </div>
1284                        </div>
1285                        <div class="swiper-slide">
1286                            <div class="item category-tv horizontal">
1287                                <div class="item-image poster-image">
1288                                    <a href="/tv/movie/ksimeronei-10053145/">
1289                                        <img loading="lazy" src="https://www.athinorama.gr/content/imagesdatabase/5e/5ef90972d8924e38813338c6a6344924.jpg?width=173&height=260&mode=pad&bgcolor=0e0d0d" alt="Ξημερώνει" width="173" height="260">
1290                                    </a>
1291                                </div>
1292                                <div class="item-content">
1293                                    <div class="item-description">
1294                                        <h2><a href="/tv/movie/ksimeronei-10053145/">Ξημερώνει</a></h2>
1295
1296                                        <div class="title-infos">
1297                                                <div class="original-title" style="color:#75b1b4"><span>Le Jour se Leve</span></div>
1298                                            <div class="rating-stars gold" style="--stars: 4.5;">
1299                                                <span> 4,5</span>
1300                                            </div>
1301                                        </div>
1302
1303                                        <p>Ξεκινώντας από το τέλος, το φιλμ κλείνει κιόλας από την πρώτη σεκάνς τον πρωταγωνιστή φονιά Φρανσουά στο διαμέρισμα μιας εργατικής πολυκατοικίας, περικυκλωμένο από την αστυνομία. Αλήθεια, πώς φτάσαμε μέχρις εκεί;</p>
1304                                        <div class="item-infos">
1305                                            <span class="channel">ΒΟΥΛΗ</span>
1306                                            <span class="time">22:00</span>
1307                                        </div>
1308                                    </div>
1309
1310                                </div>
1311
1312                            </div>
1313                        </div>
1314                        <div class="swiper-slide">
1315                            <div class="item category-tv horizontal">
1316                                <div class="item-image poster-image">
1317                                    <a href="/tv/movie/to_megalo_sortarisma-10050458/">
1318                                        <img loading="lazy" src="https://www.athinorama.gr/content/imagesdatabase/9a/9a8085e061464bbf9561831d5180ac27.jpg?width=173&height=260&mode=pad&bgcolor=0e0d0d" alt="Το Μεγάλο Σορτάρισμα" width="173" height="260">
1319                                    </a>
1320                                </div>
1321                                <div class="item-content">
1322                                    <div class="item-description">
1323                                        <h2><a href="/tv/movie/to_megalo_sortarisma-10050458/">Το Μεγάλο Σορτάρισμα</a></h2>
1324
1325                                        <div class="title-infos">
1326                                                <div class="original-title" style="color:#75b1b4"><span>The Big Short</span></div>
1327                                            <div class="rating-stars gold" style="--stars: 3.5;">
1328                                                <span> 3,5</span>
1329                                            </div>
1330                                        </div>
1331
1332                                        <p>Στα μέσα της δεκαετίας του 2000 μια ομάδα outsiders του χρηματιστηριακού κόσμου καταλαβαίνουν πως, ενάντια στη γενική πεποίθηση, μια μεγάλη οικονομική κρίση είναι έτοιμη να ξεσπάσει και προσπαθούν να κινηθούν κόντρα στο ρεύμα και τα μεγάλα τραπεζικά συμφέροντα.</p>
1333                                        <div class="item-infos">
1334                                            <span class="channel">ΣΚΑΪ</span>
1335                                            <span class="time">01:00</span>
1336                                        </div>
1337                                    </div>
1338
1339                                </div>
1340
1341                            </div>
1342                        </div>
1343
1344
1345
1346                </div>
1347            </div>
1348
1349        </div>
1350
1351    </div>
1352
1353</section>
1354
1355
1356<section class="feed-container category-tv">
1357    <div class="sticky-container">
1358
1359        <!-- Left -->
1360        <div class="left">
1361            <!-- Guide List -->
1362<div class="sticky-breaker-title">
1363    <h2>Πέμπτη 01 Οκτωβρίου</h2>
1364</div>
1365<div class="guide-list movies-list">
1366
1367    <!-- 1 -->
1368        <div class="item horizontal card-item">
1369
1370
1371            <div class="item-image poster-image
1372                      ">
1373                <a href="/tv/movie/enas_antras_me_filotimo-10044394/">
1374                    <img src="/lmnts/events/cinema/10044394/Poster.jpg?w=170&h=250&mode=max" alt="">
1375                </a>
1376            </div>
1377
1378            <div class="item-content">
1379                <div class="item-description">
1380
1381                    <h2 class="item-title"><a href="/tv/movie/enas_antras_me_filotimo-10044394/">Ένας Άντρας με Φιλότιμο</a></h2>
1382
1383                    <div class="title-infos">
1384                        <div class="original-title"><span></span></div>
1385                        <div class="rating-stars single-star zero" style="--stars: 0;">
1386                            <span> </span>
1387                        </div>
1388                    </div>
1389
1390                    <div class="tags">
1391                        <ul>
1392                            <li><span>Κομεντί</span></li>
1393                            <li><span>1960</span></li>
1394                            <li><span>Α/Μ</span></li>
1395                            <li><span>Διάρκεια: 84'</span></li>
1396                        </ul>
1397                    </div>
1398
1399                    <p class="summary">Γόνος αριστοκρατικής και πλούσιας οικογένειας, που ζει υπό την κηδεμονία των καθώς πρέπει θείων του, ερωτεύεται ένα φτωχοκόριτσο (&#171;το χαμίνι&#187; όπως είναι ο δεύτερος τίτλος της ταινίας) που πουλάει λουλούδια στα νυχτερινά κέντρα.</p>
1400
1401                    <div class="item-infos">
1402                        <span class="channel">ΕΡΤ3</span>
1403                        <span class="time">14:30</span>
1404                    </div>
1405
1406                </div>
1407            </div>
1408        </div>
1409        <div class="item horizontal card-item">
1410
1411
1412            <div class="item-image poster-image
1413                      ">
1414                <a href="/tv/movie/enas_kontos_tha_mas_sosei-10048090/">
1415                    <img src="/lmnts/events/cinema/10048090/Poster.jpg?w=170&h=250&mode=max" alt="">
1416                </a>
1417            </div>
1418
1419            <div class="item-content">
1420                <div class="item-description">
1421
1422                    <h2 class="item-title"><a href="/tv/movie/enas_kontos_tha_mas_sosei-10048090/">Ένας Κοντός Θα Μας Σώσει</a></h2>
1423
1424                    <div class="title-infos">
1425                        <div class="original-title"><span></span></div>
1426                        <div class="rating-stars single-star zero" style="--stars: 0;">
1427                            <span> </span>
1428                        </div>
1429                    </div>
1430
1431                    <div class="tags">
1432                        <ul>
1433                            <li><span>Κωμωδία</span></li>
1434                            <li><span>1981</span></li>
1435                            <li><span>Έγχρ.</span></li>
1436                            <li><span>Διάρκεια: 86'</span></li>
1437                        </ul>
1438                    </div>
1439
1440                    <p class="summary">Στην προσπάθειά του να βρει δουλειά, ένας νταλικέρης γίνεται πρωταγωνιστής σε ένα σίριαλ.</p>
1441
1442                    <div class="item-infos">
1443                        <span class="channel">STAR</span>
1444                        <span class="time">15:00</span>
1445                    </div>
1446
1447                </div>
1448            </div>
1449        </div>
1450        <div class="item horizontal card-item">
1451
1452
1453            <div class="item-image poster-image
1454                      ">
1455                <a href="/tv/movie/thanasakis_o_politeuomenos-10035968/">
1456                    <img src="/lmnts/events/cinema/10035968/Poster.jpg?w=170&h=250&mode=max" alt="">
1457                </a>
1458            </div>
1459
1460            <div class="item-content">
1461                <div class="item-description">
1462
1463                    <h2 class="item-title"><a href="/tv/movie/thanasakis_o_politeuomenos-10035968/">Θανασάκης ο Πολιτευόμενος</a></h2>
1464
1465                    <div class="title-infos">
1466                        <div class="original-title"><span></span></div>
1467                        <div class="rating-stars gold" style="--stars: 2;">
1468                            <span> 2</span>
1469                        </div>
1470                    </div>
1471
1472                    <div class="tags">
1473                        <ul>
1474                            <li><span>Κωμωδία</span></li>
1475                            <li><span>1954</span></li>
1476                            <li><span>Έγχρ.</span></li>
1477                            <li><span>Διάρκεια: 84'</span></li>
1478                        </ul>
1479                    </div>
1480
1481                    <p class="summary">Ένας μπακάλης βλέπει με απόγνωση το σύζυγο της φαντασμένης αδελφής του να ροκανίζει την προίκα της σε εκλογικές αναμετρήσεις, κυνηγώντας μια πολιτική καριέρα που δεν έρχεται ποτέ.</p>
1482
1483                    <div class="item-infos">
1484                        <span class="channel">ΕΡΤ1</span>
1485                        <span class="time">20:00</span>
1486                    </div>
1487
1488                </div>
1489            </div>
1490        </div>
1491        <div class="item horizontal card-item">
1492
1493
1494            <div class="item-image poster-image
1495                      ">
1496                <a href="/tv/movie/eikosi_gunaikes_ki_ego-10048059/">
1497                    <img src="/lmnts/events/cinema/10048059/Poster.jpg?w=170&h=250&mode=max" alt="">
1498                </a>
1499            </div>
1500
1501            <div class="item-content">
1502                <div class="item-description">
1503
1504                    <h2 class="item-title"><a href="/tv/movie/eikosi_gunaikes_ki_ego-10048059/">Είκοσι Γυναίκες κι Εγώ</a></h2>
1505
1506                    <div class="title-infos">
1507                        <div class="original-title"><span></span></div>
1508                        <div class="rating-stars single-star zero" style="--stars: 0;">
1509                            <span> </span>
1510                        </div>
1511                    </div>
1512
1513                    <div class="tags">
1514                        <ul>
1515                            <li><span>Κωμωδία</span></li>
1516                            <li><span>1973</span></li>
1517                            <li><span>Έγχρ.</span></li>
1518                            <li><span>Διάρκεια: 95'</span></li>
1519                        </ul>
1520                    </div>
1521
1522                    <p class="summary">Ο Κώστας είναι ο μοναδικός άντρας εργαζόμενος σε μια επιχείρηση γυναικείων εσωρούχων, όπου πολλές συνάδελφοί του τον βλέπουν ως υποψήφιο γαμπρό. Εκείνος έχει μάτια μόνο για την Μπέτυ, αλλά πρώτα πρέπει να παντρέψει τις αδερφές του.</p>
1523
1524                    <div class="item-infos">
1525                        <span class="channel">MEGA</span>
1526                        <span class="time">21:00</span>
1527                    </div>
1528
1529                </div>
1530            </div>
1531        </div>
1532        <div class="item horizontal card-item">
1533
1534
1535            <div class="item-image poster-image
1536                      ">
1537                <a href="/tv/movie/o_trelos_ta_xei_400-10045533/">
1538                    <img src="/lmnts/events/cinema/10045533/Poster.jpg?w=170&h=250&mode=max" alt="">
1539                </a>
1540            </div>
1541
1542            <div class="item-content">
1543                <div class="item-description">
1544
1545                    <h2 class="item-title"><a href="/tv/movie/o_trelos_ta_xei_400-10045533/">Ο Τρελός τα &#39;χει 400</a></h2>
1546
1547                    <div class="title-infos">
1548                        <div class="original-title"><span></span></div>
1549                        <div class="rating-stars gold" style="--stars: 1;">
1550                            <span> 1</span>
1551                        </div>
1552                    </div>
1553
1554                    <div class="tags">
1555                        <ul>
1556                            <li><span>Κωμωδία</span></li>
1557                            <li><span>1968</span></li>
1558                            <li><span>Έγχρ.</span></li>
1559                            <li><span>Διάρκεια: 87'</span></li>
1560                        </ul>
1561                    </div>
1562
1563                    <p class="summary">Ο Λάμπρος χάνει τα λογικά του όταν κερδίζει τον πρώτο αριθμό στο λαχείο. Όταν βγαίνει θεραπευμένος από την κλινική, διαπιστώνει ότι η οικογένειά του τα έχει χάσει από το ψώνιο του νεοπλουτισμού.</p>
1564
1565                    <div class="item-infos">
1566                        <span class="channel">STAR</span>
1567                        <span class="time">22:40</span>
1568                    </div>
1569
1570                </div>
1571            </div>
1572        </div>
1573        <div class="item horizontal card-item">
1574
1575
1576            <div class="item-image poster-image
1577                      ">
1578                <a href="/tv/movie/kai_o_protos_matakias-1003097/">
1579                    <img src="/lmnts/events/cinema/1003097/Poster.jpg?w=170&h=250&mode=max" alt="">
1580                </a>
1581            </div>
1582
1583            <div class="item-content">
1584                <div class="item-description">
1585
1586                    <h2 class="item-title"><a href="/tv/movie/kai_o_protos_matakias-1003097/">Και ο Πρώτος Ματάκιας</a></h2>
1587
1588                    <div class="title-infos">
1589                        <div class="original-title"><span></span></div>
1590                        <div class="rating-stars single-star zero" style="--stars: 0;">
1591                            <span> </span>
1592                        </div>
1593                    </div>
1594
1595                    <div class="tags">
1596                        <ul>
1597                            <li><span>Κωμωδία</span></li>
1598                            <li><span>1982</span></li>
1599                            <li><span>Έγχρ.</span></li>
1600                            <li><span>Διάρκεια: 88'</span></li>
1601                        </ul>
1602                    </div>
1603
1604                    <p class="summary">Ένας ξενοδοχοϋπάλληλος που έχει φετίχ να παίρνει μάτι, εμποδίζει μια συμμορία που έχει εγκατασταθεί στο ξενοδοχείο να πραγματοποιήσει μια διάρρηξη, αλλά κερδίζει και το χέρι της αφεντικίνας του.</p>
1605
1606                    <div class="item-infos">
1607                        <span class="channel">ALPHA</span>
1608                        <span class="time">00:30</span>
1609                    </div>
1610
1611                </div>
1612            </div>
1613        </div>
1614        <div class="item horizontal card-item">
1615
1616
1617            <div class="item-image poster-image
1618                      ">
1619                <a href="/tv/movie/aquaman_to_xameno_basileio-10080144/">
1620                    <img src="/content/imagesdatabase/2d/2d03c8a46421492285e7f31a561b2fa9.jpg?w=170&h=250&mode=max" alt="">
1621                </a>
1622            </div>
1623
1624            <div class="item-content">
1625                <div class="item-description">
1626
1627                    <h2 class="item-title"><a href="/tv/movie/aquaman_to_xameno_basileio-10080144/">Aquaman: Το Χαμένο Βασίλειο</a></h2>
1628
1629                    <div class="title-infos">
1630                        <div class="original-title"><span>
1630Aquaman and the Lost Kingdom</span></div>
1631                        <div class="rating-stars gold" style="--stars: 2;">
1632                            <span> 2</span>
1633                        </div>
1634                    </div>
1635
1636                    <div class="tags">
1637                        <ul>
1638                            <li><span>Περιπέτεια</span></li>
1639                            <li><span>2023</span></li>
1640                            <li><span>Έγχρ.</span></li>
1641                            <li><span>Διάρκεια: 115'</span></li>
1642                        </ul>
1643                    </div>
1644
1645                    <p class="summary">Ο Aquaman προσπαθεί ανεπιτυχώς να ισορροπήσει μεταξύ των βασιλικών, οικογενειακών και υπερηρωικών υποχρεώσεών του, όταν ένας μοχθηρός εχθρός ανακαλύπτει την τοποθεσία της Ατλαντίδας και απειλεί να την αφανίσει.</p>
1646
1647                    <div class="item-infos">
1648                        <span class="channel">STAR</span>
1649                        <span class="time">00:45</span>
1650                    </div>
1651
1652                </div>
1653            </div>
1654        </div>
1655        <div class="item horizontal card-item">
1656
1657
1658            <div class="item-image poster-image
1659                      ">
1660                <a href="/tv/movie/makrinos_orizontas-1004543/">
1661                    <img src="/lmnts/events/cinema/1004543/Poster.jpg?w=170&h=250&mode=max" alt="">
1662                </a>
1663            </div>
1664
1665            <div class="item-content">
1666                <div class="item-description">
1667
1668                    <h2 class="item-title"><a href="/tv/movie/makrinos_orizontas-1004543/">Μακρινός Ορίζοντας</a></h2>
1669
1670                    <div class="title-infos">
1671                        <div class="original-title"><span>Far and Away</span></div>
1672                        <div class="rating-stars gold" style="--stars: 2;">
1673                            <span> 2</span>
1674                        </div>
1675                    </div>
1676
1677                    <div class="tags">
1678                        <ul>
1679                            <li><span>Περιπέτεια</span></li>
1680                            <li><span>1992</span></li>
1681                            <li><span>Έγχρ.</span></li>
1682                            <li><span>Διάρκεια: 140'</span></li>
1683                        </ul>
1684                    </div>
1685
1686                    <p class="summary">Στα τέλη του 19ου αιώνα, ένας φτωχός Ιρλανδός αγρότης έρχεται στην Αμερική συνοδεύοντας ένα πλουσιοκόριτσο. Αφού προσπαθεί να κάνει καριέρα ως μποξέρ στο Σικάγο, φτάνει στην Οκλαχόμα, όπου μοιράζεται γη σε υποψήφιους κτηματίες.</p>
1687
1688                    <div class="item-infos">
1689                        <span class="channel">ΣΚΑΪ</span>
1690                        <span class="time">02:30</span>
1691                    </div>
1692
1693                </div>
1694            </div>
1695        </div>
1696        <div class="item horizontal card-item">
1697
1698
1699            <div class="item-image poster-image
1700                      ">
1701                <a href="/tv/movie/to_blemma_tou_martura-1004823/">
1702                    <img src="/lmnts/events/cinema/1004823/Poster.jpg?w=170&h=250&mode=max" alt="">
1703                </a>
1704            </div>
1705
1706            <div class="item-content">
1707                <div class="item-description">
1708
1709                    <h2 class="item-title"><a href="/tv/movie/to_blemma_tou_martura-1004823/">Το Βλέμμα του Μάρτυρα</a></h2>
1710
1711                    <div class="title-infos">
1712                        <div class="original-title"><span>Blink</span></div>
1713                        <div class="rating-stars gold" style="--stars: 2;">
1714                            <span> 2</span>
1715                        </div>
1716                    </div>
1717
1718                    <div class="tags">
1719                        <ul>
1720                            <li><span>Θρίλερ</span></li>
1721                            <li><span>1993</span></li>
1722                            <li><span>Έγχρ.</span></li>
1723                            <li><span>Διάρκεια: 106'</span></li>
1724                        </ul>
1725                    </div>
1726
1727                    <p class="summary">Μια τυφλή γυναίκα που μόλις έκανε εγχείρηση μεταμόσχευσης οφθαλμού, γίνεται μάρτυρας μιας δολοφονίας. Όμως, οι αισθήσεις με τις οποίες μπορεί να αναγνωρίσει τον δολοφόνο είναι η οσμή και το ένστικτο ότι κάποιος την απειλεί.</p>
1728
1729                    <div class="item-infos">
1730                        <span class="channel">STAR</span>
1731                        <span class="time">03:15</span>
1732                    </div>
1733
1734                </div>
1735            </div>
1736        </div>
1737
1738</div>
1739
1740        </div>
1741
1742        <!-- Right -->
1743        <div class="right">
1744
1745            <div class="sticky-inner">
1746
1747                <!-- The banners must be inside item -->
1748                <div class="item banner-right">
1749                    <div class="sticky-banner">
1750                        <div id='advfc71d3ed4da2436abc4f8288bc58df3a' class="advert"></div>
1751<script>
1752  window.ATH_ADS = window.ATH_ADS || [];
1753  ATH_ADS.push({
1754    id: 'advfc71d3ed4da2436abc4f8288bc58df3a',
1755    collapseEmptyDiv: true,
1756    all: {
1757      path: '/145311068/Athinorama_300X250_A_New',
1758      sizes: [[300,250],[300,600],[300,100]]
1759    },
1760    targeting: function (slot) {
1761      
1762    }
1763  });
1764</script>
1764
1765                    </div>
1766                </div>
1767
1768            </div>
1769
1770        </div>
1771
1772    </div>
1773
1774</section>
1775
1776<a name="all-tv-channels"> </a>
1777<section class="feed-container bg-beige">
1778            <div class="breaker-title">
1779                <h2><a href="#0">Το πρόγραμμα των καναλιών</a></h2>
1780            </div>
1781            
1782            <div class="grid grid-channels horizontal-scroll-mq-mobile">
1783                
1784                <div class="item">
1785                    <div class="item-image normal-ratio">
1786                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#action24" target="_blank" rel="nofollow">
1787                            <img src="/content/images/media/channels-logos/action24.jpg" alt="">
1788                        </a>
1789                    </div>
1790                </div>
1791                <div class="item">
1792                    <div class="item-image normal-ratio">
1793                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#alphahd" target="_blank" rel="nofollow">
1794                            <img src="/content/images/media/channels-logos/alpha.jpg" alt="">
1795                        </a>
1796                    </div>
1797                </div>
1798                <div class="item">
1799                    <div class="item-image normal-ratio">
1800                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#ant1hd" target="_blank" rel="nofollow">
1801                            <img src="/content/images/media/channels-logos/ant1.jpg" alt="">
1802                        </a>
1803                    </div>
1804                </div>
1805                <div class="item">
1806                    <div class="item-image normal-ratio">
1807                        <a href="https://blueskytv.gr/tv-program/" target="_blank" rel="nofollow">
1808                            <img src="/content/images/media/channels-logos/blue-sky.jpg" alt="">
1809                        </a>
1810                    </div>
1811                </div>
1812                <div class="item">
1813                    <div class="item-image normal-ratio">
1814                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#cosmotecinema1hd" target="_blank" rel="nofollow">
1815                            <img src="/content/images/media/channels-logos/cosmotetv.jpg" alt="">
1816                        </a>
1817                    </div>
1818                </div>
1819                <div class="item">
1820                    <div class="item-image normal-ratio">
1821                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#ερτ1hd" target="_blank" rel="nofollow">
1822                            <img src="/content/images/media/channels-logos/ert1.jpg" alt="">
1823                        </a>
1824                    </div>
1825                </div>
1826                <div class="item">
1827                    <div class="item-image normal-ratio">
1828                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#ερτ2hd" target="_blank" rel="nofollow">
1829                            <img src="/content/images/media/channels-logos/ert2.jpg" alt="">
1830                        </a>
1831                    </div>
1832                </div>
1833                <div class="item">
1834                    <div class="item-image normal-ratio">
1835                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#ερτ3hd" target="_blank" rel="nofollow">
1836                            <img src="/content/images/media/channels-logos/ert3.jpg" alt="">
1837                        </a>
1838                    </div>
1839                </div>
1840                <div class="item">
1841                    <div class="item-image normal-ratio">
1842                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#foxhd" target="_blank" rel="nofollow">
1843                            <img src="/content/images/media/channels-logos/fox.jpg" alt="">
1844                        </a>
1845                    </div>
1846                </div>
1847                <div class="item">
1848                    <div class="item-image normal-ratio">
1849                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#mad" target="_blank" rel="nofollow">
1850                            <img src="/content/images/media/channels-logos/mad.jpg" alt="">
1851                        </a>
1852                    </div>
1853                </div>
1854                <div class="item">
1855                    <div class="item-image normal-ratio">
1856                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#μακεδονίαtvhd" target="_blank" rel="nofollow">
1857                            <img src="/content/images/media/channels-logos/makedonia.jpg" alt="">
1858                        </a>
1859                    </div>
1860                </div>
1861                <div class="item">
1862                    <div class="item-image normal-ratio">
1863                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#megahd" target="_blank" rel="nofollow">
1864                            <img src="/content/images/media/channels-logos/mega.jpg" alt="">
1865                        </a>
1866                    </div>
1867                </div>
1868                <div class="item">
1869                    <div class="item-image normal-ratio">
1870                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#novacinema1" target="_blank" rel="nofollow">
1871                            <img src="/content/images/media/channels-logos/nova.jpg" alt="">
1872                        </a>
1873                    </div>
1874                </div>
1875                <div class="item">
1876                    <div class="item-image normal-ratio">
1877                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#openbeyondhd" target="_blank" rel="nofollow">
1878                            <img src="/content/images/media/channels-logos/open.jpg" alt="">
1879                        </a>
1880                    </div>
1881                </div>
1882                <div class="item">
1883                    <div class="item-image normal-ratio">
1884                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#σκαϊhd" target="_blank" rel="nofollow">
1885                            <img src="/content/images/media/channels-logos/skai.jpg" alt="">
1886                        </a>
1887                    </div>
1888                </div>
1889                <div class="item">
1890                    <div class="item-image normal-ratio">
1891                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#starhd" target="_blank" rel="nofollow">
1892                            <img src="/content/images/media/channels-logos/star.jpg" alt="">
1893                        </a>
1894                    </div>
1895                </div>
1896                <div class="item">
1897                    <div class="item-image normal-ratio">
1898                        <a href="https://www.cosmote.gr/cosmotetv/residential/program" target="_blank" rel="nofollow">
1899                            <img src="/content/images/media/channels-logos/village.jpg" alt="">
1900                        </a>
1901                    </div>
1902                </div>
1903                <div class="item">
1904                    <div class="item-image normal-ratio">
1905                        <a href="https://www.athinorama.gr/tv/programma/olatakanalia/#βουλη" target="_blank" rel="nofollow">
1906                            <img src="/content/images/media/channels-logos/vouli.jpg" alt="">
1907                        </a>
1908                    </div>
1909                </div>
1910
1911            </div>
1912
1913        </section>
1914
1915
1916
1917        
1918
1919
1920
1921        
1922
1923
1924        
1925    </main>
1926
1927    
1928    <!-- Side Navigation -->
1929<aside id="sidepanel" class="side-navigation">
1930
1931    <button class="close-nav"><span></span></button>
1932
1933    <div class="navigation-inner">
1934
1935        <div class="navigation-content">
1936
1937            <div class="navigation-header">
1938
1939                <a href="#0" class="navigation-logo">
1940                    <svg class="icon">
1941                        <use href="/content/images/logos/logo.svg#logo" xlink:href="/content/images/logos/logo.svg#logo" />
1942                    </svg>
1943                </a>
1944
1945                <div class="search-container">
1946
1947<form action="/search/" class="form burger-search-form" method="get">                        <input type="hidden" name="lat" class="search-form-lat" />
1948                        <input type="hidden" name="lon" class="search-form-lon" />
1949                        <div class="form-item">
1950                            <input type="search" name="query" tabindex="1" placeholder="Αναζήτηση στο Athinorama">
1951                        </div>
1952                        <button class="search-submit"><span></span></button>
1953</form>
1954                </div>
1955
1956                <div class="user-info">
1957                    <a href="https://members.athinorama.gr/">
1958                        <span class="user">
1959                            <svg class="icon">
1960                                <use href="/content/images/icons/ath-icons.svg#user" xlink:href="/content/images/icons/ath-icons.svg#user" />
1961                            </svg>
1962                        </span>
1963                        <span class="text">Sign in</span>
1964                    </a>
1965                </div>
1966
1967
1968            </div>
1969
1970            <nav class="navigation-categories">
1971
1972                <ul class="primary">
1973
1974                    
1975
1976                        <li class="category-cinema">
1977                            <a href="/cinema" >
1978                                ΣΙΝΕΜΑ
1979                            </a>
1980
1981                        </li>
1982                        <li class="category-theatre">
1983                            <a href="/theatre" >
1984                                ΘΕΑΤΡΟ
1985                            </a>
1986
1987                        </li>
1988                        <li class="category-music">
1989                            <a href="/music" >
1990                                ΜΟΥΣΙΚΗ
1991                            </a>
1992
1993                        </li>
1994                        <li class="category-restaurants">
1995                            <a href="/restaurants" >
1996                                ΕΣΤΙΑΤΟΡΙΑ
1997                            </a>
1998
1999                        </li>
2000                        <li class="category-clubbing">
2001                            <a href="/clubbing" >
2002                                BARS &amp; CLUBS 
2003                            </a>
2004
2005                        </li>
2006                        <li class="category-nightlife">
2007                            <a href="/nightlife" >
2008                                NIGHTLIFE
2009                            </a>
2010
2011                        </li>
2012                        <li class="category-culture">
2013                            <a href="/texnes" >
2014                                ΤΕΧΝΕΣ
2015                            </a>
2016
2017                        </li>
2018                        <li class="category-child">
2019                            <a href="/child" >
2020                                ΠΑΙΔΙ
2021                            </a>
2022
2023                        </li>
2024                        <li class="category-tech">
2025                            <a href="/tech" >
2026                                TECH
2027                            </a>
2028
2029                        </li>
2030                        <li class="category-tv">
2031                            <a href="/tv" >
2032                                ΤΗΛΕΟΡΑΣΗ
2033                            </a>
2034
2035                        </li>
2036                        <li class="category-plus">
2037                            <a href="/plus" >
2038                                ATHINORAMA PLUS
2039                            </a>
2040
2041                        </li>
2042                        <li class="category-umami">
2043                            <a href="https://tasty.athinorama.gr" >
2044                                TASTY
2045                            </a>
2046
2047                        </li>
2048                        <li class="category-digital">
2049                            <a href="https://digital.athinorama.gr" >
2050                                DIGITAL
2051                            </a>
2052
2053                        </li>
2054                        <li class="category-travel">
2055                            <a href="/travel" >
2056                                TRAVEL
2057                            </a>
2058
2059                        </li>
2060                        <li class="category-wine">
2061                            <a href="/winebox" >
2062                                WINEBOX
2063                            </a>
2064
2065                        </li>
2066                        <li class="category-">
2067                            <a href="https://www.alpha-guide.gr" >
2068                                ALPHA GUIDE
2069                            </a>
2070
2071                        </li>
2072                        <li class="category-">
2073                            <a href="https://www.xrysoiskoufoi.gr" >
2074                                ΧΡΥΣΟΙ ΣΚΟΥΦΟΙ
2075                            </a>
2076
2077                        </li>
2078                        <li class="category-">
2079                            <a href="https://www.greekcuisineawards.gr" >
2080                                ΒΡΑΒΕΙΑ ΕΛΛΗΝΙΚΗΣ ΚΟΥΖΙΝΑΣ 
2081                            </a>
2082
2083                        </li>
2084
2085                    <li class="category-cinema" style="display:none;">
2086                        <a href="#0"></a>
2087                        <ul class="nav-submenu">
2088                            <li>
2089                                <a href="#0"></a>
2090                            </li>
2091
2092                        </ul>
2093                    </li>
2094
2095                </ul>
2096
2097            </nav>
2098
2099            <div class="side-navigation-footer">
2100
2101                <ul class="social full-width bg-color">
2102    <li><a href="https://www.facebook.com/athinorama.gr/" class="facebook" target="_blank"><svg class="icon"><use href="/content/images/icons/icons.svg#facebook" xlink:href="/content/images/icons/icons.svg#facebook"></use></svg></a></li>
2103    <li><a href="https://www.instagram.com/athinoramagr/" class="instagram" target="_blank"><svg class="icon"><use href="/content/images/icons/icons.svg#instagram" xlink:href="/content/images/icons/icons.svg#instagram"></use></svg></a></li>
2104    
2105</ul>
2106
2107
2108
2109
2110                <div class="copyright">
2111                    <p>Δέσμη Εκδοτική © 2026 athinorama</p>
2112                            <a href="/about-us" >
2113            Σχετικά με εμάς
2114        </a>
2115        <a href="/contact" >
2116            Επικοινωνήστε μαζί μας
2117        </a>
2118        <a href="javascript:window.open(&quot;http://www.atticamediagroup.gr/pres/&quot;)" >
2119            Διαφημιστείτε
2120        </a>
2121        <a href="/financial" >
2122            Οικονομικά Στοιχεία
2123        </a>
2124        <a href="/terms-of-use" >
2125            Όροι Χρήσης - Πολιτική Απορρήτου
2126        </a>
2127
2128                </div>
2129
2130            </div>
2131
2132        </div>
2133
2134    </div>
2135
2136</aside>
2137
2138
2139
2140
2141    
2142
2143    
2144    
2145
2146    <!-- footer -->
2147    <footer>
2148        <div class="footer-inner">
2149
2150            <!-- Footer Header -->
2151            <div class="footer-header">
2152
2153                <a href="/" class="footer-logo">
2154                    <svg class="icon">
2155                        <use href="/content/images/logos/logo1.svg#logo" xlink:href="/content/images/logos/logo1.svg#logo" />
2156                    </svg>
2157                </a>
2158                <ul class="social full-width align-center">
2159    <li><a href="https://www.facebook.com/athinorama.gr/" class="facebook" target="_blank"><svg class="icon"><use href="/content/images/icons/icons.svg#facebook" xlink:href="/content/images/icons/icons.svg#facebook"></use></svg></a></li>
2160    <li><a href="https://www.instagram.com/athinoramagr/" class="instagram" target="_blank"><svg class="icon"><use href="/content/images/icons/icons.svg#instagram" xlink:href="/content/images/icons/icons.svg#instagram"></use></svg></a></li>
2161    
2162</ul>
2163
2164
2165
2166
2167
2168            </div>
2169            
2170            
2171<div class="footer-sitemap">
2172
2173    <div class="site-description">
2174        
2175        <p>Ο οδηγός διασκέδασης και ψυχαγωγίας της Αθήνας. Όλες οι πληροφορίες που χρειάζεσαι για να προγραμματίσεις την έξοδό σου.</p>
2176    </div>
2177            <div class="sitemap-column">
2178                <ul>
2179                        <li><a href="/cinema">ΣΙΝΕΜΑ</a></li>
2180                        <li><a href="/theatre">ΘΕΑΤΡΟ</a></li>
2181                        <li><a href="/music">ΜΟΥΣΙΚΗ</a></li>
2182                </ul>
2183            </div>
2184            <div class="sitemap-column">
2185                <ul>
2186                        <li><a href="/restaurants">ΕΣΤΙΑΤΟΡΙΑ</a></li>
2187                        <li><a href="/clubbing">BARS &amp; CLUBS </a></li>
2188                        <li><a href="/nightlife">NIGHTLIFE</a></li>
2189                </ul>
2190            </div>
2191            <div class="sitemap-column">
2192                <ul>
2193                        <li><a href="/texnes">ΤΕΧΝΕΣ</a></li>
2194                        <li><a href="/child">ΠΑΙΔΙ</a></li>
2195                        <li><a href="/tv">ΤΗΛΕΟΡΑΣΗ</a></li>
2196                </ul>
2197            </div>
2198            <div class="sitemap-column">
2199                <ul>
2200                </ul>
2201            </div>
2202    <div class="site-description" style="margin-top:20px">
2203        <p>
2204            ΔΕΣΜΗ ΑΝΩΝΥΜΗ ΕΚΔΟΤΙΚΗ ΕΜΠΟΡΙΚΗ ΔΙΑΦΗΜΙΣΤΙΚΗ ΡΑΔΙΟΦΩΝΙΚΗ ΕΤΑΙΡΕΙΑ ΚΑΙ ΕΦΑΡΜΟΓΩΝ ΔΙΑΔΙΚΤΥΟΥ<br />
2205            (ΔΕΣΜΗ ΕΚΔΟΤΙΚΗ Α.Ε.)<br />
2206            Λ ΚΗΦΙΣΙΑΣ 40, ΜΑΡΟΥΣΙ, Τ.Κ. 15125<br />
2207            099361015, ΦΑΕ ΑΘΗΝΩΝ<br />
2208            210-7450100<br />
2209            <br />
2210            Επωνυμία ιδιοκτήτη ΔΕΣΜΗ ΕΚΔΟΤΙΚΗ Α.Ε.<br />
2211            Διευθύνων Σύμβουλος Δημήτριος Ηλιόπουλος, Αναπληρωτής Διευθύνων Σύμβουλος Νικόλαος Πανόπουλος<br />
2212            Δικαιούχος του ονόματος τομέα (domain name): ΔΕΣΜΗ ΕΚΔΟΤΙΚΗ Α.Ε.<br />
2213            Εκδότης / Διευθυντής: Δημήτριος Ηλιόπουλος<br />
2214            Διευθύντρια Σύνταξης: Δέσποινα Ζευκιλή
2215        </p>
2216    </div>
2217
2218    <div class="membership">
2219        <div class="grid">
2220            <h3>Μέλος των </h3>
2221
2222            
2223            <span style="flex-basis: 70px; max-width: 70px;"><a href="http://www.ened.gr" target="_blank"><img src="/Content/images/media/footer-member-logos/ened.png" alt="" style="width:70px"></a></span>
2224            <span style="flex-basis: 70px; max-width: 70px;"><img src="/Content/images/media/footer-member-logos/mht_athinorama.png" alt="" style="width:70px"></span>
2225            
2226        </div>
2227    </div>
2228
2229</div>
2230
2231
2232
2233
2234
2235            <!-- Footer Attica Promo-->
2236            
2237                <div class="attica-promo">
2238        <ul>
2239                <li class="icon-text">
2240                    <a href="https://www.capital.gr" class="icon-text"  target="_blank" rel="noopener">
2241                                                    <svg class="icon">
2242                                <use href="/content/images/icons/network.svg#capital" xlink:href="/content/images/icons/network.svg#capital" />
2243                            </svg>
2244
2245                        <span>Capital</span>
2246                    </a>
2247                </li>
2248                <li>
2249                    <a href="https://www.thetoc.gr" class="icon-text"  target="_blank" rel="noopener">
2250                        
2251                        <span>TheTOC</span>
2252                    </a>
2253                </li>
2254                <li>
2255                    <a href="https://www.harpersbazaar.gr" class="icon-text"  target="_blank" rel="noopener">
2256                        
2257                        <span>Harper&#39;s BAZAAR</span>
2258                    </a>
2259                </li>
2260                <li class="icon-text">
2261                    <a href="https://www.madamefigaro.gr" class="icon-text"  target="_blank" rel="noopener">
2262                                                    <svg class="icon">
2263                                <use href="/content/images/icons/network.svg#madame" xlink:href="/content/images/icons/network.svg#madame" />
2264                            </svg>
2265
2266                        <span>Madame Figaro</span>
2267                    </a>
2268                </li>
2269                <li class="icon-text">
2270                    <a href="https://www.shape.gr" class="icon-text"  target="_blank" rel="noopener">
2271                                                    <svg class="icon">
2272                                <use href="/content/images/icons/network.svg#shape" xlink:href="/content/images/icons/network.svg#shape" />
2273                            </svg>
2274
2275                        <span>Shape</span>
2276                    </a>
2277                </li>
2278                <li class="icon-text">
2279                    <a href="http://www.yupiii.gr" class="icon-text"  target="_blank" rel="noopener">
2280                                                    <svg class="icon">
2281                                <use href="/content/images/icons/network.svg#yupiii" xlink:href="/content/images/icons/network.svg#yupiii" />
2282                            </svg>
2283
2284                        <span>Yupiii</span>
2285                    </a>
2286                </li>
2287                <li class="icon-text">
2288                    <a href="https://esquire.com.gr" class="icon-text"  target="_blank" rel="noopener">
2289                                                    <svg class="icon">
2290                                <use href="/content/images/icons/network.svg#esquire" xlink:href="/content/images/icons/network.svg#esquire" />
2291                            </svg>
2292
2293                        <span>Esquire</span>
2294                    </a>
2295                </li>
2296                <li>
2297                    <a href="https://www.missbloom.gr" class="icon-text"  target="_blank" rel="noopener">
2298                                                    <svg class="icon">
2299                                <use href="/content/images/icons/network.svg#missbloom" xlink:href="/content/images/icons/network.svg#missbloom" />
2300                            </svg>
2301
2302                        <span>Missbloom</span>
2303                    </a>
2304                </li>
2305        </ul>
2306    </div>
2307
2308
2309
2310            
2311            <div class="footer-copyright">
2312                <p class="copyright">Δέσμη Εκδοτική © 2026 athinorama</p>
2313                <nav>
2314                            <a href="/about-us" >
2315            Σχετικά με εμάς
2316        </a>
2317        <a href="/contact" >
2318            Επικοινωνήστε μαζί μας
2319        </a>
2320        <a href="javascript:window.open(&quot;http://www.atticamediagroup.gr/pres/&quot;)" >
2321            Διαφημιστείτε
2322        </a>
2323        <a href="/financial" >
2324            Οικονομικά Στοιχεία
2325        </a>
2326        <a href="/terms-of-use" >
2327            Όροι Χρήσης - Πολιτική Απορρήτου
2328        </a>
2329
2330                </nav>
2331            </div>
2332
2333
2334
2335
2336        </div><!-- Inner -->
2337    </footer>
2338
2339
2340
2341
2342
2343
2344
2345
2346    
2346<script src="/content/athinoramajs?v=s2L78CLtXorBj_NiCy9T1TxRF4DaWHMKkkErNeYqeX81"></script>
2346
2347
2348    
2349    
2350    
2351    
2351<script src="https://cdn.jsdelivr.net/npm/add-to-calendar-button@2"></script>
2351
2352
2353
2354    <div style="position: fixed;  bottom: 0px;  margin-right: auto; margin-left: auto;  left: 50%;  transform: translate(-50%, 0);z-index:999" class="bannerparent">
2355        <div id='bnr973c90a56a8741599a1f0bb4bf351a82' class="advert"></div>
2356<script>
2357  window.ATH_ADS = window.ATH_ADS || [];
2358  ATH_ADS.push({
2359    id: 'bnr973c90a56a8741599a1f0bb4bf351a82',
2360    breakpoint: 600,               // ← mobile μόνο <600px
2361    mobile: {
2362      path: '/145311068/Athinorama_320X50_New_mobile',
2363      sizes: [[320,50],[300,50],[1,1]]
2364    },
2365    // δεν έχει desktop config → πάνω από 600px κρύβεται ο ΕΑΥΤΟΣ του (όχι parent)
2366    hideSelfOnSkip: true,
2367    targeting: function (slot) {
2368      
2369    }
2370  });
2371</script>
2371
2372    </div>
2373
2374    
2374<script>
2375        function SearchFormHandler(searchFormElm) {
2376            if (searchFormElm) {
2377                var latElm = searchFormElm.querySelector(".search-form-lat");
2378                var lonElm = searchFormElm.querySelector(".search-form-lon");
2379                searchFormElm.addEventListener("submit", function (e) {
2380                    e.preventDefault();
2381                    var that = this;
2382                    if (window.navigator.geolocation) {
2383                        window.navigator.geolocation.getCurrentPosition(function (data) {
2384                            if (data.coords && data.coords.latitude && data.coords.longitude) {
2385                                if (latElm && lonElm) {
2386                                    latElm.value = data.coords.latitude;
2387                                    lonElm.value = data.coords.longitude;
2388                                } else {
2389                                    latElm.remove();
2390                                    lonElm.remove();
2391                                }
2392                            }
2393                            that.submit();
2394                        }, function (data) {
2395                            latElm.remove();
2396                            lonElm.remove();
2397                            that.submit();
2398                        });
2399                    } else {
2400                        latElm.remove();
2401                        lonElm.remove();
2402                        that.submit();
2403                    }
2404                });
2405            }
2406        }
2407        SearchFormHandler(document.querySelector(".general-search-form"));
2408        SearchFormHandler(document.querySelector(".burger-search-form"));
2409        SearchFormHandler(document.querySelector(".general-search-form"));
2410
2411        //var generalSearchForm = document.querySelector(".general-search-form");
2412        //var latElm = document.querySelector("#location-lat") || document.querySelector("#location-lat-home");
2413        //var lonElm = document.querySelector("#location-lon") || document.querySelector("#location-lon-home");
2414        //if (generalSearchForm) {
2415        //    generalSearchForm.addEventListener("submit", function (e) {
2416        //        e.preventDefault();
2417        //        var that = this;
2418        //        if (window.navigator.geolocation) {
2419        //            window.navigator.geolocation.getCurrentPosition(function (data) {
2420        //                if (data.coords && data.coords.latitude && data.coords.longitude) {
2421        //                    if (latElm && lonElm) {
2422        //                        latElm.value = data.coords.latitude;
2423        //                        lonElm.value = data.coords.longitude;
2424        //                    } else {
2425        //                        latElm.remove();
2426        //                        lonElm.remove();
2427        //                    }
2428        //                }
2429        //                that.submit();
2430        //            }, function (data) {
2431        //                latElm.remove();
2432        //                lonElm.remove();
2433        //                that.submit();
2434        //            });
2435        //        } else {
2436        //            latElm.remove();
2437        //            lonElm.remove();
2438        //            that.submit();
2439        //        }
2440        //    });
2441        //}
2442    </script>
2442
2443
2444    <!--RenderAdScripts START-->
2445<script async src="https://static.adman.gr/adman.js"></script>
vendor: 2 bytes, line 2445
2445
2446<script>
2447window.AdmanQueue=window.AdmanQueue||[];
2448AdmanQueue.push(function(){Adman.adunit({id:797,h:'https://x.grxchange.gr',inline:true})});
2449</script>
2449
2450<div class="gtranslate_wrapper"></div>
2451<script>window.gtranslateSettings = {"default_language":"el","url_structure":"sub_domain","languages":["el","en"],"wrapper_selector":".gtranslate_wrapper"}</script>
vendor: 2 bytes, line 2451
2451
2452<script src="https://cdn.gtranslate.net/widgets/latest/float.js" defer></script>
2452
2453
2454<style>
2455#gt_float_wrapper{
2456    bottom:50px !important;
2457    
2458}
2459</style>
2460<!--RenderAdScripts END-->
2461
2462
2463    <!--
2464  ============================================================
2465  Athinorama.gr — Κεντρικό Ad Init Script
2466  ============================================================
2467  Βάλε αυτό ΜΙΑ φορά, στο τέλος της σελίδας (πριν το </body>),
2468  ΜΕΤΑ από όλα τα ATH_ADS.push({...}) που βρίσκονται σκόρπια
2469  μέσα στο άρθρο/template.
2470
2471  ΠΡΟΣΟΧΗ: Το rewarded ad unit και το Amazon APS (Billboard A)
2472  ΔΕΝ περιλαμβάνονται εδώ — παραμένουν standalone scripts,
2473  αμετάβλητα, και πρέπει να μπαίνουν στη σελίδα ΜΕΤΑ από αυτό
2474  το κεντρικό script, ώστε το δικό τους enableServices()/refresh()
2475  να μην ακυρώνει το SRA batching των παρακάτω 27 slots.
2476
2477  Τι κάνει:
2478  - Ορίζει ΟΛΑ τα slots μαζί (προϋπόθεση για Single Request)
2479  - enableSingleRequest() + enableServices() ΜΙΑ φορά
2480  - Σέβεται breakpoint (mobile/tablet), tabletBreakpoint (tablet/desktop),
2481    desktop/tablet/mobile/all, collapseEmptyDiv
2482  - Σέβεται προαιρετικό condition() — π.χ. URL-based exclusion
2483  - Κρύβει (parent ή self) τα slots που δεν ισχύουν για το τρέχον viewport
2484  - Page-level targeting ({dfpTags}) ΜΙΑ φορά, εδώ — ΟΧΙ πια μέσα σε κάθε ad unit
2485  ============================================================
2486-->
2487<script>
2488(function () {
2489  'use strict';
2490
2491  var ADS = window.ATH_ADS || [];
2492  var DEFAULT_BREAKPOINT = 670;          // όριο mobile → tablet
2493  var DEFAULT_TABLET_BREAKPOINT = 1024;  // όριο tablet → desktop
2494  var w = window.innerWidth;
2495
2496  function getClosest(elem, selector) {
2497    for (; elem && elem !== document; elem = elem.parentNode) {
2498      if (elem.matches && elem.matches(selector)) return elem;
2499    }
2500    return null;
2501  }
2502
2503  function hideForSkippedEntry(entry) {
2504    var el = document.getElementById(entry.id);
2505    if (!el) return;
2506    if (entry.hideSelfOnSkip) {
2507      el.style.display = 'none';
2508    } else if (entry.hideParentOnSkip) {
2509      var parent = getClosest(el, entry.hideParentOnSkip);
2510      if (parent) parent.style.display = 'none';
2511    }
2512  }
2513
2514  googletag.cmd.push(function () {
2515    var pubads = googletag.pubads();
2516    var definedSlots = [];
2517
2518    // ---- global ρυθμίσεις: ΜΙΑ φορά ----
2519    // Page-level targeting — βάλε ΕΔΩ το raw {dfpTags} output του CMS σου
2520    
2521
2522    pubads.enableSingleRequest();
2523    pubads.collapseEmptyDivs();
2524    pubads.enableLazyLoad({
2525      fetchMarginPercent: 100,
2526      renderMarginPercent: 50,
2527      mobileScaling: 2.0
2528    });
2529
2530    // ---- ορισμός όλων των slots ----
2531    ADS.forEach(function (entry) {
2532      var el = document.getElementById(entry.id);
2533      if (!el) return;   // το div δεν υπάρχει σε αυτή τη σελίδα, παράλειψέ το
2534
2535      // URL-based ή άλλου τύπου προαιρετική συνθήκη (π.χ. εξαίρεση "texnes")
2536      if (typeof entry.condition === 'function') {
2537        try {
2538          if (!entry.condition()) return;   // δεν ισχύει σε αυτή τη σελίδα, παράλειψέ το εντελώς
2539        } catch (e) {
2540          console.warn('[ATH_ADS] condition() failed for', entry.id, e);
2541          return;
2542        }
2543      }
2544
2545      var bpMobile = entry.breakpoint || DEFAULT_BREAKPOINT;
2546      var bpTablet = entry.tabletBreakpoint || DEFAULT_TABLET_BREAKPOINT;
2547      var conf = null;
2548
2549      if (entry.all) {
2550        conf = entry.all;                                   // ίδιο σε όλα τα πλάτη
2551      } else if (w <= bpMobile) {
2552        conf = entry.mobile || null;
2553      } else if (w <= bpTablet) {
2554        conf = entry.tablet || entry.desktop || null;        // fallback σε desktop αν δεν οριστεί tablet
2555      } else {
2556        conf = entry.desktop || null;
2557      }
2558
2559      if (!conf) {
2560        hideForSkippedEntry(entry);
2561        return;
2562      }
2563
2564      var slot = googletag.defineSlot(conf.path, conf.sizes, entry.id);
2565      if (!slot) return;
2566
2567      slot.addService(pubads);
2568      if (entry.collapseEmptyDiv) slot.setCollapseEmptyDiv(true);
2569
2570      if (typeof entry.targeting === 'function') {
2571        try { entry.targeting(slot); }
2572        catch (e) { console.warn('[ATH_ADS] targeting failed for', entry.id, e); }
2573      }
2574
2575      definedSlots.push({ id: entry.id, slot: slot });
2576    });
2577
2578    // ---- ΜΙΑ φορά ----
2579    googletag.enableServices();
2580
2581    // ---- display όλων ----
2582    definedSlots.forEach(function (d) { googletag.display(d.id); });
2583
2584    console.log('[ATH_ADS] Ορίστηκαν ' + definedSlots.length + ' / ' +
2585                ADS.length + ' slots (SRA, μία κλήση enableServices)');
2586  });
2587})();
2588</script>
2588
2589
2590
2591<script>
2592    window.googletag = window.googletag || { cmd: [] };
2593
2594    let rewardedSlot = null;
2595    let rewardPayload = null;
2596    let adLoaded = false;
2597
2598    /**
2599     * Athinorama.gr - Rewarded Ad Frequency Cap
2600     *
2601     * Parameters:
2602     * - HOURLY_LIMIT: Maximum rewarded ads within a rolling 1-hour period
2603     * - DAILY_LIMIT: Maximum rewarded ads per calendar day
2604     */
2605    window.getRewardCapStatus = function () {
2606
2607        // =====================================================
2608        // FREQUENCY CAP PARAMETERS
2609        // =====================================================
2610
2611        const HOURLY_LIMIT = 1;     // Max ads per rolling hour
2612        const DAILY_LIMIT = 3;      // Max ads per calendar day
2613
2614        const STORAGE_KEY = 'athinorama_reward_cap_v2';
2615        const ONE_HOUR_MS = 60 * 60 * 1000;
2616
2617
2618        let data = null;
2619
2620        try {
2621
2622            const storedValue = localStorage.getItem(STORAGE_KEY);
2623
2624            if (storedValue) {
2625                data = JSON.parse(storedValue);
2626            }
2627
2628        }
2629        catch (e) {
2630
2631            console.error(
2632                '[AdCap][ERROR] Failed to read/parse localStorage:',
2633                e
2634            );
2635
2636            data = null;
2637        }
2638
2639
2640        const now = Date.now();
2641        const todayStr = new Date().toDateString();
2642
2643
2644        /*
2645         * New user / invalid storage / new calendar day
2646         */
2647        if (
2648            !data ||
2649            typeof data !== 'object' ||
2650            data.date !== todayStr
2651        ) {
2652
2653            data = {
2654                dailyCount: 0,
2655                rewardTimes: [],
2656                lastAdTime: 0,
2657                date: todayStr
2658            };
2659        }
2660
2661
2662        /*
2663         * Validate dailyCount
2664         */
2665        let dailyCount = Number(data.dailyCount);
2666
2667        if (!Number.isFinite(dailyCount) || dailyCount < 0) {
2668            dailyCount = 0;
2669        }
2670
2671
2672        /*
2673         * =====================================================
2674         * BACKWARD COMPATIBILITY
2675         * =====================================================
2676         *
2677         * Old storage used only:
2678         *
2679         * {
2680         *     dailyCount: X,
2681         *     lastAdTime: timestamp,
2682         *     date: "..."
2683         * }
2684         *
2685         * New storage also has rewardTimes[].
2686         */
2687        if (!Array.isArray(data.rewardTimes)) {
2688
2689            data.rewardTimes = [];
2690
2691            const oldLastAdTime = Number(data.lastAdTime);
2692
2693            if (
2694                Number.isFinite(oldLastAdTime) &&
2695                oldLastAdTime > 0
2696            ) {
2697                data.rewardTimes.push(oldLastAdTime);
2698            }
2699        }
2700
2701
2702        /*
2703         * Clean invalid timestamps and keep ONLY rewards
2704         * that happened inside the last rolling hour.
2705         */
2706        const oneHourAgo = now - ONE_HOUR_MS;
2707
2708        const recentRewardTimes = data.rewardTimes
2709            .map(function (value) {
2710                return Number(value);
2711            })
2712            .filter(function (timestamp) {
2713
2714                return (
2715                    Number.isFinite(timestamp) &&
2716                    timestamp > 0 &&
2717                    timestamp > oneHourAgo &&
2718                    timestamp <= now
2719                );
2720            });
2721
2722
2723        data.rewardTimes = recentRewardTimes;
2724        data.dailyCount = dailyCount;
2725        data.date = todayStr;
2726
2727
2728        /*
2729         * =====================================================
2730         * CAP EVALUATION
2731         * =====================================================
2732         */
2733
2734        const hourlyCount = recentRewardTimes.length;
2735
2736        const isHourlyCapped =
2737            hourlyCount >= HOURLY_LIMIT;
2738
2739        const isDailyCapped =
2740            dailyCount >= DAILY_LIMIT;
2741
2742
2743        let reason = 'ok';
2744
2745        if (isDailyCapped) {
2746
2747            reason = 'daily_limit';
2748
2749        }
2750        else if (isHourlyCapped) {
2751
2752            reason = 'hourly_limit';
2753        }
2754
2755
2756        /*
2757         * Persist cleaned state.
2758         */
2759        try {
2760
2761            localStorage.setItem(
2762                STORAGE_KEY,
2763                JSON.stringify(data)
2764            );
2765
2766        }
2767        catch (e) {
2768
2769            console.error(
2770                '[AdCap][ERROR] Failed to persist cleaned frequency cap state:',
2771                e
2772            );
2773        }
2774
2775
2776        return {
2777
2778            isCapped:
2779                isHourlyCapped ||
2780                isDailyCapped,
2781
2782            reason: reason,
2783
2784            hourlyCount: hourlyCount,
2785
2786            dailyCount: dailyCount,
2787
2788            hourlyLimit: HOURLY_LIMIT,
2789
2790            dailyLimit: DAILY_LIMIT,
2791
2792            increment: function () {
2793
2794                try {
2795
2796                    const timestamp = Date.now();
2797
2798                    /*
2799                     * Increase daily counter.
2800                     */
2801                    data.dailyCount =
2802                        Number(data.dailyCount || 0) + 1;
2803
2804
2805                    /*
2806                     * Add reward timestamp.
2807                     */
2808                    if (!Array.isArray(data.rewardTimes)) {
2809                        data.rewardTimes = [];
2810                    }
2811
2812                    data.rewardTimes.push(timestamp);
2813
2814
2815                    /*
2816                     * Keep only timestamps from the last hour.
2817                     */
2818                    const cutoff =
2819                        timestamp - ONE_HOUR_MS;
2820
2821                    data.rewardTimes =
2822                        data.rewardTimes.filter(
2823                            function (rewardTime) {
2824
2825                                return (
2826                                    Number.isFinite(Number(rewardTime)) &&
2827                                    Number(rewardTime) > cutoff &&
2828                                    Number(rewardTime) <= timestamp
2829                                );
2830                            }
2831                        );
2832
2833
2834                    /*
2835                     * Keep lastAdTime for compatibility/debugging.
2836                     */
2837                    data.lastAdTime = timestamp;
2838
2839                    data.date =
2840                        new Date().toDateString();
2841
2842
2843                    localStorage.setItem(
2844                        STORAGE_KEY,
2845                        JSON.stringify(data)
2846                    );
2847
2848
2849                    console.log(
2850                        '[AdCap] Frequency cap updated:',
2851                        'hourlyCount=' + data.rewardTimes.length +
2852                        '/' + HOURLY_LIMIT,
2853                        '| dailyCount=' + data.dailyCount +
2854                        '/' + DAILY_LIMIT
2855                    );
2856
2857                }
2858                catch (e) {
2859
2860                    console.error(
2861                        '[AdCap][ERROR] Unable to update frequency cap state:',
2862                        e
2863                    );
2864                }
2865            }
2866        };
2867    };
2868
2869
2870    googletag.cmd.push(function () {
2871
2872        try {
2873
2874            const capTracker =
2875                window.getRewardCapStatus();
2876
2877
2878            /*
2879             * Create Rewarded Web Ad slot.
2880             */
2881            rewardedSlot =
2882                googletag.defineOutOfPageSlot(
2883                    "/145311068/Athinorama__Rewarded_Ad_Unit",
2884                    googletag.enums.OutOfPageFormat.REWARDED
2885                );
2886
2887
2888            if (!rewardedSlot) {
2889
2890                console.error(
2891                    '[Rewarded][ERROR] Rewarded ads are not supported on this page/device.'
2892                );
2893
2894                return;
2895            }
2896
2897
2898            /*
2899             * Attach PubAds service.
2900             */
2901            try {
2902
2903                rewardedSlot.addService(
2904                    googletag.pubads()
2905                );
2906
2907            }
2908            catch (e) {
2909
2910                console.error(
2911                    '[Rewarded][ERROR] Failed to add PubAds service:',
2912                    e
2913                );
2914
2915                return;
2916            }
2917
2918
2919            /*
2920             * =================================================
2921             * FREQUENCY CAP KEY-VALUE
2922             * =================================================
2923             */
2924
2925            const capValue =
2926                capTracker.isCapped
2927                    ? 'true'
2928                    : 'false';
2929
2930
2931            try {
2932
2933                rewardedSlot.setTargeting(
2934                    'cap_reached',
2935                    capValue
2936                );
2937
2938            }
2939            catch (e) {
2940
2941                console.error(
2942                    '[Rewarded][ERROR] Failed to set cap_reached targeting:',
2943                    e
2944                );
2945
2946                return;
2947            }
2948
2949
2950            /*
2951             * Existing GAM / page targeting
2952             */
2953            try {
2954
2955                
2956
2957            }
2958            catch (e) {
2959
2960                console.error(
2961                    '[Rewarded][ERROR] Failed while applying DFP/GAM targeting:',
2962                    e
2963                );
2964            }
2965
2966
2967            /*
2968             * Debug information
2969             */
2970            console.log(
2971                '[Rewarded] GAM targeting:',
2972                'cap_reached=' + capValue,
2973                '| reason=' + capTracker.reason,
2974                '| hourlyCount=' +
2975                    capTracker.hourlyCount +
2976                    '/' +
2977                    capTracker.hourlyLimit,
2978                '| dailyCount=' +
2979                    capTracker.dailyCount +
2980                    '/' +
2981                    capTracker.dailyLimit
2982            );
2983
2984
2985            /*
2986             * Rewarded slot ready.
2987             */
2988            googletag.pubads().addEventListener(
2989                'rewardedSlotReady',
2990                function (event) {
2991
2992                    try {
2993
2994                        if (event.slot !== rewardedSlot) {
2995                            return;
2996                        }
2997
2998                        if (adLoaded) {
2999                            return;
3000                        }
3001
3002                        adLoaded = true;
3003
3004                        event.makeRewardedVisible();
3005
3006                        console.log(
3007                            '[Rewarded] Rewarded ad made visible.'
3008                        );
3009
3010                    }
3011                    catch (e) {
3012
3013                        console.error(
3014                            '[Rewarded][ERROR] Error inside rewardedSlotReady:',
3015                            e
3016                        );
3017                    }
3018                }
3019            );
3020
3021
3022            /*
3023             * Reward granted.
3024             */
3025            googletag.pubads().addEventListener(
3026                'rewardedSlotGranted',
3027                function (event) {
3028
3029                    try {
3030
3031                        if (event.slot !== rewardedSlot) {
3032                            return;
3033                        }
3034
3035                        rewardPayload =
3036                            event.payload;
3037
3038
3039                        console.log(
3040                            '[Rewarded] Reward granted.'
3041                        );
3042
3043
3044                        /*
3045                         * Count successful rewarded ad.
3046                         */
3047                        capTracker.increment();
3048
3049                    }
3050                    catch (e) {
3051
3052                        console.error(
3053                            '[Rewarded][ERROR] Error inside rewardedSlotGranted:',
3054                            e
3055                        );
3056                    }
3057                }
3058            );
3059
3060
3061            /*
3062             * Rewarded slot closed.
3063             */
3064            googletag.pubads().addEventListener(
3065                'rewardedSlotClosed',
3066                function (event) {
3067
3068                    try {
3069
3070                        if (event.slot !== rewardedSlot) {
3071                            return;
3072                        }
3073
3074
3075                        rewardPayload = null;
3076                        adLoaded = false;
3077
3078
3079                        if (rewardedSlot) {
3080
3081                            const destroyed =
3082                                googletag.destroySlots([
3083                                    rewardedSlot
3084                                ]);
3085
3086
3087                            if (!destroyed) {
3088
3089                                console.error(
3090                                    '[Rewarded][ERROR] googletag.destroySlots() returned false.'
3091                                );
3092                            }
3093
3094
3095                            rewardedSlot = null;
3096                        }
3097
3098
3099                        console.log(
3100                            '[Rewarded] Rewarded ad closed.'
3101                        );
3102
3103                    }
3104                    catch (e) {
3105
3106                        console.error(
3107                            '[Rewarded][ERROR] Error inside rewardedSlotClosed:',
3108                            e
3109                        );
3110                    }
3111                }
3112            );
3113
3114
3115            /*
3116             * Ad render result.
3117             */
3118            googletag.pubads().addEventListener(
3119                'slotRenderEnded',
3120                function (event) {
3121
3122                    try {
3123
3124                        if (event.slot !== rewardedSlot) {
3125                            return;
3126                        }
3127
3128
3129                        if (event.isEmpty) {
3130
3131                            /*
3132                             * No-fill is NOT necessarily an error.
3133                             */
3134                            console.log(
3135                                '[Rewarded] No ad returned for rewarded slot.'
3136                            );
3137
3138                        }
3139                        else {
3140
3141                            console.log(
3142                                '[Rewarded] Ad rendered successfully.'
3143                            );
3144                        }
3145
3146                    }
3147                    catch (e) {
3148
3149                        console.error(
3150                            '[Rewarded][ERROR] Error inside slotRenderEnded:',
3151                            e
3152                        );
3153                    }
3154                }
3155            );
3156
3157
3158            /*
3159             * Enable GPT services.
3160             */
3161            try {
3162
3163                googletag.enableServices();
3164
3165            }
3166            catch (e) {
3167
3168                console.error(
3169                    '[Rewarded][ERROR] googletag.enableServices() failed:',
3170                    e
3171                );
3172
3173                return;
3174            }
3175
3176
3177            /*
3178             * Request Rewarded Ad.
3179             */
3180            try {
3181
3182                googletag.display(
3183                    rewardedSlot
3184                );
3185
3186            }
3187            catch (e) {
3188
3189                console.error(
3190                    '[Rewarded][ERROR] googletag.display() failed:',
3191                    e
3192                );
3193            }
3194
3195        }
3196        catch (e) {
3197
3198            console.error(
3199                '[Rewarded][ERROR] Unexpected initialization error:',
3200                e
3201            );
3202        }
3203    });
3204</script>
3204
3205
3206
3207</body>
3208</html>

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.