CINXE.COM

‘Johatsu’: Tallinn Review | Reviews | Screen

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="preload" as="style" href="/Magazine/core.css?p=7513768137537033"> <link rel="preload" as="script" href="/Magazine/core.js?p=7513768137537033"> <link rel="preload" as="image" href="https://d1nslcd7m2225b.cloudfront.net/Pictures/480xany/0/2/1/1437021_johatsu_201664.jpg" imagesrcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/480xany/0/2/1/1437021_johatsu_201664.jpg 480w,https://d1nslcd7m2225b.cloudfront.net/Pictures/600xany/0/2/1/1437021_johatsu_201664.jpg 600w,https://d1nslcd7m2225b.cloudfront.net/Pictures/780xany/0/2/1/1437021_johatsu_201664.jpg 780w" imagesizes="(max-width: 1023px) 100vw, 780px" /> <!-- OneTrust Cookies Consent Notice start for Screen Daily | Film News, Film Reviews, Film Festivals and Awards --> <script src="https://cdn-ukwest.onetrust.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="9135b9e3-8796-4495-a4a1-5fd2085b2b56" ></script> <script type="text/javascript"> function OptanonWrapper() { } </script> <!-- OneTrust Cookies Consent Notice end for Screen Daily | Film News, Film Reviews, Film Festivals and Awards --> <title>‘Johatsu’: Tallinn Review | Reviews | Screen</title> <meta name="description" content="Chilly Lithuanian drama sees a morgue worker consumed by the case of a missing man" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="momentnowdate" content="2024-11-24 04:20:32.698"/> <meta name="momentlocale" content="en-gb"/> <meta name="momentlocaleformat" content="D MMMM YYYY"/> <meta name="momentrelative" content="false"/> <meta name="momentrelativeformat" content="YYYY,MM,DD"/> <meta name="momentrelativemorethan" content="10"/> <meta name="pubdate" content="Thu, 21 Nov 2024 19:48 GMT" /> <link rel="canonical" href="https://www.screendaily.com/reviews/johatsu-tallinn-review/5199293.article" /> <meta name="blockthis" content="blockGA" /> <meta name="showwallpaper" content="true" /> <meta name="navcode" content="27" /> <meta name="primarynavigation" content="Reviews" /> <meta property="og:title" content="‘Johatsu’: Tallinn Review" /> <meta property="og:type" content="Article" /> <meta property="og:url" content="https://www.screendaily.com/reviews/johatsu-tallinn-review/5199293.article" /> <meta property="og:site_name" content="Screen" /> <meta property="og:description" content="Chilly Lithuanian drama sees a morgue worker consumed by the case of a missing man" /> <meta property="og:image:width" content="1024" /> <meta property="og:image:height" content="536" /> <meta property="og:image" content="https://d1nslcd7m2225b.cloudfront.net/Pictures/1024x536/0/2/1/1437021_johatsu_201664.jpg" /> <meta property="og:image:alt" content="Johatsu" /> <meta property="twitter:card" content="summary_large_image" /> <meta property="twitter:title" content="‘Johatsu’: Tallinn Review" /> <meta property="twitter:description" content="Chilly Lithuanian drama sees a morgue worker consumed by the case of a missing man" /> <meta property="twitter:image:src" content="https://d1nslcd7m2225b.cloudfront.net/Pictures/1120xAny/0/2/1/1437021_johatsu_201664.jpg" /> <meta property="twitter:image:alt" content="Johatsu" /> <link rel="icon" href="/magazine/dest/graphics/favicons/favicon-32x32.png" /> <!--[if IE]><link rel="shortcut icon" href="/magazine/dest/graphics/favicons/favicon.ico" /><![endif]--> <link rel="apple-touch-icon-precomposed" href="/magazine/dest/graphics/favicons/apple-touch-icon-precomposed.png" /> <meta name="msapplication-TileImage" content="/magazine/dest/graphics/favicons/mstile-144x144.png" /> <meta name="msapplication-TileColor" content="#ffffff" /> <link href="/Magazine/core.css?p=7513768137537033" rel="stylesheet" type="text/css"> <link href="/Magazine/print.css?p=7513768137537033" rel="stylesheet" type="text/css" media="print"> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script>var newLang={"more":{"default":"Show more","searchtype":"Show more","searchdates":"Show more"},"less":{"default":"Show fewer","searchtype":"Show fewer","searchdates":"Show fewer"},"show":{"default":"show"},"hide":{"default":"hide"},"caption":{"show":"show caption","hide":"hide caption"},"carousel":{"play":"play slideshow","pause":"pause slideshow"}};</script> <script type="text/javascript"> var IPState = { useripstate: false, useripname: '' }; </script> <script type="text/javascript"> window.dataLayer = window.dataLayer || []; window.dataLayer.push({'StoryID':'5199293'}); window.dataLayer.push({'StoryFormatProperty':'N'}); window.dataLayer.push({'StoryCategories':'|Festivals|Europe|Reviews|Tallinn Black Nights|Lithuania|Reviews|Reviews homepage|'}); window.dataLayer.push({'StoryLayout':'Standard'}); window.dataLayer.push({'StoryWidth':'standard width'}); window.dataLayer.push({'StoryLayoutCode':'1'}); window.dataLayer.push({'StoryFormatCode':'1101'}); window.dataLayer.push({'StoryTypeCode':'2'}); window.dataLayer.push({'StoryCategoriesCodes':'|9|72|11068|11814|11820|11895|12632|'}); window.dataLayer.push({'StoryFullNavPath':'|1|27|'}); window.dataLayer.push({'UserID':undefined}); window.dataLayer.push({'NavCode':'27'}); window.dataLayer.push({'MicrositeNavCode':'-1'}); window.dataLayer.push({'NavKey':'5198'}); window.dataLayer.push({'NavigationAreaNavCode':'27'}); </script> <script type="text/javascript"> window.dataLayer.push({'AccessQualificationTypeName':'Free access (anonymous users)'}); window.dataLayer.push({'AccessProductCode':'SDMA'}); window.dataLayer.push({'AccessProductName':'Screen Daily Metered access'}); window.dataLayer.push({'AccessCount':'1'}); </script> <script type="text/javascript"> window.dataLayer = window.dataLayer || []; window.dataLayer.push({'LoggedIn':'False'}); window.dataLayer.push({'AuthorName':'|Wendy Ide|'}); window.dataLayer.push({'ContentAccessStatus':'Granted'}); window.dataLayer.push({'StoryType':'Reviews'}); window.dataLayer.push({'UserStateLoggedIn':'False'}); window.dataLayer.push({'FullNavPath':'|1|27|'}); </script> <link href="https://fonts.googleapis.com/css?family=Fira+Sans:700|Open+Sans:400,700,800" rel="stylesheet"> <style type="text/css"> .leaderboard .ad { padding: 24px 0; text-align:center; } #wrapper_sleeve { background-color:#ffffff; } .wallpaper-applied header#masthead + .ad { padding:24px 0; text-align:center; } @media only screen and (max-width: 768px) { .mob-ad-75 { min-height:75px; } .wallpaper-applied header#masthead + .ad { width:360px !important; padding:24px 0; text-align:center; } } /* .billboard { position: relative; width:100%; margin:auto; } @media only screen and (min-width: 768px) { .billboard { width:100%; margin:auto; } } .billboard .sleeve { margin: auto; padding: 24px; text-align: center } .billboard.no-styles { background-color: transparent; border: 0 } .billboard.no-styles .sleeve>div { padding: 0 } .billboard .notice { display: none; margin-bottom: -10px; padding-top: 12px } */ @media screen and (max-width: 767px){ .mob-ad-75 { min-height: 75px; } } /* CLS with wallpaper - fix site width */ #wrapper_sleeve { position: relative; max-width: 1024px; margin: 0 auto; background-color: #fff; } body#story.story-style-2 #wrapper_sleeve, body#story.story-style-4 #wrapper_sleeve, body#story.story-style-5 #wrapper_sleeve, body#story.story-style-6 #wrapper_sleeve, body#story.story-style-7 #wrapper_sleeve{ max-width:unset; } .footer { width: 100vw; position: relative; left: 50%; right: 50%; margin-left: -50vw; margin-right: -50vw; } .wallpaper-applied.site-width-1024 .container.hot-topics-container .inner-sleeve { max-width: 1180px; width:auto; margin: 0 auto; } .container.hot-topics-container .inner-sleeve { max-width: 1180px; width:auto; margin: 0 auto; } .footer .container .inner-sleeve { max-width: 1220px; } #wrapper_sleeve>:first-child { padding-top: 31px; background-color: #fff; } .accessContainer>.container:first-child .inner-sleeve { padding-top: 60px; } @media only screen and (max-width: 768px) { .accessContainer .storyPreview .access-denied-index-img.picture img{ width:100px; } } @media screen and (min-width: 1024px){ /*.hero-spin{ width:100%; margin-left: -50%; margin-right: -50%; } .grid .hero-carousel .swiper-box, .container>.inner-sleeve:not(#colwrapper) .grid .oneColumn .spinVideo.full-width-background, .container>.inner-sleeve:not(#colwrapper) .grid .oneColumn .spinVideo.site-width-background, .container>.inner-sleeve:not(#colwrapper) .grid .oneColumn div.full-width-background, .container>.inner-sleeve:not(#colwrapper) .grid .oneColumn div.site-width-background{ width:100%; margin-left: calc(-50% + 50%); } */ body#story.story-style-1 .contentWrapper{ width: auto; padding-right: 7%; } body#story.story-style-2 .contentWrapper, body#story.story-style-4 .contentWrapper, body#story.story-style-5 .contentWrapper, body#story.story-style-6 .contentWrapper, body#story.story-style-7 .contentWrapper { width: 107%; padding-right: 7%; } } @media screen and (min-width: 1180px){ /*.grid .hero-carousel .swiper-box{ width:100%; margin-left: -50%; margin-right: -50%; } } */ .wallpaper-applied.site-width-1024 #mainnav > .inner-sleeve { max-width: 1220px; } .wallpaper-applied.site-width-1024 .mast > .inner-sleeve { max-width: 1220px; } .wallpaper-applied.site-width-1024 .footer .inner-sleeve { max-width: 1220px; } .wallpaper-applied.site-width-1024 .ad-style1, .wallpaper-applied.site-width-1024 .container .inner-sleeve { max-width: 1220px; } /* end - CLS with wallpaper - fix site width */ .wallpaper-applied #wrapper_sleeve > :first-child { padding-top:0px !important; } .wallpaper-applied #wrapper_sleeve > .container:first-child > .inner-sleeve, .wallpaper-applied #wrapper_sleeve > div:empty + div .inner-sleeve { padding-top: 10px !important; } .sponsored-link-text { font-size: .889rem !important } .sponsored-link-text a:hover { color:#a81c22; text-decoration:underline } </style> <!-- Start Temp Fix MBICS-652 --> <style> .contactList ul li { border-bottom: 0 solid #bebebe; / } </style> <!-- End Temp Fix MBICS-652 --> <style> /* TEMP FIX PWVD-819*/ @media screen and (max-width:1023px) { .enhanced-advertising #rightcolumn_sleeve { display:block; } #story.enhanced-advertising #rightcolumn_sleeve { display: none; } } </style> <style> .ad-text{ background: #f0f2f2; font-size: 0.675rem; padding: 2px; color: #444; text-transform: uppercase; border-top: 4px solid #DCDCDC; } </style> <script async='async' src='https://www.googletagservices.com/tag/js/gpt.js'></script> <!--<script sync src="//www.googletagservices.com/tag/js/gpt.js"></script>--> <script type='text/javascript'> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; (function() { var gads = document.createElement('script'); gads.async = true; gads.type = 'text/javascript'; var useSSL = 'https:' == document.location.protocol; gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js'; var node = document.getElementsByTagName('script')[0]; node.parentNode.insertBefore(gads, node); })(); </script> <script type='text/javascript'> function getDataLayerVal(keyVal) { for (var i = 0; i < window.dataLayer.length; i++) { if (dataLayer[i][keyVal] !== undefined) { return dataLayer[i][keyVal]; } } } //Testing for ad targetting - Story Tagging var storyCategories = getDataLayerVal('StoryCategories'); if (storyCategories != null) { //option 1, is to extract values from pipe delimited list var categories1 = storyCategories.substring(1, storyCategories.length - 1); //remove | from start and end categories1 = categories1.split('|'); //split at | if (categories1.length > 0) { console.log(categories1[0]); //access item in array } //option 2 is replace pipes with commas var categories2 = storyCategories.substring(1, storyCategories.length - 1); //remove | from start and end categories2 = categories2.replace(/\|/g, ','); //replace pipes with commas if (categories2.length > 0) { console.log(categories2); } } //end testing for ad targetting //Testing for ad targetting - user reg level var visitorType2 = getDataLayerVal('RegLevel'); if (visitorType2 != null) { //option 1, is to extract values from pipe delimited list var visitor1 = visitorType2.substring(1, visitorType2.length - 1); //remove | from start and end visitor1 = visitor1.split('|'); //split at | if (visitor1.length > 0) { console.log(visitor1[0]); //access item in array } //option 2 is replace pipes with commas var visitor2 = visitorType2.substring(1, visitorType2.length - 1); //remove | from start and end visitor2 = visitor2.replace(/\|/g, ','); //replace pipes with commas if (visitor2.length > 0) { console.log(visitor2); } } //end testing for ad targetting // Function to get URL parameter by name function getUrlParameter(name) { name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); } // Extract UTM parameters from URL var utmSource = getUrlParameter('utm_source'); var utmMedium = getUrlParameter('utm_medium'); var utmCampaign = getUrlParameter('utm_campaign'); var showwallpaper; if(document.querySelector('meta[name="showwallpaper"]')) { showwallpaper = document.querySelector('meta[name="showwallpaper"]').content; } googletag.cmd.push(function() { // Define a size mapping object. The first parameter to addSize is // a viewport size, while the second is a list of allowed ad sizes. var mapping = googletag.sizeMapping(). // 320, 0 addSize([320, 0], [[300, 50],[300,75],[320,50], [300, 50]]). // 480, 0 addSize([480, 0], [300, 75]). // 768, 0 addSize([768, 0], [300, 250]). // 1024, 0 addSize([1024, 0], [300, 350]).build(); var mapMPUA = googletag.sizeMapping(). // 320, 0 addSize([320, 0], [300,250]). // 768, 0 addSize([768, 0], [300, 250]). // 1024, 0 addSize([1024, 0], [[300, 250]]).build(); //addSize([1024, 0], [[300, 250],[300,50]]).build(); var mapMPU = googletag.sizeMapping(). // 320, 0 addSize([320, 0], [[300, 600], [300,250]]). // 768, 0 addSize([768, 0], [[300, 600], [300, 250]]). // 1024, 0 addSize([1024, 0], [[300, 250],[300,600]]).build(); //addSize([1024, 0], [[300, 250],[300,50]]).build(); var mapMPUSmall = googletag.sizeMapping(). // 320, 0 addSize([320, 0], [300,250]). // 768, 0 addSize([768, 0], [300, 250]). // 1024, 0 addSize([1024, 0], [300, 250]).build(); //addSize([1024, 0], [[300, 250],[300,50]]).build(); var mapLB = googletag.sizeMapping(). // 320, 0 addSize([320, 0], [300,50]). //// 601, 0 addSize([601, 0], [[468,60]]). // 768, 0 addSize([768, 0], [[468,60],[728,90]]). // 1024, 0 addSize([1024, 0], [[468, 60],[728,90]]).build(); var mapSectionDivide = googletag.sizeMapping(). // 320, 0 addSize([320, 0], [300, 75]). //// 601, 0 addSize([601, 0], [300, 75]). // 768, 0 addSize([768, 0], [[728, 90],[970, 250],[970, 90]]). // 1024, 0 addSize([1024, 0], [[728, 90],[970, 250],[970, 90]]).build(); var mapLBUnderNav = googletag.sizeMapping(). addSize([0, 0], []). // 320, 0 addSize([320, 0], [[300,75],[320,50],[320,100]]). // 1024, 0 addSize([1050, 0], [[1024, 250], [970,250], [728, 90]]).build(); var mapWallpaper = googletag.sizeMapping(). addSize([0, 0], []). // 1220, 0 addSize([1220, 0], [1,1]).build(); var mapSkinLeft = googletag.sizeMapping(). addSize([0, 0], []). // 1220, 0 addSize([1220, 0], [500,1000]).build(); googletag.defineSlot('/21612928716/Screen/AdvertA', [300, 250], 'div-gpt-AdvertA').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/AdvertB', [300, 250], 'div-gpt-AdvertB').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/AdvertC', [300, 250], 'div-gpt-AdvertC').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/AdvertD', [300, 250], 'div-gpt-AdvertD').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/AdvertE', [300, 250], 'div-gpt-AdvertE').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/AdvertF', [300, 250], 'div-gpt-AdvertF').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/mpu-extra', [300, 250], 'div-gpt-ad-mpu-extra').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/mpu-extra-two', [300, 250], 'div-gpt-ad-mpu-extra-two').defineSizeMapping(mapMPU).addService(googletag.pubads()); // googletag.defineSlot('/21612928716/Screen/AdvertMastLB', [[728, 90], [300, 75]], 'div-gpt-AdvertMastLB').defineSizeMapping(mapLB).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/AdvertAttach', [300, 250], 'div-gpt-AdvertAttach').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/SmallMPU', [300, 250], 'div-gpt-SmallMPU').defineSizeMapping(mapMPUSmall).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/LargeMPU', [[300, 600],[300, 250]], 'div-gpt-LargeMPU').defineSizeMapping(mapMPU).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/billboard', [[1024, 250],[970, 250],[728, 90],[300, 75]], 'div-gpt-billboard').setTargeting('allow_expandable', 'true').defineSizeMapping(mapLBUnderNav).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/SectionDivide', [[970, 250],[970, 90]], 'div-gpt-sectiondivide-one').defineSizeMapping(mapSectionDivide).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/SectionDivide', [[970, 250],[970, 90]], 'div-gpt-sectiondivide-two').defineSizeMapping(mapSectionDivide).addService(googletag.pubads()); googletag.defineSlot('/21612928716/Screen/btm-bb', [970, 250], 'div-gpt-ad-bottom-billboard').defineSizeMapping(mapLBUnderNav).addService(googletag.pubads()); // googletag.defineSlot('/21612928716/Screen/skin-left', [[970, 250],[970, 90]], 'div-gpt-ad-skin-left').defineSizeMapping(mapSkinLeft).addService(googletag.pubads()); googletag.defineOutOfPageSlot('/21612928716/Screen/Overlay', 'div-gpt-overlay').addService(googletag.pubads()); var wallpaperSlot = googletag.defineOutOfPageSlot('/21612928716/Screen/Wallpaper', 'div-gpt-wallpaper') .addService(googletag.pubads()).setTargeting('url', document.location.pathname); googletag.pubads().addEventListener("slotRenderEnded", function(a){ a.slot.getSlotElementId()!=wallpaperSlot.getSlotElementId()||a.isEmpty||(document.querySelector(".wallpaper-ad[data-site-width-1024]")&&(document.body.className+=" site-width-1024"),"true"===showwallpaper&&(document.body.className+=" wallpaper-applied")); $(window).trigger('wallpaper:advert') }); googletag.pubads().collapseEmptyDivs(true); /* googletag.pubads().enableLazyLoad({ fetchMarginPercent: 5, renderMarginPercent: 5, mobileScaling: 0.0 }); */ googletag.pubads().setTargeting('loggedin', getDataLayerVal('LoggedIn')); googletag.pubads().setTargeting('visitortype', getDataLayerVal('RegLevel')); googletag.pubads().setTargeting('navcode', getDataLayerVal('NavCode')); googletag.pubads().setTargeting('storycode', getDataLayerVal('StoryID')); googletag.pubads().setTargeting('storylayout', getDataLayerVal('StoryLayout')); googletag.pubads().setTargeting('storycat', getDataLayerVal('StoryCategories')); googletag.pubads().setTargeting('categories2', categories2); googletag.pubads().setTargeting('visitor2', visitor2); googletag.pubads().setTargeting('utm_source', utmSource); googletag.pubads().setTargeting('utm_medium', utmMedium); googletag.pubads().setTargeting('utm_campaign', utmCampaign); googletag.enableServices(); }); window.addEventListener('message', receiveMessage, false); function receiveMessage(event) { if(event.data == 'wallpaper-fireplace') document.body.className+=" wallpaper-fireplace"; if(document.body.className.match('wallpaper-fireplace')) { var mastHeight = document.querySelector('#masthead').offsetHeight,wallpaperElement = document.querySelector('.wallpaper-ad').getElementsByTagName('div')[0]; wallpaperElement.style.top = mastHeight + 'px' } } $(document).on('click','#cookiePolicy .continue',function(){ var timer = setTimeout(function(){ if(document.body.className.match('wallpaper-fireplace')){ var mastHeight = document.querySelector('#masthead').offsetHeight,cookiePolicy=((document.querySelector('#cookiePolicy')&&document.querySelector('#cookiePolicy').offsetHeight)||0), wallpaperElement = document.querySelector('.wallpaper-ad').getElementsByTagName('div')[0]; wallpaperElement.style.top = (mastHeight+cookiePolicy-10)+'px'; } clearTimeout(timer); },250); }); </script> <!-- Meta Pixel Code --> <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1787080818148630'); fbq('track', 'PageView'); </script> <noscript> <img height="1" width="1" style="display:none" src=https://www.facebook.com/tr?id=1787080818148630&ev=PageView&noscript=1 /></noscript> <!-- End Meta Pixel Code --> <!-- The Film Agency --> <!-- Meta Pixel Code --> <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '400707963055585'); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=400707963055585&ev=PageView&noscript=1" /></noscript> <!-- End Meta Pixel Code --> <!-- Twitter conversion tracking base code --> <script> !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='https://static.ads-twitter.com/uwt.js', a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); twq('config','odu1r'); </script> <!-- End Twitter conversion tracking base code --> <script> var EnhancedAdvertisingConfig = {}; </script> <!--Global Enhanced Adverts JSON definition from PAGETEXT--> <script> EnhancedAdvertisingConfig = { "Refresh":false, "RefreshDelaySecondsDefaultDesktop":30, "RefreshDelaySecondsDefaultMobile":30, "StoryDynamicSlotsAddGroupsAll":"Ads,Widgets", "StoryDynamicSlotsAddGroupsInline":"", "StoryDynamicSlotsAddGroupsRHC":"", "StoryDynamicSlotsRemoveGroupsAll":"", "StoryDynamicSlotsRemoveGroupsInline":"", "StoryDynamicSlotsRemoveGroupsRHC":"", "StoryDynamicSlotsRepeat":true, "StoryDynamicSlotsDesktopMaxInlineSlots":0, "StoryDynamicSlotsMobileMaxInlineSlots":20, "StoryDynamicSlotsDesktopMaxRHCSlots":20, "StoryDynamicSlotsDesktopElementSpacingFirst":3, "StoryDynamicSlotsMobileElementSpacingFirst":3, "StoryDynamicSlotsDesktopElementSpacing":3, "StoryDynamicSlotsMobileElementSpacing":5, "GAMAdUnitSizesInlineMobileDefault":[[300,250]], "GAMAdUnitSizesInlineDesktopDefault":[[300,250]], "GAMAdUnitSizesRHCDefault":[[300,250],[300,600]], "RHCMinHeightForSlotInsert":270, "RHCMinHeightForStickyAd":550, "CollapseEmptyDivs":true, "Slots":[ { "Type":"GAMAdvert", //"Position":"PreferRight", "Position":"PreferRight", "Group":"Ads", "AdUnit":"/21612928716/Screen/AdvertA", "RefreshDelaySeconds":30, "Sticky":false, "Repeat":false, "Refresh":false, "InsertIfNoRHCSpace":true, "AdUnitSizesInlineDesktop":[[300,250]], "AdUnitSizesInlineMobile":[[300,600],[300,250]], "AdUnitSizesRHC":[[300,600],[300,250]], "NoBackfill":true, //"CSSClass":"wvc-custom-ad", "ExtraHTML":"<div class=\"ad-text\">Advert</div>" }, { "Type":"CustomContent", "Position":"Right", "Sticky":false, "Group":"Widgets", "Repeat":false, "InsertIfNoRHCSpace":true, "HTML":"<div class=\"tab-widget-7\" data-ajax-load-content=\"\" data-cache-bust=\"true\" data-url=\"/ajax/most?wid=2&cachetoken=1\"></div>", "CustomEventName":"MostPopularWidgetInit", "Javascript":function(elem,container,slotconfig,adcounter,counter,repeat){ $(window).trigger('abacus:readjusrhcheight',[event, elem]); }, "CSSClass":"wvc-custom-widget-mostpopular", "MinHeight":650 }, { "Type":"GAMAdvert", "Position":"Right", "Group":"Ads", "AdUnit":"/21612928716/Screen/AdvertB", "RefreshDelaySeconds":30, "Sticky":true, "Repeat":false, "Refresh":false, "InsertIfNoRHCSpace":true, "AdUnitSizesInlineDesktop":[[300,250]], "AdUnitSizesInlineMobile":[[300,600],[300,250]], "AdUnitSizesRHC":[[300,600],[300,250]], //"CSSClass":"wvc-custom-ad", "ExtraHTML":"<div class=\"ad-text\">Advert</div>" }, { "Type":"GAMAdvert", "Position":"Right", "Group":"Ads", "AdUnit":"/21612928716/Screen/AdvertB", "RefreshDelaySeconds":30, "Sticky":true, "Repeat":true, "Refresh":false, "InsertIfNoRHCSpace":false, "AdUnitSizesInlineDesktop":[[300,250]], "AdUnitSizesInlineMobile":[[300,600],[300,250]], "AdUnitSizesRHC":[[300,600],[300,250]], //"CSSClass":"wvc-custom-ad", "ExtraHTML":"<div class=\"ad-text\">Advert</div>" }, { "Type":"GAMAdvert", "Position":"Inline", "Group":"Ads", "AdUnit":"/21612928716/Screen/AdvertB", "RefreshDelaySeconds":30, "Sticky":false, "Repeat":true, //"Refresh":true, "AdUnitSizesInlineDesktop":[[300,250]], "AdUnitSizesInlineMobile":[[300,600],[300,250]], "AdUnitSizesRHC":[[300,600],[300,250]], //"CSSClass":"wvc-custom-ad", "ExtraHTML":"<div class=\"ad-text\">Advert</div>" } ], "Overrides":[ { //If Type - Promotion "Conditions":"StoryType-11007", "Settings":{ "RemoveGroupsAll":"Ads" } }, { //If Category="Slots (all) - Off" "Conditions":"StoryCategoriesCodes-999999", "Operator":"And", "Settings":{ "RemoveGroupsAll":"Ads,Widgets" } }, { //If Category="Slots (RHC) - Off" "Conditions":"StoryCategoriesCodes-999999", "Operator":"And", "Settings":{ "RemoveGroupsRHC":"Ads,Widgets" } }, { //If Category="Slots (inline) - Off" "Conditions":"StoryCategoriesCodes-999999", "Operator":"And", "Settings":{ "RemoveGroupsInline":"Ads,Widgets" } }, { //If Category="Advert slots (all) - Off" "Conditions":"StoryCategoriesCodes-999999", "Operator":"And", "Settings":{ "RemoveGroupsAll":"Ads" } }, { //If Category="Advert slots (RHC) - Off" "Conditions":"StoryCategoriesCodes-999999", "Operator":"And", "Settings":{ "RemoveGroupsRHC":"Ads" } }, { //If Category="Advert slots (inline) - Off" "Conditions":"StoryCategoriesCodes-999999", "Operator":"And", "Settings":{ "RemoveGroupsInline":"Ads" } } ] };</script> <script> $(window).trigger("wvcfe:globalenhancedadvertsinit", [event, EnhancedAdvertisingConfig]); (function(w, d) { if(window.NodeList && !NodeList.prototype.forEach) { NodeList.prototype.forEach = Array.prototype.forEach; } d.addEventListener('DOMContentLoaded', function(event) { if(EnhancedAdvertisingConfig.Slots) { var enhAdDebug = false; if( localStorage.getItem('enh-ads-debug') == 'true' ) enhAdDebug = true; var sp = 'story-inlinecontent-placeholder'; var supportedTypes = ['gamadvert', 'customcontent']; var supportedPositions = ['inline', 'preferright', 'right']; var isDesktopResolution = w.matchMedia("screen and (min-width: 1023px)").matches; var isStoryFullLayout = d.body.classList.contains('story-full-layout'); var inlineCounter = 1; var rhcCounter = 1; var inlineAdCounter = 1; var rhcAdCounter = 1; var ticking = false; $('#story.enhanced-advertising .storytext > div.webonly').each( function(){ var t = $(this); t.replaceWith( t.html() ); }); var storyCustomContentPlaceholders = d.querySelectorAll('#story.enhanced-advertising .storytext > *'); var maxRHCSlotsToFitIn = 0; var matches = function(el, selector) { return (el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector).call(el, selector); }; var getClosestParent = function(elem, selector) { for(; elem && elem !== d; elem = elem.parentNode) { if(matches(elem, selector)) { return elem; } } return null; }; var storyType = dataLayer ? dataLayer.filter(function(el) { return el && el.StoryTypeCode && el.StoryTypeCode != 'null'; }).map(function(el) { return 'StoryType-' + el.StoryTypeCode; }).join('') : ''; var storyFormat = dataLayer ? dataLayer.filter(function(el) { return el && el.StoryFormatCode && el.StoryFormatCode != 'null'; }).map(function(el) { return 'StoryFormat-' + el.StoryFormatCode; }).join('') : ''; var storyLayout = dataLayer ? dataLayer.filter(function(el) { return el && el.StoryLayoutCode && el.StoryLayoutCode != 'null'; }).map(function(el) { return 'StoryLayout-' + el.StoryLayoutCode; }).join('') : ''; //PWVD-780 var storyWidth = dataLayer ? dataLayer.filter(function(el) { return el && el.StoryWidth && el.StoryWidth != 'null'; }).map(function(el) { return 'StoryWidth-' + el.StoryWidth; }).join('') : ''; var storyFullNavPath = dataLayer ? dataLayer.filter(function(el) { return el && el.StoryFullNavPath && el.StoryFullNavPath != 'null'; }).map(function(el) { return el.StoryFullNavPath; }).join('').split('|').filter(function(el) { return el && el != 'null'; }).join('-') : ''; var storyCategoriesCodes = dataLayer ? dataLayer.filter(function(el) { return el && el.StoryCategoriesCodes && el.StoryCategoriesCodes != 'null'; }).map(function(el) { return el.StoryCategoriesCodes; }).join('').split('|').filter(function(el) { return el && el != 'null'; }).map(function(el) { return 'StoryCategoriesCodes-' + el; }) : []; var storyID = dataLayer ? dataLayer.filter(function(el) { return el && el.StoryID && el.StoryID != 'null'; }).map(function(el) { return 'StoryID-' + el.StoryID; }).filter(function(el) { return el && el != 'null' && el != 'StoryID-'; }).join('') : ''; storyFullNavPath = (storyFullNavPath ? 'StoryFullNavPath-' + storyFullNavPath : ''); var allDataLayerFilters = storyCategoriesCodes.concat([storyType, storyFormat, storyLayout, storyWidth, storyFullNavPath, storyID]).map(function(m) { return m.toLowerCase(); }); EnhancedAdvertisingConfig.RHCMinHeightForSlotInsert = (EnhancedAdvertisingConfig.RHCMinHeightForSlotInsert || 800); EnhancedAdvertisingConfig.RHCMinHeightForStickyAd = (EnhancedAdvertisingConfig.RHCMinHeightForStickyAd || 250); if('Overrides' in EnhancedAdvertisingConfig) { if(EnhancedAdvertisingConfig.Overrides) { var overrides = EnhancedAdvertisingConfig.Overrides; var andOperator = function() { return (override.Conditions.toLowerCase().split(',').filter(function(el) { return el && el; }).every(function(el) { return allDataLayerFilters.indexOf(el) != -1; })); }; var orOperator = function(el) { return (override.Conditions.toLowerCase().split(',').filter(function(el) { return el && el; }).some(function(el) { return allDataLayerFilters.indexOf(el) != -1; })); }; for(var i = 0, iL = overrides.length; i < iL; i++) { var override = overrides[i]; var operatorFilter; if(override.Operator && override.Operator.toLowerCase() == 'and') { operatorFilter = andOperator; } else { operatorFilter = orOperator; } if(operatorFilter()) { if('Settings' in override) { if(override.Settings) { var settings = override.Settings; if('AddGroupsAll' in settings && settings.AddGroupsAll && isString(settings.AddGroupsAll)) { if(settings.AddGroupsAll.toLowerCase().toLowerCase().indexOf('[all]') != -1) { EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsAll = '[all]'; } else { EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsAll += ',' + settings.AddGroupsAll.toLowerCase(); } } if('AddGroupsInline' in settings && settings.AddGroupsInline && isString(settings.AddGroupsInline)) { if(settings.AddGroupsInline.toLowerCase().toLowerCase().indexOf('[all]') != -1) { EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsInline = '[all]'; } else { EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsInline += ',' + settings.AddGroupsInline.toLowerCase(); } } if('AddGroupsRHC' in settings && settings.AddGroupsRHC && isString(settings.AddGroupsRHC)) { if(settings.AddGroupsRHC.toLowerCase().toLowerCase().indexOf('[all]') != -1) { EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsRHC = '[all]'; } else { EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsRHC += ',' + settings.AddGroupsRHC.toLowerCase(); } } if('RemoveGroupsAll' in settings && settings.RemoveGroupsAll && isString(settings.RemoveGroupsAll)) { if(settings.RemoveGroupsAll.toLowerCase().toLowerCase().indexOf('[all]') != -1) { EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsAll = '[all]'; } else { EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsAll += ',' + settings.RemoveGroupsAll.toLowerCase(); } } if('RemoveGroupsInline' in settings && settings.RemoveGroupsInline && isString(settings.RemoveGroupsInline)) { if(settings.RemoveGroupsInline.toLowerCase().toLowerCase().indexOf('[all]') != -1) { EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsInline = '[all]'; } else { EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsInline += ',' + settings.RemoveGroupsInline.toLowerCase(); } } if('RemoveGroupsRHC' in settings && settings.RemoveGroupsRHC && isString(settings.RemoveGroupsRHC)) { if(settings.RemoveGroupsRHC.toLowerCase().toLowerCase().indexOf('[all]') != -1) { EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsRHC = '[all]'; } else { EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsRHC += ',' + settings.RemoveGroupsRHC.toLowerCase(); } } if('Repeat' in settings && isBoolean(settings.Repeat)) { EnhancedAdvertisingConfig.StoryDynamicSlotsRepeat = settings.Repeat; } if('DesktopMaxInlineSlots' in settings && isNumberPositiveOrZero(settings.DesktopMaxInlineSlots)) { EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopMaxInlineSlots = settings.DesktopMaxInlineSlots; } if('MobileMaxInlineSlots' in settings && isNumberPositiveOrZero(settings.MobileMaxInlineSlots)) { EnhancedAdvertisingConfig.StoryDynamicSlotsMobileMaxInlineSlots = settings.MobileMaxInlineSlots; } if('DesktopMinRHCSlots' in settings && isNumberPositiveOrZero(settings.DesktopMinRHCSlots)) { EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopMinRHCSlots = settings.DesktopMinRHCSlots; } if('MobileMinRHCSlots' in settings && isNumberPositiveOrZero(settings.MobileMinRHCSlots)) { EnhancedAdvertisingConfig.StoryDynamicSlotsMobileMinRHCSlots = settings.MobileMinRHCSlots; } if('DesktopMaxRHCSlots' in settings && isNumberPositiveOrZero(settings.DesktopMaxRHCSlots)) { EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopMaxRHCSlots = settings.DesktopMaxRHCSlots; } if('MobileMaxRHCSlots' in settings && isNumberPositiveOrZero(settings.MobileMaxRHCSlots)) { EnhancedAdvertisingConfig.StoryDynamicSlotsMobileMaxRHCSlots = settings.MobileMaxRHCSlots; } if('DesktopElementSpacingFirst' in settings && settings.DesktopElementSpacingFirst && isNumberPositive(settings.DesktopElementSpacingFirst)) { EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopElementSpacingFirst = settings.DesktopElementSpacingFirst; } if('MobileElementSpacingFirst' in settings && settings.MobileElementSpacingFirst && isNumberPositive(settings.MobileElementSpacingFirst)) { EnhancedAdvertisingConfig.StoryDynamicSlotsMobileElementSpacingFirst = settings.MobileElementSpacingFirst; } if('DesktopElementSpacing' in settings && settings.DesktopElementSpacing && isNumberPositive(settings.DesktopElementSpacing)) { EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopElementSpacing = settings.DesktopElementSpacing; } if('MobileElementSpacing' in settings && settings.MobileElementSpacing && isNumberPositive(settings.MobileElementSpacing)) { EnhancedAdvertisingConfig.StoryDynamicSlotsMobileElementSpacing = settings.MobileElementSpacing; } if('RHCMinHeightForSlotInsert' in settings && settings.RHCMinHeightForSlotInsert && isNumberPositive(settings.RHCMinHeightForSlotInsert)) { EnhancedAdvertisingConfig.RHCMinHeightForSlotInsert = settings.RHCMinHeightForSlotInsert; } if('RHCMinHeightForStickyAd' in settings && settings.RHCMinHeightForStickyAd && isNumberPositive(settings.RHCMinHeightForStickyAd)) { EnhancedAdvertisingConfig.RHCMinHeightForStickyAd = settings.RHCMinHeightForStickyAd; } if('CollapseEmptyDivs' in settings && isBoolean(settings.CollapseEmptyDivs)) { EnhancedAdvertisingConfig.CollapseEmptyDivs = settings.CollapseEmptyDivs; } } } } } } } var paragraphThreshold = isDesktopResolution ? EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopElementSpacing : EnhancedAdvertisingConfig.StoryDynamicSlotsMobileElementSpacing; var paragraphFirstThreshold = isDesktopResolution ? EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopElementSpacingFirst : EnhancedAdvertisingConfig.StoryDynamicSlotsMobileElementSpacingFirst; var maxInlineSlots = isDesktopResolution ? EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopMaxInlineSlots : EnhancedAdvertisingConfig.StoryDynamicSlotsMobileMaxInlineSlots; var minRHCSlots = isDesktopResolution ? EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopMinRHCSlots : EnhancedAdvertisingConfig.StoryDynamicSlotsMobileMinRHCSlots; var maxRHCSlots = isDesktopResolution ? EnhancedAdvertisingConfig.StoryDynamicSlotsDesktopMaxRHCSlots : EnhancedAdvertisingConfig.StoryDynamicSlotsMobileMaxRHCSlots; var allAddGroups = (EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsAll ? EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsAll : "").split(',').filter(function(f) { return f; }).filter(function(x, i, a) { return a.indexOf(x) === i; }); var allAddInlineGroups = [].concat(allAddGroups, (EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsInline ? EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsInline : "").split(',')).map(function(m) { return m.toLowerCase(); }).filter(function(f) { return f; }).filter(function(x, i, a) { return a.indexOf(x) === i; }); var allAddRHCGroups = [].concat(allAddGroups, (EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsRHC ? EnhancedAdvertisingConfig.StoryDynamicSlotsAddGroupsRHC : "").split(',')).map(function(m) { return m.toLowerCase(); }).filter(function(f) { return f; }).filter(function(x, i, a) { return a.indexOf(x) === i; }); var allRemoveGroups = (EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsAll ? EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsAll : "").split(',').filter(function(f) { return f; }).filter(function(x, i, a) { return a.indexOf(x) === i; }); var allRemoveInlineGroups = [].concat(allRemoveGroups, (EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsInline ? EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsInline : "").split(',')).map(function(m) { return m.toLowerCase(); }).filter(function(f) { return f; }).filter(function(x, i, a) { return a.indexOf(x) === i; }); var allRemoveRHCGroups = [].concat(allRemoveGroups, (EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsRHC ? EnhancedAdvertisingConfig.StoryDynamicSlotsRemoveGroupsRHC : "").split(',')).map(function(m) { return m.toLowerCase(); }).filter(function(f) { return f; }).filter(function(x, i, a) { return a.indexOf(x) === i; }); EnhancedAdvertisingConfig.Slots = EnhancedAdvertisingConfig.Slots.map(function(x, i) { x.Used = false; x.Index = i; if('Type' in x) { if(supportedTypes.indexOf(x.Type.toString().toLowerCase()) != -1) { x.Type = x.Type.toString().toLowerCase(); } else { x.Type = 'customcontent'; } } else { x.Type = 'customcontent'; } if('Position' in x) { if(supportedPositions.indexOf(x.Position.toString().toLowerCase()) != -1) { x.Position = x.Position.toString().toLowerCase(); } else { x.Position = 'inline'; } } else { x.Position = 'inline'; } if('CSSClass' in x) { x.CSSClass = x.CSSClass.toString().split(' ').join(',').split(',').filter(function(e) { return e && e; }).join(' '); } else { x.CSSClass = ''; } if('Group' in x) { x.Group = x.Group.toString().split(' ').join(',').split(',').filter(function(e) { return e && e; }).join(','); } else { x.Group = ''; } if('Sticky' in x) { if(x.Sticky.toString().toLowerCase() == 'true') { x.Sticky = true; } else { x.Sticky = false; } } else { x.Sticky = false; } if('InsertIfNoRHCSpace' in x) { if(x.InsertIfNoRHCSpace.toString().toLowerCase() == 'true') { x.InsertIfNoRHCSpace = true; } else { x.InsertIfNoRHCSpace = false; } } else { x.InsertIfNoRHCSpace = false; } if('MinHeight' in x) { x.MinHeight = parseInt(x.MinHeight.toString()); } else { x.MinHeight = 0; } if('NoBackfill' in x) { if(x.NoBackfill.toString().toLowerCase() == 'true') { x.NoBackfill = true; } else { x.NoBackfill = false; } } else { x.NoBackfill = false; } if('Refresh' in x) { if(x.Refresh.toString().toLowerCase() == 'true') { x.Refresh = true; } else { x.Refresh = false; } } else { x.Refresh = false; } if('ExtraHTML' in x) { if(x.ExtraHTML.toString()) { x.ExtraHTML = x.ExtraHTML.toString(); } else { x.ExtraHTML = ''; } } else { x.ExtraHTML = ''; } if('CustomEventName' in x) { if(x.CustomEventName.toString()) { x.CustomEventName = x.CustomEventName.toString(); } else { x.CustomEventName = ''; } } else { x.CustomEventName = ''; } if('Javascript' in x) { if(x.Javascript) { if(typeof x.Javascript === 'function') { x.Javascript = x.Javascript; } } else { x.Javascript = ''; } } else { x.Javascript = ''; } if('AdUnit' in x) { if(x.AdUnit.toString()) { x.AdUnit = x.AdUnit.toString(); } else { x.AdUnit = ''; } } else { x.AdUnit = ''; } if('AdUnitSizesInlineMobile' in x) { x.AdUnitSizesInlineMobile = x.AdUnitSizesInlineMobile; } else if('GAMAdUnitSizesInlineMobileDefault' in EnhancedAdvertisingConfig) { x.AdUnitSizesInlineMobile = EnhancedAdvertisingConfig.GAMAdUnitSizesInlineMobileDefault } if('AdUnitSizesInlineDesktop' in x) { x.AdUnitSizesInlineDesktop = x.AdUnitSizesInlineDesktop; } else if('GAMAdUnitSizesInlineDesktopDefault' in EnhancedAdvertisingConfig) { x.AdUnitSizesInlineDesktop = EnhancedAdvertisingConfig.GAMAdUnitSizesInlineDesktopDefault; } if('AdUnitSizesRHC' in x) { x.AdUnitSizesRHC = x.AdUnitSizesRHC; } else if('GAMAdUnitSizesRHCDefault' in EnhancedAdvertisingConfig) { x.AdUnitSizesRHC = EnhancedAdvertisingConfig.GAMAdUnitSizesRHCDefault; } if('RefreshDelaySeconds' in x) { x.RefreshDelaySeconds = parseInt(x.RefreshDelaySeconds.toString(), 10); } else { x.RefreshDelaySeconds = 30; } return x; }); var storyInlineContent = EnhancedAdvertisingConfig.Slots.filter(function(el) { return el && (el.Position.toLowerCase() == "inline" || ((!isDesktopResolution || isStoryFullLayout) && el.Position.toLowerCase() == "preferright")) && (el.Group || "").split(',').filter(function(subel) { return subel && subel != undefined; }).map(function(subel) { return subel.toLowerCase(); }).some(function(subel) { return allAddInlineGroups.indexOf(subel) != -1 || allAddInlineGroups.indexOf('[all]') != -1; }) && !(el.Group || "").split(',').filter(function(subel) { return subel && subel != undefined; }).map(function(subel) { return subel.toLowerCase(); }).some(function(subel) { return allRemoveInlineGroups.indexOf(subel) != -1 || allRemoveInlineGroups.indexOf('[all]') != -1; }); }); var storyRHCContent = isDesktopResolution ? EnhancedAdvertisingConfig.Slots.filter(function(el) { return el && (el.Position.toLowerCase() == "right" || (isDesktopResolution && !isStoryFullLayout && el.Position.toLowerCase() == "preferright")) && (el.Group || "").split(',').filter(function(subel) { return subel && subel != undefined; }).map(function(subel) { return subel.toLowerCase(); }).some(function(subel) { return allAddRHCGroups.indexOf(subel) != -1 || allAddRHCGroups.indexOf('[all]') != -1; }) && !(el.Group || "").split(',').filter(function(subel) { return subel && subel != undefined; }).map(function(subel) { return subel.toLowerCase(); }).some(function(subel) { return allRemoveRHCGroups.indexOf(subel) != -1 || allRemoveRHCGroups.indexOf('[all]') != -1; }); }) : []; storyInlineContent.forEach( (c, ix) => c.inlineIndex = ix ); storyRHCContent.forEach( (c, ix) => c.rhcIndex = ix ); var googletag = w.googletag || {}; googletag.cmd = googletag.cmd || []; if( isNumberPositive(maxInlineSlots) ){ //PWVD-781 for(var tmpCounter = 0, i = 0, eL = storyCustomContentPlaceholders.length, adThresholdCounter = 1; i < eL; i++) { var currentIsPara = matches(storyCustomContentPlaceholders[i], 'p:not([class])'); var nextIsPara = (i + 1 < eL) && matches(storyCustomContentPlaceholders[i + 1], 'p:not([class])'); if( currentIsPara && !nextIsPara ){ //PWVD-897 - count paragraphs followed by any other element if(adThresholdCounter < (tmpCounter == 0 ? paragraphFirstThreshold : paragraphThreshold)) { adThresholdCounter++; continue; } } else if( currentIsPara && nextIsPara ) { if(adThresholdCounter < (tmpCounter == 0 ? paragraphFirstThreshold : paragraphThreshold)) { adThresholdCounter++; continue; } tmpCounter++; adThresholdCounter = 1; storyCustomContentPlaceholders[i].outerHTML = storyCustomContentPlaceholders[i].outerHTML + "<div class=\"story-inlinecontent-placeholder story-inlinecontent-placeholder-init item-notin-viewport\" data-storyinlinecontainer=\"" + tmpCounter + "\"><div class=\"story-inlinecontent-placeholder-inner\" data-id=\"story-inline-item-" + tmpCounter + "\" data-storyinlineitem=\"" + tmpCounter + "\"></div></div>"; if(tmpCounter >= maxInlineSlots && maxInlineSlots) break; } } } if(d.querySelector('#story.enhanced-advertising:not(.story-full-layout) #rightcolumn_sleeve')) { if(!(d.body.id == "story" || d.body.id == "story_custom") && !d.querySelector('.storytext div.table-full:not(.initialized)')) { w.addEventListener("abacus:storytexttablefull:finished", function(e) { adjustRHCHeightAndInitialAds(); }, true); } else { adjustRHCHeightAndInitialAds(); } } if('IntersectionObserver' in w && 'IntersectionObserverEntry' in w && 'intersectionRatio' in w.IntersectionObserverEntry.prototype) { d.querySelectorAll('.story-inlinecontent-placeholder.story-inlinecontent-placeholder-init').forEach(function(el) { if(el) { var inlineAdsObserver = new IntersectionObserver(function(entries) { return inlineAdsObserverCallback(entries); }, { root: null, rootMargin: "50px 0px 50px 0px", threshold: [0, 0.01, 0.99, 1] }); inlineAdsObserver.observe(el); } }); var inlineAdsObserverCallback = function(entries) { return entries.forEach(function(entry, i) { if(entry.isIntersecting) { entry.target.classList.remove('item-notin-viewport'); entry.target.classList.add('item-in-viewport'); } else { entry.target.classList.remove('item-in-viewport'); entry.target.classList.add('item-notin-viewport'); } }); }; d.querySelectorAll('.storytext-end, #rhcreflow-extra-end').forEach(function(el) { if(el) { var adsInViewportObserver = new IntersectionObserver(function(entries) { return adsInViewportObserverCallback(entries); }, { root: null, rootMargin: "0px 0px 200px 0px", threshold: [1] }); adsInViewportObserver.observe(el); } }); var adsInViewportObserverCallback = function(entries) { return entries.forEach(function(entry, i) { if(entry.isIntersecting) { if(entry.target.classList.contains('storytext-end') && d.body.classList.contains('enhanced-advertising-inline-init')) { d.body.classList.add('enhanced-advertising-storytext-endreached'); } // RHC is empty at load time so it always fires as in viewport, need to check whether rhc ads slots already init if(entry.target.classList.contains('rhcreflow-extra-end') && d.body.classList.contains('enhanced-advertising-rhc-init')) { d.body.classList.add('enhanced-advertising-rhc-endreached'); } /* if(entry.target.id === 'rhcreflow-extra'){ //Fix for issue when RHC is not in initial viewport if( location.host.indexOf('abasoftaws.co.uk') > 0 ) console.log('New observer callback'); readjusRHCHeight(); } */ } }); }; } var inlineEl = d.querySelector('.story-inlinecontent-placeholder.story-inlinecontent-placeholder-init:not(.story-inlinecontent-placeholder-completed):not(.story-inlinecontent-placeholder-processing)'); if(inlineEl) { googletag.cmd = googletag.cmd || []; googletag.cmd.push(function() { d.body.classList.add('enhanced-advertising-inline-init'); insertInlineSlot(inlineEl); console.log('Init inline ad slot load'); }); } function slotRender(event){ var el, slot = event.slot, slotId = slot.getSlotElementId(); if(enhAdDebug) console.log('Slot render: ' + slotId); if(slotId == 'custom-inline'){ el = document.querySelector(`div.story-inlinecontent-placeholder-inner[data-id="story-inline-item-${event.dataId}"]`); //Get inline slot (does not have ID) //if(!el) // el = document.querySelector(`div.story-inlinecontent-placeholder-inner[data-id="story-inline-item-${event.inlineIndex+1}"]`); } else el = d.getElementById(slotId); if(el) { var minHeight = 0; var parentInlineNode = getClosestParent(el, '.story-inlinecontent-placeholder'); var parentRHCNode = getClosestParent(el, '.story-rhccontent-placeholder'); if(parentInlineNode || parentRHCNode) { var classList = el.classList; if(parentInlineNode) { parentInlineNode.classList.add('story-inlinecontent-placeholder-ad'); var index = parseInt(parentInlineNode.hasAttribute('data-index') ? parentInlineNode.getAttribute('data-index') : '0', 10); if(!event.isEmpty) { classList.add('ad'); classList.add('mob-ad-50'); classList.add('ad-story-inline'); classList.add('ad-story-inline-notempty'); parentInlineNode.classList.add('story-inlinecontent-placeholder-ad-size-' + event.size.join('x')); parentInlineNode.setAttribute('data-slot', slot.getAdUnitPath()); var currentInlineSlot = storyInlineContent.filter(function(e) { return e.Index == index; }); if(currentInlineSlot.length) { minHeight = currentInlineSlot[0].MinHeight; if(currentInlineSlot[0].Repeat == false) { currentInlineSlot[0].Used = true; } } else { console.log('Slot with index [data-index="' + index + '"] was not found'); } parentInlineNode.classList.add('story-inlinecontent-placeholder-finished'); insertInlineSlot(d.querySelector('.story-inlinecontent-placeholder.story-inlinecontent-placeholder-init:not(.story-inlinecontent-processing)')); } else { classList.add('ad-story-inline-isempty'); var currentInlineSlot = storyInlineContent.filter(function(e) { return e.Index == index; }); if(currentInlineSlot.length) { minHeight = currentInlineSlot[0].MinHeight; currentInlineSlot[0].Used = true; } else { console.log('Slot with index [data-index="' + index + '"] was not found'); } if(parentInlineNode && parentInlineNode.hasAttribute('data-nobackfill')) { if(parentInlineNode.getAttribute('data-nobackfill') == '1') { updateInlinePlaceholderClasses(parentInlineNode, event.isEmpty, minHeight); if(!storyInlineContent.some(function(el) { return el.Used == false; })) { finalizeRemainingEmptyInlineSlotContainers(parentInlineNode.classList, true); } else { insertInlineSlot(d.querySelector('.story-inlinecontent-placeholder.story-inlinecontent-placeholder-init:not(.story-inlinecontent-processing)')); } initRHCHeightCalc(); return; } } // Move to next from the list if( storyInlineContent.some( function(e){ return e.Used == false; } ) ) { if(enhAdDebug) console.log('slotRender: parentInlineNode: Move to next from the list') var adRetryCssClass = 'ad-story-inline-retry'; var nextInlineSlotList = storyInlineContent.filter(function(e) { return e.Index > index && e.Used == false; }); if(!nextInlineSlotList.length) { // select repeatable ads nextInlineSlotList = storyInlineContent.filter(function(e) { return e.Used == false && e.Index > index && e.Repeat == true; }); if(!nextInlineSlotList.length) { // if no repeatable ads by indexed order then start from the beginning or just pick any existing nextInlineSlotList = storyInlineContent.filter(function(e) { return e.Used == false && e.Repeat == true; }); if(!nextInlineSlotList.length) { // no more ads to add d.body.classList.add('enhanced-advertising-inline-runoutofslots'); finalizeRemainingEmptyInlineSlotContainers(parentInlineNode.classList, true); updateInlinePlaceholderClasses(parentInlineNode, event.isEmpty, minHeight); initRHCHeightCalc(); return; } } } var mapInlineAdItem = nextInlineSlotList[0]; var refresh = EnhancedAdvertisingConfig.Refresh; googletag.destroySlots([slot]); if(mapInlineAdItem.Refresh) { refresh = mapInlineAdItem.Refresh; } if(mapInlineAdItem.Repeat) { parentInlineNode.classList.remove('story-inlinecontent-placeholder-repeat-false'); parentInlineNode.classList.add('story-inlinecontent-placeholder-repeat-true'); } else { parentInlineNode.classList.remove('story-inlinecontent-placeholder-repeat-true'); parentInlineNode.classList.add('story-inlinecontent-placeholder-repeat-false'); } var mapInlineAdItemSlot = googletag.defineSlot(mapInlineAdItem.AdUnit, isDesktopResolution ? mapInlineAdItem.AdUnitSizesInlineDesktop : mapInlineAdItem.AdUnitSizesInlineMobile, slotId); if(mapInlineAdItemSlot) { mapInlineAdItemSlot.defineSizeMapping(googletag.sizeMapping().build()).setTargeting('refresh', (refresh ? 'true' : 'false')).setTargeting('refreshdelayseconds', mapInlineAdItem.RefreshDelaySeconds || (isDesktopResolution ? EnhancedAdvertisingConfig.RefreshDelaySecondsDefaultDesktop : EnhancedAdvertisingConfig.RefreshDelaySecondsDefaultMobile)).setCollapseEmptyDiv(EnhancedAdvertisingConfig.CollapseEmptyDivs, false).addService(googletag.pubads()); } else { console.warn('Something wrong with inline ad slot \'' + slotId + '\', size(s) \'' + (isDesktopResolution ? mapInlineAdItem.AdUnitSizesInlineDesktop : mapInlineAdItem.AdUnitSizesInlineMobile).join('x') + '\', path \'' + mapInlineAdItem.AdUnit + '\''); } googletag.display(slotId); el.classList.add(adRetryCssClass); parentInlineNode.setAttribute('data-index', mapInlineAdItem.Index); if(mapInlineAdItem.ExtraHTML) { var extraHTMLEl = parentInlineNode.querySelector('.story-inlinecontent-placeholder-ad-extrahtml'); if(extraHTMLEl) { extraHTMLEl.innerHTML = mapInlineAdItem.ExtraHTML; } } else { var extraHTMLEl = parentInlineNode.querySelector('.story-inlinecontent-placeholder-ad-extrahtml'); if(extraHTMLEl) { extraHTMLEl.innerHTML = ''; } } } else { // no slots to add.. finalizeRemainingEmptyInlineSlotContainers(parentInlineNode.classList, true); } } } else if(parentRHCNode) { parentRHCNode.classList.add('story-rhccontent-placeholder-ad'); var index = parseInt(parentRHCNode.hasAttribute('data-index') ? parentRHCNode.getAttribute('data-index') : '0', 10); if(!event.isEmpty) { classList.add('ad-rhc'); classList.add('ad-story-rhc'); classList.add('ad-story-rhc-notempty'); parentRHCNode.classList.add('story-rhccontent-placeholder-ad-size-' + event.size.join('x')); parentRHCNode.setAttribute('data-slot', slot.getAdUnitPath()); var currentRHCSlot = storyRHCContent.filter(function(e) { return e.Index == index; }); if(currentRHCSlot.length) { minHeight = currentRHCSlot[0].MinHeight; if(currentRHCSlot[0].Repeat == false) { currentRHCSlot[0].Used = true; } if(currentRHCSlot[0].InsertIfNoRHCSpace) { currentRHCSlot[0].InsertIfNoRHCSpace = false; } } else { console.log('Slot with index [data-index="' + index + '"] was not found'); } parentRHCNode.classList.remove('story-rhccontent-placeholder-isempty'); parentRHCNode.classList.remove('story-rhccontent-placeholder-notempty'); parentRHCNode.classList.add((event.isEmpty ? 'story-rhccontent-placeholder-isempty' : 'story-rhccontent-placeholder-notempty')); parentRHCNode.classList.add('story-rhccontent-placeholder-ad-completed'); parentRHCNode.classList.add('story-rhccontent-placeholder-finished'); var canAddRHC = isStoryTextTallerThanRHC(); if( ( index > 0 && !d.body.classList.contains('enhanced-advertising-inline-completed') && parentRHCNode.classList.contains('story-rhccontent-placeholder-canbesticky') ) || ( canAddRHC.canAdd && parentRHCNode.classList.contains('story-rhccontent-placeholder-canbesticky') && canAddRHC.delta > EnhancedAdvertisingConfig.RHCMinHeightForStickyAd ) ){ parentRHCNode.classList.remove('story-rhccontent-placeholder-canbesticky'); parentRHCNode.classList.add('story-rhccontent-placeholder-sticky'); } } else { classList.add('ad-story-rhc-isempty'); var currentRHCSlot = storyRHCContent.filter(function(e) { return e.Index == index; }); if(currentRHCSlot.length) { currentRHCSlot[0].Used = true; } else { console.log('Slot with index [data-index="' + index + '"] was not found'); } if(parentRHCNode && parentRHCNode.hasAttribute('data-nobackfill')) { if(parentRHCNode.getAttribute('data-nobackfill') == '1') { updateRHCPlaceholderClasses(parentRHCNode, event.isEmpty); if(!storyRHCContent.some(function(el) { return el.Used == false; })) { d.body.classList.add('enhanced-advertising-rhc-runoutofslots'); finalizeRemainingEmptyRHCSlotContainers(parentRHCNode.classList, true); } initRHCHeightCalc(); return; } } // Move to next from the list if(enhAdDebug){ console.log('slotRender: parentRHCNode: storyRHCContent: index: ' + index); console.log(storyRHCContent); } if(storyRHCContent.some(function(e) { return e.Used == false; })) { var adRetryCssClass = 'ad-story-rhc-retry'; var nextRHCSlotList = storyRHCContent.filter(function(e) { if(enhAdDebug) console.log('%c Current index: ' + e.Index + ', slot data index: ' + index, 'color: #0C6') return e.Index > index && e.Used == false; }); if(enhAdDebug){ console.log('%c slotRender: parentRHCNode: Moved to next from the list', 'color: #06C'); console.log(nextRHCSlotList); } if(!nextRHCSlotList.length) { // select repeatable ads nextRHCSlotList = storyRHCContent.filter(function(e) { return e.Used == false && e.Index > index && e.Repeat == true; }); if(!nextRHCSlotList.length) { // if no repeatable ads by indexed order then start from the beginning or just pick any existing nextRHCSlotList = storyRHCContent.filter(function(e) { return e.Used == false && e.Repeat == true; }); if(!nextRHCSlotList.length) { // no more ads to add finalizeRemainingEmptyRHCSlotContainers(parentRHCNode.classList, false); //updateRHCPlaceholderClasses(parentRHCNode, event.isEmpty, minHeight); updateRHCPlaceholderClasses(parentRHCNode, event.isEmpty); initRHCHeightCalc(); return; } } } var mapRHCAdItem = nextRHCSlotList[0]; var refresh = EnhancedAdvertisingConfig.Refresh; googletag.destroySlots([slot]); if(mapRHCAdItem.Refresh) { refresh = mapRHCAdItem.Refresh; } if(mapRHCAdItem.Repeat) { parentRHCNode.classList.remove('story-rhccontent-placeholder-repeat-false'); parentRHCNode.classList.add('story-rhccontent-placeholder-repeat-true'); } else { parentRHCNode.classList.remove('story-rhccontent-placeholder-repeat-true'); parentRHCNode.classList.add('story-rhccontent-placeholder-repeat-false'); } if(mapRHCAdItem.Type == 'customcontent'){ //Custom content (RSCCS-540) if(enhAdDebug) console.log('Next RHC config item is custom content'); adjustRHCHeightAndInitialAds(); } else if(mapRHCAdItem.AdUnit){ //Google ad var mapInlineAdItemSlot = googletag.defineSlot(mapRHCAdItem.AdUnit, isDesktopResolution ? mapRHCAdItem.AdUnitSizesInlineDesktop : mapRHCAdItem.AdUnitSizesInlineMobile, slotId); if(mapInlineAdItemSlot) { mapInlineAdItemSlot.defineSizeMapping( googletag.sizeMapping().build() ).setTargeting( 'refresh', (refresh ? 'true' : 'false') ).setTargeting( 'refreshdelayseconds', mapRHCAdItem.RefreshDelaySeconds || (isDesktopResolution ? EnhancedAdvertisingConfig.RefreshDelaySecondsDefaultDesktop : EnhancedAdvertisingConfig.RefreshDelaySecondsDefaultMobile) ).setCollapseEmptyDiv( EnhancedAdvertisingConfig.CollapseEmptyDivs, false ).addService( googletag.pubads() ); } else { console.warn('SlotRender: Something wrong with RHC ad slot \'' + slotId + '\', size(s) \'' + (isDesktopResolution ? mapRHCAdItem.AdUnitSizesInlineDesktop : mapRHCAdItem.AdUnitSizesInlineMobile).join('x') + '\', path \'' + mapRHCAdItem.AdUnit + '\''); } googletag.display(slotId); } el.classList.add(adRetryCssClass); parentRHCNode.setAttribute('data-index', mapRHCAdItem.Index); if(mapRHCAdItem.ExtraHTML) { var extraHTMLEl = parentRHCNode.querySelector('.story-rhccontent-placeholder-ad-extrahtml'); if(extraHTMLEl) { extraHTMLEl.innerHTML = mapRHCAdItem.ExtraHTML; } } else { var extraHTMLEl = parentRHCNode.querySelector('.story-rhccontent-placeholder-ad-extrahtml'); if(extraHTMLEl) { extraHTMLEl.innerHTML = ''; } } } else { // no slots to add.. finalizeRemainingEmptyRHCSlotContainers(parentRHCNode.classList, false); } } } if(parentInlineNode) { updateInlinePlaceholderClasses(parentInlineNode, event.isEmpty, minHeight); } else { //updateRHCPlaceholderClasses(parentRHCNode, event.isEmpty, minHeight); updateRHCPlaceholderClasses(parentRHCNode, event.isEmpty); } } } initRHCHeightCalc(); } googletag.cmd = googletag.cmd || []; googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRequested', function(event) { var slot = event.slot; var el = d.getElementById(slot.getSlotElementId()); if(el) { var parentInlineNode = getClosestParent(el, '.story-inlinecontent-placeholder'); var parentRHCNode = getClosestParent(el, '.story-rhccontent-placeholder'); if(parentInlineNode || parentRHCNode) { if(parentInlineNode) { parentInlineNode.classList.add('story-inlinecontent-placeholder-ad-init'); } else { parentRHCNode.classList.add('story-rhccontent-placeholder-ad-init'); } } } }); googletag.pubads().addEventListener('slotRenderEnded', function(event) { var sId = event.slot.getSlotElementId(); if( enhAdDebug && sId.includes('story-rhcad') || sId.includes('story-inlinead') ){ console.log(`%c Slot RENDER END (${sId})`, 'color: #FE2ACA'); console.log(event); //loadOrRender(sId, 'render', event); } slotRender(event); }); if(enhAdDebug){ //Track slot load events googletag.pubads().addEventListener('slotOnload', (evLoad) => { var sId = evLoad.slot.getSlotElementId(); if( sId.includes('story-rhcad') || sId.includes('story-inlinead') ){ console.log(`%c Slot LOAD (${ evLoad.slot.getSlotElementId() })`, 'color: #C00;'); console.log(event); //loadOrRender(sId, 'load'); } }); } googletag.pubads().addEventListener('slotVisibilityChanged', function(event) { var slot = event.slot; if(slot.getTargeting('refresh').indexOf('true') > -1 && event.inViewPercentage > 0) { var el = d.getElementById(slot.getSlotElementId()); var parentStoryInlineNode = getClosestParent(el, '.ad-story-inline'); var parentStoryRHCNode = getClosestParent(el, '.ad-story-rhc'); if(parentStoryInlineNode || parentStoryRHCNode) { if(parentStoryInlineNode) { var inlineEl = getClosestParent(el, '.story-inlinecontent-placeholder'); if(inlineEl) { if(inlineEl.hasAttribute('data-shouldrefresh')) { var shouldRefresh = inlineEl.getAttribute('data-shouldrefresh'); if(shouldRefresh && shouldRefresh == '1') { googletag.cmd.push(function() { googletag.pubads().refresh([slot], { changeCorrelator: false }); }); var classList = parentStoryInlineNode.classList; var cssClassName = 'ad-story-inline-refreshed-'; var cssClassCounter = 1; for(var i = 0, c = parentStoryInlineNode.className.split(' '), iL = c.length; i < iL; i++) { var v = c[i]; if(v.indexOf(cssClassName) != -1) { cssClassCounter = parseInt(v.split(cssClassName).join(''), 10) + 1; classList.remove(v); break; } } classList.add(cssClassName + cssClassCounter); classList.add('ad-story-inline-refreshed'); inlineEl.setAttribute('data-shouldrefresh', '0'); } } } } else { var rhcEl = getClosestParent(el, '.story-rhccontent-placeholder'); if(rhcEl) { if(rhcEl.hasAttribute('data-shouldrefresh')) { var shouldRefresh = rhcEl.getAttribute('data-shouldrefresh'); if(shouldRefresh && shouldRefresh == '1') { googletag.cmd.push(function() { googletag.pubads().refresh([slot], { changeCorrelator: false }); }); var classList = parentStoryRHCNode.classList; var cssClassName = 'ad-story-rhc-refreshed-'; var cssClassCounter = 1; for(var i = 0, c = parentStoryRHCNode.className.split(' '), iL = c.length; i < iL; i++) { var v = c[i]; if(v.indexOf(cssClassName) != -1) { cssClassCounter = parseInt(v.split(cssClassName).join(''), 10) + 1; classList.remove(v); break; } } classList.add(cssClassName + cssClassCounter); classList.add('ad-story-rhc-refreshed'); rhcEl.setAttribute('data-shouldrefresh', '0'); } } } } } } }); googletag.pubads().addEventListener('impressionViewable', function(event) { var slot = event.slot; if(slot.getTargeting('refresh').indexOf('true') > -1) { var refreshdelayseconds = slot.getTargeting('refreshdelayseconds').length ? parseInt(slot.getTargeting('refreshdelayseconds')[0], 10) : 0; if(refreshdelayseconds) { setTimeout(function() { var el = d.getElementById(slot.getSlotElementId()); var parentStoryInlineNode = getClosestParent(el, '.ad-story-inline'); var parentStoryRHCNode = getClosestParent(el, '.ad-story-rhc'); if(parentStoryInlineNode) { var inlineEl = getClosestParent(el, '.story-inlinecontent-placeholder'); if(inlineEl) { if(inlineEl.classList.contains('item-in-viewport')) { googletag.cmd.push(function() { googletag.pubads().refresh([slot], { changeCorrelator: false }); }); var classList = parentStoryInlineNode.classList; var cssClassName = 'ad-story-inline-refreshed-'; var cssClassCounter = 1; for(var i = 0, c = parentStoryInlineNode.className.split(' '), iL = c.length; i < iL; i++) { var v = c[i]; if(v.indexOf(cssClassName) != -1) { cssClassCounter = parseInt(v.split(cssClassName).join(''), 10) + 1; classList.remove(v); break; } } classList.add(cssClassName + cssClassCounter); inlineEl.setAttribute('data-shouldrefresh', '0'); } else { inlineEl.setAttribute('data-shouldrefresh', '1'); } } } else if(parentStoryRHCNode) { var rhcEl = getClosestParent(el, '.story-rhccontent-placeholder'); if(rhcEl) { if(rhcEl.classList.contains('item-in-viewport')) { googletag.cmd.push(function() { googletag.pubads().refresh([slot], { changeCorrelator: false }); }); var classList = parentStoryRHCNode.classList; var cssClassName = 'ad-story-rhc-refreshed-'; var cssClassCounter = 1; for(var i = 0, c = parentStoryRHCNode.className.split(' '), iL = c.length; i < iL; i++) { var v = c[i]; if(v.indexOf(cssClassName) != -1) { cssClassCounter = parseInt(v.split(cssClassName).join(''), 10) + 1; classList.remove(v); break; } } classList.add(cssClassName + cssClassCounter); rhcEl.setAttribute('data-shouldrefresh', '0'); } else { rhcEl.setAttribute('data-shouldrefresh', '1'); } } } }, refreshdelayseconds * 1000); } else { console.log('Ad refresh delay in seconds is incorrect (slot: ' + slot.getSlotElementId() + '): ', refreshdelayseconds); } } }); }); function isBoolean(n) { return !!n === n; } function isNumber(n) { return +n === n; } function isString(n) { return '' + n === n; } function isNumberPositive(n) { return +n === n && n > 0; } function isNumberPositiveOrZero(n) { return +n === n && n >= 0; } function isArrayOfArrays(a) { return a.every(function(x) { return Array.isArray(x); }); } function getAbsoluteHeight(element) { if(!element) return 0; var styles = w.getComputedStyle(element); var margin = parseFloat(styles['margin-top']) + parseFloat(styles['margin-bottom']); var minHeight = element.clientHeight; return Math.ceil(minHeight ? minHeight + margin : element.offsetHeight + margin); } function updateRHCContainerState() { var classList = d.body.classList; if(!d.querySelectorAll('#rhcreflow-extra .story-rhccontent-placeholder.story-rhccontent-placeholder-completed').length) { d.body.classList.add('enhanced-advertising-rhc-empty'); } else { d.body.classList.remove('enhanced-advertising-rhc-empty'); } } function insertRHCSlot(el) { if(el) { el.classList.add('story-rhccontent-placeholder-processing'); } if(el && storyRHCContent.some(function(e) { return e.Used == false; })) { var classList = el.classList; var placeholder = el.querySelector('[data-id]'); var tempFilteredRHCAds = storyRHCContent; if(placeholder) { var elemsIndexes = d.querySelectorAll('.story-rhccontent-placeholder.story-rhccontent-placeholder-completed[data-index]'); var slotIndex = elemsIndexes.length ? parseInt(elemsIndexes[elemsIndexes.length - 1].getAttribute('data-index'), 10) : -1; tempFilteredRHCAds = storyRHCContent.filter(function(e) { return slotIndex < e.Index && e.Used == false; }); if(!tempFilteredRHCAds.length) { tempFilteredRHCAds = storyRHCContent.filter(function(e) { return e.Used == false && slotIndex < e.Index && e.Repeat == true; }); } if(!tempFilteredRHCAds.length) { tempFilteredRHCAds = storyRHCContent.filter(function(e) { return e.Used == false && e.Repeat == true; }); } if(!tempFilteredRHCAds.length) { finalizeRemainingEmptyRHCSlotContainers(classList, false); return; } var mapRHCAdItem = tempFilteredRHCAds[0]; classList.remove('story-rhccontent-placeholder-init'); classList.remove('story-rhccontent-placeholder-processing'); classList.add('story-rhccontent-placeholder-completed'); if(mapRHCAdItem.CSSClass) { mapRHCAdItem.CSSClass.split(' ').forEach(function(elem) { if(elem) { classList.add(elem); } }); } if(mapRHCAdItem.Type == 'gamadvert') { if(placeholder) { var refresh = EnhancedAdvertisingConfig.Refresh; el.setAttribute('data-storycustomcontent', '0'); if(mapRHCAdItem.Sticky) { classList.add('story-rhccontent-placeholder-canbesticky'); placeholder.classList.add('sticky'); } if(mapRHCAdItem.NoBackfill) { el.setAttribute('data-nobackfill', '1'); } else { el.setAttribute('data-nobackfill', '0'); } if(mapRHCAdItem.Refresh) { refresh = mapRHCAdItem.Refresh; } var mapRHCAdItemSlot = googletag.defineSlot(mapRHCAdItem.AdUnit, mapRHCAdItem.AdUnitSizesRHC, 'story-rhcad-' + rhcAdCounter); if(mapRHCAdItemSlot) { mapRHCAdItemSlot.defineSizeMapping(googletag.sizeMapping().build()).setTargeting('refresh', (refresh ? 'true' : 'false')).setTargeting('refreshdelayseconds', mapRHCAdItem.RefreshDelaySeconds || (isDesktopResolution ? EnhancedAdvertisingConfig.RefreshDelaySecondsDefaultDesktop : EnhancedAdvertisingConfig.RefreshDelaySecondsDefaultMobile)).setCollapseEmptyDiv(EnhancedAdvertisingConfig.CollapseEmptyDivs, false).addService(googletag.pubads()); } else { console.warn('Something wrong with rhc ad slot \'' + 'story-rhcad-' + rhcAdCounter + '\', size(s) \'' + mapRHCAdItem.AdUnitSizesRHC.join('x') + '\', path \'' + mapRHCAdItem.AdUnit + '\''); } if(refresh) { el.setAttribute('data-shouldrefresh', '0'); classList.add('story-rhccontent-placeholder-refresh-true'); } else { classList.add('story-rhccontent-placeholder-refresh-false'); } classList.add('story-rhccontent-placeholder-ad'); placeholder.id = 'story-rhcad-' + rhcAdCounter; placeholder.outerHTML = '<div class="story-rhccontent-placeholder-ad-extrahtml">' + mapRHCAdItem.ExtraHTML + '</div>' + placeholder.outerHTML; el.setAttribute('data-slot', mapRHCAdItem.AdUnit); googletag.display('story-rhcad-' + rhcAdCounter); $(w).trigger("wvcfe:storyrhcaditeminit", [$(el), $(placeholder), mapRHCAdItem, rhcAdCounter, rhcCounter, false, 'rhc', mapRHCAdItem.Type]); if(mapRHCAdItem.CustomEventName) { $(w).trigger(mapRHCAdItem.CustomEventName, [el, placeholder, mapRHCAdItem, rhcAdCounter, rhcCounter, false, 'rhc', mapRHCAdItem.Type]); } if(mapRHCAdItem.Javascript) { if(typeof mapRHCAdItem.Javascript === 'function') { mapRHCAdItem.Javascript.call(this, el, placeholder, mapRHCAdItem, rhcAdCounter, rhcCounter, false, 'rhc', mapRHCAdItem.Type); } } rhcAdCounter++; } } else if(mapRHCAdItem.Type == 'customcontent') { el.setAttribute('data-storycustomcontent', '1'); classList.add('story-rhccontent-placeholder-customcontent'); if(placeholder) { placeholder.innerHTML = mapRHCAdItem.HTML; classList.add('story-rhccontent-placeholder-notempty'); $(w).trigger("wvcfe:storyrhcitemajaxinit", [$(el), $(placeholder), mapRHCAdItem, rhcCounter, false, 'rhc', mapRHCAdItem.Type]); if(mapRHCAdItem.CustomEventName) { $(w).trigger(mapRHCAdItem.CustomEventName, [$(el), $(placeholder), mapRHCAdItem, rhcCounter, false, 'rhc', mapRHCAdItem.Type]); } if(mapRHCAdItem.Javascript) { if(typeof mapRHCAdItem.Javascript === 'function') { mapRHCAdItem.Javascript.call(this, el, placeholder, mapRHCAdItem, rhcCounter, false, 'rhc', mapRHCAdItem.Type); } } el.classList.add('story-rhccontent-placeholder-finished'); } } el.setAttribute('data-index', mapRHCAdItem.Index); rhcCounter++; } else { console.log('Missing placeholder: [data-id="story-rhc-item-' + rhcCounter + '"]'); } } else if(el) { // All slots are used, mark current slot placeholder and the rest ones as completed and used var classList = el.classList; finalizeRemainingEmptyRHCSlotContainers(classList, false); } else { console.log('Missing RHC element'); } } function insertInlineSlot(el) { if(el) { el.classList.add('story-inlinecontent-placeholder-processing'); } if(el && storyInlineContent.some(function(e) { return e.Used == false; })) { var classList = el.classList; var placeholder = el.querySelector('[data-id]'); var tempFilteredInlineAds = storyInlineContent; if(placeholder) { var elemsIndexes = d.querySelectorAll('.story-inlinecontent-placeholder.story-inlinecontent-placeholder-completed[data-index]'); var slotIndex = elemsIndexes.length ? parseInt(elemsIndexes[elemsIndexes.length - 1].getAttribute('data-index'), 10) : -1; tempFilteredInlineAds = storyInlineContent.filter(function(e){ return slotIndex < e.Index && e.Used == false; }); if(!tempFilteredInlineAds.length) { tempFilteredInlineAds = storyInlineContent.filter(function(e) { return e.Used == false && slotIndex < e.Index && e.Repeat == true; }); if(!tempFilteredInlineAds.length) { // start from the first repeatable ad index tempFilteredInlineAds = storyInlineContent.filter(function(e) { return e.Used == false && e.Repeat == true; }); if(!tempFilteredInlineAds.length) { finalizeRemainingEmptyInlineSlotContainers(classList, true); return; } } } var mapInlineAdItem = tempFilteredInlineAds[0]; classList.remove('story-inlinecontent-placeholder-init'); classList.remove('story-inlinecontent-placeholder-processing'); classList.add('story-inlinecontent-placeholder-completed'); if(mapInlineAdItem.CSSClass) { mapInlineAdItem.CSSClass.split(' ').forEach(function(elem) { if(elem) { classList.add(elem); } }); } if(mapInlineAdItem.Type == 'gamadvert') { var refresh = EnhancedAdvertisingConfig.Refresh; el.setAttribute('data-storycustomcontent', '0'); el.classList.add('story-inlinecontent-placeholder-ad'); if(mapInlineAdItem.Sticky) { classList.add('story-inlinecontent-placeholder-sticky'); placeholder.classList.add('sticky'); } if(mapInlineAdItem.NoBackfill) { el.setAttribute('data-nobackfill', '1'); } else { el.setAttribute('data-nobackfill', '0'); } if(mapInlineAdItem.Repeat) { classList.add('story-inlinecontent-placeholder-repeat-true'); } else { classList.add('story-inlinecontent-placeholder-repeat-false'); } if(mapInlineAdItem.Refresh) { refresh = mapInlineAdItem.Refresh; } var mapInlineAdItemSlot = googletag.defineSlot(mapInlineAdItem.AdUnit, isDesktopResolution ? mapInlineAdItem.AdUnitSizesInlineDesktop : mapInlineAdItem.AdUnitSizesInlineMobile, 'story-inlinead-' + inlineAdCounter); if(mapInlineAdItemSlot) { mapInlineAdItemSlot.defineSizeMapping(googletag.sizeMapping().build()).setTargeting('refresh', (refresh ? 'true' : 'false')).setTargeting('refreshdelayseconds', mapInlineAdItem.RefreshDelaySeconds || (isDesktopResolution ? EnhancedAdvertisingConfig.RefreshDelaySecondsDefaultDesktop : EnhancedAdvertisingConfig.RefreshDelaySecondsDefaultMobile)).setCollapseEmptyDiv(EnhancedAdvertisingConfig.CollapseEmptyDivs, false).addService(googletag.pubads()); } else { console.warn('Something wrong with inline ad slot \'' + 'story-inlinead-' + inlineAdCounter + '\', size(s) \'' + (isDesktopResolution ? mapInlineAdItem.AdUnitSizesInlineDesktop : mapInlineAdItem.AdUnitSizesInlineMobile).join('x') + '\', path \'' + mapInlineAdItem.AdUnit + '\''); } if(refresh) { el.setAttribute('data-shouldrefresh', '0'); classList.add('story-inlinecontent-placeholder-refresh-true'); } else { classList.add('story-inlinecontent-placeholder-refresh-false'); } placeholder.id = 'story-inlinead-' + inlineAdCounter; placeholder.outerHTML = '<div class="story-inlinecontent-placeholder-ad-extrahtml">' + mapInlineAdItem.ExtraHTML + '</div>' + placeholder.outerHTML; el.setAttribute('data-slot', mapInlineAdItem.AdUnit); googletag.display('story-inlinead-' + inlineAdCounter); $(w).trigger("wvcfe:storyinlineaditeminit", [$(el), $(placeholder), mapInlineAdItem, inlineAdCounter, inlineCounter, false, 'inline', mapInlineAdItem.Type]); if(mapInlineAdItem.CustomEventName) { $(w).trigger(mapInlineAdItem.CustomEventName, [el, placeholder, mapInlineAdItem, inlineAdCounter, inlineCounter, false, 'inline', mapInlineAdItem.Type]); } if(mapInlineAdItem.Javascript) { if(typeof mapInlineAdItem.Javascript === 'function') { mapInlineAdItem.Javascript.call(this, el, placeholder, mapInlineAdItem, inlineAdCounter, inlineCounter, false, 'inline', mapInlineAdItem.Type); } } inlineAdCounter++; } else if(mapInlineAdItem.Type == 'customcontent') { el.setAttribute('data-storycustomcontent', '1'); el.classList.add('story-inlinecontent-placeholder-customcontent'); placeholder.innerHTML = mapInlineAdItem.HTML; $(w).trigger("wvcfe:storyinlineitemajaxinit", [$(el), $(placeholder), mapInlineAdItem, inlineCounter, false, 'inline', mapInlineAdItem.Type]); if(mapInlineAdItem.CustomEventName) { $(w).trigger(mapInlineAdItem.CustomEventName, [$(el), $(placeholder), mapInlineAdItem, inlineCounter, false, 'inline', mapInlineAdItem.Type]); } if(mapInlineAdItem.Javascript) { if(typeof mapInlineAdItem.Javascript === 'function') { mapInlineAdItem.Javascript.call(this, el, placeholder, mapInlineAdItem, inlineCounter, false, 'inline', mapInlineAdItem.Type.toLowerCase()); } } el.classList.add('story-inlinecontent-placeholder-finished'); var inlineCustomEvent = { dataId: (mapInlineAdItem.Index+1), slot: { getSlotElementId: function(){ return 'custom-inline'; }, getAdUnitPath: function(){return 'custom-inline'} }, isEmpty: false, size:[0,0] }; el.setAttribute('data-index', mapInlineAdItem.Index); slotRender(inlineCustomEvent); //$(w).trigger('abacus:inlinecontentrender', inlineCustomEvent); } el.setAttribute('data-index', mapInlineAdItem.Index); //el.setAttribute('data-index', inlineCounter); inlineCounter++; } else { console.log('Missing placeholder: [data-id="story-inline-item-' + inlineCounter + '"]'); } } else if(el) { // All slots are used, mark current slot placeholder and the rest ones as completed and used var classList = el.classList; finalizeRemainingEmptyInlineSlotContainers(classList, true); } else { console.log('Missing inline element'); } } function finalizeRemainingEmptyRHCSlotContainers(classList, processremaining) { classList.remove('story-rhccontent-placeholder-init'); classList.remove('story-rhccontent-placeholder-processing'); classList.add('story-rhccontent-placeholder-completed'); classList.add('story-rhccontent-placeholder-isempty'); classList.add('story-rhccontent-placeholder-runoutofslots'); classList.add('story-rhccontent-placeholder-finished'); if(processremaining) { for(var i = 0, elems = d.querySelectorAll('.story-rhccontent-placeholder.story-rhccontent-placeholder-init:not(.story-rhccontent-placeholder-processing)'), iL = elems.length; i < iL; i++) { var e = elems[i]; if(e) { var c = e.classList; c.remove('story-rhccontent-placeholder-init'); c.add('story-rhccontent-placeholder-completed'); c.add('story-rhccontent-placeholder-isempty'); c.add('story-rhccontent-placeholder-runoutofslots'); c.add('story-rhccontent-placeholder-finished'); } } } } function finalizeRemainingEmptyInlineSlotContainers(classList, processremaining) { classList.remove('story-inlinecontent-placeholder-init'); classList.remove('story-inlinecontent-placeholder-processing'); classList.add('story-inlinecontent-placeholder-completed'); classList.add('story-inlinecontent-placeholder-isempty'); classList.add('story-inlinecontent-placeholder-runoutofslots'); classList.add('story-inlinecontent-placeholder-finished'); if(processremaining) { for(var i = 0, elems = d.querySelectorAll('.story-inlinecontent-placeholder.story-inlinecontent-placeholder-init:not(.story-inlinecontent-placeholder-processing)'), iL = elems.length; i < iL; i++) { var e = elems[i]; if(e) { var c = e.classList; c.remove('story-inlinecontent-placeholder-init'); c.add('story-inlinecontent-placeholder-completed'); c.add('story-inlinecontent-placeholder-isempty'); c.add('story-inlinecontent-placeholder-runoutofslots'); c.add('story-inlinecontent-placeholder-finished'); } } } } function updateInlinePlaceholderClasses(node, status, minHeight) { node.classList.remove('story-inlinecontent-placeholder-isempty'); node.classList.remove('story-inlinecontent-placeholder-notempty'); node.classList.add((status ? 'story-inlinecontent-placeholder-isempty' : 'story-inlinecontent-placeholder-notempty')); node.classList.add('story-inlinecontent-placeholder-ad-completed'); if(!status) { var computedMinHeightValue = w.getComputedStyle(node).minHeight || 0; var computedMinHeight = parseInt(computedMinHeightValue, 10); if(minHeight > computedMinHeight) { node.style.minHeight = minHeight + 'px'; } } } function updateRHCPlaceholderClasses(node, status) { node.classList.remove('story-rhccontent-placeholder-ad-init'); node.classList.remove('story-rhccontent-placeholder-isempty'); node.classList.remove('story-rhccontent-placeholder-notempty'); node.classList.add((status ? 'story-rhccontent-placeholder-isempty' : 'story-rhccontent-placeholder-notempty')); node.classList.add('story-rhccontent-placeholder-ad-completed'); } function initRHCHeightCalc() { updateRHCFirstandLastItemStyles(); // readjust height if no in progress/loading ads as the height might change on storytext or RHC if(!d.querySelectorAll('#rhcreflow-extra .story-rhccontent-placeholder.story-rhccontent-placeholder-completed.story-rhccontent-placeholder-ad-init').length) { readjusRHCHeight(); } else { setTimeout(function() { initRHCHeightCalc(); }, 0); } } function isInViewport(element) { var rect = element.getBoundingClientRect(); var height = w.innerHeight || d.documentElement.clientHeight; var width = w.innerWidth || d.documentElement.clientWidth; return ( rect.right >= 0 && rect.bottom >= 0 && rect.left <= width && rect.top <= height ); } function processElementsInViewport() { var adsInlinePlaceholders = d.querySelectorAll('.storytext .story-inlinecontent-placeholder'); //PWVD-893 : change from rhccontent var adsRHCPlaceholders = d.querySelectorAll('#rhcreflow-extra .story-rhccontent-placeholder'); if(adsInlinePlaceholders || adsRHCPlaceholders) { if(adsInlinePlaceholders) { adsInlinePlaceholders.forEach(function(el) { var classList = el.classList; if(!isInViewport(el)) { classList.remove('story-inlinecontent-placeholder-isinviewport'); classList.add('story-inlinecontent-placeholder-isnotinviewport'); } else { classList.remove('story-inlinecontent-placeholder-isnotinviewport'); classList.add('story-inlinecontent-placeholder-isinviewport'); } }); } else { adsRHCPlaceholders.forEach(function(el) { var classList = el.classList; if(!isInViewport(el)) { classList.remove('story-rhccontent-placeholder-isinviewport'); classList.add('story-rhccontent-placeholder-isnotinviewport'); } else { classList.remove('story-rhccontent-placeholder-isnotinviewport'); classList.add('story-rhccontent-placeholder-isinviewport'); } }); } } } function adjustRHCHeightAndInitialAds() { var output = []; var googletag = w.googletag || {}; var rhcreflowExtra = d.querySelector('#rhcreflow-extra'); if(rhcreflowExtra) { rhcreflowExtra.innerHTML = ''; minRHCSlotsToFitIn = (minRHCSlots > 0 ? minRHCSlots : 2); maxRHCSlotsToFitIn = (maxRHCSlots > 0 ? maxRHCSlots : 0); for(var i = 0, iL = Math.max(storyRHCContent.length, maxRHCSlotsToFitIn); i < iL; i++) { rhcCounter = i + 1; output.push("<div class=\"story-rhccontent-placeholder story-rhccontent-placeholder-init item-notin-viewport\" data-storyrhccontainer=\"" + rhcCounter + "\"><div class=\"story-rhccontent-placeholder-inner\" data-id=\"story-rhc-item-" + rhcCounter + "\" data-storyrhcitem=\"" + rhcCounter + "\"></div></div>"); if(rhcCounter >= maxRHCSlotsToFitIn) break; } d.querySelector('#rhcreflow-extra').innerHTML = output.join(''); if('IntersectionObserver' in w && 'IntersectionObserverEntry' in w && 'intersectionRatio' in w.IntersectionObserverEntry.prototype) { d.querySelectorAll('.story-rhccontent-placeholder.story-rhccontent-placeholder-init').forEach(function(el) { if(el) { observer = new IntersectionObserver(function(entries) { return observerCallback(entries); }, { root: null, rootMargin: "50px 0px 50px 0px", threshold: [0, 0.01, 0.99, 1] }); observer.observe(el); } }); var observerCallback = function(entries) { return entries.forEach(function(entry, i) { if(entry.isIntersecting) { entry.target.classList.remove('item-notin-viewport'); entry.target.classList.add('item-in-viewport'); } else { entry.target.classList.remove('item-in-viewport'); entry.target.classList.add('item-notin-viewport'); } }); } } googletag.cmd = googletag.cmd || []; googletag.cmd.push(function() { var rhcEl = d.querySelector('.story-rhccontent-placeholder.story-rhccontent-placeholder-init:not(.story-rhccontent-placeholder-completed):not(.story-rhccontent-placeholder-processing)'); var hasAnyRHCLoadedBefore = d.querySelectorAll('.story-rhccontent-placeholder.story-rhccontent-placeholder-completed'); if(rhcEl && !hasAnyRHCLoadedBefore.length) { insertRHCSlot(rhcEl); d.body.classList.add('enhanced-advertising-rhc-init'); } }); updateRHCContainerState(); } } function isStoryTextTallerThanRHC() { var calcHeight = 0; if(w.matchMedia("screen and (min-width: 1023px)").matches && !d.body.classList.contains('story-full-layout')) { var h = 0, colmain = d.getElementById('colmain').clientHeight; d.querySelectorAll('#rightcolumn_sleeve > *:not(#rhcreflow-extra)').forEach(function(item) { h = getAbsoluteHeight(item); item.setAttribute('data-height', h); calcHeight += h; }); d.querySelectorAll('#rhcreflow-extra > *').forEach(function(item) { h = getAbsoluteHeight(item); item.setAttribute('data-height', h); calcHeight += h; }); return { "canAdd": colmain > calcHeight, "delta": colmain - calcHeight }; } else { return { "canAdd": false, "delta": 0 }; } } function canAddRHCItem() { // check whether inline and RHC ads finished loading, otherwise ignore var storyRHCSlotHeight = EnhancedAdvertisingConfig.RHCMinHeightForSlotInsert; var calcHeight = 0; if(w.matchMedia("screen and (min-width: 1023px)").matches && !d.body.classList.contains('story-full-layout')) { var h = 0, innerChild = 0; d.querySelectorAll('#rightcolumn_sleeve > *:not(#rhcreflow-extra)').forEach(function(item) { h = getAbsoluteHeight(item); item.setAttribute('data-height', h); calcHeight += h; }); d.querySelectorAll('#rhcreflow-extra > *').forEach(function(item) { //innerChild = (item || item.querySelector('.story-rhccontent-placeholder-inner') || item.firstChild); //h = getAbsoluteHeight(innerChild); //if (h == 0) { // h = getAbsoluteHeight(item); //} h = getAbsoluteHeight(item); item.setAttribute('data-height', h); calcHeight += h; }); var result = { "canAddRHCItem": d.getElementById('colmain').clientHeight > calcHeight + storyRHCSlotHeight, "colmainTaller": d.getElementById('colmain').clientHeight > calcHeight }; return result; } else { return { "canAddRHCItem": false, "colmainTaller": false }; } } function readjusRHCHeight() { if(w.matchMedia("screen and (min-width: 1023px)").matches && !d.body.classList.contains('story-full-layout')) { d.getElementById('rightcolumn_sleeve').style.minHeight = d.getElementById('colmain').clientHeight + 'px'; } var elemsIndexes = d.querySelectorAll('.story-rhccontent-placeholder.story-rhccontent-placeholder-completed[data-index]'); var slotIndex = elemsIndexes.length ? parseInt(elemsIndexes[elemsIndexes.length - 1].getAttribute('data-index'), 10) : -1; var rhcEl = d.querySelector('.story-rhccontent-placeholder.story-rhccontent-placeholder-init:not(.story-rhccontent-placeholder-completed):not(.story-rhccontent-placeholder-processing)'); var canAdd = canAddRHCItem(); var hasInsertIfNoRHCSpace = storyRHCContent.some(function(e) { return e.InsertIfNoRHCSpace == true && e.Used == false && e.Index > slotIndex; }); if(!rhcEl || (!canAdd.canAddRHCItem && !hasInsertIfNoRHCSpace && !d.querySelectorAll('.story-inlinecontent-placeholder.story-inlinecontent-placeholder-init:not(.story-inlinecontent-processing)').length)) { d.body.classList.add('enhanced-advertising-rhc-completed'); } else { d.body.classList.remove('enhanced-advertising-rhc-completed'); } //var rhcElementsInitialised = d.querySelectorAll('.story-rhccontent-placeholder.story-rhccontent-placeholder-completed:not(.story-rhccontent-placeholder-init):not(.story-rhccontent-placeholder-processing):not(.story-rhccontent-placeholder-finished)'); var rhcElementsInitialised = d.querySelectorAll('.story-rhccontent-placeholder.story-rhccontent-placeholder-completed:not(.story-rhccontent-placeholder-init):not(.story-rhccontent-placeholder-processing):not(.story-rhccontent-placeholder-finished):not(.story-rhccontent-placeholder-isempty)'); //var rhcElemInit = $('.story-rhccontent-placeholder.story-rhccontent-placeholder-completed'); //PWVD-749 //var classesToExclude = ['init', 'processing', 'finished'].map( cls => '.story-rhccontent-placeholder-' + cls); //, 'isempty' //rhcElemInit = rhcElemInit.find( classesToExclude.join(',') ).remove(); if(rhcEl && (canAdd.canAddRHCItem || hasInsertIfNoRHCSpace) && rhcElementsInitialised.length == 0) { googletag.cmd.push(function() { insertRHCSlot(rhcEl); }); } } function updateRHCFirstandLastItemStyles() { d.querySelectorAll('#rhcreflow-extra > *:not(.story-rhccontent-placeholder-init):not(.story-rhccontent-placeholder-processing):not(.story-rhccontent-placeholder-isempty)').forEach(function(item, index, data) { item.classList.remove('story-rhccontent-placeholder-first'); item.classList.remove('story-rhccontent-placeholder-last'); if(index == 0) { item.classList.add('story-rhccontent-placeholder-first'); } if(index == data.length - 1) { item.classList.add('story-rhccontent-placeholder-last'); } }); if((d.querySelectorAll('.storytext .story-inlinecontent-placeholder.story-inlinecontent-placeholder-completed').length == d.querySelectorAll('.storytext .story-inlinecontent-placeholder.story-inlinecontent-placeholder-finished').length) && !d.querySelectorAll('.storytext .story-inlinecontent-placeholder.story-inlinecontent-placeholder-init').length) { d.body.classList.add('enhanced-advertising-inline-completed'); } else { d.body.classList.remove('enhanced-advertising-inline-completed'); } } w.addEventListener('scroll', function(e) { if(!ticking) { w.requestAnimationFrame(function() { processElementsInViewport(); readjusRHCHeight(); ticking = false; }); ticking = true; } }, true); w.addEventListener('resize', function(e) { if(!ticking) { w.requestAnimationFrame(function() { processElementsInViewport(); readjusRHCHeight(); ticking = false; }); ticking = true; } }, true); w.addEventListener("abacus:loadcontent:complete", function(evt, context) { readjusRHCHeight(); }, true); if(d.querySelector('#story .storytext img.lazyload')) { d.addEventListener('lazyloaded', function(e) { if(w.googletag && googletag.apiReady) { if(getClosestParent(e.target, '.storytext')) { readjusRHCHeight(); } } }); } w.addEventListener("abacus:advertb:loaded", function(evt, context) { readjusRHCHeight(); }, true); w.addEventListener("abacus:gamadvert:loaded", function(evt, context) { readjusRHCHeight(); }, true); w.addEventListener("abacus:readjusrhcheight", function(evt, context) { readjusRHCHeight(); }, true); //w.addEventListener('abacus:inlinecontentrender', function(customEvent) { // slotRender(customEvent); //}, true); } }); })(window, document); </script> <!-- ABACUS Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NZF83CW');</script> <!-- End Google Tag Manager --> <!-- Screen Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-T6JMCT');</script> <!-- End Screen Google Tag Manager --> </head> <body id="story" class="M1-master js-disabled story-style-1 story-format-2 story-type-1101 enhanced-advertising enhanced-advertising-rhc-empty"> <!-- ABACUS Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NZF83CW" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Screen Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T6JMCT" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Screen Google Tag Manager (noscript) --> <!--[if lte IE 10]> <link rel="stylesheet" href="/CSS/dest/notsupported.css"> <div class="notSupported"> <div class="sleeve"> <span id="logo" class="vector-icon i-brand-logo i-brand-logo-dims"></span> <h2> Your browser is not supported </h2> <p> Sorry but it looks as if your browser is out of date. To get the best experience using our site we recommend that you upgrade or switch browsers. </p> <p class="buttonContainer"> <a class="button" href="https://www.google.co.uk/webhp?ion=1&espv=2&ie=UTF-8#q=update+my+browser" target="_blank">Find a solution</a> </p> </div> </div> <![endif]--> <script type="text/javascript">document.body.className = document.body.className.replace('js-disabled', ''); document.cookie = "_js=1; path=/";</script> <div id="wrapper"> <ul id="skiplinks"><li><a href="#wrapper_sleeve">Skip to main content</a></li><li><a href="#mainnav">Skip to navigation</a></li></ul> <header id="masthead" class="masthead"> <div class="htmlContent"> <!-- /21612928716/Screen/wallpaper --> <div id='div-gpt-wallpaper' class="wallpaper-ad adslot" data-site-width-1024> <script> googletag.cmd.push(function() { googletag.display('div-gpt-wallpaper'); }); </script> </div> <!-- /21612928716/Screen/Overlay --> <div id='div-gpt-overlay' style="height:0"> <script> googletag.cmd.push(function() { googletag.display('div-gpt-overlay'); }); </script> </div> <!-- /21612928716/Screen/skin-left --> <!--<div id='div-gpt-ad-skin-left' style='position:absolute; width: 1000px; margin-top: 48px; height: calc(100% - 48px);'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-skin-left'); }); </script> </div>--> </div> <!--<div class="knock-leaderboard"> <div class="ad">--> <!-- /21612928716/Screen/AdvertMastLB --> <!--<div id='div-gpt-AdvertMastLB'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-AdvertMastLB'); }); </script> </div> </div> </div>--> <div class="mast container full" role="banner" data-multi-toggle-menu> <div class="inner-sleeve" data-menu-open-pushed> <div class="mastheadLogo"> <a href="/"> <span class="logoIcon"> <span class="assistive">Screen Daily</span> </span> </a> </div> <div id="print_logo"> <img src="/magazine/dest/graphics/logo/print_logo.png" alt="" /> </div> <div class="mastheadMobileLogo"> <a href="/"> <span class="logoIcon"> <span class="assistive">Core Test</span> </span> </a> </div> <div class="mastControls"> <nav data-multi-toggle-item="" class="mastNav loggedout hide"><span class="toggleIcon"><a href="#mastnav" data-toggle-button=""><span class="assistive">Mast navigation</span></a></span><ul id="mastnav" data-toggle-element=""><li><a href="https://account.screendaily.com/Register" class="newWindow">Register</a></li><li><a href="https://www.screendaily.com/subscribe">Subscribe</a></li><li><a class="popup signIn" href="https://www.screendaily.com/sign-in">Sign in</a></li></ul></nav> <div class="mastheadSearch hide" data-multi-toggle-item=""> <span class="toggleIcon"> <a href="#search" data-toggle-button=""> <span class="assistive">Search our site</span> </a> </span> <form action="https://www.screendaily.com/searchresults" method="get" id="mastsearch" data-toggle-element=""> <fieldset> <div> <label for="search">Search our site</label> <input type="text" id="search" value="" name="qkeyword" class="text" placeholder="Search our site" /> <button class="mastSearch" type="submit">Search</button> </div> </fieldset> </form> </div> <div class="menuToggle"> <span class="toggleIcon"><a href="#mobilemenu" data-menu-toggle-button=""><span class="assistive">Menu</span></a></span> </div> </div> </div> </div> <div class="menuContainer"> <div class="mobileMenu" id="mobilemenu"> <div class="sleeve"> <a class="menuClose" href="#wrapper"> <span>Close<span class="assistive"> menu</span></span> </a> <ul class="main"> <li class="hasChildren home-icon"> <a href="https://www.screendaily.com/" aria-expanded="false"> <span>Home</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav home-icon"> <a href="https://www.screendaily.com/"> <span>Home</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/contact-us"> <span>Contact Us</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/digital-editions/11578.subject"> <span>Digital Editions</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/home/screen-network"> <span>Screen Network</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/podcast/12264.subject"> <span>The Screen Podcast</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/home/stars-of-tomorrow"> <span>Stars Of Tomorrow</span> </a> </li> <li class=""> <a href="https://www.bigscreenawards.com/"> <span>The Big Screen Awards</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/fyc-screenings"> <span>FYC screenings</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/world-of-locations-may-october-2023-digital-edition/5181675.article"> <span>World of Locations</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/uk-in-focus"> <span>UK in focus</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/job-vacancies"> <span>Job vacancies</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/cannes-close-up/12877.subject"> <span>Cannes Close-Up</span> </a> </li> </ul> </li> <li class="hasChildren "> <a href="https://www.screendaily.com/news" aria-expanded="false"> <span>News</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <a href="https://www.screendaily.com/news"> <span>News</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/production"> <span>Production</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/distribution"> <span>Distribution</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/funding"> <span>Funding</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/streaming"> <span>Streaming</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/exhibition"> <span>Exhibition</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/sales"> <span>Sales</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/11901.subject"> <span>Staff moves</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/tv"> <span>TV</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/artificial-intelligence/12899.subject"> <span>Artificial intelligence</span> </a> </li> <li class="break"> <a href="https://www.screendaily.com/news/box-office"> <span>Box office</span> </a> </li> <li class="hasChildren "> <a href="#"> <span>Territories</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>Territories</span> </li> <li class=""> <a href="https://www.screendaily.com/news/territories/uk-and-ireland"> <span>UK & Ireland</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/territories/north-america"> <span>North America</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/territories/europe"> <span>Europe</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/territories/asia-pacific"> <span>Asia Pacific</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/news/territories/middle-east-and-africa"> <span>Middle East & Africa</span> </a> </li> </ul> </li> </ul> </li> <li class="hasChildren "> <a href="https://www.screendaily.com/reviews" aria-expanded="false"> <span>Reviews</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <a href="https://www.screendaily.com/reviews"> <span>Reviews</span> </a> </li> <li class="hasChildren "> <a href="#"> <span>Territories</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>Territories</span> </li> <li class=""> <a href="https://www.screendaily.com/reviews/territories/uk-and-ireland"> <span>UK & Ireland</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/reviews/territories/north-america"> <span>North America</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/reviews/territories/europe"> <span>Europe </span> </a> </li> <li class=""> <a href="https://www.screendaily.com/reviews/territories/asia-pacific"> <span>Asia Pacific</span> </a> </li> <li class="break"> <a href="https://www.screendaily.com/reviews/territories/middle-east-and-africa"> <span>Middle East & Africa</span> </a> </li> </ul> </li> <li class="hasChildren "> <a href="#"> <span>Festivals</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>Festivals</span> </li> <li class=""> <a href="https://www.screendaily.com/reviews/festivals/cannes"> <span>Cannes</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/reviews/festivals/berlin"> <span>Berlin</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/reviews/festivals/sundance"> <span>Sundance</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/reviews/festivals/toronto"> <span>Toronto</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/reviews/festivals/venice"> <span>Venice</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/reviews/festivals/more"> <span>More</span> </a> </li> </ul> </li> </ul> </li> <li class="hasChildren "> <a href="https://www.screendaily.com/features" aria-expanded="false"> <span>Features</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <a href="https://www.screendaily.com/features"> <span>Features</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/features/interviews"> <span>Interviews</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/features/comment"> <span>Comment</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/features/future-leaders-2019-programmers-and-curators-to-watch/5139440.article"> <span>Future Leaders</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/45926.more"> <span>TV</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/my-screen-life/12258.subject"> <span>My Screen Life</span> </a> </li> </ul> </li> <li class="hasChildren "> <a href="https://www.screendaily.com/festivals" aria-expanded="false"> <span>Festivals</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <a href="https://www.screendaily.com/festivals"> <span>Festivals</span> </a> </li> <li class="hasChildren "> <a href="#"> <span>Europe</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>Europe</span> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/cannes"> <span>Cannes</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/berlin"> <span>Berlin</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/venice"> <span>Venice</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/rotterdam"> <span>Rotterdam</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/karlovy-vary"> <span>Karlovy Vary</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/locarno"> <span>Locarno</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/cphdox"> <span>CPH:DOX</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/sarajevo"> <span>Sarajevo</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/europe/san-sebastian"> <span>San Sebastian</span> </a> </li> <li class="break"> <a href="https://www.screendaily.com/festivals/europe/tallinn"> <span>Tallinn</span> </a> </li> </ul> </li> <li class="hasChildren "> <a href="#"> <span>North America</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>North America</span> </li> <li class=""> <a href="https://www.screendaily.com/festivals/north-america/toronto"> <span>Toronto</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/north-america/afm"> <span>AFM</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/north-america/sundance"> <span>Sundance</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/north-america/sxsw"> <span>SXSW</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/north-america/tribeca"> <span>Tribeca</span> </a> </li> </ul> </li> <li class="hasChildren "> <a href="#"> <span>UK</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>UK</span> </li> <li class=""> <a href="https://www.screendaily.com/festivals/uk/london"> <span>London</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/uk/glasgow"> <span>Glasgow</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/uk/edinburgh"> <span>Edinburgh</span> </a> </li> <li class="break"> <a href="https://www.screendaily.com/festivals/uk/sheffield-doc/fest"> <span>Sheffield Doc/Fest</span> </a> </li> </ul> </li> <li class="hasChildren "> <a href="#"> <span>Asia Pacific</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>Asia Pacific</span> </li> <li class=""> <a href="https://www.screendaily.com/festivals/asia-pacific/busan"> <span>Busan</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/asia-pacific/tokyo"> <span>Tokyo</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/asia-pacific/filmart"> <span>Filmart</span> </a> </li> </ul> </li> <li class="hasChildren "> <a href="#"> <span>MENA</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>MENA</span> </li> <li class=""> <a href="https://www.screendaily.com/festivals/mena/cairo"> <span>Cairo</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/festivals/mena/red-sea"> <span>Red Sea</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/marrakech/12836.subject"> <span>Marrakech</span> </a> </li> </ul> </li> </ul> </li> <li class="hasChildren "> <a href="https://www.screendaily.com/box-office" aria-expanded="false"> <span>Box Office</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <a href="https://www.screendaily.com/box-office"> <span>Box Office</span> </a> </li> <li class="hasChildren "> <a href="#"> <span>Box Office Reports</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <span>Box Office Reports</span> </li> <li class=""> <a href="https://www.screendaily.com/box-office/box-office-reports/international"> <span>International</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/box-office/box-office-reports/uk"> <span>UK</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/box-office/box-office-reports/us"> <span>US</span> </a> </li> </ul> </li> <li class=""> <a href="https://www.screendaily.com/box-office/analysis"> <span>Analysis</span> </a> </li> </ul> </li> <li class="hasChildren "> <a href="https://www.screendaily.com/awards" aria-expanded="false"> <span>Awards</span> </a> <ul aria-hidden="true" class="subMenu hide"> <li class="parentBack"> <a class="toolbar" href="#"> <span class="header">Back<span class="assistive"> to parent navigation item</span></span> <span class="btn backBtn"> <i></i> </span> </a> </li> <li class="parentNav"> <a href="https://www.screendaily.com/awards"> <span>Awards</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/awards/oscars"> <span>Oscars</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/awards/baftas"> <span>Baftas</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/awards/golden-globes"> <span>Golden Globes</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/awards/emmys"> <span>Emmys</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/awards/bifas"> <span>Bifas</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/european-film-awards/12593.subject"> <span>European Film Awards</span> </a> </li> </ul> </li> <li class=""> <a href="https://www.screendaily.com/home/stars-of-tomorrow"> <span>Stars of Tomorrow</span> </a> </li> <li class=""> <a href="https://www.screendaily.com/subscribe" class="newWindow"> <span>Subscribe</span> </a> </li> </ul> </div> </div> <div class="mobileMenuClose"></div> <div id="mainnav" class="desktopNavigation container" data-menu-open-pushed=""><div class="dropdown vanityPanel"><div class="inner-sleeve"></div></div><div class="inner-sleeve"><ul class="main preJS"><li data-navcode="5233" data-rootnavcode="5233" class="home-icon hasChildren oneSubNav"><a href="https://www.screendaily.com/"><span>Home</span></a><div class="dropdown"><div class="inner-sleeve"><ul><li class="subnav"><ul><li data-navcode="5900" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/contact-us"><span>Contact Us</span></a></li><li data-navcode="5302" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/digital-editions/11578.subject"><span>Digital Editions</span></a></li><li data-navcode="6065" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/home/screen-network"><span>Screen Network</span></a></li><li data-navcode="6075" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/podcast/12264.subject"><span>The Screen Podcast</span></a></li><li data-navcode="5587" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/home/stars-of-tomorrow"><span>Stars Of Tomorrow</span></a></li><li data-navcode="5639" data-rootnavcode="5233" class=""><a href="https://www.bigscreenawards.com/"><span>The Big Screen Awards</span></a></li><li data-navcode="6328" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/fyc-screenings"><span>FYC screenings</span></a></li><li data-navcode="5474" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/news/world-of-locations-may-october-2023-digital-edition/5181675.article"><span>World of Locations</span></a></li><li data-navcode="6358" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/uk-in-focus"><span>UK in focus</span></a></li><li data-navcode="6378" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/job-vacancies"><span>Job vacancies</span></a></li><li data-navcode="6385" data-rootnavcode="5233" class=""><a href="https://www.screendaily.com/cannes-close-up/12877.subject"><span>Cannes Close-Up</span></a></li></ul></li><li class="promotedStory"><a href="/news/screen-digital-edition-november-22/5199359.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/1/8/3/1437183_nov223x2_616632.jpg" loading="lazy" class="lazyloaded" alt="nov 22 3x2"></div><div class="captionBlock"><span class="title">Screen digital edition: November 22</span></div></a></li><li class="promotedStory"><a href="/news/afm-2024-screens-dailies/5198864.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/2/1/6/1436216_afmday33x2_913127.jpg" loading="lazy" class="lazyloaded" alt="AFM day 3 3x2"></div><div class="captionBlock"><span class="title">AFM 2024: Screen’s dailies</span></div></a></li><li class="promotedStory"><a href="/news/afm-2024-market-product-guide/5198862.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/9/4/6/1435946_afmbumper20243x2_144932.jpg" loading="lazy" class="lazyloaded" alt="afm bumper 2024 3x2"></div><div class="captionBlock"><span class="title">AFM 2024: Market Product Guide</span></div></a></li></ul></div></div></li><li data-navcode="24" data-rootnavcode="24" class="hasChildren twoSubNav"><a href="https://www.screendaily.com/news"><span>News</span></a><div class="dropdown"><div class="inner-sleeve"><ul><li class="subnav"><ul><li data-navcode="5231" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/production"><span>Production</span></a></li><li data-navcode="5230" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/distribution"><span>Distribution</span></a></li><li data-navcode="35" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/funding"><span>Funding</span></a></li><li data-navcode="40" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/streaming"><span>Streaming</span></a></li><li data-navcode="5766" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/exhibition"><span>Exhibition</span></a></li><li data-navcode="5767" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/sales"><span>Sales</span></a></li><li data-navcode="5772" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/11901.subject"><span>Staff moves</span></a></li><li data-navcode="5961" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/tv"><span>TV</span></a></li><li data-navcode="6399" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/artificial-intelligence/12899.subject"><span>Artificial intelligence</span></a></li><li data-navcode="5276" data-rootnavcode="24" class="break"><a href="https://www.screendaily.com/news/box-office"><span>Box office</span></a></li></ul></li><li class="subnav"><ul><li data-navcode="5806" data-rootnavcode="24" class=""><span>Territories</span><ul><li data-navcode="5768" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/territories/uk-and-ireland"><span>UK & Ireland</span></a></li><li data-navcode="5769" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/territories/north-america"><span>North America</span></a></li><li data-navcode="5771" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/territories/europe"><span>Europe</span></a></li><li data-navcode="5770" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/territories/asia-pacific"><span>Asia Pacific</span></a></li><li data-navcode="5807" data-rootnavcode="24" class=""><a href="https://www.screendaily.com/news/territories/middle-east-and-africa"><span>Middle East & Africa</span></a></li></ul></li></ul></li><li class="promotedStory"><a href="/news/indias-indie-filmmakers-call-for-more-state-funding-highlight-distribution-challenges/5199408.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/2/5/7/1437257_indianindependentpanel1courtesynfdc_221382.jpeg" loading="lazy" class="lazyloaded" alt="indian independent panel 1 courtesy nfdc"></div><div class="captionBlock"><span class="title">India’s indie filmmakers call for more state funding, highlight distribution challenges</span></div></a></li><li class="promotedStory"><a href="/news/european-blockbusters-are-an-endangered-species-says-european-audiovisual-observatory-report/5199342.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/0/7/6/1437076_asterixobelixthemiddlekingdom_300dpiphotogramme_0007_creditpathe_317668_crop.jpg" loading="lazy" class="lazyloaded" alt="'Asterix &amp; Obelix: The Middle Kingdom'"></div><div class="captionBlock"><span class="title">European blockbusters are an “endangered species” says European Audiovisual Observatory report</span></div></a></li></ul></div></div></li><li data-navcode="27" data-rootnavcode="27" class="current hasChildren twoSubNav"><a href="https://www.screendaily.com/reviews"><span>Reviews</span></a><div class="dropdown"><div class="inner-sleeve"><ul><li class="subnav"><ul><li data-navcode="5774" data-rootnavcode="27" class=""><span>Territories</span><ul><li data-navcode="46" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/territories/uk-and-ireland"><span>UK & Ireland</span></a></li><li data-navcode="5775" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/territories/north-america"><span>North America</span></a></li><li data-navcode="284" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/territories/europe"><span>Europe </span></a></li><li data-navcode="48" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/territories/asia-pacific"><span>Asia Pacific</span></a></li><li data-navcode="47" data-rootnavcode="27" class="break"><a href="https://www.screendaily.com/reviews/territories/middle-east-and-africa"><span>Middle East & Africa</span></a></li></ul></li></ul></li><li class="subnav"><ul><li data-navcode="5777" data-rootnavcode="27" class=""><span>Festivals</span><ul><li data-navcode="5778" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/festivals/cannes"><span>Cannes</span></a></li><li data-navcode="5779" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/festivals/berlin"><span>Berlin</span></a></li><li data-navcode="5780" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/festivals/sundance"><span>Sundance</span></a></li><li data-navcode="5781" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/festivals/toronto"><span>Toronto</span></a></li><li data-navcode="5782" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/festivals/venice"><span>Venice</span></a></li><li data-navcode="5817" data-rootnavcode="27" class=""><a href="https://www.screendaily.com/reviews/festivals/more"><span>More</span></a></li></ul></li></ul></li><li class="promotedStory"><a href="/reviews/spellbound-review/5199163.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/6/5/7/1436657_spellbound_561145.jpg" loading="lazy" class="lazyloaded" alt="Spellbound"></div><div class="captionBlock"><span class="title">‘Spellbound’: Review</span></div></a></li><li class="promotedStory"><a href="/reviews/johatsu-tallinn-review/5199293.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/0/2/1/1437021_johatsu_201664.jpg" loading="lazy" class="lazyloaded" alt="Johatsu"></div><div class="captionBlock"><span class="title">‘Johatsu’: Tallinn Review</span></div></a></li></ul></div></div></li><li data-navcode="5275" data-rootnavcode="5275" class="hasChildren oneSubNav"><a href="https://www.screendaily.com/features"><span>Features</span></a><div class="dropdown"><div class="inner-sleeve"><ul><li class="subnav"><ul><li data-navcode="703" data-rootnavcode="5275" class=""><a href="https://www.screendaily.com/features/interviews"><span>Interviews</span></a></li><li data-navcode="5274" data-rootnavcode="5275" class=""><a href="https://www.screendaily.com/features/comment"><span>Comment</span></a></li><li data-navcode="5950" data-rootnavcode="5275" class=""><a href="https://www.screendaily.com/features/future-leaders-2019-programmers-and-curators-to-watch/5139440.article"><span>Future Leaders</span></a></li><li data-navcode="5962" data-rootnavcode="5275" class=""><a href="https://www.screendaily.com/45926.more"><span>TV</span></a></li><li data-navcode="6027" data-rootnavcode="5275" class=""><a href="https://www.screendaily.com/my-screen-life/12258.subject"><span>My Screen Life</span></a></li></ul></li><li class="promotedStory"><a href="/features/how-idfas-doclab-is-pushing-the-boundaries-of-documentary-and-reality/5199219.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/7/9/5/1436795_casparsonnen_8076.jpg" loading="lazy" class="lazyloaded" alt="Caspar Sonnen"></div><div class="captionBlock"><span class="title">How IDFA’s DocLab is pushing the boundaries of documentary and reality</span></div></a></li><li class="promotedStory"><a href="/features/50-films-to-watch-this-awards-season/5198655.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/5/9/1/1435591_50films2024_854939.jpg" loading="lazy" class="lazyloaded" alt="50 films 2024"></div><div class="captionBlock"><span class="title">50 films to watch this awards season</span></div></a></li><li class="promotedStory"><a href="/comment/comment-the-academys-international-feature-category-is-struggling-to-keep-up-with-the-times/5198319.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/8/5/1/1434851_allweimagineaslight3_99668.jpeg" loading="lazy" class="lazyloaded" alt="All We Imagine As Light"></div><div class="captionBlock"><span class="title">Comment: The Academy’s international feature category is struggling to keep up with the times</span></div></a></li></ul></div></div></li><li data-navcode="29" data-rootnavcode="29" class="hasChildren threeSubNav"><a href="https://www.screendaily.com/festivals"><span>Festivals</span></a><div class="dropdown"><div class="inner-sleeve"><ul><li class="subnav"><ul><li data-navcode="5800" data-rootnavcode="29" class=""><span>Europe</span><ul><li data-navcode="5238" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/cannes"><span>Cannes</span></a></li><li data-navcode="5623" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/berlin"><span>Berlin</span></a></li><li data-navcode="5265" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/venice"><span>Venice</span></a></li><li data-navcode="5310" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/rotterdam"><span>Rotterdam</span></a></li><li data-navcode="5091" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/karlovy-vary"><span>Karlovy Vary</span></a></li><li data-navcode="358" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/locarno"><span>Locarno</span></a></li><li data-navcode="5974" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/cphdox"><span>CPH:DOX</span></a></li><li data-navcode="5260" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/sarajevo"><span>Sarajevo</span></a></li><li data-navcode="356" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/europe/san-sebastian"><span>San Sebastian</span></a></li><li data-navcode="5665" data-rootnavcode="29" class="break"><a href="https://www.screendaily.com/festivals/europe/tallinn"><span>Tallinn</span></a></li></ul></li></ul></li><li class="subnav"><ul><li data-navcode="5802" data-rootnavcode="29" class=""><span>North America</span><ul><li data-navcode="5272" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/north-america/toronto"><span>Toronto</span></a></li><li data-navcode="5282" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/north-america/afm"><span>AFM</span></a></li><li data-navcode="102" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/north-america/sundance"><span>Sundance</span></a></li><li data-navcode="931" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/north-america/sxsw"><span>SXSW</span></a></li><li data-navcode="152" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/north-america/tribeca"><span>Tribeca</span></a></li></ul></li><li data-navcode="5801" data-rootnavcode="29" class=""><span>UK</span><ul><li data-navcode="5458" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/uk/london"><span>London</span></a></li><li data-navcode="5905" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/uk/glasgow"><span>Glasgow</span></a></li><li data-navcode="361" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/uk/edinburgh"><span>Edinburgh</span></a></li><li data-navcode="5678" data-rootnavcode="29" class="break"><a href="https://www.screendaily.com/festivals/uk/sheffield-doc/fest"><span>Sheffield Doc/Fest</span></a></li></ul></li></ul></li><li class="subnav"><ul><li data-navcode="5803" data-rootnavcode="29" class=""><span>Asia Pacific</span><ul><li data-navcode="5457" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/asia-pacific/busan"><span>Busan</span></a></li><li data-navcode="5653" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/asia-pacific/tokyo"><span>Tokyo</span></a></li><li data-navcode="5318" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/asia-pacific/filmart"><span>Filmart</span></a></li></ul></li><li data-navcode="5804" data-rootnavcode="29" class=""><span>MENA</span><ul><li data-navcode="6286" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/mena/cairo"><span>Cairo</span></a></li><li data-navcode="6284" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/festivals/mena/red-sea"><span>Red Sea</span></a></li><li data-navcode="6408" data-rootnavcode="29" class=""><a href="https://www.screendaily.com/marrakech/12836.subject"><span>Marrakech</span></a></li></ul></li></ul></li><li class="promotedStory"><a href="/news/migration-stories-head-industrytallinn-and-baltic-event-2024-winners/5199417.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/2/7/9/1437279_54158981973_2641c65e89_k_51797_crop.jpg" loading="lazy" class="lazyloaded" alt="54158981973_2641c65e89_k"></div><div class="captionBlock"><span class="title">Migration stories head Industry@Tallinn & Baltic Event 2024 winners</span></div></a></li></ul></div></div></li><li data-navcode="5223" data-rootnavcode="5223" class="hasChildren oneSubNav"><a href="https://www.screendaily.com/box-office"><span>Box Office</span></a><div class="dropdown"><div class="inner-sleeve"><ul><li class="subnav"><ul><li data-navcode="5818" data-rootnavcode="5223" class=""><span>Box Office Reports</span><ul><li data-navcode="5224" data-rootnavcode="5223" class=""><a href="https://www.screendaily.com/box-office/box-office-reports/international"><span>International</span></a></li><li data-navcode="5229" data-rootnavcode="5223" class=""><a href="https://www.screendaily.com/box-office/box-office-reports/uk"><span>UK</span></a></li><li data-navcode="5228" data-rootnavcode="5223" class=""><a href="https://www.screendaily.com/box-office/box-office-reports/us"><span>US</span></a></li></ul></li><li data-navcode="5805" data-rootnavcode="5223" class=""><a href="https://www.screendaily.com/box-office/analysis"><span>Analysis</span></a></li></ul></li><li class="promotedStory"><a href="/news/uk-ireland-box-office-preview-wicked-aims-to-cast-its-spell-in-698-sites/5199404.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/2/4/6/1437246_wickeduniversalpictures_82261_crop.jpg" loading="lazy" class="lazyloaded" alt="Wicked Universal Pictures"></div><div class="captionBlock"><span class="title">UK-Ireland box office preview: ‘Wicked’ aims to cast its spell in 698 sites</span></div></a></li><li class="promotedStory"><a href="/news/gladiator-ii-muscles-up-88m-at-uk-ireland-box-office-for-ridley-scott-record-opening/5199253.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/9/0/6/1436906_gl2_11865r3_741930.jpg" loading="lazy" class="lazyloaded" alt="GL2_11865R3"></div><div class="captionBlock"><span class="title">‘Gladiator II’ muscles up £8.8m at UK-Ireland box office for Ridley Scott record opening</span></div></a></li><li class="promotedStory"><a href="/news/uk-ireland-box-office-preview-gladiator-ii-is-unleashed-at-722-sites/5199218.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/7/8/8/1436788_gladiatoriicparamountpictures_923117_crop.jpeg" loading="lazy" class="lazyloaded" alt="Gladiator II c Paramount Pictures"></div><div class="captionBlock"><span class="title">UK-Ireland box office preview: ‘Gladiator II’ is unleashed at 722 sites</span></div></a></li></ul></div></div></li><li data-navcode="5299" data-rootnavcode="5299" class="hasChildren oneSubNav"><a href="https://www.screendaily.com/awards"><span>Awards</span></a><div class="dropdown"><div class="inner-sleeve"><ul><li class="subnav"><ul><li data-navcode="5303" data-rootnavcode="5299" class=""><a href="https://www.screendaily.com/awards/oscars"><span>Oscars</span></a></li><li data-navcode="5304" data-rootnavcode="5299" class=""><a href="https://www.screendaily.com/awards/baftas"><span>Baftas</span></a></li><li data-navcode="5306" data-rootnavcode="5299" class=""><a href="https://www.screendaily.com/awards/golden-globes"><span>Golden Globes</span></a></li><li data-navcode="5808" data-rootnavcode="5299" class=""><a href="https://www.screendaily.com/awards/emmys"><span>Emmys</span></a></li><li data-navcode="5809" data-rootnavcode="5299" class=""><a href="https://www.screendaily.com/awards/bifas"><span>Bifas</span></a></li><li data-navcode="6222" data-rootnavcode="5299" class=""><a href="https://www.screendaily.com/european-film-awards/12593.subject"><span>European Film Awards</span></a></li></ul></li><li class="promotedStory"><a href="/news/migration-stories-head-industrytallinn-and-baltic-event-2024-winners/5199417.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/2/7/9/1437279_54158981973_2641c65e89_k_51797_crop.jpg" loading="lazy" class="lazyloaded" alt="54158981973_2641c65e89_k"></div><div class="captionBlock"><span class="title">Migration stories head Industry@Tallinn & Baltic Event 2024 winners</span></div></a></li><li class="promotedStory"><a href="/news/luna-carmoon-sean-wang-nava-mau-among-bafta-breakthrough-2024-line-up/5199339.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/0/7/3/1437073_baftabreakthrough2024_951812.jpg" loading="lazy" class="lazyloaded" alt="bafta breakthrough 2024"></div><div class="captionBlock"><span class="title">Luna Carmoon, Sean Wang, Nava Mau among Bafta Breakthrough 2024 line-up</span></div></a></li><li class="promotedStory"><a href="/news/conan-obrien-to-debut-as-host-for-2025-oscars/5199214.article" class="image"><div class="image"><img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/274x183/7/7/1/1436771_conanobriencreditteamcoco_738512_crop.jpg" loading="lazy" class="lazyloaded" alt="Conan O'Brien"></div><div class="captionBlock"><span class="title">Conan O’Brien to debut as host for 2025 Oscars</span></div></a></li></ul></div></div></li><li data-navcode="6348" data-rootnavcode="6348"><a href="https://www.screendaily.com/home/stars-of-tomorrow"><span>Stars of Tomorrow</span></a></li><li data-navcode="5845" data-rootnavcode="5845" class="hasChildren"><a href="https://www.screendaily.com/subscribe" class="newWindow"><span>Subscribe</span></a><div class="dropdown"><div class="inner-sleeve"><ul><li class="htmlBlock"><div><style type="text/css"> .desktopNavigation #subspromo {background:#fff; padding:20px;} .desktopNavigation #subspromo img {float:right; clear:right; display:block; margin-top:0px; width:450px;} .desktopNavigation #subspromo .subpromo {margin-bottom:20px; margin-left: 20px; padding-left: 0;} .desktopNavigation #subspromo .subpromo li { list-style:disc;} .desktopNavigation #subspromo p {margin-bottom:0} .desktopNavigation #subspromo .register {margin-top:22px;} @media only screen and (max-width: 1123px) { .desktopNavigation #subspromo img { max-width:200px; } } </style> <div id="subspromo" style="overflow:hidden;"> <img src="https://d1nslcd7m2225b.cloudfront.net/Pictures/450xAny/P/web/j/b/m/2021screenpackshot_967117.jpg" alt="screen packshot resized" /> <h3 id="">Subscribe to Screen International</h3> <ul class="subpromo"> <li>Monthly print editions</li> <li>Awards season weeklies</li> <li>Stars of Tomorrow and exclusive supplements</li> <li>Over 16 years of archived content</li> </ul> <a class="button" target="_blank" href="https://subs.screendaily.com/subscriptions">Subscribe Now</a> </div></div></li></ul></div></div></li><li class="more hide"><a href="#mobilemenu" data-menu-toggle-button="" aria-expanded="false"><span> More from<span class="assistive"> navigation items</span></span></a></li></ul></div></div><div class="desktopNavigationSpace"></div> </div> </header> <div class="ad leaderboard billboard showMenuPushed"> <!-- /21612928716/Screen/billboard --> <div class="mob-ad-75 tab-ad-250 dt-ad-250"> <div id='div-gpt-billboard'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-billboard'); }); </script> </div> </div> </div> <div id="wrapper_sleeve" data-menu-open-pushed> <div class="storyLayout standard"></div> <div class="headerWrapper"> <div class="container titleByline"> <div class="inner-sleeve"> <div class="storyPrimaryNav"><a href="https://www.screendaily.com/reviews">Reviews</a></div> <div class="story_title"> <h1>‘Johatsu’: Tallinn Review</h1> </div> <p class="byline meta">By <span class="author"><a href="https://www.screendaily.com/wendy-ide/1100977.bio" rel="author">Wendy Ide</a></span><span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2024-11-21T19:48:00&quot;,&quot;format&quot;: &quot;D MMMM YYYY&quot;}">2024-11-21T19:48:00+00:00</span></p> </div> </div> </div> <div id="columns" class="container"> <div id="colwrapper" class="inner-sleeve"> <div id="colmain" role="main" class="restrictedcontent"> <div id="content"> <div id="content_sleeve"> <div class="contentWrapper"> <div class="storyContentWrapper"> <div class="pageOptions"> <ul> <!--facebook--> <li> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3a%2f%2fwww.screendaily.com%2freviews%2fjohatsu-tallinn-review%2f5199293.article&e=%e2%80%98Johatsu%e2%80%99%3a+Tallinn+Review" class="facebook" title="Share this on Facebook" target="_blank"></a> </li> <!-- twitter--> <li> <a href="https://twitter.com/intent/tweet?text=%e2%80%98Johatsu%e2%80%99%3a+Tallinn+Review&url=https%3a%2f%2fwww.screendaily.com%2freviews%2fjohatsu-tallinn-review%2f5199293.article" class="twitter" title="Share this on Twitter" target="_blank"></a> </li> <!--linked in--> <li> <a href="https://www.linkedin.com/cws/share?url=https%3a%2f%2fwww.screendaily.com%2freviews%2fjohatsu-tallinn-review%2f5199293.article" class="linkedin" title="Share this on Linked in" target="_blank"></a> </li> <li><a href="mailto:?subject=%E2%80%98Johatsu%E2%80%99: Tallinn Review&amp;body=https://www.screendaily.com/reviews/johatsu-tallinn-review/5199293.article" class="email" title="Email this article"></a></li> </ul> <ul class="pageOptions_right"> <li class=" last" aria-live="polite" data-cache-bust="true" data-ajax-load-content="" data-url="/5199293/bookmark"> </li> </ul> </div> <div class="articleWrapper"> <div class="articleContent"> <div class="standfirst"><p>Chilly&nbsp;Lithuanian drama sees a morgue worker consumed by the case of a missing man&nbsp;</p></div><div class="storytext"><div class="inline_image image_size_full" data-attachment="1437021" data-sequence="1"> <p class="picture"><img alt="Johatsu" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/480xany/0/2/1/1437021_johatsu_201664.jpg" sizes="(max-width: 1023px) 100vw, 780px" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/480xany/0/2/1/1437021_johatsu_201664.jpg 480w,https://d1nslcd7m2225b.cloudfront.net/Pictures/600xany/0/2/1/1437021_johatsu_201664.jpg 600w,https://d1nslcd7m2225b.cloudfront.net/Pictures/780xany/0/2/1/1437021_johatsu_201664.jpg 780w" loading="eager" class="lazyloaded" width="1200" height="800"></p> <div class="inline_meta"><p class="inline_source"><cite>Source: Tallinn Black Nights</cite></p><p class="inline_caption">‘Johatsu’</p></div></div> <p><em>Dirs/scr: Lina Luzyte, Nerijus Milerius. Lithuania. 2024. 83mins</em></p> <p>Vilnius-based morgue worker Lina (Zygimante Elena Jakstaite) knows immediately that Regina (Rasa Samuolyte) is lying when she identifies a corpse as her missing husband Saulius Vilkas. But Lina can’t fully explain the fascination the case holds for her. As she tumbles further down the rabbit hole, it becomes clear that she is not the only person looking for the missing man, who vanished in Vilnius three years previously – although the reasons for his disappearance and his pursuit by various shady figures remain frustratingly opaque throughout this stylish but enigmatic film.</p> <blockquote> <p>Not the kind of film that’s in the business of providing neat answers</p> </blockquote> <p>The title – which translates as “the evaporated” – is taken from the Japanese phenomenon of deliberate disappearance, which is also the subject of a recent documentary,&nbsp;<em>Johatsu: Into Thin Air</em>, by Andreas Hartman and Arata Mori. But, apart from the title, a small book of haiku verses found in the belongings of the missing man is the only tangible link between this very Baltic story and Japan. The film, which was co-directed by Lina Lužytė (<em>Together Forever, The Castle</em>) and Nerijus Milerius (the DOK Leipzig winner <em>Exemplary Behaviour</em>), premieres in Tallinn’s Critics’ Picks competition strand. It’s a distinctive and atmospheric work, although one that might prove too cryptic to venture far beyond the festival circuit.</p> <p>The film starts and ends particularly strongly, with the oppressive, institutional atmosphere of Lina’s workplace complimented by a thoroughly unsettling musical motif by electronic composer Antanas Jasenka. (Music and the use of sound is first-rate throughout the film.) But a third act that trades the alienating psychological thriller approach for the more conventional beats of a crime thriller is less successful. It feels like a screenplay that either ran out of ideas or stumbled over the courage of its convictions; the decision to pad the story with scenes of mafioso menace seems jarringly basic next to the skin-tingling sense of unease and existential dread that the picture cultivates elsewhere.</p> <p>Central to the unnerving atmosphere of the film is Jakstaite’s intriguing central performance. Lina is an inscrutable, slightly odd character and Jakstaite’s unreadable gaze gives little away. And yet she reveals enough for us to get a sense of a woman who has learned to function in society, but for whom society frequently feels like an alien place. Her choice of workplace, among the dead, is one clue. Another is the way she is unable to divert attention and diffuse the situation when a policeman asks why she is parked outside an apartment block, staring at the unwitting families. “I’m just … watching.” she says. You can practically see the cop’s alarm bells sounding.</p> <p>Lina’s quest to find the vanished man brings her into contact with a whole circle of fellow misfits. The hearse driver who delivered the body is frazzled and paranoid (with good reason, it turns out), but he does let her sleep in his hearse when she finds herself without shelter for the night. And an encounter with her contemporary at the morgue of the Lithuanian port city of Klaipeda, where the body was first delivered, reveals more about his miserable marriage and drinking habits than it does about the elusive Vilkas.</p> <p>The questions – about the fate of Vilkas, about what prompted him to disappear in the first place, about Lina’s gradual disengagement from her own life – stack up. And this is not the kind of film that’s in the business of providing neat answers. Ultimately, however, it becomes clear that what Lina was searching for was never an answer to the mystery, but an exit from the unsatisfactory banality of her own life.&nbsp;</p> <div class="factfile"> <p>Production company: Studio Locomotive</p> <p>International sales: Alief&nbsp;<a id="LPlnk147173" title="mailto:info@alief.co.uk" href="mailto:info@alief.co.uk" data-linkindex="0" data-ogsc="">info@alief.co.uk</a></p> <p>Producer: Uljana Kim</p> <p>Cinematography: Vytautas Katkus</p> <p>Production design: Ieva Rojute</p> <p>Editing: Andris Grants</p> <p>Music: Antanas Jasenka</p> <p>Main cast: Zygimante Elena Jakstaite, Laurynas Jurgelis, Valentinas Krulikovskis, Rasa Samuolyte, Dainius Gavenonis, Mindaugas Papinigis, Aleksas Kazanavicius, Martynas Nedzinskas, Valentin Novopolskij</p> <p>&nbsp;</p> </div></div><div id="storytext-end" class="storytext-end"></div> </div> </div> <div class="htmlContent"> </div> </div> <div class="topics"><div class="sleeve"><span class="topicsLabel"></span><h2>Topics</h2><ul class="topicsList"><li><a href="/europe/72.subject">Europe</a></li><li><a href="/festivals/9.subject">Festivals</a></li><li><a href="/lithuania/11820.subject">Lithuania</a></li><li><a href="/reviews/11068.subject">Reviews</a></li><li><a href="/tallinn-black-nights/11814.subject">Tallinn Black Nights</a></li></ul></div></div> <div class="pageOptions"> <ul> <!--facebook--> <li> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3a%2f%2fwww.screendaily.com%2freviews%2fjohatsu-tallinn-review%2f5199293.article&e=%e2%80%98Johatsu%e2%80%99%3a+Tallinn+Review" class="facebook" title="Share this on Facebook" target="_blank"></a> </li> <!-- twitter--> <li> <a href="https://twitter.com/intent/tweet?text=%e2%80%98Johatsu%e2%80%99%3a+Tallinn+Review&url=https%3a%2f%2fwww.screendaily.com%2freviews%2fjohatsu-tallinn-review%2f5199293.article" class="twitter" title="Share this on Twitter" target="_blank"></a> </li> <!--linked in--> <li> <a href="https://www.linkedin.com/cws/share?url=https%3a%2f%2fwww.screendaily.com%2freviews%2fjohatsu-tallinn-review%2f5199293.article" class="linkedin" title="Share this on Linked in" target="_blank"></a> </li> <li><a href="mailto:?subject=%E2%80%98Johatsu%E2%80%99: Tallinn Review&amp;body=https://www.screendaily.com/reviews/johatsu-tallinn-review/5199293.article" class="email" title="Email this article"></a></li> </ul> <ul class="pageOptions_right"> <li class=" last" aria-live="polite" data-cache-bust="true" data-ajax-load-content="" data-url="/5199293/bookmark"> </li> </ul> </div> </div> </div> </div> </div> <div id="rightcolumn" class="fixedrightcolumn rightcolumn restrictedcontent"> <div id="rightcolumn_sleeve"> <!-- BELOW NOT SUPPORT Instructions for implementation depending on right or bottom. If this in the bottom position then we might need to wrap the code with ` <div class="container"> <div class="inner-sleeve"> // taxanomy-list to go here </div> </div> ` --> <div data-mpu1-reflow></div> <div id="rhcreflow-tabletlandscape"></div> <div id="rhcreflow-desktop" class="rhc-mostpopular-desktop"> </div> <div id="rhcreflow-extra"></div> <div id="rhcreflow-extra-end" class="rhcreflow-extra-end"></div> </div> </div> </div> </div> <div class="container bottomAdContainer restrictedcontent"> <div class="inner-sleeve"> <div class="bottomAd"> <div style="margin-left:auto; margin-right:auto; text-align:center;padding-bottom:20px"> <div class="sleeve"> <!-- /21612928716/Screen/billboard --> <div id='div-gpt-sectiondivide-one'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-sectiondivide-one'); }); </script> </div> </div> </div> </div> </div> </div> <div class="container relatedVideos restrictedcontent"> <div class="inner-sleeve"> <div id="videosreflow-tabletportrait"></div> <div id="videosreflow-mobile"></div> </div> </div> <div class="container relatedArticles" id="relatedArticles"> <div class="inner-sleeve"> <div class="extras relatedarticles restrictedcontent"> <div class="relatedarticles_sleeve"> <div class="extras_heading"> <h3>Related articles</h3> </div> <div class="extrasStory listBlocks"> <div class="contentWrapper loadMoreItems" data-load-more-ajax=""> <ul data-load-more-context=""> <li class=""> <a href="https://www.screendaily.com/news/migration-stories-head-industrytallinn-and-baltic-event-2024-winners/5199417.article" class="image"> <img alt="54158981973_2641c65e89_k" loading="lazy" sizes="(max-width:767px) 100px, (max-width: 1179px) 220px, 280px" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/2/7/9/1437279_54158981973_2641c65e89_k_51797_crop.jpg" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/2/7/9/1437279_54158981973_2641c65e89_k_51797_crop.jpg 100w,https://d1nslcd7m2225b.cloudfront.net/Pictures/172x115/2/7/9/1437279_54158981973_2641c65e89_k_51797_crop.jpg 172w,https://d1nslcd7m2225b.cloudfront.net/Pictures/220x148/2/7/9/1437279_54158981973_2641c65e89_k_51797_crop.jpg 220w,https://d1nslcd7m2225b.cloudfront.net/Pictures/280x188/2/7/9/1437279_54158981973_2641c65e89_k_51797_crop.jpg 280w" width="100" height="67" class="lazyloaded" /> </a> <div class="storyDetails"> <a href="https://www.screendaily.com/news/1.type" class="storyType">News</a> <h3> <a href="https://www.screendaily.com/news/migration-stories-head-industrytallinn-and-baltic-event-2024-winners/5199417.article">Migration stories head Industry@Tallinn & Baltic Event 2024 winners</a> </h3> <p class="meta"> <span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2024-11-23T09:56:00Z&quot;,&quot;format&quot;: &quot;D MMMM YYYY HH:mm&quot;}">2024-11-23T09:56:00Z</span> <span class="author">By <a rel="author" href="https://www.screendaily.com/ben-dalton/1101321.bio">Ben Dalton</a></span> </p> <p>17 awards distributed to film projects at various development &amp; production stages.</p> </div> </li> <li class=""> <a href="https://www.screendaily.com/news/2024-film-festivals-and-markets-calendar-latest-dates/5188083.article" class="image"> <img alt="film fests 2024" loading="lazy" sizes="(max-width:767px) 100px, (max-width: 1179px) 220px, 280px" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/1/1/6/1411116_filmfests2024_697048.jpg" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/1/1/6/1411116_filmfests2024_697048.jpg 100w,https://d1nslcd7m2225b.cloudfront.net/Pictures/172x115/1/1/6/1411116_filmfests2024_697048.jpg 172w,https://d1nslcd7m2225b.cloudfront.net/Pictures/220x148/1/1/6/1411116_filmfests2024_697048.jpg 220w,https://d1nslcd7m2225b.cloudfront.net/Pictures/280x188/1/1/6/1411116_filmfests2024_697048.jpg 280w" width="100" height="67" class="lazyloaded" /> </a> <div class="storyDetails"> <a href="https://www.screendaily.com/news/1.type" class="storyType">News</a> <h3> <a href="https://www.screendaily.com/news/2024-film-festivals-and-markets-calendar-latest-dates/5188083.article">2024 film festivals and markets calendar: latest dates</a> </h3> <p class="meta"> <span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2024-11-22T22:22:00Z&quot;,&quot;format&quot;: &quot;D MMMM YYYY HH:mm&quot;}">2024-11-22T22:22:00Z</span> <span class="author">By <a rel="author" href="https://www.screendaily.com/ben-dalton/1101321.bio">Ben Dalton</a></span> </p> <p>Bookmark this page to keep track of all the latest festival dates.</p> </div> </li> <li class=""> <a href="https://www.screendaily.com/news/romanian-tragicomedy-the-new-year-that-never-came-scoops-best-film-at-cairo-film-festival/5199414.article" class="image"> <img alt="The New Year That Never Came" loading="lazy" sizes="(max-width:767px) 100px, (max-width: 1179px) 220px, 280px" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/2/7/6/1437276_thenewyearthatnevercame_604767.jpeg" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/2/7/6/1437276_thenewyearthatnevercame_604767.jpeg 100w,https://d1nslcd7m2225b.cloudfront.net/Pictures/172x115/2/7/6/1437276_thenewyearthatnevercame_604767.jpeg 172w,https://d1nslcd7m2225b.cloudfront.net/Pictures/220x148/2/7/6/1437276_thenewyearthatnevercame_604767.jpeg 220w,https://d1nslcd7m2225b.cloudfront.net/Pictures/280x188/2/7/6/1437276_thenewyearthatnevercame_604767.jpeg 280w" width="100" height="67" class="lazyloaded" /> </a> <div class="storyDetails"> <a href="https://www.screendaily.com/news/1.type" class="storyType">News</a> <h3> <a href="https://www.screendaily.com/news/romanian-tragicomedy-the-new-year-that-never-came-scoops-best-film-at-cairo-film-festival/5199414.article">Romanian tragicomedy ‘The New Year That Never Came’ scoops best film at Cairo film festival</a> </h3> <p class="meta"> <span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2024-11-22T20:41:00Z&quot;,&quot;format&quot;: &quot;D MMMM YYYY HH:mm&quot;}">2024-11-22T20:41:00Z</span> <span class="author">By <a rel="author" href="https://www.screendaily.com/michael-rosser/1100453.bio">Michael Rosser</a></span> </p> <p>Further winners included ‘Postmarks’, ‘Malu’ and ‘Spring Came On Laughing’.</p> </div> </li> </ul> <div class="loadMoreButtonWrapper" data-load-more-button-wrapper=""> <button type="button" class="button" data-load-more-button="" data-items-offset="3" data-ajax-url="https://www.screendaily.com/5199293/loadmore?code=ARTICLES" data-items-to-load="8" data-loading-more-text="Loading more articles"> Load more articles </button> </div> </div> </div> <div class="fixedrightcolumn rightcolumn"> <div class="ad"> <!-- /21612928716/Screen/AdvertC --> <div id='div-gpt-AdvertC'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-AdvertC'); }); </script> </div> </div> <div class="newsletterSignup" data-ajax-load-content="" data-ajax-async="true" data-cache-bust="true" data-url="/newslettersignup?wid=4&amp;navcode=5747"> <header><![CDATA[Newsletters for you]]></header> <intro><![CDATA[Click to add new email alerts]]></intro> <newsletter><![CDATA[UKEURODAILYFESTDAILIES]]></newsletter> <newsletter><![CDATA[USDAILY]]></newsletter> <newsletter><![CDATA[BREAKINGNEWS]]></newsletter> <newsletter><![CDATA[AWARDSCOUNTDOWN]]></newsletter> <newsletter><![CDATA[ASIAPACIFICWEEKLY]]></newsletter> <senttotext><![CDATA[Sent to:]]></senttotext> <editlinktext><![CDATA[Add now]]></editlinktext> </div> </div> </div> </div> </div> </div> <div class="container commentContainer restrictedcontent"> <div class="inner-sleeve"> <div class=" extras"> <div class="extrasStory"> <div class="contentWrapper"></div> </div></div> </div> </div> <div class="container relatedArticles" id="moreArticles"> <div class="inner-sleeve"> <div class="extras relatedarticles restrictedcontent"> <div class="relatedarticles_sleeve"> <div class="extras_heading"> <h3>More from Reviews</h3> </div> <div class="extrasStory listBlocks"> <div class="contentWrapper loadMoreItems" data-load-more-ajax=""> <ul data-load-more-context=""> <li class=""> <a href="https://www.screendaily.com/reviews/trains-idfa-review/5199384.article" class="image"> <img alt="Trains" loading="lazy" sizes="(max-width:767px) 100px, (max-width: 1179px) 220px, 280px" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/1/9/4/1437194_trains_447450_crop.jpg" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/1/9/4/1437194_trains_447450_crop.jpg 100w,https://d1nslcd7m2225b.cloudfront.net/Pictures/172x115/1/9/4/1437194_trains_447450_crop.jpg 172w,https://d1nslcd7m2225b.cloudfront.net/Pictures/220x148/1/9/4/1437194_trains_447450_crop.jpg 220w,https://d1nslcd7m2225b.cloudfront.net/Pictures/280x188/1/9/4/1437194_trains_447450_crop.jpg 280w" width="100" height="67" class="lazyloaded" /> </a> <div class="storyDetails"> <a href="https://www.screendaily.com/reviews/2.type" class="storyType">Reviews</a> <h3> <a href="https://www.screendaily.com/reviews/trains-idfa-review/5199384.article">‘Trains’: IDFA Review</a> </h3> <p class="meta"> <span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2024-11-22T09:43:00Z&quot;,&quot;format&quot;: &quot;D MMMM YYYY HH:mm&quot;}">2024-11-22T09:43:00Z</span> <span class="author">By <a rel="author" href="https://www.screendaily.com/lee-marshall/244.bio">Lee Marshall</a></span> </p> <p>IDFA top prize-winner is a timeless train trip through black-and-white archive footage</p> </div> </li> <li class=""> <a href="https://www.screendaily.com/reviews/spellbound-review/5199163.article" class="image"> <img alt="Spellbound" loading="lazy" sizes="(max-width:767px) 100px, (max-width: 1179px) 220px, 280px" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/6/5/7/1436657_spellbound_561145.jpg" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/6/5/7/1436657_spellbound_561145.jpg 100w,https://d1nslcd7m2225b.cloudfront.net/Pictures/172x115/6/5/7/1436657_spellbound_561145.jpg 172w,https://d1nslcd7m2225b.cloudfront.net/Pictures/220x148/6/5/7/1436657_spellbound_561145.jpg 220w,https://d1nslcd7m2225b.cloudfront.net/Pictures/280x188/6/5/7/1436657_spellbound_561145.jpg 280w" width="100" height="67" class="lazyloaded" /> </a> <div class="storyDetails"> <a href="https://www.screendaily.com/reviews/2.type" class="storyType">Reviews</a> <h3> <a href="https://www.screendaily.com/reviews/spellbound-review/5199163.article">‘Spellbound’: Review</a> </h3> <p class="meta"> <span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2024-11-22T08:01:00Z&quot;,&quot;format&quot;: &quot;D MMMM YYYY HH:mm&quot;}">2024-11-22T08:01:00Z</span> <span class="author">By <a rel="author" href="https://www.screendaily.com/tim-grierson-senior-us-critic/1100130.bio">Tim Grierson Senior US Critic</a></span> </p> <p>Rachel Zegler, Nicole Kidman and Javier Bardem lend their voices to Netflix’s family animation</p> </div> </li> <li class=""> <a href="https://www.screendaily.com/reviews/pink-lady-tallinn-review/5199365.article" class="image"> <img alt="Pink Lady" loading="lazy" sizes="(max-width:767px) 100px, (max-width: 1179px) 220px, 280px" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/1/1/9/1437119_pinklady_291470.jpeg" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/1/1/9/1437119_pinklady_291470.jpeg 100w,https://d1nslcd7m2225b.cloudfront.net/Pictures/172x115/1/1/9/1437119_pinklady_291470.jpeg 172w,https://d1nslcd7m2225b.cloudfront.net/Pictures/220x148/1/1/9/1437119_pinklady_291470.jpeg 220w,https://d1nslcd7m2225b.cloudfront.net/Pictures/280x188/1/1/9/1437119_pinklady_291470.jpeg 280w" width="100" height="67" class="lazyloaded" /> </a> <div class="storyDetails"> <a href="https://www.screendaily.com/reviews/2.type" class="storyType">Reviews</a> <h3> <a href="https://www.screendaily.com/reviews/pink-lady-tallinn-review/5199365.article">‘Pink Lady’: Tallinn Review</a> </h3> <p class="meta"> <span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2024-11-21T17:44:00Z&quot;,&quot;format&quot;: &quot;D MMMM YYYY HH:mm&quot;}">2024-11-21T17:44:00Z</span> <span class="author">By <a rel="author" href="https://www.screendaily.com/wendy-ide/1100977.bio">Wendy Ide</a></span> </p> <p>Sensitive portrait of a marriage under strain in Jerusalem’s Hasidic Jewish community</p> </div> </li> </ul> <div class="loadMoreButtonWrapper" data-load-more-button-wrapper=""> <button type="button" class="button" data-load-more-button="" data-items-offset="3" data-ajax-url="https://www.screendaily.com/5199293/loadmore?code=MORE" data-items-to-load="8" data-loading-more-text="Loading more articles"> Load more articles </button> </div> </div> </div> <div class="fixedrightcolumn rightcolumn"> <div class="ad"> <!-- /21612928716/Screen/AdvertE --> <div id='div-gpt-AdvertE'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-AdvertE'); }); </script> </div> </div> </div> </div> </div> </div> </div> <div class="container"><div class="inner-sleeve"><div id="rhcreflow-tabletportrait"></div><div id="rhcreflow-mobile"></div></div></div><div id="mobile-drop-zone"></div> <div class="container storyBottomMostPopularContainer"> <div class="inner-sleeve"> <div class="extrasStory"> <div class="contentWrapper"> <div class="tab-widget-10" data-ajax-load-content="" data-url="/ajax/most?bottom=1&storypage=1"></div> </div> </div> <div class="fixedrightcolumn rightcolumn"> </div> </div> </div> <div class="footer_ad"> <div class="footer_ad_strip"> <div class="ad"> </div> </div> </div> <div id="footer" class="footer" role="contentinfo"> <div class="container footerTopNavPageText"> <div class="inner-sleeve"> <div class="nav topNav"><ul><li class="first"><a href="https://www.screendaily.com/advertise-with-screen">Advertise with Screen</a></li><li class=""><a href="https://www.screendaily.com/contact-us">Contact us</a></li><li class=""><a href="https://www.screendaily.com/az-subjects">A - Z of Subjects</a></li><li class="last"><a href="https://www.screendaily.com/46017.more">Digital Editions</a></li></ul></div><div class="footerSocial"> <ul> <li class="footerSocialFacebook"> <a href="https://www.facebook.com/ScreenDaily/">Connect with us on Facebook</a> </li> <li class="footerSocialTwitter"> <a href="https://twitter.com/screendaily">Connect with us on Twitter</a> </li> <li class="footerSocialLinkedin"> <a href="https://www.linkedin.com/company/2298039">Connect with us on Linked in</a> </li><li class="footerSocialYoutube"> <a href="https://www.youtube.com/channel/UCKV7nCATTd4LFbD93ScBUoA">Connect with us on YouTube</a> </li> <li class="footerSocialInstagram"> <a href="https://www.instagram.com/screendaily/?hl=en">Connect with us on Instagram></a> </li> </ul> </div> <!-- /21612928716/Screen/btm-bb --> <!--<div style="width: 970px; height:250px; margin-left:auto; margin-right:auto; text-align:center; padding-top:10px; margin-bottom:20px"> <div class="sleeve"> <div id='div-gpt-ad-bottom-billboard' style='min-width: 970px; min-height: 250px;'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-bottom-billboard'); }); </script> </div> </div> </div>--> <div style="clear:both"></div> <div class="footerPromo"> <div> <h3>Subscribe to Screen International</h3> <p>Screen International is the essential resource for the international film industry. Subscribe now for monthly editions, awards season weeklies, access to the Screen International archive and supplements including Stars of Tomorrow and World of Locations.</p> <a href="https://subs.screendaily.com/subscriptions" class="button" target="_blank" id="footer_promo_subscribe_find_more">Find out more</a> </div> <div> <h3>Events</h3> <ul> <li><a href="http://screenawards.co.uk/" rel="nofollow" target="_blank">Screen Awards</a></li> <li><a href="https://www.mediaproductionshow.com/?utm_source=Screen&utm_medium=website&utm_campaign=Awareness" rel="nofollow" target="_blank">Media Production &amp; Technology Show</a></li> </ul> </div> </div> </div> </div> <div class="container bottomNav"><div class="inner-sleeve"><ul><li class="first"><a href="http://www.mb-insight.com/mbi-website-terms-of-use/">Terms and conditions</a></li><li><a href="http://www.globaldata.com/privacy-policy">Privacy & Cookie Policy</a></li><li class="label"><a href="http://www.mb-insight.com/">Copyright © 2023 Media Business Insight Limited</a></li><li class="last"><a href="https://www.screendaily.com/subscription-faqs">Subscription FAQs</a></li></ul></div></div> <div class="bottom"> <div class="container footerBottomNavPageText"> <div class="inner-sleeve"> <p class="webvision">Site powered by <a href="https://www.abacusemedia.com/webvisioncloud">Webvision Cloud</a></p> </div> </div> </div> </div> </div> </div> <script src="/Magazine/core.js?p=7513768137537033" defer></script> <!-- REMOVE CLASS OF `popup` TO FORGOTTEN PASSWORD IN POPUP --> <script> $(window).on('abacus:popuploaded', function() { $('.abacusPopup .forgottenpassword a').removeClass('popup'); }); </script> <!-- AD Renewals Script - Start --> <script type="text/javascript"> (function(d, s) { var config = { baseUrl:'account.screendaily.com', partyId: 0 }; var cacheDate = new Date(); cacheDate.setHours(0,0,0,0); var _abacus_ = d.createElement('script'); _abacus_.type = 'text/javascript'; _abacus_.async = true; _abacus_.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + config.baseUrl + '/templatejs?partyId=' + config.partyId + '&cacheDate=' + cacheDate.getTime(); var sc = d.getElementsByTagName(s)[0]; sc.parentNode.insertBefore(_abacus_, sc); })(document, 'script'); </script> <!-- AD Renewals Script - End --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10