CINXE.COM

The Unseen Sister - 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>The Unseen Sister - SGIFF</title> <meta name="robots" content="max-image-preview:large" /> <link rel="canonical" href="https://sgiff.com/film/the-unseen-sister/" /> <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="The Unseen Sister - SGIFF" /> <meta property="og:url" content="https://sgiff.com/film/the-unseen-sister/" /> <meta property="article:published_time" content="2024-10-22T07:25:37+00:00" /> <meta property="article:modified_time" content="2024-11-22T02:58:58+00:00" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="The Unseen Sister - SGIFF" /> <script type="application/ld+json" class="aioseo-schema"> {"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/sgiff.com\/film\/the-unseen-sister\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/sgiff.com\/#listItem","position":1,"item":{"@type":"WebPage","@id":"https:\/\/sgiff.com\/","name":"Home","description":"The 35th SGIFF will take place from 28 November to 8 December 2024. Browse our programme and buy tickets from 29 October.","url":"https:\/\/sgiff.com\/"},"nextItem":"https:\/\/sgiff.com\/film\/the-unseen-sister\/#listItem"},{"@type":"ListItem","@id":"https:\/\/sgiff.com\/film\/the-unseen-sister\/#listItem","position":2,"item":{"@type":"WebPage","@id":"https:\/\/sgiff.com\/film\/the-unseen-sister\/","name":"The Unseen Sister","url":"https:\/\/sgiff.com\/film\/the-unseen-sister\/"},"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\/the-unseen-sister\/#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\/the-unseen-sister\/#webpage","url":"https:\/\/sgiff.com\/film\/the-unseen-sister\/","name":"The Unseen Sister - SGIFF","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/sgiff.com\/#website"},"breadcrumb":{"@id":"https:\/\/sgiff.com\/film\/the-unseen-sister\/#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\/the-unseen-sister-filmstill-2024.jpg","@id":"https:\/\/sgiff.com\/film\/the-unseen-sister\/#mainImage","width":1600,"height":875},"primaryImageOfPage":{"@id":"https:\/\/sgiff.com\/film\/the-unseen-sister\/#mainImage"},"datePublished":"2024-10-22T07:25:37+08:00","dateModified":"2024-11-22T02:58:58+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-96e09f500705352889538366ffd09f39d9214b44.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/8059" /> <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">Festival</label> <div class="s_list v_desktopfull"> <ul> <li> <input type="checkbox" id="id_col_1_1"> <label for="id_col_1_1">Explore the Festival</label> <ul> <li> <a href="https://sgiff.com/wp-content/uploads/2024/11/35th-SGIFF-Festival-Guide_6Nov-1.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 &amp; 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_1_2"> <label for="id_col_1_2">Awards</label> <ul> <li> <a href="/about-silver-screen-awards/" target="">About Silver Screen Awards</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_1_3"> <label for="id_col_1_3">More Information</label> <ul> <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="/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> <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="/industry-days/" target="">SGIFF Industry Days</a> </li> <li> <a href="/asian-producers-network/" target="">Asian Producers Network</a> </li> <li> <a href="/sgiff-film-fund/" target="">SGIFF Film Fund</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">About Us</label> <div class="s_list v_desktopfull"> <ul> <li> <input type="checkbox" id="id_col_4_1"> <label for="id_col_4_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 &amp; 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_4_2"> <label for="id_col_4_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_4_3"> <label for="id_col_4_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_5" name="nav_radio"> <label for="id_col_5">Schedule</label> <div class="s_list "> <ul> <li> <input type="checkbox" id="id_col_5_1"> <label for="id_col_5_1"></label> <ul> <li> <a href="https://sgiff.com/wp-content/uploads/2024/11/35th-SGIFF_Screening-Schedule_8-Nov_online.pdf" target="_blank">Download Schedule</a> </li> </ul> </li> </ul> </div> </li> </ul> </nav> </div> <div class="s_buytickets"> <a href="https://sistic.com.sg/events/sgiff2024" target="_blank"><span></span>Buy Tickets</a> </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/foreground/"> Foreground </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="s_image"> <figure> <img src="https://sgiff.com/wp-content/uploads/2024/10/the-unseen-sister-filmstill-2024.jpg"> </figure> </div> </div> </section> <section class="u__wrapper v_filmdetail"> <div class="clearfix"> <section class="c__filmwriteup"> <div> <div class="s_writeup"> <h1>The Unseen Sister</h1> <div class="u__label"> <p>Southeast Asian Premiere</p> </div> <div class="s_info"> <p> <em>Midi Z</em> <em>China</em> <em>2024</em> <em>112 min</em> <em>NC16 (Some Coarse Language)</em> </p> </div> <div class="s_logline"><p>The past of a famous actress begins to haunt her when her estranged sister makes an unexpected return to her life.</p> </div> <p>Qiao Yan, raised in Yunnan Province, near the border of Myanmar, worked her way up to become a reputed actress. Status, fame and wealth—she seems to have it all. But beneath her glamorous exterior lies unresolved emotional entanglements and a hidden past. When she receives a blackmail text and her estranged sister makes an unexpected return, the life that Qiao Yan has carefully built over the years begins to crumble. Chaos ensues and she is forced to confront the unshakeable shadows of her past and choose what truly matters to her.</p> <input type="checkbox" id="id_readmore"> <div class="s_readmore"> <p>The film’s patient and unsettling unravel is bolstered by compelling performances from a stellar cast. An adaptation of Zhang Yueran’s novel, <em>The Unseen Sister</em> hauntingly portrays a sisterly bond shaped by distance and social disparities. It delves into how familial ties are tested under the weight of hidden wounds and unfortunate circumstances, while offering an introspective look at the complexities of love and estrangement, all marked by the regret of life’s choices.</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="8063" data-price="0"> <div class="u__label v_icon"> <p> <span class="u__iconqna"></span> Q&A with Filmmaker(s) </p> </div> <p>6 Dec, Fri 8:00PM / 112 min</p> <p>Golden Village VivoCity Max</p> <div class="s_purchasetickets"> </div> </div> <div class="s_screening" data-pid="" data-screeningid="10541" data-price="0"> <div class="u__label v_icon"> <p> <span class="u__iconqna"></span> Q&A with Filmmaker(s) </p> </div> <p>7 Dec, Sat 4:00PM / 112 min</p> <p>Golden Village Bugis+, Hall 8</p> <div class="s_purchasetickets"> </div> </div> </div> <div class="u__primarybtn v_fullwidth"> <a href="https://www.sistic.com.sg/events/sgiff2024" target="_blank">Buy Tickets</a> </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 to 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>The Unseen Sister</p> </div> <div class="s_row"> <label>Original Title</label> <p>乔妍的心事</p> </div> <div class="s_row"> <label>Director</label> <p>Midi Z</p> </div> <div class="s_row"> <label>Country</label> <p>China</p> </div> <div class="s_row"> <label>Year</label> <p>2024</p> </div> <div class="s_row"> <label>Language(s)</label> <p>Mandarin, Yunnan dialect</p> </div> <div class="s_row"> <label>Subtitle(s)</label> <p>English</p> </div> <div class="s_row"> <label>Runtime</label> <p>112 min</p> </div> <div class="s_row"> <label>Advisory</label> <p>NC16 (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/the-unseen-sister-midi-z-directorimg-2024.jpg"> </figure> <div class="s_name"> <label>DIRECTOR</label> <p>Midi Z</p> </div> </div> <div class="s_bio"> <p>Born in Myanmar, <strong>Midi Z</strong> has made a diverse repertoire of films. His narrative features include<em> Return to Burma</em> (2011), <em>Ice Poison</em> (2014), <em>The Road to Mandalay</em> (2016) and <em>Nina Wu</em> (2019), which premiered in Cannes’ Un Certain Regard and was screened at the 30th SGIFF. His documentary films include <em>Jade Miners</em> (2015),<em> 14 Apples</em> (2018) and<em> The Clinic</em> (2023), which premiered at IDFA.</p> </div> </div> <div class="s_infocolumn"> <div class="s_row"> <label>Producer</label> <p>Yun Fei,<br /> Ma Ning,<br /> Hou Xiaolu</p> </div> <div class="s_row"> <label>Cast</label> <p>Zhao Liying,<br /> Xin Zhilei,<br /> Huang Jue</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/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/where-are-you-jafar-panahi/"> <figure> <img width="1024" height="560" src="https://sgiff.com/wp-content/uploads/2024/10/where-are-you-jafar-panahi-filmstill-2024-1024x560.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://sgiff.com/wp-content/uploads/2024/10/where-are-you-jafar-panahi-filmstill-2024-1024x560.jpg 1024w, https://sgiff.com/wp-content/uploads/2024/10/where-are-you-jafar-panahi-filmstill-2024-300x164.jpg 300w, https://sgiff.com/wp-content/uploads/2024/10/where-are-you-jafar-panahi-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/where-are-you-jafar-panahi/">Where Are You, Jafar Panahi?</a></h3> <a href="https://sgiff.com/film/where-are-you-jafar-panahi/"><p>Jafar Panahi / Iran / 21 min / PG13 (Some Mature Content)</p></a> </div> </div> </div> <div class="swiper-slide s_item"> <a href="https://sgiff.com/film/this-is-not-a-film/"> <figure> <img width="1024" height="560" src="https://sgiff.com/wp-content/uploads/2024/10/this-is-not-a-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/this-is-not-a-film-filmstill-2024-1024x560.jpg 1024w, https://sgiff.com/wp-content/uploads/2024/10/this-is-not-a-film-filmstill-2024-300x164.jpg 300w, https://sgiff.com/wp-content/uploads/2024/10/this-is-not-a-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 Double Bill</a></label> <h3><a href="https://sgiff.com/film/this-is-not-a-film/">This Is Not A Film</a></h3> <a href="https://sgiff.com/film/this-is-not-a-film/"><p>Jafar Panahi, Mojtaba Mirtahmasb / Iran / 76 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>Social Issues</li><li>Women-Centred Stories</li> <li>Drama</li><li>Romance</li><li>Suspense</li> <li>Foreground</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&amp;id=f0d8f7922a&amp;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&amp;utm_medium=cpc&amp;utm_campaign=ppc-ibi-mar-goo-sg-en-sg-exa-sear-sg&amp;utm_term=mar&amp;utm_content=sg-en-SG-V5579&amp;gad_source=1&amp;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">Festival<span class="u__iconarrowup"></span></label> <ul> <li> <a href="https://sgiff.com/wp-content/uploads/2024/11/35th-SGIFF-Festival-Guide_6Nov-1.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 &amp; Events </a> </li> <li> <a href="/festival-ambassador/"> Festival Ambassador </a> </li> <li> <a href="/festival-passes/"> Festival Passes </a> </li> <li> <a href="/ticketing/"> Ticketing </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> <div class="s_nav"> <input type="checkbox" id="id_nav1" checked> <label for="id_nav1">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 &amp; 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_nav2" checked> <label for="id_nav2">SGIFF Pro<span class="u__iconarrowup"></span></label> <ul> <li> <a href="/sgiff-pro/"> About SGIFF Pro </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="/sgiff-film-fund/"> SGIFF Film Fund </a> </li> <li> <a href="/film-academy-alumni/"> Film Academy Alumni </a> </li> </ul> </div> <div class="s_nav"> <input type="checkbox" id="id_nav3" checked> <label for="id_nav3">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> </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=1732375216&amp;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>

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