CINXE.COM
Board & Committee Members - 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>Board & Committee Members - SGIFF</title> <meta name="robots" content="max-image-preview:large" /> <link rel="canonical" href="https://sgiff.com/board-committee-members/" /> <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="Board & Committee Members - SGIFF" /> <meta property="og:url" content="https://sgiff.com/board-committee-members/" /> <meta property="article:published_time" content="2023-10-19T11:57:14+00:00" /> <meta property="article:modified_time" content="2024-11-04T11:04:37+00:00" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Board & Committee Members - SGIFF" /> <script type="application/ld+json" class="aioseo-schema"> {"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/sgiff.com\/board-committee-members\/#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\/board-committee-members\/#listItem"},{"@type":"ListItem","@id":"https:\/\/sgiff.com\/board-committee-members\/#listItem","position":2,"item":{"@type":"WebPage","@id":"https:\/\/sgiff.com\/board-committee-members\/","name":"Board & Committee Members","url":"https:\/\/sgiff.com\/board-committee-members\/"},"previousItem":"https:\/\/sgiff.com\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/sgiff.com\/#organization","name":"Singapore International Film Festival","url":"https:\/\/sgiff.com\/"},{"@type":"WebPage","@id":"https:\/\/sgiff.com\/board-committee-members\/#webpage","url":"https:\/\/sgiff.com\/board-committee-members\/","name":"Board & Committee Members - SGIFF","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/sgiff.com\/#website"},"breadcrumb":{"@id":"https:\/\/sgiff.com\/board-committee-members\/#breadcrumblist"},"datePublished":"2023-10-19T11:57:14+08:00","dateModified":"2024-11-04T11:04:37+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/pages/1743" /> <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__page"> <div> <section class="c__pagetitle"> <div> <div class="s_header"> <h1>Board & Committee Members</h1> </div> </div> </section> <section class="c__profiles"> <div> <div class="s_header"><h3>Board Members</h3></div> <div class="s_profiles"> <div class="s_profile clearfix"> <div class="s_name v_featured"> <p>Boo Junfeng</p> <div class="s_title"> <p> Chairperson </p> </div> </div> <div class="s_bio"> <p>Boo Junfeng’s debut film, <em>Sandcastle</em> (2010) was the first Singapore film invited to Cannes Critics’ Week. His second feature, <em>Apprentice</em> (2016) premiered at Cannes Un Certain Regard and was shown at more than 80 festivals around the world. It was also Singapore’s 2017 official entry for the Academy Awards Best Foreign Language Film category. He credits the Singapore International Film Festival for kickstarting his filmmaking career when it discovered his early short films such as <em>A Family Portrait</em> (2004), <em>Katong Fugue</em> (2007) and <em>Keluar Baris</em> (2008).</p> </div> </div> <div class="s_profile clearfix"> <div class="s_name v_featured"> <p>Loh Ji Kin</p> <div class="s_title"> <p> Treasurer </p> </div> </div> <div class="s_bio"> <p>Ji Kin has over 25 years of audit experience, and currently heads the Assurance department in CLA Global TS (formerly Nexia TS Public Accounting Corporation), one of the top 10 public accounting firms in Singapore. Prior to joining CLA Global TS, he spent almost 15 years with one of the big four international accounting firms in Singapore.</p> <p> </p> <p>In his current role, Ji Kin assists the Group CEO of CLA Global TS in managing at both the firm and department operations level, overseeing over 100 professional staff. He also serves as engagement partner for the audit clients of CLA Global TS, which includes a spectrum of publicly listed and private clients spanning various industries, as well as some not-for-profit organisations. He previously served as a member of the ISCA Financial Reporting Committee.</p> </div> </div> <div class="s_profile clearfix"> <div class="s_name v_featured"> <p>Han Min Li</p> </div> <div class="s_bio"> <p>Minli runs the independent chain of cinemas, Filmgarde, which was the first multiplex in Southeast Asia to be entirely fitted with the immersive 3D sound technology AuroMax by Barco and the first cinema chain in Singapore to make all its communication platforms including its website, ticketing portal, self-automated kiosks and APP available in dual languages – English and Chinese.</p> <p> </p> <p>She has a deep interest in the arts and culture, supporting and engaging in various intercultural initiatives and programmes around the region. She holds a M.Sc. in Political Science and is at present pursuing a doctorate in Cultural Studies in her personal time. She is currently a board member of the Singapore International Film Festival and the Asian Film Archive.</p> </div> </div> <div class="s_profile clearfix"> <div class="s_name v_featured"> <p>Winifred Loh</p> </div> <div class="s_bio"> <p>Winifred held senior leadership positions in business partner, HR generalist, and learning & organization development functions across a 25-year career in publicly listed companies globally and regionally. In the non-profit arena, she helmed the Centre of Non-Profit Leadership for 3.5 years, the consulting arm of National Volunteer and Philanthropy Centre that works with Boards on leadership and governance matters. She was also AWARE President from 2012 – 2016.</p> <p> </p> <p>She has served on ecumenical juries for film festivals in Hong Kong, Iran, Bangladesh, Berlin, and Argentina, and founded the community-led Cana Film Festival, Singapore.</p> </div> </div> <div class="s_profile clearfix"> <div class="s_name v_featured"> <p>Janice Koh</p> </div> <div class="s_bio"> <p><span class="il">Janice</span> <span class="il">Koh</span> is a celebrated Singaporean actress with over 30 years of stage and screen acting experience. She has participated in international co-productions that have toured to festivals and performing venues worldwide, including Paris, Tokyo, Berlin, and Edinburgh.</p> <p> </p> <p>A former Nominated Member of Parliament, <span class="il">Janice</span> currently co-chairs the board of Wild Rice and is a co-founder of Pasar Glamour, a nonprofit social enterprise that supports the arts and underprivileged children and women. In 2022, the French government honoured her with the title of Chevalier des Arts et des Lettres (Knight of the Arts and Letters) for her contributions to the arts.</p> </div> </div> <div class="s_profile clearfix"> <div class="s_name v_featured"> <p>Jacqueline Tan</p> </div> <div class="s_bio"> <p>Jacqueline Tan is the Chief Executive Office of Singapore Cruise Centre. She was most recently the Assistant Chief Executive of Sentosa Development Corporation (SDC). Prior to that she was Chief Operating Officer of the Economic Development Innovations Singapore (EDIS) and the Deputy General Manager of Lucasfilm Singapore. She started her career with EDB and her last appointment with them was Director, Infocomms & Media division.</p> <p> </p> <p>Jacqueline also sits on the Advisory Committee of World Vision Singapore since 2019. World Vision Singapore She is also in the Management Committee and currently the Honorary Secretary of Good News Community Services which has a Family Service Centre as well as homeless shelters under its oversight. She has been in GNCS since 2009.</p> </div> </div> <div class="s_profile clearfix"> <div class="s_name v_featured"> <p>Yvonne Tham</p> </div> <div class="s_bio"> <p>Yvonne is the Chief Executive Officer of The Esplanade Company Ltd where she is responsible for the overall management and programming direction of Esplanade – Theatres on the Bay. Yvonne was the Assistant CEO of Esplanade from 2014 – 2018. Prior to joining the Esplanade in June 2014, Yvonne was the Deputy Chief Executive Officer at the National Arts Council (2010 – 2014). Yvonne had also worked at the Ministry of Manpower as the Assistant Director for Labour Relations and Welfare and had taught literature at the Raffles Junior College.</p> <p> </p> <p>Yvonne serves on the Board of the Nanyang Academy of Fine Arts (NAFA) and SISTIC.com Pte Ltd. She is a member of the Association of Asia Pacific Performing Arts Centres’ Council, Urban Redevelopment Authority’s Heritage and Identity Partnership (HIP) and Info-comm Media Development Authority’s Singapore Film Commission (SFC) Advisory Committee.</p> </div> </div> <div class="s_profile clearfix"> <div class="s_name v_featured"> <p>Teh Su Ching</p> </div> <div class="s_bio"> <p>Purple Tree Content teaches and mentors aspiring filmmakers, produces content ranging from podcasts, branded stories and film. Su started her film career at the age of 15, acting in feature-length film Chicken Rice War (2000), which won the 2001 Discovery Award at the TIFF. As an undergraduate, Su acted in, stage-managed, wrote and produced theatre and film and worked for (((the artists den))), Atlantic Records in New York City, and Warner Films (HG) China. After graduating from Yale, Su was a broadcast journalist for Hong Kong’s Asia Television’s English News Division and was the Hong Kong correspondent for The Straits Times, Singapore. Su has been a staff writer on Mediacorp, HBO Asia and Netflix shows in English and Chinese.</p> <p> </p> <p>Su has a degree in Literature and Theatre Studies from Yale University and an MFA in Dramatic Writing from NYU’s Tisch School of the Arts. She is a published poet and essayist, a trained vinyasa yoga instructor, and a mother of two. Her work has been staged and screened in Telluride, Glasgow, Moscow, Shanghai, Tokyo, London and New York.</p> <p> </p> <p>Her interdisciplinary background gives her a unique perspective and holistic approach to developing content.</p> </div> </div> </div> </div> </section> <section class="c__pagetitle"> <div> <div class="s_header"> </div> </div> </section> <section class="c__profileswriteup"> <div> <div class="s_header"> <h3>Committees</h3> </div> <div class="s_profiles v_columns"> <div class="s_profile clearfix"> <div class="s_content"> <div class="s_label"> <h4>Fundraising & Sponsorship Committee</h4> </div> <div class="s_info"> <ul> <li>Boo Junfeng</li> <li>Jacqueline Tan</li> <li>Teh Su Ching</li> </ul> </div> </div> </div> <div class="s_profile clearfix"> <div class="s_content"> <div class="s_label"> <h4>Leadership & Governance Committee</h4> </div> <div class="s_info"> <ul> <li>Winifred Loh | Chair</li> <li>Loh Ji Kin</li> </ul> </div> </div> </div> <div class="s_profile clearfix"> <div class="s_content"> <div class="s_label"> <h4>Programmes & Services Committee</h4> </div> <div class="s_info"> <ul> <li>Boo Junfeng</li> <li>Jasmine Ng</li> </ul> </div> </div> </div> <div class="s_profile clearfix"> <div class="s_content"> <div class="s_label"> <h4>Human Resources Committee</h4> </div> <div class="s_info"> <ul> <li>Yvonne Tham | Chair</li> <li>Eugene Chang</li> <li>Kenneth Kwok</li> <li>Richard Harding</li> </ul> </div> </div> </div> <div class="s_profile clearfix"> <div class="s_content"> <div class="s_label"> <h4>Audit Committee</h4> </div> <div class="s_info"> <ul> <li>Han Minli | Chair</li> <li>Sharon Sng</li> </ul> </div> </div> </div> </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=1740152808&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>