CINXE.COM

‘Alam’: Cairo 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/4/6/6/1384466_alam_210928.jpg" imagesrcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/480xany/4/6/6/1384466_alam_210928.jpg 480w,https://d1nslcd7m2225b.cloudfront.net/Pictures/600xany/4/6/6/1384466_alam_210928.jpg 600w,https://d1nslcd7m2225b.cloudfront.net/Pictures/780xany/4/6/6/1384466_alam_210928.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>‘Alam’: Cairo Review | Reviews | Screen</title> <meta name="description" content="A Palestinian-Israeli teenager struggles to shake off the weight of history in Firas Khoury’s feature debut" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="momentnowdate" content="2024-11-23 23:04:04.019"/> <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="Fri, 18 Nov 2022 09:00 GMT" /> <link rel="canonical" href="https://www.screendaily.com/reviews/alam-cairo-review/5176541.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="‘Alam’: Cairo Review" /> <meta property="og:type" content="Article" /> <meta property="og:url" content="https://www.screendaily.com/reviews/alam-cairo-review/5176541.article" /> <meta property="og:site_name" content="Screen" /> <meta property="og:description" content="A Palestinian-Israeli teenager struggles to shake off the weight of history in Firas Khoury's feature debut" /> <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/4/6/6/1384466_alam_210928.jpg" /> <meta property="og:image:alt" content="Alam" /> <meta property="twitter:card" content="summary_large_image" /> <meta property="twitter:title" content="‘Alam’: Cairo Review" /> <meta property="twitter:description" content="A Palestinian-Israeli teenager struggles to shake off the weight of history in Firas Khoury's feature debut" /> <meta property="twitter:image:src" content="https://d1nslcd7m2225b.cloudfront.net/Pictures/1120xAny/4/6/6/1384466_alam_210928.jpg" /> <meta property="twitter:image:alt" content="Alam" /> <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':'5176541'}); window.dataLayer.push({'StoryFormatProperty':'N'}); window.dataLayer.push({'StoryCategories':'|Festivals|Reviews|Tunisia|Reviews|Palestine|Saudi Arabia|Reviews homepage|Cairo|'}); 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|11068|11714|11895|12459|12609|12632|12650|'}); 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':'|Fionnuala Halligan|'}); 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>‘Alam’: Cairo Review</h1> </div> <p class="byline meta">By <span class="author"><a href="https://www.screendaily.com/fionnuala-halligan/172.bio" rel="author">Fionnuala Halligan</a></span><span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2022-11-18T09:00:00&quot;,&quot;format&quot;: &quot;D MMMM YYYY&quot;}">2022-11-18T09:00: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%2falam-cairo-review%2f5176541.article&e=%e2%80%98Alam%e2%80%99%3a+Cairo+Review" class="facebook" title="Share this on Facebook" target="_blank"></a> </li> <!-- twitter--> <li> <a href="https://twitter.com/intent/tweet?text=%e2%80%98Alam%e2%80%99%3a+Cairo+Review&url=https%3a%2f%2fwww.screendaily.com%2freviews%2falam-cairo-review%2f5176541.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%2falam-cairo-review%2f5176541.article" class="linkedin" title="Share this on Linked in" target="_blank"></a> </li> <li><a href="mailto:?subject=%E2%80%98Alam%E2%80%99: Cairo Review&amp;body=https://www.screendaily.com/reviews/alam-cairo-review/5176541.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="/5176541/bookmark"> </li> </ul> </div> <div class="articleWrapper"> <div class="articleContent"> <div class="standfirst"><p>A Palestinian-Israeli teenager struggles to shake off the weight of history in Firas Khoury’s feature debut</p></div><div class="storytext"><div class="inline_image image_size_full" data-attachment="1384466" data-sequence="1"> <p class="picture"><img alt="Alam" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/480xany/4/6/6/1384466_alam_210928.jpg" sizes="(max-width: 1023px) 100vw, 780px" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/480xany/4/6/6/1384466_alam_210928.jpg 480w,https://d1nslcd7m2225b.cloudfront.net/Pictures/600xany/4/6/6/1384466_alam_210928.jpg 600w,https://d1nslcd7m2225b.cloudfront.net/Pictures/780xany/4/6/6/1384466_alam_210928.jpg 780w" loading="eager" class="lazyloaded" width="1252" height="800"></p> <div class="inline_meta"><p class="inline_source"><cite>Source: Cairo International Film Festival</cite></p><p class="inline_caption">‘Alam’</p></div></div> <p><em>Dir/scr. Firas Khoury. Tunisia/Palestine/Saudi Arabia/Qatar. 2022. 109mins</em></p> <p>This directorial debut which looks at a new third generation of Palestinians livng in Israel is a fascinating take on a group of young people whose future is so constrained it almost compresses the screen. A coming-of-age drama which hews to the conventions,&nbsp;<em>Alam&nbsp;</em>nonetheless offers a fresh perspective. Swirling around flags which go up and down over an Arab high school, <em>Alam</em> follows apathetic teenager Salem (Mahmoud Bakri) who is tugged into the future which seems to have always been waiting for him. Candid, as opposed to overwrought, this is an always-interesting insight from an over-looked perspective which bowed at Toronto and now goes into play in the Middle East through Mad Solutions after its Cairo Film Festival premiere.</p> <blockquote> <p>Follows some clear conventions, but there’s enough that is still raw and urgent to make it stand out</p> </blockquote> <p>There’s a dusty authenticity to the story which serves&nbsp;<em>Alam</em>&nbsp;well, and should see it into further festival play too. Teenagers here behave as they mostly do — mooching around, parroting political slogans delivered by those who impress them, failing to hand in their homework, lying in bed aimlessly. They could be anywhere; or, at least, anywhere the national (Israeli) flag has to be put up on the school under cover of night, as it’s something the principal doesn’t want to be seen doing in public. Anywhere that a stupid teenage prank to impress a girl will result in the end of any kind of future beyond the throwing of stones at the well-armed enemy on disputed soil.</p> <p>Salem has a great deal of independence for a young man finishing up at school. He lives in a compound, separately to his family, in his grandfather’s old house, although he does drop by next door for breakfast. His uncle sits in the centre of the courtyard all day, and despite his pregnant mother’s fancy new home, it’s a broken-down world he inhabits. He’s a gold-star teenager in terms of his weed-smoking and surreptitious masturbating, but when a new girl arrives at school it rocks an already-shaky equilibrium within Salem.</p> <p>He’s not far from being expelled from school anyway due to constant low-lying transgressions, but Maysaa’s (Sereen Khass) revolutionary zeal – her brother is a martyr – can only lead to danger. Then again, in a school where a clearly-biased view of history is taught to the displaced, it’s hard to find the right line on which to walk; buses don’t turn up, but being late will still result in a sanction in a system which wants to make these teenagers forget any past in which they had agency.</p> <p>Salem’s father is desperate for his son to keep away from any sort of politics, but what he fails to convey is what other kind of life is to be carved out of here. Thus Salem is prey, really, to his own febrile instincts and whatever forces twist them. He’s also, the film suggests, part of a new generation which can’t forget the past despite the pressure coming from all sides, something that mounts as Israeli Independence Day approaches at the same time as Al-Nakba, which commemorates the 1948 displacements.</p> <p>To a certain extent,&nbsp;<em>Alam,</em>&nbsp;which marks Khoury’s feature debut after a well-regarded career in shorts (in particular,&nbsp;<em>Maradona’s Legs</em>) follows some clear conventions, but there’s enough that is still raw and urgent at the film’s soul to make it stand out. Bakri gives a strong performance and, even though it’s sometimes clear it’s his first leading role, he’s continuing the tradition of his family with skill and warmth. Most of the rest of the cast are non-professionals.</p> <p>Its long time in development – <em>Alam</em> received funding from Doha back in 2015, and has since been in the Cannes Atelier and Venice Gap financing markets since – probably illustrates the difficulty involved in financing and crewing such a feature, but it will have given Khoury time to work on further projects. It’s certainly clear we’ll be hearing more from him.</p> <div class="factfile"> <p>Production company: MPM Film, Paprika Films, Philistine Films</p> <p>International sales contact: MPM Premium sales@mpmpremium.com</p> <p>Producers: Marie Pierre Macia, Claire Gadea, Naomie Lagadec, Melik Kochbati, Ossama Bawardi</p> <p>Cinematography: Frida Marzouk</p> <p>Editing: Nadia Ben Rachid</p> <p>Music: Faraj Suleiman</p> <p>Main cast: Mahmoud Bakri, Sereen Khass, Saleh Bakri, Mohammad Karaki, Ahmad Zaghmouri</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="/cairo/12650.subject">Cairo</a></li><li><a href="/festivals/9.subject">Festivals</a></li><li><a href="/palestine/12459.subject">Palestine</a></li><li><a href="/reviews/11068.subject">Reviews</a></li><li><a href="/saudi-arabia/12609.subject">Saudi Arabia</a></li><li><a href="/tunisia/11714.subject">Tunisia</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%2falam-cairo-review%2f5176541.article&e=%e2%80%98Alam%e2%80%99%3a+Cairo+Review" class="facebook" title="Share this on Facebook" target="_blank"></a> </li> <!-- twitter--> <li> <a href="https://twitter.com/intent/tweet?text=%e2%80%98Alam%e2%80%99%3a+Cairo+Review&url=https%3a%2f%2fwww.screendaily.com%2freviews%2falam-cairo-review%2f5176541.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%2falam-cairo-review%2f5176541.article" class="linkedin" title="Share this on Linked in" target="_blank"></a> </li> <li><a href="mailto:?subject=%E2%80%98Alam%E2%80%99: Cairo Review&amp;body=https://www.screendaily.com/reviews/alam-cairo-review/5176541.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="/5176541/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/5176541/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/johatsu-tallinn-review/5199293.article" class="image"> <img alt="Johatsu" loading="lazy" sizes="(max-width:767px) 100px, (max-width: 1179px) 220px, 280px" src="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/0/2/1/1437021_johatsu_201664.jpg" srcset="https://d1nslcd7m2225b.cloudfront.net/Pictures/100x67/0/2/1/1437021_johatsu_201664.jpg 100w,https://d1nslcd7m2225b.cloudfront.net/Pictures/172x115/0/2/1/1437021_johatsu_201664.jpg 172w,https://d1nslcd7m2225b.cloudfront.net/Pictures/220x148/0/2/1/1437021_johatsu_201664.jpg 220w,https://d1nslcd7m2225b.cloudfront.net/Pictures/280x188/0/2/1/1437021_johatsu_201664.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/johatsu-tallinn-review/5199293.article">‘Johatsu’: Tallinn Review</a> </h3> <p class="meta"> <span class="date" data-date-timezone="{&quot;publishdate&quot;: &quot;2024-11-21T19:48:00Z&quot;,&quot;format&quot;: &quot;D MMMM YYYY HH:mm&quot;}">2024-11-21T19:48:00Z</span> <span class="author">By <a rel="author" href="https://www.screendaily.com/wendy-ide/1100977.bio">Wendy Ide</a></span> </p> <p>Chilly Lithuanian drama sees a morgue worker consumed by the case of a missing man </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/5176541/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