CINXE.COM
Living in Two Worlds - SGIFF
<!DOCTYPE html> <html dir="ltr" lang="en-US" prefix="og: https://ogp.me/ns#"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width" /> <title>Living in Two Worlds - SGIFF</title> <meta name="robots" content="max-image-preview:large" /> <link rel="canonical" href="https://sgiff.com/film/living-in-two-worlds/" /> <meta property="og:locale" content="en_US" /> <meta property="og:site_name" content="SGIFF - Singapore International Film Festival" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Living in Two Worlds - SGIFF" /> <meta property="og:url" content="https://sgiff.com/film/living-in-two-worlds/" /> <meta property="article:published_time" content="2024-10-10T04:02:25+00:00" /> <meta property="article:modified_time" content="2024-11-01T07:11:24+00:00" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Living in Two Worlds - SGIFF" /> <script type="application/ld+json" class="aioseo-schema"> {"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/sgiff.com\/#listItem","position":1,"item":{"@type":"WebPage","@id":"https:\/\/sgiff.com\/","name":"Home","description":"Thank you for being part of the 35th SGIFF during 28 November to 8 December 2024! We'll see you for the 36th edition in 2025.","url":"https:\/\/sgiff.com\/"},"nextItem":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/#listItem"},{"@type":"ListItem","@id":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/#listItem","position":2,"item":{"@type":"WebPage","@id":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/","name":"Living in Two Worlds","url":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/"},"previousItem":"https:\/\/sgiff.com\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/sgiff.com\/#organization","name":"Singapore International Film Festival","url":"https:\/\/sgiff.com\/"},{"@type":"Person","@id":"https:\/\/sgiff.com\/author\/krystallesgiff\/#author","url":"https:\/\/sgiff.com\/author\/krystallesgiff\/","name":"krystallesgiff","image":{"@type":"ImageObject","@id":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/b098a34cd752c6bd67074653befb371e?s=96&d=mm&r=g","width":96,"height":96,"caption":"krystallesgiff"}},{"@type":"WebPage","@id":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/#webpage","url":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/","name":"Living in Two Worlds - SGIFF","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/sgiff.com\/#website"},"breadcrumb":{"@id":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/#breadcrumblist"},"author":{"@id":"https:\/\/sgiff.com\/author\/krystallesgiff\/#author"},"creator":{"@id":"https:\/\/sgiff.com\/author\/krystallesgiff\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/sgiff.com\/wp-content\/uploads\/2024\/10\/living-in-two-world-filmstill-2024.jpg","@id":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/#mainImage","width":1600,"height":875},"primaryImageOfPage":{"@id":"https:\/\/sgiff.com\/film\/living-in-two-worlds\/#mainImage"},"datePublished":"2024-10-10T04:02:25+08:00","dateModified":"2024-11-01T07:11:24+08:00"},{"@type":"WebSite","@id":"https:\/\/sgiff.com\/#website","url":"https:\/\/sgiff.com\/","name":"sgiff2023","description":"Singapore International Film Festival","inLanguage":"en-US","publisher":{"@id":"https:\/\/sgiff.com\/#organization"}}]} </script> <script src="//www.googletagmanager.com/gtag/js?id=G-6GH97XYL34" data-cfasync="false" data-wpfc-render="false" type="text/javascript" async></script> <script data-cfasync="false" data-wpfc-render="false" type="text/javascript"> var mi_version = '8.20.1'; var mi_track_user = true; var mi_no_track_reason = ''; var disableStrs = [ 'ga-disable-G-6GH97XYL34', ]; /* Function to detect opted out users */ function __gtagTrackerIsOptedOut() { for (var index = 0; index < disableStrs.length; index++) { if (document.cookie.indexOf(disableStrs[index] + '=true') > -1) { return true; } } return false; } /* Disable tracking if the opt-out cookie exists. */ if (__gtagTrackerIsOptedOut()) { for (var index = 0; index < disableStrs.length; index++) { window[disableStrs[index]] = true; } } /* Opt-out function */ function __gtagTrackerOptout() { for (var index = 0; index < disableStrs.length; index++) { document.cookie = disableStrs[index] + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; window[disableStrs[index]] = true; } } if ('undefined' === typeof gaOptout) { function gaOptout() { __gtagTrackerOptout(); } } window.dataLayer = window.dataLayer || []; window.MonsterInsightsDualTracker = { helpers: {}, trackers: {}, }; if (mi_track_user) { function __gtagDataLayer() { dataLayer.push(arguments); } function __gtagTracker(type, name, parameters) { if (!parameters) { parameters = {}; } if (parameters.send_to) { __gtagDataLayer.apply(null, arguments); return; } if (type === 'event') { parameters.send_to = monsterinsights_frontend.v4_id; var hookName = name; if (typeof parameters['event_category'] !== 'undefined') { hookName = parameters['event_category'] + ':' + name; } if (typeof MonsterInsightsDualTracker.trackers[hookName] !== 'undefined') { MonsterInsightsDualTracker.trackers[hookName](parameters); } else { __gtagDataLayer('event', name, parameters); } } else { __gtagDataLayer.apply(null, arguments); } } __gtagTracker('js', new Date()); __gtagTracker('set', { 'developer_id.dZGIzZG': true, }); __gtagTracker('config', 'G-6GH97XYL34', {"forceSSL":"true","link_attribution":"true"} ); window.gtag = __gtagTracker; (function () { /* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */ /* ga and __gaTracker compatibility shim. */ var noopfn = function () { return null; }; var newtracker = function () { return new Tracker(); }; var Tracker = function () { return null; }; var p = Tracker.prototype; p.get = noopfn; p.set = noopfn; p.send = function () { var args = Array.prototype.slice.call(arguments); args.unshift('send'); __gaTracker.apply(null, args); }; var __gaTracker = function () { var len = arguments.length; if (len === 0) { return; } var f = arguments[len - 1]; if (typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function') { if ('send' === arguments[0]) { var hitConverted, hitObject = false, action; if ('event' === arguments[1]) { if ('undefined' !== typeof arguments[3]) { hitObject = { 'eventAction': arguments[3], 'eventCategory': arguments[2], 'eventLabel': arguments[4], 'value': arguments[5] ? arguments[5] : 1, } } } if ('pageview' === arguments[1]) { if ('undefined' !== typeof arguments[2]) { hitObject = { 'eventAction': 'page_view', 'page_path': arguments[2], } } } if (typeof arguments[2] === 'object') { hitObject = arguments[2]; } if (typeof arguments[5] === 'object') { Object.assign(hitObject, arguments[5]); } if ('undefined' !== typeof arguments[1].hitType) { hitObject = arguments[1]; if ('pageview' === hitObject.hitType) { hitObject.eventAction = 'page_view'; } } if (hitObject) { action = 'timing' === arguments[1].hitType ? 'timing_complete' : hitObject.eventAction; hitConverted = mapArgs(hitObject); __gtagTracker('event', action, hitConverted); } } return; } function mapArgs(args) { var arg, hit = {}; var gaMap = { 'eventCategory': 'event_category', 'eventAction': 'event_action', 'eventLabel': 'event_label', 'eventValue': 'event_value', 'nonInteraction': 'non_interaction', 'timingCategory': 'event_category', 'timingVar': 'name', 'timingValue': 'value', 'timingLabel': 'event_label', 'page': 'page_path', 'location': 'page_location', 'title': 'page_title', }; for (arg in args) { if (!(!args.hasOwnProperty(arg) || !gaMap.hasOwnProperty(arg))) { hit[gaMap[arg]] = args[arg]; } else { hit[arg] = args[arg]; } } return hit; } try { f.hitCallback(); } catch (ex) { } }; __gaTracker.create = newtracker; __gaTracker.getByName = newtracker; __gaTracker.getAll = function () { return []; }; __gaTracker.remove = noopfn; __gaTracker.loaded = true; window['__gaTracker'] = __gaTracker; })(); } else { console.log(""); (function () { function __gtagTracker() { return null; } window['__gtagTracker'] = __gtagTracker; window['gtag'] = __gtagTracker; })(); } </script> <link rel='stylesheet' id='wpacu-combined-css-head-1' href='https://sgiff.com/wp-content/cache/asset-cleanup/css/head-5c8102cf2c46ff2f159c71425bdc9b136ddcbc4a.css' type='text/css' media='all' /> <script type="text/javascript" src="https://sgiff.com/wp-content/plugins/google-analytics-for-wordpress/assets/js/frontend-gtag.min.js?ver=8.20.1" id="monsterinsights-frontend-script-js"></script> <script data-cfasync="false" data-wpfc-render="false" type="text/javascript" id='monsterinsights-frontend-script-js-extra'>/* <![CDATA[ */ var monsterinsights_frontend = {"js_events_tracking":"true","download_extensions":"doc,pdf,ppt,zip,xls,docx,pptx,xlsx","inbound_paths":"[{\"path\":\"\\\/go\\\/\",\"label\":\"affiliate\"},{\"path\":\"\\\/recommend\\\/\",\"label\":\"affiliate\"}]","home_url":"https:\/\/sgiff.com","hash_tracking":"false","v4_id":"G-6GH97XYL34"};/* ]]> */ </script> <script type="text/javascript" src="https://sgiff.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://sgiff.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <link rel="https://api.w.org/" href="https://sgiff.com/wp-json/" /><link rel="alternate" type="application/json" href="https://sgiff.com/wp-json/wp/v2/film/7249" /> <script> ( function() { window.onpageshow = function( event ) { // Defined window.wpforms means that a form exists on a page. // If so and back/forward button has been clicked, // force reload a page to prevent the submit button state stuck. if ( typeof window.wpforms !== 'undefined' && event.persisted ) { window.location.reload(); } }; }() ); </script> <link rel="icon" href="https://sgiff.com/wp-content/uploads/2024/10/cropped-favicon-2024-2-32x32.jpg" sizes="32x32" /> <link rel="icon" href="https://sgiff.com/wp-content/uploads/2024/10/cropped-favicon-2024-2-192x192.jpg" sizes="192x192" /> <link rel="apple-touch-icon" href="https://sgiff.com/wp-content/uploads/2024/10/cropped-favicon-2024-2-180x180.jpg" /> <meta name="msapplication-TileImage" content="https://sgiff.com/wp-content/uploads/2024/10/cropped-favicon-2024-2-270x270.jpg" /> <style id="wpforms-css-vars-root"> :root { --wpforms-field-border-radius: 3px; --wpforms-field-border-style: solid; --wpforms-field-border-size: 1px; --wpforms-field-background-color: #ffffff; --wpforms-field-border-color: rgba( 0, 0, 0, 0.25 ); --wpforms-field-border-color-spare: rgba( 0, 0, 0, 0.25 ); --wpforms-field-text-color: rgba( 0, 0, 0, 0.7 ); --wpforms-field-menu-color: #ffffff; --wpforms-label-color: rgba( 0, 0, 0, 0.85 ); --wpforms-label-sublabel-color: rgba( 0, 0, 0, 0.55 ); --wpforms-label-error-color: #d63637; --wpforms-button-border-radius: 3px; --wpforms-button-border-style: none; --wpforms-button-border-size: 1px; --wpforms-button-background-color: #066aab; --wpforms-button-border-color: #066aab; --wpforms-button-text-color: #ffffff; --wpforms-page-break-color: #066aab; --wpforms-background-image: none; --wpforms-background-position: center center; --wpforms-background-repeat: no-repeat; --wpforms-background-size: cover; --wpforms-background-width: 100px; --wpforms-background-height: 100px; --wpforms-background-color: rgba( 0, 0, 0, 0 ); --wpforms-background-url: none; --wpforms-container-padding: 0px; --wpforms-container-border-style: none; --wpforms-container-border-width: 1px; --wpforms-container-border-color: #000000; --wpforms-container-border-radius: 3px; --wpforms-field-size-input-height: 43px; --wpforms-field-size-input-spacing: 15px; --wpforms-field-size-font-size: 16px; --wpforms-field-size-line-height: 19px; --wpforms-field-size-padding-h: 14px; --wpforms-field-size-checkbox-size: 16px; --wpforms-field-size-sublabel-spacing: 5px; --wpforms-field-size-icon-size: 1; --wpforms-label-size-font-size: 16px; --wpforms-label-size-line-height: 19px; --wpforms-label-size-sublabel-font-size: 14px; --wpforms-label-size-sublabel-line-height: 17px; --wpforms-button-size-font-size: 17px; --wpforms-button-size-height: 41px; --wpforms-button-size-padding-h: 15px; --wpforms-button-size-margin-top: 10px; --wpforms-container-shadow-size-box-shadow: none; } </style> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Lexend+Deca:wght@300;400;600&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Archivo:ital,wght@0,300;1,300&family=Space+Grotesk&display=swap" rel="stylesheet"> <meta name="google-site-verification" content="z7FQVCqYTycvymjnqsJURg-A1jmjmnSMf0UcPQmuFIg" /> </head> <body> <header> <div> <section class="c__sitelogo"> <div> <input type="checkbox" id="id_hamburger"> <figure> <a href="https://sgiff.com/"><img src="https://sgiff.com/wp-content/uploads/2024/10/sgifflogo2.svg"></a> </figure> <section class="c__navon"> <div> <div class="s_primarydesktop"> <nav> <ul> <li> <input type="radio" id="id_col_1" name="nav_radio"> <label for="id_col_1">About Us</label> <div class="s_list v_desktopfull"> <ul> <li> <input type="checkbox" id="id_col_1_1"> <label for="id_col_1_1">About Us</label> <ul> <li> <a href="/about-sgiff/" target="">About SGIFF</a> </li> <li> <a href="/festival-team/" target="">Festival Team</a> </li> <li> <a href="/board-committee-members/" target="">Board & Committee Members</a> </li> <li> <a href="/past-edition/" target="">Past Editions</a> </li> <li> <a href="/press-office/" target="">Press Office</a> </li> <li> <a href="/financial-results/" target="">Financial Results</a> </li> </ul> </li> <li> <input type="checkbox" id="id_col_1_2"> <label for="id_col_1_2">Join Us</label> <ul> <li> <a href="/join-sgiff/" target="">Join SGIFF</a> </li> <li> <a href="/volunteer/" target="">Volunteer at SGIFF</a> </li> </ul> </li> <li> <input type="checkbox" id="id_col_1_3"> <label for="id_col_1_3">Education</label> <ul> <li> <a href="/film-immersion-programme/" target="">Film Immersion Programme</a> </li> <li> <a href="/nac-arts-education-programme/" target="">NAC – Arts Education Programme</a> </li> </ul> </li> </ul> </div> </li> <li> <input type="radio" id="id_col_2" name="nav_radio"> <label for="id_col_2">SGIFF Pro</label> <div class="s_list "> <ul> <li> <input type="checkbox" id="id_col_2_1"> <label for="id_col_2_1">Programmes</label> <ul> <li> <a href="/sgiff-pro/" target="">About SGIFF Pro</a> </li> <li> <a href="/sgiff-film-fund/" target="">SGIFF Film Fund 2025</a> </li> <li> <a href="/industry-days/" target="">SGIFF Industry Days</a> </li> <li> <a href="/asian-producers-network/" target="">Asian Producers Network</a> </li> <li> <a href="/film-academy-alumni/" target="">Film Academy Alumni</a> </li> </ul> </li> </ul> </div> </li> <li> <input type="radio" id="id_col_3" name="nav_radio"> <label for="id_col_3">Support</label> <div class="s_list "> <ul> <li> <input type="checkbox" id="id_col_3_1"> <label for="id_col_3_1">Support</label> <ul> <li> <a href="https://donate.sgiff.com/" target="_blank">Donate</a> </li> <li> <a href="/donate/" target="">Be An SGIFFriend</a> </li> <li> <a href="/volunteer/" target="">Volunteer</a> </li> </ul> </li> </ul> </div> </li> <li> <input type="radio" id="id_col_4" name="nav_radio"> <label for="id_col_4">Festival</label> <div class="s_list v_desktopfull"> <ul> <li> <input type="checkbox" id="id_col_4_1"> <label for="id_col_4_1">Explore the Festival</label> <ul> <li> <a href="https://sgiff.com/wp-content/uploads/2025/01/35th-SGIFF-Festival-Guide_Digital-compressed.pdf" target="_blank">Download Guide</a> </li> <li> <a href="/explore-films/" target="">Explore Films</a> </li> <li> <a href="/festival-programmes/" target="">Festival Sections</a> </li> <li> <a href="/forums-events/" target="">Forums & Events</a> </li> <li> <a href="/festival-ambassador/" target="">Festival Ambassador</a> </li> <li> <a href="/festival-passes/" target="">Festival Passes</a> </li> </ul> </li> <li> <input type="checkbox" id="id_col_4_2"> <label for="id_col_4_2">Awards</label> <ul> <li> <a href="/about-silver-screen-awards/" target="">About Silver Screen Awards</a> </li> <li> <a href="https://sgiff.com/silver-screen-awards/" target="">Silver Screen Award Winners</a> </li> <li> <a href="/competition-jury/" target="">Silver Screen Awards Jury</a> </li> <li> <a href="/cinema-honorary-award/" target="">Cinema Honorary Award</a> </li> <li> <a href="/screen-icon-award/" target="">Screen Icon Award</a> </li> <li> <a href="/outstanding-contribution-to-southeast-asian-cinema-award/" target="">Outstanding Contribution to Southeast Asian Cinema Award</a> </li> </ul> </li> <li> <input type="checkbox" id="id_col_4_3"> <label for="id_col_4_3">More Information</label> <ul> <li> <a href="https://sgiff.com/merchandise/" target="">Shop Merchandise</a> </li> <li> <a href="/donate/" target="">SGIFFriends Pass</a> </li> <li> <a href="/festival-passes/" target="">Industry Pass</a> </li> <li> <a href="/cinephile-pass/" target="">Cinephile Pass</a> </li> <li> <a href="/ticketing/" target="">Ticketing</a> </li> <li> <a href="https://sgiff.com/promotions/" target="">Ticket Rewards</a> </li> <li> <a href="/how-to-fest/" target="">How to Fest</a> </li> <li> <a href="/sponsors/" target="">Sponsors</a> </li> <li> <a href="/faq/" target="">FAQs</a> </li> </ul> </li> </ul> </div> </li> </ul> </nav> </div> </div> </section> <div class="s_hamburger"> <label for="id_hamburger"></label> </div> </div> </section> </div> </header> <main class="p__filmdetail"> <div> <section class="c__programmeaccordion"> <div> <nav> <input type="checkbox" id="id_programmesselect"> <label for="id_programmesselect"> <a href="/festival-programmes/horizon/"> Horizon </a> </label> <ul> <li><a href="https://sgiff.com">SINGAPORE PANORAMA - PROGRAMME 1</a></li> <li><a href="https://sgiff.com">SINGAPORE PANORAMA - PROGRAMME 2</a></li> <li><a href="https://sgiff.com">SINGAPORE PANORAMA - PROGRAMME 3</a></li> <li><a href="https://sgiff.com">SINGAPORE PANORAMA - PROGRAMME 4</a></li> </ul> </nav> </div> </section> <section class="c__mastheadimage u__fullwidth"> <div> <div class="video"> <iframe frameborder="0" width="640" height="390" src="https://www.youtube.com/embed/FE20TPbMCp8?rel=0" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen > </iframe> </div> </div> </section> <section class="u__wrapper v_filmdetail"> <div class="clearfix"> <section class="c__filmwriteup"> <div> <div class="s_writeup"> <h1>Living in Two Worlds</h1> <div class="u__label"> <p>Southeast Asian Premiere</p> </div> <div class="s_info"> <p> <em>O Mipo</em> <em>Japan</em> <em>2024</em> <em>105 min</em> <em>PG13 (Some Coarse Language)</em> </p> </div> <div class="s_logline"><p>After moving from rural Japan to Tokyo, a Child of Deaf Adults discovers the value of Deaf culture while contending with his own biases.</p> </div> <p>Igarashi Dai grew up in a small port town in Miyagi, immersed in two rich linguistic worlds: Japanese and Japanese Sign Language. However, Dai’s unique perspective as a Child of Deaf Adults becomes a source of inner conflict as he grapples with his identity. When Dai moves to Tokyo, seeking independence from his family, the city becomes a catalyst, challenging him to confront and embrace the roots he struggled to fully appreciate.</p> <input type="checkbox" id="id_readmore"> <div class="s_readmore"> <p>O Mipo crafts a complex bildungsroman that is an emotionally resonant exploration of identity, family and the unexpected gifts that come from bridging cultures. With each frame, the film celebrates the power of visual language, the vibrancy of the Deaf community, and the beauty of diverse forms of communication.</p> <label for="id_readmore"><span class="u__iconarrowtriangle"></span></label> </div> </div> </div> </section> <section class="c__accordion v_mobileonly v_screeningtimes grid-col"> <div> <div class="s_accordions"> <div class="s_accordion"> <input type="checkbox" id="id_screeningaccordion" checked> <label for="id_screeningaccordion">Screening Times<span class="u__iconarrowtrianglewhite"></span></label> <div class="s_tabcontent"> <section class="c__screeningtimes"> <div> <div class="s_screenings"> <div class="s_screening" data-pid="" data-screeningid="7503" data-price="0"> <p>7 Dec, Sat 4:30PM / 105 min</p> <p>Oldham Theatre</p> <div class="s_purchasetickets"> </div> </div> </div> </div> </section> </div> </div> </div> </div> </section> <section class="c__adspace grid-item"> <div> <div class="s_sidefixed"> <h2>AT THE FEST!</h2> </div> <div class="s_content"> <p>All screenings are on a free seating, first-come, first-served basis. We kindly ask all ticket holders to arrive on time. Latecomers may not be guaranteed entry. <br><br> RUSH QUEUE: <br>For last-minute attendees, good news. Our Rush Queue is back this year! </p> <div class="u__primarybtn"> <a href="/how-to-fest">Find Out More Here</a> </div> </div> </div> </section> </div> </section> <section class="u__wrapper v_filmcredits"> <div> <section class="c__accordion v_mobileonly v_infocolumn"> <div> <div class="s_accordions"> <div class="s_accordion"> <input type="checkbox" id="id_filminfo" checked> <label for="id_filminfo">Film Info<span class="u__iconarrowtrianglewhite"></span></label> <div class="s_tabcontent"> <section class="c__filminfo"> <div> <div class="s_infocolumn"> <div class="s_row"> <label>English Title</label> <p>Living in Two Worlds</p> </div> <div class="s_row"> <label>Original Title</label> <p>ぼくが生きてる、ふたつの世界</p> </div> <div class="s_row"> <label>Director</label> <p>O Mipo</p> </div> <div class="s_row"> <label>Country</label> <p>Japan</p> </div> <div class="s_row"> <label>Year</label> <p>2024</p> </div> <div class="s_row"> <label>Language(s)</label> <p>Japanese</p> </div> <div class="s_row"> <label>Subtitle(s)</label> <p>English</p> </div> <div class="s_row"> <label>Runtime</label> <p>105 min</p> </div> <div class="s_row"> <label>Advisory</label> <p>PG13 (Some Coarse Language)</p> </div> <div class="s_row"> <label>Premiere</label> <p>Southeast Asian Premiere</p> </div> </div> </div> </section> </div> </div> <div class="s_accordion"> <input type="checkbox" id="id_filmcredits" checked> <label for="id_filmcredits">Film Credits<span class="u__iconarrowtrianglewhite"></span></label> <div class="s_tabcontent"> <section class="c__filminfo"> <div> <div class="s_infodirector"> <div class="s_imagename"> <figure class="s_image"> <img src="https://sgiff.com/wp-content/uploads/2024/10/living-in-two-world-mipo-o-directorimg-2024.jpg"> </figure> <div class="s_name"> <label>DIRECTOR</label> <p>O Mipo</p> </div> </div> <div class="s_bio"> <p><strong>O Mipo</strong> is a Japanese film director and screenwriter. In 2005, her screenplay <em>The Sakais’ Happiness</em> won the Sundance/NHK Award, leading to her directorial feature debut in 2006. This was followed by <em>Here Comes the Bride, My Mom!</em> (2010) and later <em>The Light Shines Only There</em> (2014), Japan’s submission for the Academy Awards. <em>Living In Two Worlds</em>, her first feature film in nine years, premiered at Shanghai.</p> </div> </div> <div class="s_infocolumn"> <div class="s_row"> <label>Producer</label> <p>Hideyuki Yamakuni</p> </div> <div class="s_row"> <label>Cast</label> <p>Ryo Yoshizawa,<br /> Akiko Oshidari,<br /> Akito Imai</p> </div> </div> </div> </section> </div> </div> </div> </div> </section> </div> </section> <section class="c__more v_ticket"> <div> <input type="checkbox" id="id_more" checked=""> <div class="s_title"> <h2> <label for="id_more">More Films <span class="u__iconarrowtrianglewhite"></span> </label> </h2> </div> <div class="s_more"> <article class="swiper s_swiper"> <div class="swiper-wrapper s_items"> <div class="swiper-slide s_item"> <a href="https://sgiff.com/film/vive-lamour/"> <figure> <img width="1024" height="560" src="https://sgiff.com/wp-content/uploads/2024/10/vive-l-amour-filmstill-1024x560.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://sgiff.com/wp-content/uploads/2024/10/vive-l-amour-filmstill-1024x560.jpg 1024w, https://sgiff.com/wp-content/uploads/2024/10/vive-l-amour-filmstill-300x164.jpg 300w, https://sgiff.com/wp-content/uploads/2024/10/vive-l-amour-filmstill.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure> </a> <div class="s_content"> <div class="s_header"> <label><a href="#">Landmark</a></label> <h3><a href="https://sgiff.com/film/vive-lamour/">Vive L’Amour</a></h3> <a href="https://sgiff.com/film/vive-lamour/"><p>Tsai Ming-liang / Taiwan / 118 min / M18 (Sexual Scenes) / Singapore Premiere</p></a> </div> </div> </div> <div class="swiper-slide s_item"> <a href="https://sgiff.com/film/the-man-who-left-his-will-on-film/"> <figure> <img width="1024" height="560" src="https://sgiff.com/wp-content/uploads/2024/10/the-man-who-left-his-will-on-film-filmstill-2024-1024x560.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://sgiff.com/wp-content/uploads/2024/10/the-man-who-left-his-will-on-film-filmstill-2024-1024x560.jpg 1024w, https://sgiff.com/wp-content/uploads/2024/10/the-man-who-left-his-will-on-film-filmstill-2024-300x164.jpg 300w, https://sgiff.com/wp-content/uploads/2024/10/the-man-who-left-his-will-on-film-filmstill-2024.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure> </a> <div class="s_content"> <div class="s_header"> <label><a href="#">Landmark</a></label> <h3><a href="https://sgiff.com/film/the-man-who-left-his-will-on-film/">The Man Who Left His Will on Film</a></h3> <a href="https://sgiff.com/film/the-man-who-left-his-will-on-film/"><p>Nagisa Oshima / Japan / 94 min / R21 (Sexual Scenes and Nudity) / Asian Premiere</p></a> </div> </div> </div> <div class="swiper-slide s_item"> <a href="https://sgiff.com/film/hidden/"> <figure> <img width="1024" height="560" src="https://sgiff.com/wp-content/uploads/2024/10/hidden-filmstill-2024-1024x560.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://sgiff.com/wp-content/uploads/2024/10/hidden-filmstill-2024-1024x560.jpg 1024w, https://sgiff.com/wp-content/uploads/2024/10/hidden-filmstill-2024-300x164.jpg 300w, https://sgiff.com/wp-content/uploads/2024/10/hidden-filmstill-2024.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /> </figure> </a> <div class="s_content"> <div class="s_header"> <label><a href="#">Landmark Double Bill</a></label> <h3><a href="https://sgiff.com/film/hidden/">Hidden</a></h3> <a href="https://sgiff.com/film/hidden/"><p>Jafar Panahi / Iran / 18 min / PG</p></a> </div> </div> </div> </div> <div class="swiper-pagination"></div> </article> </div> </div> </section> <section class="c__more v_ticket"> <div> <div class="s_title"> <h2>Related Topics</h2> </div> <div class="s_tags"> <ul> <li>Coming of Age</li><li>Social Issues</li> <li>Drama</li> <li>Horizon</li> </ul> </div> </div> </section> </div> </main> <footer> <div> <section class="c__mailinglist"> <div> <div class="s_mailchimp"> <div class="s_desc"> <h3>Join Our Mailing List</h3> <p>Sign up to receive updates and reminders for films screening and more.</p> </div> <div id="mc_embed_signup" class="s_mailinglist"> <form action="https://sgiff.us9.list-manage.com/subscribe/post?u=dc7c0c2224dc610b163401830&id=f0d8f7922a&f_id=007815e1f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate="novalidate"> <div id="mc_embed_signup_scroll"> <div class="mc-field-group"> <input type="text" value="" name="FNAME" class="required" id="mce-FNAME" aria-required="true" required> <label>Name</label> </div> <div class="mc-field-group"> <input type="email" value="" name="EMAIL" class="required email" id="mce-EMAIL" aria-required="true" required> <label>Email</label> </div> <div class="mc-checkbox-group"> <label for="id_subscribecheckbox"> By subscribing, you consent to receive marketing updates and other news from Singapore International Film Festival and its affiliates under the Infocomm Media Development Authority. </label> </div> <div id="mce-responses" class="clear foot"> <div class="response" id="mce-error-response" style="display:none"></div> <div class="response" id="mce-success-response" style="display:none"></div> </div> <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="b_ddf4ac8cbb3ab4edaba74473f_542df749b1" tabindex="-1" value=""></div> <div class="clear u__ctabtn"><input type="submit" value="SIGN UP" name="subscribe" id="mc-embedded-subscribe" class="button"></div> </div> </form> </div> <script type="text/javascript" src="https://s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"></script> <script type="text/javascript"> (function($) { window.fnames = new Array(); window.ftypes = new Array(); fnames[0] = 'EMAIL'; ftypes[0] = 'email'; fnames[1] = 'FNAME'; ftypes[1] = 'text'; fnames[2] = 'LNAME'; ftypes[2] = 'text'; fnames[3] = 'MMERGE3'; ftypes[3] = 'url'; }(jQuery)); var $mcj = jQuery.noConflict(true); </script> </div> </div> </section> <section class="c__footerlogos"> <div> <article class="swiper s_footerlogos"> <div class="swiper-wrapper s_logos"> <div class="swiper-slide s_logo"> <figure> <a href="https://www.imda.gov.sg/activities/activities-catalogue/singapore-media-festival"> <img src="https://sgiff.com/wp-content/uploads/2024/10/Singapore-Media-Festival.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://www.imda.gov.sg/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-imda-1.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://mochachailab.com/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-mochachai-1.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://www.showtecgroup.com/site/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-offical-showtec-filmgear.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href=""> <img src="https://sgiff.com/wp-content/uploads/2024/10/Web-79.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://all.accor.com/hotel/6657/index.en.shtml?utm_source=google&utm_medium=cpc&utm_campaign=ppc-ibi-mar-goo-sg-en-sg-exa-sear-sg&utm_term=mar&utm_content=sg-en-SG-V5579&gad_source=1&gclid=CjwKCAiArfauBhApEiwAeoB7qDhscni8TqedFiN2IvDGsjAbHefS56gC6Bnd9Q96jrwbw3XPsmaeThoCEzsQAvD_BwE"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-ibis-1.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://www.turkishairlines.com/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-turkishnew.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://asianfilmarchive.org/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-asian.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://www.ntu.edu.sg/wkwsci"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-festival-ntu-chinese-humanities-1.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://www.scape.sg/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-festival-scape-1.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href=""> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-tek.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://www.lasalle.edu.sg/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-uas.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href=""> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-pro-partners-sony.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://whitelightpost.com/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-whitelight-1.png"> </a> </figure> </div> <div class="swiper-slide s_logo"> <figure> <a href="https://www.winnslavin.com/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/logo-pro-partners-winn-slavin-1.png"> </a> </figure> </div> </div> </article> </div> </section> <section class="c__footernav"> <div> <nav class="s_navigation"> <div class="s_nav v_defaulton"> <input type="checkbox" id="id_nav0" checked> <label for="id_nav0">About The Festival<span class="u__iconarrowup"></span></label> <ul> <li> <a href="/about-sgiff/"> About SGIFF </a> </li> <li> <a href="/festival-team/"> Festival Team </a> </li> <li> <a href="/board-committee-members/"> Board & Committee Members </a> </li> <li> <a href="/past-edition/"> Past Editions </a> </li> <li> <a href="/press-office/"> Press Office </a> </li> <li> <a href="/financial-results/"> Financial Results </a> </li> <li> <a href="/join-sgiff/"> Join SGIFF </a> </li> <li> <a href="/volunteer/"> Volunteer at SGIFF </a> </li> <li> <a href="/film-immersion-programme/"> Film Immersion Programme </a> </li> <li> <a href="/nac-arts-education-programme/"> NAC – Arts Education Programme </a> </li> </ul> </div> <div class="s_nav"> <input type="checkbox" id="id_nav1" checked> <label for="id_nav1">SGIFF Pro<span class="u__iconarrowup"></span></label> <ul> <li> <a href="/sgiff-pro/"> About SGIFF Pro </a> </li> <li> <a href="/sgiff-film-fund/"> SGIFF Film Fund 2025 </a> </li> <li> <a href="/industry-days/"> SGIFF Industry Days </a> </li> <li> <a href="/asian-producers-network/"> Asian Producers Network </a> </li> <li> <a href="/film-academy-alumni/"> Film Academy Alumni </a> </li> </ul> </div> <div class="s_nav"> <input type="checkbox" id="id_nav2" checked> <label for="id_nav2">Support SGIFF<span class="u__iconarrowup"></span></label> <ul> <li> <a href="https://donate.sgiff.com/"> Donate </a> </li> <li> <a href="/donate/"> Be an SGIFFriend </a> </li> <li> <a href="/volunteer/"> Volunteer </a> </li> </ul> </div> <div class="s_nav"> <input type="checkbox" id="id_nav3" checked> <label for="id_nav3">Festival<span class="u__iconarrowup"></span></label> <ul> <li> <a href="https://sgiff.com/wp-content/uploads/2025/01/35th-SGIFF-Festival-Guide_Digital-compressed.pdf"> Download Guide </a> </li> <li> <a href="/explore-films/"> Explore Films </a> </li> <li> <a href="/festival-programmes/"> Festival Sections </a> </li> <li> <a href="/forums-events/"> Forums & Events </a> </li> <li> <a href="/festival-ambassador/"> Festival Ambassador </a> </li> <li> <a href="/festival-passes/"> Festival Passes </a> </li> <li> <a href="https://sgiff.com/merchandise/"> Shop Merchandise </a> </li> <li> <a href="/ticketing/"> Ticketing </a> </li> <li> <a href="https://sgiff.com/promotions/"> Ticket Rewards Programme </a> </li> <li> <a href="/how-to-fest/"> How to Fest </a> </li> <li> <a href="/sponsors/"> Sponsors </a> </li> <li> <a href="/faq/"> FAQs </a> </li> </ul> </div> </nav> </div> </section> <section class="c__socialfooter"> <div> <label>CONNECT WITH US</label> <nav class="s_icons"> <ul> <li> <a href="https://www.facebook.com/sginternationalfilmfestival/"> <img src="https://sgiff.com/wp-content/uploads/2024/10/icon-facebook.svg" alt=""> </a> </li> <li> <a href="https://twitter.com/SGIFFest"> <img src="https://sgiff.com/wp-content/uploads/2024/10/icon-x.svg" alt=""> </a> </li> <li> <a href="https://www.instagram.com/sgiffest/?hl=en"> <img src="https://sgiff.com/wp-content/uploads/2023/10/icon-instagram.svg" alt=""> </a> </li> <li> <a href="https://www.youtube.com/c/SingaporeInternationalFilmFestival"> <img src="https://sgiff.com/wp-content/uploads/2023/10/icon-youtube.svg" alt=""> </a> </li> </ul> </nav> <nav class="s_links"> <ul> <li> <a href="mailto:enquiries@sgiff.com"> Contact Us </a> </li> <li> <a href="/faq/"> FAQ </a> </li> </ul> </nav> </div> </section> <section class="c__copyright"> <div> <nav> <ul> <li> <a href="/terms-of-service/"> Terms of Service </a> </li> <li> <a href="/privacy-policy/"> Privacy Policy </a> </li> </ul> </nav> <p>© 2024 SGIFF</p> </div> </section> </div> </footer> </div> <script type="text/javascript" src="https://sgiff.com/wp-content/themes/blankslate/assets/js/main.js?v=1740152097&ver=1.0.0" id="main-js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <script> window.jQuery || document.write('<script src="https://sgiff.com/wp-content/themes/blankslate/assets/js/vendor/jquery-3.7.1.min.js"><\/script>') </script> <script src="https://sgiff.com/wp-content/themes/blankslate/assets/js/vendor/swiper.min.js"></script> <script src="https://sgiff.com/wp-content/themes/blankslate/assets/js/vendor/colcade.js"></script> <script src="https://sgiff.com/wp-content/themes/blankslate/assets/js/vendor/jquery.matchHeight-min.js"></script> <script src="https://sgiff.com/wp-content/themes/blankslate/assets/js/vendor/swiper-bundle.min.js"></script> <style> .s_logout { margin-top: 100px; } .form-login.login .form-row span.s_error,.register-form.register .form-row span.s_error,.lost_reset_password .form-row span.s_error{ display:none; } .form-login.login .form-row.v_invalid span.s_error,.register-form.register .form-row.v_invalid span.s_error,.lost_reset_password .form-row.v_invalid span.s_error{ display:block; } input{ color:#333; } .feSc td, .feSc th { border: 1px solid; padding: 10px; } .feSc { width: 75%; text-align: center; border: 1px solid; } </style> <script> const slides = $('.c__mastheadcarousel .swiper .swiper-slide'); const loopEnabled = slides.length > 1; var swiper = new Swiper(".c__mastheadcarousel .swiper", { slidesPerView: "auto", loop: loopEnabled, autoplay: { delay: 4500, waitForTransition: true, disableOnInteraction: false }, pagination: { el: ".swiper-pagination", clickable: true, renderBullet: function (index, className) { return '<span class="' + className + '"><svg class="progress-bar" width="100%" height="100%"><rect class="progress" x="0" y="0" width="0" height="100%" fill="blue" /></svg></span>'; } }, on: { init: function () { updateProgressBar(this); }, slideChange: function () { updateProgressBar(this); }, autoplayStart: function () { updateProgressBar(this); } } }); function updateProgressBar(swiper) { const bullets = document.querySelectorAll(".c__mastheadcarousel .swiper-pagination span"); const autoplayDelay = 4500; const activeIndex = swiper.realIndex; bullets.forEach((bullet, index) => { const rect = bullet.querySelector('.progress'); if (rect) { if (index === activeIndex) { bullet.classList.add('active'); rect.setAttribute('fill', '#23CFFF'); animateProgress(rect, autoplayDelay); } else { bullet.classList.remove('active'); rect.setAttribute('fill', 'transparent'); rect.setAttribute('width', '0'); } } }); } function animateProgress(rect, duration) { let start = null; const animate = (timestamp) => { if (!start) start = timestamp; const progress = Math.min((timestamp - start) / duration, 1); rect.setAttribute('width', `${progress * 100}%`); if (progress < 1) { requestAnimationFrame(animate); } }; requestAnimationFrame(animate); } var swiper = new Swiper(".c__carouselswiper.v_carousel .s_swiper", { // freeMode: true, slidesPerView: "auto", pagination: { el: ".swiper-pagination", }, }); var swiper = new Swiper(".c__accordion .c__screentogether .s_swiper", { // freeMode: true, slidesPerView: "auto", pagination: { el: ".swiper-pagination", }, }); var swiper = new Swiper(".c__more .s_swiper", { // freeMode: true, slidesPerView: "auto", autoplay: { delay: 5000, }, pagination: { el: ".swiper-pagination", }, breakpoints: { 728: { autoplay: false, } } }); var swiper = new Swiper(".c__carouselswiper .s_swiper", { // freeMode: true, slidesPerView: "auto", pagination: { el: ".swiper-pagination", }, }); var swiper = new Swiper(".c__carouselswiper .v_swiper", { // freeMode: true, slidesPerView: "auto", pagination: { el: ".swiper-pagination", }, }); var swiper = new Swiper(".c__featuredblocks .s_swiper", { // freeMode: true, effect: "fade", slidesPerView: "auto", pagination: { el: ".swiper-pagination", }, }); var swiper = new Swiper(".c__squareblocks .s_swiper", { // freeMode: true, slidesPerView: "auto", loop: true, centeredSlides: true, pagination: { el: ".swiper-pagination", }, }); var swiper = new Swiper(".c__festivalperiodads .s_swiper", { // freeMode: true, effect: "fade", autoHeight: true, autoplay: { delay: 2000, }, slidesPerView: "auto", pagination: { el: ".swiper-pagination", type: "fraction", }, }); let footerSitemap = null; $(window).on('resize', function() { if ($(window).width() < 728) { if (footerSitemap != null) { footerSitemap.colcade('destroy'); footerSitemap = null; } } else { if (footerSitemap == null) { footerSitemap = $('.u__wrapper.v_filmdetail > div').colcade({ columns: '.grid-col', items: '.grid-item' }); } } }); $(window).trigger('resize'); // Ei Update 18-10-23 jQuery(document).ready(function($){ var emailFilter =/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; function validateElm($elm) { var inputType = $elm.data("type"); var val; switch (inputType) { case "text": case "number": val = $.trim($elm.find("input").val()); //console.log(val); if (val === "") { $elm.addClass("v_invalid"); return false; } break; case "email": val = $.trim($elm.find("input").val()); if (!emailFilter.test(val)) { $elm.addClass("v_invalid"); $('.s_conerror').css('display','none'); return false; } break; case "password": val = $.trim($elm.find("input").val()); //console.log(val); if (val === "") { $elm.addClass("v_invalid"); return false; } break; case "checkbox": if ($elm.find('input[type="checkbox"]:checked').length == 0) { $elm.addClass("v_invalid"); return false; } break; case "select": if (!$elm.find('select').val()) { $elm.addClass("v_invalid"); return false; } break; case "radio": if ($elm.find('input[type="radio"]:checked').length == 0) { $elm.addClass("v_invalid"); return false; } break; } $elm.removeClass("v_invalid"); $elm.addClass("v_valid"); return true; } $('.register .v_inv_psw').append('<p id="passwordStrength"></p>'); $('#update-password').on('input', function() { //console.log('hi'); var password = $(this).val(); var strength = checkPasswordStrength(password); displayPasswordStrength2(strength); }); $('#reg_password').on('input', function() { var password = $(this).val(); var strength = checkPasswordStrength(password); displayPasswordStrength(strength); }); function checkPasswordStrength(password) { var strength = 0; if (password.length >= 8) { strength += 1; } if (/[a-z]/.test(password) && /[A-Z]/.test(password)) { strength += 1; } if (/\d/.test(password)) { strength += 1; } if (/[!@#$%^&*]/.test(password)) { strength += 1; } return strength; } function displayPasswordStrength(strength) { var strengthText; var submitButton = $('.form-register__submit'); var regPsw = $('#reg_password'); switch (strength) { case 0: case 1: //strengthText = 'Weak'; strengthText = 'Password strength: Weak'; $('.form-register__submit').addClass('noPointer'); //regPsw.css('border', '1px solid red'); break; case 2: strengthText = 'Password strength: Medium'; $('.form-register__submit').removeClass('noPointer'); //regPsw.css('border', '1px solid #C4CED4'); break; default: strengthText = 'Password strength: Strong'; $('.form-register__submit').removeClass('noPointer'); //regPsw.css('border', '1px solid #C4CED4'); break; } $('#passwordStrength').text(strengthText); } function displayPasswordStrength2(strength) { var strengthText; var submitButton = $('.lost_confirm'); var regPsw = $('#update-password'); switch (strength) { case 0: case 1: //strengthText = 'Weak'; strengthText = 'Password strength: Weak'; $('.lost_confirm').addClass('noPointer'); //regPsw.css('border', '1px solid red'); break; case 2: strengthText = 'Password strength: Medium'; $('.lost_confirm').removeClass('noPointer'); //regPsw.css('border', '1px solid #C4CED4'); break; default: strengthText = 'Password strength: Strong'; $('.lost_confirm').removeClass('noPointer'); //regPsw.css('border', '1px solid #C4CED4'); break; } $('#passwordStrength2').text(strengthText); } $('.register-form .form-row input').on("blur", function() { //console.log('hi'); var $this = $(this); var $elm = $this.parent(); validateElm($elm); }); $('.register-form .form-row input[name="password"],.update-password-form .form-row input[name="update-password"]').on("blur", function() { var $passwordField = $.trim($(this).val()); if ($passwordField == '') { $('.v_inv_psw').addClass("v_invalid"); return false; } else { $('.v_inv_psw').removeClass("v_invalid"); } }) $('.register-form .form-row input[name="confirm_password"]').on("blur", function() { var $passwordField = $('input[name="password"]'); var $confirmPasswordField = $(this); var password = $.trim($passwordField.val()); var confirmPassword = $.trim($confirmPasswordField.val()); //console.log('password -> '+password+' confirmPassword -> '+confirmPassword) if (password !== confirmPassword || confirmPassword == '') { $('.con_psw').addClass("v_invalid"); $('.form-register__submit').css("pointer-events", 'none'); return false; } else { $('.con_psw').removeClass("v_invalid"); $('.form-register__submit').css("pointer-events", 'auto'); } }) $('.update-password-form .form-row input[name="update-password_2"]').on("blur", function() { var $passwordField = $('input[name="update-password"]'); var $confirmPasswordField = $(this); var password = $.trim($passwordField.val()); var confirmPassword = $.trim($confirmPasswordField.val()); //console.log('password -> '+password+' confirmPassword -> '+confirmPassword) if (password !== confirmPassword || confirmPassword == '') { $('.con_psw').addClass("v_invalid"); $('.lost_confirm').css("pointer-events", 'none'); return false; } else { $('.con_psw').removeClass("v_invalid"); $('.lost_confirm').css("pointer-events", 'auto'); } }) $('.register-form').on('submit', function(e) { e.preventDefault(); // Your custom logic here var validate = true; var $form = $(this); // Example: Perform form validation $(".register-form .form-row").each(function() { var $elm = $(this); var required = $elm.data("required"); if (required) { if (!validateElm($elm)) { validate = false; } } }); //validate = false; //console.log(validate, 'hi') if (validate) { reg_email = $('#reg_email').val(); reg_password = $('#reg_password').val(); $.ajax({ url: 'https://sgiff.com/wp-admin/admin-ajax.php', type: 'post', data: { action: 'register_custom_user_account', reg_email: reg_email, reg_password: reg_password }, success: function(data) { //console.log('what'); var modifiedData = data.slice(0, -1); $('#reg_email').val(''); $('#reg_password').val(''); $('#reg_confirm_password').val(''); $('.c__registerwelcome').css('display','block'); if (modifiedData == 'exit') { $('.c__registerwelcome').html('<ul class="error" role="alert"><li> Error: An account is already registered with your email address. Please log in.</li></ul>'); } else { $('.c__loginheader,.register-form').css('display','none'); $('.s_uniquecode a').html(modifiedData+'<span class="u__iconcopy"></span>'); //console.log(modifiedData); //window.location.href = '/my-account'; } }, error: function(data) { $('.c__registerwelcome').html('Something was wrong!'); } }); } }); $('.form-login__submit').on('click', function(e) { e.preventDefault(); // Your custom logic here var validate = true; var $form = $(this); // Example: Perform form validation $(".form-login .form-row").each(function() { var $elm = $(this); var required = $elm.data("required"); if (required) { if (!validateElm($elm)) { validate = false; } } }); var reg_email = $('#username').val(); var reg_password = $('#password').val(); //validate = false; //console.log(validate, reg_email,reg_password,'hi') if (validate) { $.ajax({ url: 'https://sgiff.com/wp-admin/admin-ajax.php', type: 'post', data: { action: 'login_user_account', reg_email: reg_email, reg_password: reg_password }, success: function(data) { // var modifiedData = data.slice(0, -1); //console.log(modifiedData,data); if (data == 'valid') { window.location.href = '/festival-schedule/'; }else if(data == 'feSche'){ window.location.href = '/my-schedule/'; document.cookie = 'feSche=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; }else { $('.s_status p').text(data); } }, error: function(data) { $('.s_status p').html('Something was wrong!'); } }); } }); $('.lost_reset_password').on('submit', function(e) { e.preventDefault(); // Your custom logic here var validate = true; var $form = $(this); // Example: Perform form validation $(".lost_reset_password .form-row").each(function() { var $elm = $(this); var required = $elm.data("required"); if (required) { if (!validateElm($elm)) { validate = false; } } }); //validate = false; if (validate) { reg_email = $('#user_login').val(); $.ajax({ url: 'https://sgiff.com/wp-admin/admin-ajax.php', type: 'post', data: { action: 'custom_reset_password', reg_email: reg_email, }, success: function(data) { //console.log('what'); var modifiedData = data.slice(0, -1); $('.c__fpReturn').css('display','block'); if (modifiedData == 'invalid') { $('.c__fpReturn').css('display','block').text('Something wend wrong! Check your email'); } else { // console.log(modifiedData); $('.c__forgetpassword,.reset_form_wrap').css('display','none'); } }, error: function(data) { $('.c__fpReturn').html('Something was wrong!'); } }); } }); $('.lost_confirm').on('click', function(e) { e.preventDefault(); // Your custom logic here var validate = true; var $form = $(this); // Example: Perform form validation $(".update-password-form .form-row").each(function() { var $elm = $(this); var required = $elm.data("required"); if (required) { if (!validateElm($elm)) { validate = false; } } }); //validate = false; if (validate) { user_id = $('#reset_user').val(); password_2 = $('#update-password_2').val(); $.ajax({ url: 'https://sgiff.com/wp-admin/admin-ajax.php', type: 'post', data: { action: 'custom_update_password', user_id: user_id, password_2: password_2 }, success: function(data) { var modifiedData = data.slice(0, -1); //console.log(modifiedData); if (data == 'changed') { window.location.href = '/festival-schedule/'; }else if(data == 'feSche'){ window.location.href = '/my-schedule/'; document.cookie = 'feSche=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; }else { $('.s_status p').text(data); } $('.update-form-wrap').css('display','none'); }, error: function(data) { $('.c__resetpassword').html('Something was wrong!'); } }); } }); $('.u__iconbookmark').on('click', function(e) { e.preventDefault(); // Your custom logic here //pId = $('#id_bookmark0').val(); //wId = $('#id_bookmark1').val(); pId = $(this).attr('pId'); wId = $(this).attr('wpId'); var $checkbox = $(this).closest('.s_bookmark').find('input[type="checkbox"]'); if(wId == 0){ $('.c__schedulepop').removeClass('hidden'); }else{ $.ajax({ url: 'https://sgiff.com/wp-admin/admin-ajax.php', type: 'post', data: { action: 'update_bookmark_screen_time', pId: pId, wpId: wId }, success: function(data) { //console.log('what'); var modifiedData = data.slice(0, -1); if (window.location.pathname === '/my-schedule/') { // Reload the page location.reload(); } if(data == 'added'){ $checkbox.prop('checked', true); }else if(data == 'deleted'){ $checkbox.prop('checked', false); } window.location.href = '/my-schedule'; }, error: function(data) { //$('.c__register').html('Something was wrong!'); } }); } }); $('.remove_action').on('click', function(e) { e.preventDefault(); // Your custom logic here pId = $(this).attr('pid'); wId = $(this).attr('wpid'); var $tr = $(this).closest('tr'); $.ajax({ url: 'https://sgiff.com/wp-admin/admin-ajax.php', type: 'post', data: { action: 'delete_bookmark_screen_time', pId: pId, wpId: wId }, success: function(data) { //console.log('what'); var modifiedData = data.slice(0, -1); //console.log(modifiedData); //location.reload(); $tr.remove(); //$('.c__resetpassword').text(modifiedData); }, error: function(data) { //$('.c__register').html('Something was wrong!'); } }); }); $('.login-feSc').on('click',function(){ var expirationDate = new Date(); expirationDate.setTime(expirationDate.getTime() + (1 * 60 * 60 * 1000)); document.cookie = "feSche=true; expires=" + expirationDate.toUTCString() + "; path=/"; location.replace("/login"); }); $('.s_logout button').on('click',function(){ event.preventDefault(); $.ajax({ type: 'POST', url: 'https://sgiff.com/wp-admin/admin-ajax.php', data: { action: 'custom_logout' // Use your custom action name }, success: function () { // Redirect or perform any other actions after successful logout window.location.href = '/'; // Replace with the URL you want to redirect to } }); }); if ($('.s_quicklinks').length > 0) { // If it exists, add the .v_fixedside class to main.p__page $('main.p__page').addClass('v_fixedside'); $('.c__accordioncontent:first').before('<section class="u__wrapper"><div>'); $('.c__accordioncontent').appendTo($('.u__wrapper div')); var accordionSections = $('.c__accordioncontent'); // Select the .s_quicklinks ul var quickLinksUl = $('.s_quicklinks ul'); // Loop through each .c__accordioncontent section accordionSections.each(function(index) { $(this).attr('id', 'c__accordioncontent' + index); var h2Text = $(this).find('h2').text(); // Get the text from the h2 element // Create a new list item with a link var listItem = $('<li><a href="#c__accordioncontent' + index + '">' + h2Text + '</a></li>'); // Append the list item to the .s_quicklinks ul quickLinksUl.append(listItem); }); $(".c__pagetitle .s_quicklinks ul > li:first-child a").addClass('v_active') $(".c__pagetitle .s_quicklinks ul > li a").on("click", function (e) { e.preventDefault(); var $this = $(this); $(".c__pagetitle .s_quicklinks ul > li a").removeClass("v_active"); $this.addClass("v_active"); var targetSectionId = $this.attr("href"); var $targetSection = $(targetSectionId); }); $(".c__pagetitle .s_quicklinks ul > li a").on("click", function (e) { e.preventDefault(); var $this = $(this); var index = $this.parent().index(); var $elm = $(".c__pagetitle + .u__wrapper .c__accordioncontent").eq(index); setTimeout(function () { $(".c__pagetitle .s_quicklinks ul > li a").removeClass("v_active"); $this.addClass("v_active"); }, 300); if ($(window).outerWidth() < 728) { $("html, body") .stop() .animate( { scrollTop: $elm.offset().top - (70 + 87 + 75) }, 500, function () { } ); } else { $("html, body") .stop() .animate( { scrollTop: $elm.offset().top - (70 + (index > 0 ? -28 : 0) + 75), }, 500, function () { } ); } }); const links = document.querySelectorAll('.c__pagetitle .s_quicklinks ul > li a[href^="#"]'); const titles = []; for (const link of links) { link.addEventListener('click', function () { highlight(link); }) const url = new URL(link.href); const dom = document.querySelector(url.hash); if (dom) { titles.push(dom) } } const scrollHandler = function () { const range = [0, 300]; const rects = titles.map((title) => title.getBoundingClientRect()); for (let i = 0; i < titles.length; i++) { const title = titles[i]; const rect = rects[i]; if (rect.top >= range[0] && rect.top <= range[1]) { highlight(title.id); // console.log(title.id); // updateLabelText(title.id); // break; } if (rect.top < range[0] && rects[i + 1] && rects[i + 1].top >= document.documentElement.clientHeight) { highlight(title.id); // updateLabelText(title.id); // break; } } } window.addEventListener('scroll', scrollHandler) } function debounce(fn, delay) { let timeout; return function () { clearTimeout(timeout) timeout = setTimeout(() => { fn.apply(this, arguments); }, delay) } } function highlight(id) { document .querySelectorAll('a.v_active') .forEach((a) => a.classList.remove('v_active')); if (id instanceof HTMLElement) { id.classList.add('v_active'); return; } if (id.startsWith('#')) { id = id.substring(1); } document.querySelector(`a[href="#${id}"]`).classList.add('v_active'); // updateLabelText(id); } var noImage = false; $('.c__profiles:not(.v_noheader) .s_profile').each(function() { if (!$(this).find('figure').length) { noImage = true; } }); if (noImage) { $('.c__profiles').addClass('v_noimage'); } $('.c__profiles.v_noheader').removeClass('v_noimage'); $('.s_accordion').each(function(index) { $(this).find('input').attr('id','id_accordioncontent'+index); $(this).find('label').attr('for','id_accordioncontent'+index); }); $(document).on("click", ".poster-image,.play-button", function () { $(".poster-image,.play-button").addClass("active"); var iframe = $("iframe"); var currentSrc = iframe.attr("src"); var newSrc = currentSrc + (currentSrc.includes("?") ? "&" : "?") + "autoplay=1"; iframe.attr("src", newSrc); }); }); jQuery(document).ready(function($) { const htmlbody = document.querySelector('html'); var isOpen = false; $('#id_hamburger').click(function () { if (isOpen) { isOpen = false; htmlbody.classList.remove('v_noscroll'); } else { isOpen = true; htmlbody.classList.add('v_noscroll'); } }); var res = $(".c__navigation .s_sublinks").val(); if ($(window).width() >= 820) { if (!res) { $(".c__navigation .s_sublinks:first-child input").prop("checked", true); $(".c__navigation .s_sublinks input").attr({ type: "radio", name: "id_radio", }); } } }); </script> <script> var swiper = new Swiper(".c__footerlogos .s_footerlogos", { slidesPerView: "auto", loop: true, autoplay: { delay: 1000, pauseOnMouseEnter: true, }, pagination: { el: ".c__footerlogos .swiper-pagination", }, }); var footerLogos = document.querySelector(".c__footerlogos .s_footerlogos"); footerLogos.addEventListener("mouseenter", function () { swiper.autoplay.stop(); }); footerLogos.addEventListener("mouseleave", function () { swiper.autoplay.start(); }); jQuery(document).ready(function($) { $('.s_accordion > input[type="checkbox"]').change(function() { // Find the associated label for the checkbox that was changed var label = $('label[for="' + $(this).attr('id') + '"].s_readmore'); // Only change the label text if it exists if (label.length) { // Change text based on the checkbox state if ($(this).is(':checked')) { label.html('Read Less <span></span>'); } else { label.html('Read More <span></span>'); } } }); }); </script> </body> </html> <script> jQuery(document).ready(function($) { function getProducts() { //console.log('get products'); let obj = {}; $.ajax({ method:'POST', url:'/ticketing-api/api/sistic/', data:{ api:'getproducts', options:JSON.stringify(obj) }, dataType:'json' }) .done(function(json) { //console.log(json); if (json['status'] == 200) { $('.c__screeningtimes .s_screening').each(function(index) { let $this = $(this); let pid = $this.data('pid'); let screeningid = $this.data('screeningid'); let price = parseFloat($this.data('price').toFixed(2)); let $ticketing = $this.find('.s_purchasetickets'); let productList = json['data']; for (let i = 0; i < productList.length; i++) { if (productList[i]['productId'] == pid) { let html = ''; if (productList[i]['availabilityStatus'] >= 17 && productList[i]['availabilityStatus'] <= 19) { html += '<input type="checkbox" id="id_checkbox_' + pid + '">'; html += '<label class="u__primarybtn" for="id_checkbox_' + pid + '">'; html += '<a>Purchase Tickets</a>'; html += '</label>'; html += '<div class="s_ticket">'; html += '<div class="s_row v_label">'; html += '<label>TICKET TYPE</label>'; html += '<label>QTY</label>'; html += '</div>'; html += '<div class="s_row v_type" data-type="0">'; html += '<p>Adult - $' + parseFloat(price).toFixed(2) + '</p>'; html += '<div class="s_qty" data-pid="' + pid + '" data-screeningid="' + screeningid + '" data-type="0" data-max="10">'; html += '<button type="button" class="js_minusbtn s_minus"></button>'; html += '<button type="button" class="js_addbtn s_add"></button>'; html += '<input type="text" class="js_qty" value="0" disabled>'; html += '</div>'; html += '</div>'; if (price != '20') { let concessionprice = price == '25.00' ? '24.00':'14.50'; html += '<div class="s_row v_type" data-type="1">'; html += '<p>Student/NSMen/Senior - $' + parseFloat(concessionprice).toFixed(2) + '</p>'; html += '<div class="s_qty" data-pid="' + pid + '" data-screeningid="' + screeningid + '" data-type="1" data-max="10">'; html += '<button type="button" class="js_minusbtn s_minus"></button>'; html += '<button type="button" class="js_addbtn s_add"></button>'; html += '<input type="text" class="js_qty" value="0" disabled>'; html += '</div>'; html += '</div>'; } html += '<div class="u__primarybtn">'; html += '<a href="#" class="js_addtocart" data-pid="' + pid + '" data-screeningid="' + screeningid + '">Add to Cart</a>'; html += '</div>'; html += '</div>'; } else { html += '<div class="u__primarybtn v_disabled">'; html += '<a>Sold out</a>'; html += '</div>'; } $ticketing.append(html); break; } } }); } else { // show error in booking engine //showError(); } }); } $('.c__screeningtimes .s_screening').on('click', '.js_addbtn', function() { let $this = $(this); addToLocalCart($this, 1); }); $('.c__screeningtimes .s_screening').on('click', '.js_minusbtn', function() { let $this = $(this); if (parseInt($this.siblings('input').val()) > 0) { addToLocalCart($this, -1); } }); let addingtocart = false; $('.c__screeningtimes .s_screening').on('click', '.js_addtocart', function(e) { e.preventDefault(); let $this = $(this); let pid = $this.data('pid'); let screeningid = $this.data('screeningid'); let $type = $this.parent().parent().find('.s_row.v_type'); let localcart = []; let total_qty = 0; localcart.push({ pid: pid, screeningid: screeningid, tickets: [ { type: 'standard', qty: 0, }, { type: 'concession', qty: 0, } ] }); $type.each(function(index) { let $elm = $(this); //console.log(index); //console.log($elm.find('.s_qty > input').val()); localcart[0]['tickets'][index]['qty'] = parseInt($elm.find('.s_qty > input').val()); total_qty += localcart[0]['tickets'][index]['qty']; }); if (!addingtocart && total_qty > 0) { addingtocart = true; $this.parent().addClass('v_disabled'); $('.js_addbtn').prop('disabled', true); $('.js_minusbtn').prop('disabled', true); let obj = { cart:localcart[0], pid:pid }; $.ajax({ method:'POST', url:'https://sgiff.com/ticketing-api/api/sistic/', data:{ api:'addscreening', options:JSON.stringify(obj) }, dataType:'json' }) .done(function(json) { //console.log(json); if (json['status'] == 200) { addingtocart = false; $('.js_addtocart').parent().removeClass('v_disabled'); $('.js_addbtn').prop('disabled', false); $('.js_minusbtn').prop('disabled', false); $type.each(function(index) { let $elm = $(this); $elm.find('.s_qty > input').val(0); }); $('.js_cart').addClass('v_active'); alert('Successfully added to cart.'); } else { // show error in booking engine //showError(); } }); } }); function addToLocalCart($elm, count) { //console.log('addToLocalCart'); let pid = $elm.parent().data('pid'); let max_qty = $elm.parent().data('max'); let ticket_type = $elm.parent().data('type'); let qty = parseInt($elm.siblings('input').val()) + count; if (qty > max_qty) { qty = max_qty; } else if (qty < 0) { qty = 0; } $elm.siblings('input').val(qty); } getProducts(); }); </script>