1<!doctype html> 2<html lang="fr-FR"> 3 4<head> 5 <meta charset="UTF-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 <link rel="profile" href="https://gmpg.org/xfn/11" /> 8 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 9 <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> 10 11 <!-- This site is optimized with the Yoast SEO plugin v27.9 - https://yoast.com/product/yoast-seo-wordpress/ --> 12 <title>EARLY BIRD - GIFF - Geneva International Film Festival</title> 13 <meta name="description" content="Le Festival International du Film de Genève (GIFF) célèbre sa 32e édition avec un programme exceptionnel qui repousse les limites de lâexpérience" /> 14 <link rel="canonical" href="https://www.giff.ch/early-bird/" /> 15 <meta property="og:locale" content="fr_FR" /> 16 <meta property="og:type" content="article" /> 17 <meta property="og:title" content="EARLY BIRD - GIFF - Geneva International Film Festival" /> 18 <meta property="og:description" content="Le Festival International du Film de Genève (GIFF) célèbre sa 32e édition avec un programme exceptionnel qui repousse les limites de lâexpérience" /> 19 <meta property="og:url" content="https://www.giff.ch/early-bird/" /> 20 <meta property="og:site_name" content="GIFF - Geneva International Film Festival" /> 21 <meta property="article:publisher" content="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" /> 22 <meta property="article:modified_time" content="2026-08-31T13:41:58+00:00" /> 23 <meta property="og:image" content="https://www.giff.ch/wp-content/uploads/2026/08/light_BANNER-EARLY-BIRD-FR.webp" /> 24 <meta property="og:image:width" content="880" /> 25 <meta property="og:image:height" content="328" /> 26 <meta property="og:image:type" content="image/webp" /> 27 <meta name="twitter:card" content="summary_large_image" /> 28 <meta name="twitter:site" content="@GIFF_ch" /> 29 <meta name="twitter:label1" content="Durée de lecture estimée" /> 30 <meta name="twitter:data1" content="1 minute" /> 31
31<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.giff.ch\/early-bird\/","url":"https:\/\/www.giff.ch\/early-bird\/","name":"EARLY BIRD - GIFF - Geneva International Film Festival","isPartOf":{"@id":"https:\/\/www.giff.ch\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.giff.ch\/early-bird\/#primaryimage"},"image":{"@id":"https:\/\/www.giff.ch\/early-bird\/#primaryimage"},"thumbnailUrl":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/08\/light_BANNER-EARLY-BIRD-FR.webp","datePublished":"2023-08-21T12:52:03+00:00","dateModified":"2026-08-31T13:41:58+00:00","description":"Le Festival International du Film de Genève (GIFF) célèbre sa 32e édition avec un programme exceptionnel qui repousse les limites de lâexpérience","breadcrumb":{"@id":"https:\/\/www.giff.ch\/early-bird\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.giff.ch\/early-bird\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.giff.ch\/early-bird\/#primaryimage","url":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/08\/light_BANNER-EARLY-BIRD-FR.webp","contentUrl":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/08\/light_BANNER-EARLY-BIRD-FR.webp","width":880,"height":328},{"@type":"BreadcrumbList","@id":"https:\/\/www.giff.ch\/early-bird\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.giff.ch\/"},{"@type":"ListItem","position":2,"name":"EARLY BIRD"}]},{"@type":"WebSite","@id":"https:\/\/www.giff.ch\/#website","url":"https:\/\/www.giff.ch\/","name":"GIFF - Geneva International Film Festival","description":"GIFF is an international film festival in Geneva. It offers films, series, interactive installations and virtual reality works.","publisher":{"@id":"https:\/\/www.giff.ch\/#organization"},"alternateName":"GIFF","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.giff.ch\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.giff.ch\/#organization","name":"GIFF - Geneva International Film Festival","alternateName":"GIFF","url":"https:\/\/www.giff.ch\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.giff.ch\/#\/schema\/logo\/image\/","url":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/06\/favion_2026.webp","contentUrl":"https:\/\/www.giff.ch\/wp-content\/uploads\/2026\/06\/favion_2026.webp","width":512,"height":512,"caption":"GIFF - Geneva International Film Festival"},"image":{"@id":"https:\/\/www.giff.ch\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/GenevaInternationalFilmFestivalGIFF\/","https:\/\/x.com\/GIFF_ch","https:\/\/www.instagram.com\/giff.ch"]}]}</script>
31 32 <!-- / Yoast SEO plugin. --> 33 34 35<link rel='dns-prefetch' href='//www.youtube.com' /> 36<link rel='dns-prefetch' href='//player.vimeo.com' /> 37 38<style id='classic-theme-styles-inline-css'> 39/*! This file is auto-generated */ 40.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 41</style> 42<style id='global-styles-inline-css'> 43:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
43--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
43.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 44:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 45:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 46:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 47</style> 48<link rel='stylesheet' id='tkt-main-css-css' href='https://www.giff.ch/wp-content/plugins/ticketack/front/build/main.css?v=2.112.0.202609151713&ver=6.8.10' media='all' /> 49<link data-minify="1" rel='stylesheet' id='tkt-override-css-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/tkt_override.css?ver=1790258750' media='all' /> 50<link data-minify="1" rel='stylesheet' id='bootstrap-icons-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/vendors/icons-1.11.2/font/bootstrap-icons.css?ver=1790258750' media='all' /> 51<link data-minify="1" rel='stylesheet' id='add-to-calendar-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/vendors/add-to-calendar.css?ver=1790258750' media='all' /> 52<link data-minify="1" rel='stylesheet' id='theme-style-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/style.css?ver=1790258750' media='all' /> 53<link data-minify="1" rel='stylesheet' id='main-style-css' href='https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/scss/main.css?ver=1790258750' media='all' />
54<script src="https://www.giff.ch/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 54
54
55<script src="https://www.giff.ch/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
vendor: 1 bytes, line 55
55
56<script id="jquery-js-after"> 57window.tktjQuery=window.jQuery; 58</script>
vendor: 1 bytes, line 58
58
59<script src="https://www.youtube.com/player_api?ver=1" id="youtube-api-js"></script>
vendor: 1 bytes, line 59
59
60<script src="https://player.vimeo.com/api/player.js?ver=1" id="vimeo-api-js"></script>
60 61<meta name="generator" content="WPML ver:4.9.5 stt:1,4;" /> 62<link rel="icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-32x32.webp" sizes="32x32" /> 63<link rel="icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-192x192.webp" sizes="192x192" /> 64<link rel="apple-touch-icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-180x180.webp" /> 65<meta name="msapplication-TileImage" content="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-270x270.webp" /> 66 67 68
68<script> 69 window.dataLayer = window.dataLayer || []; 70 71 function gtag() { 72 dataLayer.push(arguments); 73 } 74 75 gtag("consent", "default", { 76 ad_storage: "granted", 77 analytics_storage: "granted", 78 functionality_storage: "granted", 79 personalization_storage: "granted", 80 security_storage: "granted", 81 wait_for_update: 2000, 82 }); 83 84 gtag("set", "ads_data_redaction", true); 85 gtag("set", "url_passthrough", true); 86 </script>
86 87 88
88<script>
vendor: 610 bytes, lines 88-102
88 89 (function(w, d, s, l, i) { 90 w[l] = w[l] || []; 91 w[l].push({ 92 'gtm.start': new Date().getTime(), 93 event: 'gtm.js' 94 }); 95 var f = d.getElementsByTagName(s)[0], 96 j = d.createElement(s), 97 dl = l != 'dataLayer' ? '&l=' + l : ''; 98 j.async = true; 99 j.src = 100 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 101 f.parentNode.insertBefore(j, f); 102 })(window, document, 'script', 'dataLayer', '
102GTM-M39VPWR
vendor: 12 bytes, lines 102-103
102'); 103
103</script>
103 104 105 106
106<script data-minify="1" id="cookieyes" type="text/javascript" src="https://www.giff.ch/wp-content/cache/min/1/client_data/e4215d7636e2abac8801d8b8/script.js?ver=1790258750"></script>
106 107 108 109<meta name="generator" content="WP Rocket 3.23.3.3" data-wpr-features="wpr_minify_js wpr_minify_css wpr_cdn wpr_preload_links wpr_desktop" /></head> 110 111<body class="wp-singular page-template-default page page-id-48369 wp-custom-logo wp-embed-responsive wp-theme-giff intersaison body_tkt body_tkt_buy_pass"> 112 113 <!-- Google Tag Manager (noscript) -->
vendor: 89 bytes, lines 113-115
113 114 <noscript> 115 <iframe src="https://www.googletagmanager.com/ns.html?id=
115GTM-M39VPWR
vendor: 100 bytes, lines 115-117
115" height="0" width="0" style="display:none;visibility:hidden"></iframe> 116 </noscript> 117
117<!-- End Google Tag Manager (noscript) --> 118 119 <main data-rocket-location-hash="7819bae8a4e4a6445015e05b4452c8e0" id="main-container" class="container-fluid d-flex flex-column"> 120 121 <header data-rocket-location-hash="eeafa4747e848567be66b72d772955e0" id="main-nav" class="sticky-top is-selling is-nav-inter "> 122 123 <div data-rocket-location-hash="bfdcfb3a4df95076771f91cd6d04600e" id="heading-menu" class="d-flex h-100"> 124 125 <div id="main-nav-brand" class="my-auto me-auto"> 126 <a href="https://www.giff.ch" class="d-flex"> 127 <h1 class="brand-website"> 128 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="123" height="96" viewBox="0 0 123 96"> 129 <path d="M38.72-54.78c0-9.02-6.27-15.73-18.59-15.73C8.03-70.51,1.1-63.8,1.1-54.56v39.82C1.1-5.39,8.14,1.1,20.9,1.1c7.15,0,14.96-2.42,17.82-4.18v-37.4H19.91v12.1h1.1v18.26a2.148,2.148,0,0,1-.77.11c-1.43,0-1.43-1.1-1.43-2.53V-56.87c0-1.32,0-2.64,1.1-2.64s1.1,1.21,1.1,2.64v9.24H38.72ZM58.96,0V-69.3H41.25V0ZM79.53,0V-27.61H90.31V-42.02H79.53V-55H91.08V-69.3H61.82V0Zm31.24,0V-27.61h10.78V-42.02H110.77V-55h11.55V-69.3H93.06V0Z" transform="translate(0 82)" fill="#000000" /> 130 </svg> 131 </h1> 132 <div class="brand-sentence"> 133 <div> 134 32ND GENEVA 135 </div> 136 <div>INTERNATIONAL</div> 137 <div>FILM FESTIVAL</div> 138 <div>30.10-8.11.2026</div> 139 </div> 140 </a> 141 </div> 142 143 <div id="main-nav-links" class="m-auto d-none d-xl-flex"> 144 <button class="giff-primary-hover btn-sub-menu" onClick="openMenu(this, 'le_festival')"> 145 LE FESTIVAL </button> 146 <button class="gdm-primary-hover btn-sub-menu" onClick="openMenu(this, 'gdm')"> 147 Industrie </button> 148 <button class="giff-primary-hover btn-sub-menu" onClick="openMenu(this, 'agenda')"> 149 AGENDA </button> 150 <button class="giff-primary-hover btn-sub-menu" onClick="openMenu(this, 'relive')"> 151 Relive </button> 152 </div> 153 154 <div id="main-nav-sub-links" class="d-flex m-auto me-0"> 155 <a href="https://www.giff.ch/early-bird/" class="btn btn-link btn-infoToggle"> <i class="bi bi-lg bi-ticket-perforated"></i> <span class="h6 infoToggle"> 156 Early Bird </span> </a> 157 <a href="https://www.giff.ch/panier/" class="btn btn-link btn-infoToggle"> 158 <i class="bi bi-lg bi-cart3"></i> 159 <span class="h6 infoToggle"> 160 Panier </span> 161 <div class="tkt-wrapper" data-component="Cart/CartIcon"></div> 162 </a> 163 </div> 164 165 <div class="menu-lang m-auto mx-4 me-xl-auto "> 166 <a href="https://www.giff.ch/en/early-bird/" class="h3">EN</a> 167<span class="h3">|</span> 168 <span class="h3 text-primary">FR</span> 169 </div> 170 171 <button type="button" id="main-nav-toggler" class="nav-toggler btn btn-link d-xl-none" aria-label="Menu" data-menu-target="#main_menu-menu"> 172 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="68" height="48" viewBox="0 0 68 48"> 173 <rect width="68" height="8" y="0"/> 174 <rect width="68" height="8" y="20"/> 175 <rect width="68" height="8" y="40"/> 176</svg> </button> 177 178 </div> 179 180 <div data-rocket-location-hash="a90115167202f8b03a39689cef6ef69b" id="le_festival-menu" class="sub-menu d-none "><div class='py-2 d-flex justify-content-start justify-content-xl-center border-top' data-menu-id='root-menu'><div class='scroll-prog'><a href="https://www.giff.ch/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page menu-item-home"><span class='h2'>ACCUEIL</span></a></li> 181<button class="me-2 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children btn btn-menu btn-link" data-menuTarget="menu-46379"><span class='h2'>LE FESTIVAL<i class="bi bi-arrow-down-short ms-n1"></i></span></button></li> 182<a href="https://www.giff.ch/le-festival/partenaires/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>Partenaires</span></a></li> 183<button class="me-2 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children btn btn-menu btn-link" data-menuTarget="menu-37550"><span class='h2'>Archives<i class="bi bi-arrow-down-short ms-n1"></i></span></button></li> 184</div></div><div id='menu-46379' class='sub-sub-menu pt-2 pb-1 d-flex w-100 d-none'><a href="https://www.giff.ch/le-festival/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>à propos</span></a></li> 185<a href="https://www.giff.ch/le-festival/sections-et-prix/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>SECTIONS & PRIX 2026</span></a></li> 186<a href="https://www.giff.ch/le-festival/benevoles/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>Bénévoles</span></a></li> 187<a href="https://www.giff.ch/le-festival/equipe-et-fondation/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>ÃQUIPE & FONDATION</span></a></li> 188<a href="https://www.giff.ch/le-festival/xr-roadshow/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>XR ROADSHOW</span></a></li> 189<a href="https://www.giff.ch/le-festival/contacts/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>Contacts</span></a></li> 190</div><div id='menu-37550' class='sub-sub-menu pt-2 pb-1 d-flex w-100 d-none'><a href="https://www.giff.ch/le-festival/archives-2025/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2025</span></a></li> 191<a href="https://www.giff.ch/le-festival/archives-2024/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2024</span></a></li> 192<a href="https://www.giff.ch/le-festival/archives-2023/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2023</span></a></li> 193<a href="https://www.giff.ch/le-festival/archives-2022/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2022</span></a></li>
194<a href="https://www.giff.ch/le-festival/archives-2021/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2021</span></a></li> 195<a href="https://www.giff.ch/le-festival/archives-2020/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2020</span></a></li> 196<a href="https://www.giff.ch/le-festival/archives-2019/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h3'>2019</span></a></li> 197</div></div><div data-rocket-location-hash="775b0611ebe9529accff6ed27cc2e5b7" id="gdm-menu" class="sub-menu d-none "><div class='py-2 d-flex justify-content-start justify-content-xl-center border-top' data-menu-id='root-menu'><div class='scroll-prog'><a href="https://www.giff.ch/giff-pro/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>GIFF PRO</span></a></li> 198<a href="https://www.giff.ch/giff-pro/presse/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>Presse</span></a></li> 199<a href="https://www.giff.ch/giff-pro/accreditation/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>Accréditations</span></a></li> 200</div></div></div><div data-rocket-location-hash="31cc41595b5cd62148045b45764350fb" id="agenda-menu" class="sub-menu d-none "><div class='py-2 d-flex justify-content-start justify-content-xl-center border-top' data-menu-id='root-menu'><div class='scroll-prog'><a href="https://www.giff.ch/agenda/giff-unlimited/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>GIFF UNLIMITED</span></a></li> 201<a href="https://www.giff.ch/agenda/scolaire/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page"><span class='h2'>ACTIVITÃS SCOLAIRES AU FESTIVAL</span></a></li> 202</div></div></div><div data-rocket-location-hash="229cb03886ab6ba76856fcae496bacf7" id="relive-menu" class="sub-menu d-none "><div class='py-2 d-flex justify-content-start justify-content-xl-center border-top' data-menu-id='root-menu'><div class='scroll-prog'><a href="https://www.giff.ch/giff-tv/2026/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2026</span></a></li> 203<a href="https://www.giff.ch/giff-tv/2025/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2025</span></a></li> 204<a href="https://www.giff.ch/giff-tv/2024/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2024</span></a></li> 205<a href="https://www.giff.ch/giff-tv/2023/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2023</span></a></li> 206<a href="https://www.giff.ch/giff-tv/2022/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2022</span></a></li> 207<a href="https://www.giff.ch/giff-tv/2021/" class="me-4 menu-item menu-item-type-custom menu-item-object-custom"><span class='h2'>Relive 2021</span></a></li> 208</div></div></div></header> 209 210 211<div data-rocket-location-hash="3b13ab21a33218dc5596f091b52a7827" class="offcanvas offcanvas-end" tabindex="-1" id="menu-nav-mobile" aria-labelledby="menu-nav-label"> 212 <div data-rocket-location-hash="05a8172e4bf545ac9374aa6c785c5f26" class="offcanvas-header d-flex pt-0"> 213 214 <div class="h4 me-sm-3 logo-header-mobile"> <a href="https://www.giff.ch" class="d-flex">
215 <div class="brand-website"> 216 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="123" height="96" viewBox="0 0 123 96"> 217 <path d="M38.72-54.78c0-9.02-6.27-15.73-18.59-15.73C8.03-70.51,1.1-63.8,1.1-54.56v39.82C1.1-5.39,8.14,1.1,20.9,1.1c7.15,0,14.96-2.42,17.82-4.18v-37.4H19.91v12.1h1.1v18.26a2.148,2.148,0,0,1-.77.11c-1.43,0-1.43-1.1-1.43-2.53V-56.87c0-1.32,0-2.64,1.1-2.64s1.1,1.21,1.1,2.64v9.24H38.72ZM58.96,0V-69.3H41.25V0ZM79.53,0V-27.61H90.31V-42.02H79.53V-55H91.08V-69.3H61.82V0Zm31.24,0V-27.61h10.78V-42.02H110.77V-55h11.55V-69.3H93.06V0Z" transform="translate(0 82)" fill="#000000" /> 218 </svg> 219 </div> 220 <div class="brand-sentence"> 221 <div> 222 32th GENEVA 223 </div> 224 <div>INTERNATIONAL</div> 225 <div>FILM FESTIVAL</div> 226 <div>30.10-8.11.2026</div> 227 </div> 228 </a> 229 </div> 230 231 <div class="m-auto menu-lang"> 232 <a href="https://www.giff.ch/en/early-bird/" class="h3">EN</a> 233<span class="h3">|</span> 234 <span class="h3 text-primary">FR</span> 235 </div> 236 <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> 237 </div> 238 <div data-rocket-location-hash="f3c080d25238bbc77f90642e237c4e10" class="offcanvas-body d-flex flex-column"> 239 <hr class="mt-0 mb-3"> 240 <div id="menu-wrapper" class="h-100 d-flex flex-column"> 241 <button class="h1 btn-link mb-1 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-le_festival" aria-expanded="false" aria-controls="accordion-le_festival"> 242 LE FESTIVAL </button> 243 <div id="accordion-le_festival" class="accordion-collapse collapse" aria-labelledby="heading-le_festival" data-bs-parent="#menu-wrapper"> 244 <div class="accordion"><a href='https://www.giff.ch/' target='' rel='' class='h2 mb-1 d-block'>ACCUEIL</a> 245 <div class='accordion-item'> 246 <div class='accordion-header' id='heading-46379'> 247 <button class='h2 accordion-button collapsed mb-1' type='button' data-bs-toggle='collapse' data-bs-target='#accordion-46379' aria-expanded='false' aria-controls='accordion-46379'> 248 LE FESTIVAL 249 </button> 250 </div> 251 <div id='accordion-46379' class='accordion-collapse collapse' aria-labelledby='heading-46379' data-bs-parent='#navMobile-'> 252 <div class='accordion-body ps-3'><a href='https://www.giff.ch/le-festival/' target='' rel='' class='h2 mb-1 d-block'>à propos</a><a href='https://www.giff.ch/le-festival/sections-et-prix/' target='' rel='' class='h2 mb-1 d-block'>SECTIONS & PRIX 2026</a><a href='https://www.giff.ch/le-festival/benevoles/' target='' rel='' class='h2 mb-1 d-block'>Bénévoles</a><a href='https://www.giff.ch/le-festival/equipe-et-fondation/' target='' rel='' class='h2 mb-1 d-block'>ÃQUIPE & FONDATION</a><a href='https://www.giff.ch/le-festival/xr-roadshow/' target='' rel='' class='h2 mb-1 d-block'>XR ROADSHOW</a><a href='https://www.giff.ch/le-festival/contacts/' target='' rel='' class='h2 mb-1 d-block'>Contacts</a> 253 </div> 254 </div> 255 </div><a href='https://www.giff.ch/le-festival/partenaires/' target='' rel='' class='h2 mb-1 d-block'>Partenaires</a> 256 <div class='accordion-item'> 257 <div class='accordion-header' id='heading-37550'> 258 <button class='h2 accordion-button collapsed mb-1' type='button' data-bs-toggle='collapse' data-bs-target='#accordion-37550' aria-expanded='false' aria-controls='accordion-37550'> 259 Archives 260 </button> 261 </div> 262 <div id='accordion-37550' class='accordion-collapse collapse' aria-labelledby='heading-37550' data-bs-parent='#navMobile-'> 263 <div class='accordion-body ps-3'><a href='https://www.giff.ch/le-festival/archives-2025/' target='' rel='' class='h2 mb-1 d-block'>2025</a><a href='https://www.giff.ch/le-festival/archives-2024/' target='' rel='' class='h2 mb-1 d-block'>2024</a><a href='https://www.giff.ch/le-festival/archives-2023/' target='' rel='' class='h2 mb-1 d-block'>2023</a><a href='https://www.giff.ch/le-festival/archives-2022/' target='' rel='' class='h2 mb-1 d-block'>2022</a>
263<a href='https://www.giff.ch/le-festival/archives-2021/' target='' rel='' class='h2 mb-1 d-block'>2021</a><a href='https://www.giff.ch/le-festival/archives-2020/' target='' rel='' class='h2 mb-1 d-block'>2020</a><a href='https://www.giff.ch/le-festival/archives-2019/' target='' rel='' class='h2 mb-1 d-block'>2019</a> 264 </div> 265 </div> 266 </div></div> </div> 267 <button class="h1 btn-link mb-1 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-gdm" aria-expanded="false" aria-controls="accordion-gdm"> 268 Industrie </button> 269 <div id="accordion-gdm" class="accordion-collapse collapse" aria-labelledby="heading-gdm" data-bs-parent="#menu-wrapper"> 270 <div class="accordion"><a href='https://www.giff.ch/giff-pro/' target='' rel='' class='h2 mb-1 d-block'>GIFF PRO</a><a href='https://www.giff.ch/giff-pro/presse/' target='' rel='' class='h2 mb-1 d-block'>Presse</a><a href='https://www.giff.ch/giff-pro/accreditation/' target='' rel='' class='h2 mb-1 d-block'>Accréditations</a></div> </div> 271 <button class="h1 btn-link mb-1 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-agenda" aria-expanded="false" aria-controls="accordion-agenda"> 272 AGENDA </button> 273 <div id="accordion-agenda" class="accordion-collapse collapse" aria-labelledby="heading-agenda" data-bs-parent="#menu-wrapper"> 274 <div class="accordion"><a href='https://www.giff.ch/agenda/giff-unlimited/' target='' rel='' class='h2 mb-1 d-block'>GIFF UNLIMITED</a><a href='https://www.giff.ch/agenda/scolaire/' target='' rel='' class='h2 mb-1 d-block'>ACTIVITÃS SCOLAIRES AU FESTIVAL</a></div> </div> 275 <button class="h1 btn-link mb-1 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#accordion-relive" aria-expanded="false" aria-controls="accordion-relive"> 276 Relive </button> 277 <div id="accordion-relive" class="accordion-collapse collapse" aria-labelledby="heading-relive" data-bs-parent="#menu-wrapper"> 278 <div class="accordion"><a href='https://www.giff.ch/giff-tv/2026/' target='' rel='' class='h2 mb-1 d-block'>Relive 2026</a><a href='https://www.giff.ch/giff-tv/2025/' target='' rel='' class='h2 mb-1 d-block'>Relive 2025</a><a href='https://www.giff.ch/giff-tv/2024/' target='' rel='' class='h2 mb-1 d-block'>Relive 2024</a><a href='https://www.giff.ch/giff-tv/2023/' target='' rel='' class='h2 mb-1 d-block'>Relive 2023</a><a href='https://www.giff.ch/giff-tv/2022/' target='' rel='' class='h2 mb-1 d-block'>Relive 2022</a><a href='https://www.giff.ch/giff-tv/2021/' target='' rel='' class='h2 mb-1 d-block'>Relive 2021</a></div> </div> 279 </div> 280 <div class="mt-auto"> 281 <div class="row mt-5"> 282 <div class="col-6 d-flex flex-column"> 283 <div class="footer_menu_1 mt-auto text-uppercase"> 284 <a href="https://www.giff.ch/newsletter/" target="" class="footer-link-menu d-block"> 285 Newsletter </a> 286 <a href="https://www.giff.ch/giff-pro/presse/" target="" class="footer-link-menu d-block"> 287 Presse </a> 288 <a href="https://www.giff.ch/le-festival/contacts/" target="" class="footer-link-menu d-block"> 289 Contacts </a> 290 </div> 291 <div class="footer-network mt-3 mb-4"> 292 <a href="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" target="_blank" rel="noreferrer" class="me-2 h3" title="facebook"><i class="bi bi-facebook"></i></a> 293 <a href="https://www.instagram.com/giff.ch/" target="_blank" rel="noreferrer" class="me-2 h3" title="instagram"><i class="bi bi-instagram"></i></a> 294 <a href="https://twitter.com/GIFF_ch" target="_blank" rel="noreferrer" class="me-2 h3" title="twitter"><i class="bi bi-twitter"></i></a> 295 <a href="https://www.linkedin.com/company/festival-tous-ecrans/" target="_blank" rel="noreferrer" class="me-2 h3" title="linkedin"><i class="bi bi-linkedin"></i></a> 296 </div> 297 </div> 298 <div class="col-6"> 299 <div class="footer-menu-2 h-100 d-flex flex-column"> 300 <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto"> 301 Mentions Légales </a> 302 <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm "> 303 Politique de confidentialité </a> 304 <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm "> 305 Conditions de vente </a> 306 <div class="font-size-sm mt-3 mb-4">© GIFF 307 2026 </div> 308 </div> 309 </div> 310 </div> 311 </div> 312 </div> 313</div><article data-rocket-location-hash="ca7fd221188b1e3ac5e9f773351c45d8" class="mt-4 static-content"> 314 <div data-rocket-location-hash="886052d89aa58b7a0d9180233ecfb60b" class="row"><div class="mx-auto col-md-11 col-lg-10 col-xl-8"> <img fetchpriority="high" decoding="async" width="1200" height="447" src="https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-1200x447.webp" class="img-fluid pb-3" alt="GIFF - Geneva International Film Festival" srcset="https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-1200x447.webp 1200w, https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-480x179.webp 480w, https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-720x268.webp 720w, https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-1520x567.webp 1520w, https://www.giff.ch/wp-content/uploads/2026/08/BANNER-EARLY-BIRD-FR-1824x680.webp 1824w" sizes="(max-width: 1200px) 100v
314w, 1200px" /> 315 316 317<p>Le Festival International du Film de Genève (GIFF) célèbre sa 32e édition avec un programme exceptionnel qui repousse les limites de lâexpérience cinématographique. <strong>Du 30 octobre au 8 novembre</strong>, le Festival vous invite à découvrir une riche sélection de films, séries et expériences immersives, étant un véritable carrefour des genres et des disciplines.</p> 318 319 320 321<p>Pour lâoccasion, le GIFF propose des pass<strong> <em>Early Bird</em> à prix réduit</strong> ! Disponibles jusquâau 7 octobre 2026 à minuit, au tarif de <strong>110 CHF au lieu de 165 CHF</strong>, ces pass donnent accès à toutes les projections et conférences du Festival. Le Pass GIFF permet également dâaccéder au GIFF PRO, à lâexception des activités privées.</p> 322 323 324 325<p>Toutes les séances sont accessibles sur réservation. </p> 326 327 328 329<p>Valables pour toute la durée de lâévénement, les pass vous permettront de profiter pleinement de cette édition, tout en vous immergeant dans lâunivers unique du GIFF.<br><br><strong>La révélation du programme complet et lâouverture de la billetterie auront lieu le 8 octobre 2026.</strong><br><br>Toute l’équipe du GIFF se réjouit de vous accueillir !</p> 330 331 332<div 333 class="tkt-wrapper" 334 data-component="Pass/BuyForm" 335 data-redirect="none" 336 data-cart-url="https://www.giff.ch/panier/" 337 data-checkout-url="https://www.giff.ch/panier/" 338 data-theme="light" 339 data-selected="" 340 data-types="pass_festival_special_nuitsblanches_gdmonsite_2026" 341 data-salepoint-id="9bccaba1-1fc4-4e9e-a468-ad5500066480" 342 data-currency="CHF" 343 data-lang="fr" 344 data-default-lang="fr"> 345 <div class="row"> 346 <div class="col tkt-pass-list-target"> 347 <div data-component="Media/Loading" data-size-sm data-align-center></div> 348 </div> 349 </div> 350 351 <div class="row"> 352 <div class="col"> 353 <div class="tkt-wrapper"> 354 <section class="tkt-section tkt-light-section tkt-pass-form-section"> 355 <h3 class="tkt-section-title mb-3"> 356 Titulaire </h3> 357 <div class="row"> 358 <div class="col"> 359 <form> 360 <fieldset> 361 <div class="row"> 362 <div id="field-wrapper-company" class="field-wrapper col-md-4" style="display: block;"> 363 <div class="form-group"> 364 <label class="required" for="company">Entreprise</label> 365 <input name="company" type="text" class="tkt-input form-control field" id="company" placeholder="Votre entreprise" required /> 366 </div> 367 </div> 368 </div> 369 <div class="row"> 370 <div id="field-wrapper-title" class="col-md-12 field-wrapper form-group" style="display: none;"> 371 <label class="required" for="title">Civilité</label> 372 <select name="title" id="title" class="tkt-input form-control field" required> 373 <option value=""></option> 374 <option value="n/c">Pas de réponse</option><option value="mrs">Madame</option><option value="miss">Mademoiselle</option><option value="mr">Monsieur</option><option value="dr">Docteur</option> </select> 375 </div> 376 </div> 377 <div class="row"> 378 <div id="field-wrapper-firstname" class="field-wrapper col-md-4" style="display: block;"> 379 <div class="form-group"> 380 <label class="required" for="firstname">Prénom</label> 381 <input name="firstname" type="text" class="tkt-input form-control field" id="firstname" placeholder="Votre prénom" required /> 382 </div> 383 </div> 384 385 <div id="field-wrapper-lastname" class="field-wrapper col-md-4" style="display: block;"> 386 <div class="form-group"> 387 <label class="required" for="lastname">Nom</label> 388 <input name="lastname" type="text" class="tkt-input form-control field" id="lastname" placeholder="Votre nom de famille" required /> 389 </div> 390 </div> 391 392 <div id="field-wrapper-email" class="field-wrapper col-md-4" style="display: block;"> 393 <div class="form-group"> 394 <label class="required" for="email">E-mail</label> 395 <input name="email" type="email" class="tkt-input form-control field" id="email" placeholder="Votre adresse e-mail" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,}" required /> 396 </div> 397 </div> 398 </div> 399 400 <div class="row"> 401 402 <div id="field-wrapper-address" class="field-wrapper form-group col-md-4"> 403 <label class="required" for="address">Adresse</label> 404 <textarea name="address" class="tkt-input form-control field" id="address" placeholder="Votre adresse" required></textarea> 405 </div> 406 407 <div id="field-wrapper-zip" class="field-wrapper col-md-4"> 408 <div class="form-group"> 409 <label class="required" for="zip">Numéro postal</label> 410 <input name="zip" type="text" class="tkt-input form-control field" id="zip" placeholder="NPA" required /> 411 </div> 412 </div> 413 414 <div id="field-wrapper-city" class="field-wrapper col-md-4"> 415 <div class="form-group"> 416 <label class="required" for="city">Ville</label> 417 <input name="city" type="text" class="tkt-input form-control field" id="city" placeholder="Ville" required /> 418 </div> 419 </div> 420 </div> 421 422 <div class="row"> 423 <div id="field-wrapper-country" class="form-group field-wrapper col-md-12" style="display: none;"> 424 <label class="required" for="country">Pays</label> 425 <select name="country" id="country" class="tkt-input form-control field" required> 426 <option value=""></option> 427 <option value="AF">Afghanistan</option><option value="AL">Albanie</option><option value="DZ">Algérie</option><option value="AS">Samoa Américaines</option><option value="AD">Andorre</option><option value="AO">Angola</option><option value="AI">Anguilla</option><option value="AQ">Antarctique</option><option value="AG">Antigua-et-barbuda</option><option value="AR">Argentine</option><option value="AM">Arménie</option><option value="AW">Aruba</option><option value="AU">Australie</option><option value="AT">Autriche</option><option value="AZ">AzerbaÃdjan</option><option value="BS">Bahamas</option><option value="BH">BahreÃn</option><option value="BD">Bangladesh</option><option value="BB">Barbade</option><option value="BY">Bélarus</option><option value="BE">Belgique</option><option value="BZ">Belize</option><option value="BJ">Bénin</option><option value="BM">Bermudes</option><option value="BT">Bhoutan</option><option value="BO">Bolivie, L'
427Ãtat Plurinational De</option><option value="BA">Bosnie-herzégovine</option><option value="BW">Botswana</option><option value="BV">Bouvet, Ãle</option><option value="BR">Brésil</option><option value="IO">Océan Indien, Territoire Britannique De L'</option><option value="BN">Brunéi Darussalam</option><option value="BG">Bulgarie</option><option value="BF">Burkina Faso</option><option value="BI">Burundi</option><option value="KH">Cambodge</option><option value="CM">Cameroun</option><option value="CA">Canada</option><option value="CV">Cap-vert</option><option value="KY">CaÃmanes, Ãles</option><option value="CF">Centrafricaine, République</option><option value="TD">Tchad</option><option value="CL">Chili</option><option value="CN">Chine</option><option value="CX">Christmas, Ãle</option><option value="CC">Cocos (keeling), Ãles</option><option value="CO">Colombie</option><option value="KM">Comores</option><option value="CD">Congo, La République Démocratique Du</option><option value="CK">Cook, Ãles</option><option value="CR">Costa Rica</option><option value="CI">Côte D'ivoire</option><option value="HR">Croatie</option><option value="CU">Cuba</option><option value="CY">Chypre</option><option value="CZ">Tchèque, République</option><option value="DK">Danemark</option><option value="DJ">Djibouti</option><option value="DM">Dominique</option><option value="DO">Dominicaine, République</option><option value="EC">équateur</option><option value="EG">Ãgypte</option><option value="SV">El Salvador</option><option value="GQ">Guinée équatoriale</option><option value="ER">Ãrythrée</option><option value="EE">Estonie</option><option value="ET">Ãthiopie</option><option value="FK">Falkland, Ãles (malvinas)</option><option value="FO">Féroé, Ãles</option><option value="FJ">Fidji</option><option value="FI">Finlande</option><option value="FR">France</option><option value="GF">Guyane FranÃaise</option><option value="PF">Polynésie FranÃaise</option><option value="TF">Terres Australes FranÃaises</option><option value="GA">Gabon</option><option value="GM">Gambie</option><option value="GE">Géorgie</option><option value="DE">Allemagne</option><option value="GH">Ghana</option><option value="GI">Gibraltar</option><option value="GR">Grèce</option><option value="GL">Groenland</option><option value="GD">Grenade</option><option value="GP">Guadeloupe</option><option value="GU">Guam</option><option value="GT">Guatemala</option><option value="GN">Guinée</option><option value="GW">Guinée-bissau</option><option value="GY">Guyana</option><option value="HT">HaÃti</option><option value="HM">Heard, Ãle Et Mcdonald, Ãles</option><option value="VA">Saint-siège (Ãtat De La Cité Du Vatican)</option><option value="HN">Honduras</option><option value="HU">Hongrie</option><option value="IS">Islande</option><option value="IN">Inde</option><option value="ID">Indonésie</option><option value="IR">Iran, République Islamique D'</option><option value="IQ">Irak</option><option value="IE">Irlande</option><option value="IL">Israël</option><option value="IT">Italie</option><option value="JM">JamaÃque</option><option value="JP">Japon</option><option value="JO">Jordanie</option><option value="KZ">Kazakhstan</option><option value="KE">Kenya</option><option value="KI">Kiribati</option><option value="KP">Corée, République Populaire Démocratique De</option><option value="KR">Corée, République De</option><option value="KW">KoweÃt</option><option value="KG">Kirghizistan</option><option value="LA">Lao, République Démocratique Populaire</option><option value="LV">Lettonie</option><option value="LB">Liban</option><option value="LS">Lesotho</option><option value="LR">Libéria</option><option value="LY">Libyenne, Jamahiriya Arabe</option><option value="LI">Liechtenstein</option><option value="LT">Lituanie</option><option value="LU">Luxembourg</option><option value="MK">Macédoine, L'ex-république Yougoslave De</option><option value="MG">Madagascar</option><option value="MW">Malawi</option><option value="MY">Malaisie</option><option value="MV">Maldives</option><option value="ML">Mali</option><option value="MT">Malte</option><option value="MH">Marshall, Ãles</option><option value="MQ">Martinique</option><option value="MR">Mauritanie</option><option value="MU">Maurice</option><option value="YT">Mayotte</option><option value="MX">Mexique</option><option value="FM">Micronésie, Ãtats Fédérés De</option><option value="MD">Moldavie, République De</option><option value="MC">Monaco</option><option value="MN">Mongolie</option><option value="MS">Montserrat</option><option value="MA">Maroc</option><option value="MZ">Mozambique</option><option value="MM">Myanmar</option><option value="NA">Namibie</option><option value="NR">Nauru</option><option value="NP">Népal</option><option value="NL">Pays-bas</option><option value="AN">Antilles Néerlandaises</option><option value="NC">Nouvelle-calédonie</option><option value="NZ">Nouvelle-zélande</option><option value="NI">Nicaragua</option><option value="NE">Niger</option><option value="NG">Nigéria</option><option value="NU">Niué</option><option value="NF">Norfolk, Ãle</option><option value="MP">Mariannes Du Nord, Ãles</option><option value="NO">Norvège</option><option value="OM">Oman</option><option value="PK">Pakistan</option><option value="PW">Palaos</option><option value="PS">Palestinien Occupé, Territoire</option><option value="PA">Panama</option><option value="PG">Papouasie-nouvelle-guinée</option><option value="PY">Paraguay</option><option value="PE">Pérou</option><option value="PH">Philippines</option><option value="PL">Pologne</option><option value="PT">Portugal</option><option value="PR">Porto Rico</option><option value="QA">Qatar</option><option value="RE">Réunion</option><option value="RO">Roumanie</option><option value="RU">Russie, Fédération De</option><option value="RW">Rwanda</option><option value="KN">Saint-kitts-et-nevis</option><option value="LC">Sainte-lucie</option><option value="PM">Saint-pierre-et-miquelon</option><option value="VC">Saint-vincent-et-les Grenadines</option><option value="WS">Samoa</option><option value="SM">Saint-marin</option><option value="ST">Sao Tomé-et-principe</option><option value="SA">Arabie Saoudite</option><option value="SN">Sénégal</option><option value="RS">Serbie et Monténégro</option><option value="SC">Seychelles</option><option value="SL">Sierra Leone</option><option value="SG">Singapour</option><option value="SK">Slovaquie</option><option value="SI">Slovénie</option><option value="SB">Salomon, Ãles</option><option value="SO">Somalie</option><option value="ZA">Afrique Du Sud</option><option value="GS">Géorgie Du Sud Et Les Ãles Sandwich Du Sud</option><option value="ES">Espagne</option><option value="LK">Sri Lanka</option><option value="SD">Soudan</option><option value="SR">Suriname</option><option value="SJ">
427Svalbard Et Ãle Jan Mayen</option><option value="SZ">Swaziland</option><option value="SE">Suède</option><option value="CH">Suisse</option><option value="SY">Syrienne, République Arabe</option><option value="TW">TaÃwan, Province De Chine</option><option value="TJ">Tadjikistan</option><option value="TZ">Tanzanie, République-unie De</option><option value="TH">ThaÃlande</option><option value="TL">Timor-leste</option><option value="TG">Togo</option><option value="TK">Tokelau</option><option value="TO">Tonga</option><option value="TT">Trinité-et-tobago</option><option value="TN">Tunisie</option><option value="TR">Turquie</option><option value="TM">Turkménistan</option><option value="TC">Turks Et CaÃques, Ãles</option><option value="TV">Tuvalu</option><option value="UG">Ouganda</option><option value="UA">Ukraine</option><option value="AE">émirats Arabes Unis</option><option value="GB">Royaume-uni</option><option value="US">Ãtats-unis</option><option value="UM">Ãles Mineures éloignées Des Ãtats-unis</option><option value="UY">Uruguay</option><option value="UZ">Ouzbékistan</option><option value="VU">Vanuatu</option><option value="VE">Venezuela, République Bolivarienne Du</option><option value="VN">Viêt-Nam</option><option value="VG">Ãles Vierges Britanniques</option><option value="VI">Ãles Vierges Des Ãtats-unis</option><option value="WF">Wallis Et Futuna</option><option value="EH">Sahara Occidental</option><option value="YE">Yémen</option><option value="ZM">Zambie</option><option value="ZW">Zimbabwe</option><option value="XK">Kosovo</option><option value="RS">Serbie</option><option value="CD">Zaïre</option><option value="YU">Yougoslavie</option> </select> 428 </div> 429 </div> 430 431 <div class="row"> 432 <div id="field-wrapper-phone" class="field-wrapper col-md-6"> 433 <div class="form-group"> 434 <label class="required" for="phone">Téléphone</label> 435 <input name="phone" type="tel" class="tkt-input form-control field" id="phone" pattern="^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$" placeholder="Téléphone" required /> 436 </div> 437 </div> 438 <div id="field-wrapper-cellphone" class="field-wrapper col-md-6"> 439 <div class="form-group"> 440 <label class="required" for="cellphone">Téléphone portable</label> 441 <input name="cellphone" type="tel" class="tkt-input form-control field" id="cellphone" pattern="^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$" placeholder="Téléphone portable" required /> 442 </div> 443 </div> 444 </div> 445 446 <div class="row"> 447 <div id="field-wrapper-age" class="col-md-12 field-wrapper form-group" style="display: none;"> 448 <label class="required" for="age">Ãge</label> 449 <select name="age" id="age" class="tkt-input form-control field" required> 450 <option value=""></option> 451 <option value="Pas de réponse">Pas de réponse</option><option value="< 5">< 5</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option><option value="32">32</option><option value="33">33</option><option value="34">34</option><option value="35">35</option><option value="36">36</option><option value="37">37</option><option value="38">38</option><option value="39">39</option><option value="40">40</option><option value="41">41</option><option value="42">42</option><option value="43">43</option><option value="44">44</option><option value="45">45</option><option value="46">46</option><option value="47">47</option><option value="48">48</option><option value="49">49</option><option value="50">50</option><option value="51">51</option><option value="52">52</option><option value="53">53</option><option value="54">54</option><option value="55">55</option><option value="56">56</option>
451<option value="57">57</option><option value="58">58</option><option value="59">59</option><option value="60">60</option><option value="61">61</option><option value="62">62</option><option value="63">63</option><option value="64">64</option><option value="65">65</option><option value="66">66</option><option value="67">67</option><option value="68">68</option><option value="69">69</option><option value="70">70</option><option value="71">71</option><option value="72">72</option><option value="73">73</option><option value="74">74</option><option value="75">75</option><option value="76">76</option><option value="77">77</option><option value="78">78</option><option value="79">79</option><option value="80">80</option><option value="> 80">> 80</option> </select> 452 </div> 453 </div> 454 455 <div class="row"> 456 <div id="field-wrapper-birthdate" class="col-md-12 field-wrapper form-group" style="display: none;"> 457 <label class="required" for="birthdate">Date de naissance</label> 458 <input name="birthdate" type="text" class="tkt-input form-control field" id="birthdate" data-component="Form/Calendar" placeholder="Date de naissance" required data-date-format="d.m.Y" /> 459 </div> 460 </div> 461 462 <div class="row"> 463 <div id="field-wrapper-sex" class="col-md-12 field-wrapper form-group" style="display: none;"> 464 <label class="required" for="sex">Genre</label> 465 <select name="sex" id="sex" class="tkt-input form-control field" required> 466 <option value=""></option> 467 <option value="n/c">Pas de réponse</option><option value="f">Féminin</option><option value="m">Masculin</option><option value="o">Autre</option> </select> 468 </div> 469 </div> 470 471 <div class="row"> 472 <div id="field-wrapper-photo" class="field-wrapper col-md-12" style="display: none;"> 473 <label class="photo">Photo</label> 474 <div class="col-md-12 form-group tkt-wrapper-photo" data-component="Media/Webcam" data-width="300"> 475 <div class="row"> 476 <div class="form-group col-md-6 mt-3 text-center"> 477 <input name="photo" type="file" class="tkt-input form-control field" id="photo" accept="image/jpeg, image/png, image/gif, image/webp, image/avif" data-component="Form/ImageDataUrl" data-width="300" hidden > 478 <button type="button" class="btn btn-default choose-btn"> 479 <span><i class="tkt-icon-image"></i> Choisir une image</span> 480 </button> 481 <i class="tkt-icon-info" data-component="Ui/Tippy" data-tippy-content="Formats pris en charge : jpeg, png, webp, avif ou gif"></i><br> 482 <span class="small">ou</span> 483 <div class="form-group col-md-12 p-0 mt-3"> 484 <button type="button" class="btn btn-default"> 485 <i class="tkt-icon-camera"></i> 486 <span class="stop_video"> Arrêter la vidéo</span> 487 <span class="start_video"> Prendre une photo depuis la caméra</span> 488 </button> 489 <button type="button" class="btn btn-success takePicture"> 490 Prendre une photo </button> 491 </div> 492 </div> 493 <div class="form-group preview col-md-6"> 494 <div class="contentarea"> 495 <div class="camera form-group"> 496 <video id="video" class="mt-3 mb-3" style="display: block"> 497 Vidéo non supportée </video> 498 </div> 499 <canvas id="canvas" style="display: none;"></canvas> 500 </div> 501 <img class="image-preview" width="300" /> 502 </div> 503 <div class="col-md-12"> 504 <em class="small">Sans photo clairement reconnaissable, nous nous réservons le droit de vous refuser l'entrée. En cas d'abus, votre billet pourra être bloqué.</em> 505 </div> 506 </div> 507 </div> 508 </div> 509 </div> 510 <div class="row"> 511 <div id="field-wrapper-pass-sale-price" class="field-wrapper col-md-4" style="display: none;"> 512 <div class="form-group"> 513 <label for="pass_sale_price">Montant</label> 514 <input name="pass_sale_price" type="number" step="0.05" min="0" class="tkt-input form-control field pass-sale-price" id="pass_sale_price" onfocus="this.select()" /> 515 </div> 516 </div> 517 </div> 518 <div class="row"> 519 <div id="field-wrapper-comment" class="field-wrapper form-group col-md-4"> 520 <label class="required" for="comment">Commentaires</label> 521 <textarea name="comment" class="tkt-input form-control field" id="comment" placeholder="Votre commentaire" required></textarea> 522 </div> 523 </div> 524 <div class="row"> 525 <div id="field-wrapper-gift_message" class="col-md-12 field-wrapper form-group" style="display: none;"> 526 <input id="gift_toggl" type="checkbox"> 527 <label for="gift_message">Envoyer ce billet en cadeau par e-mail au titulaire</label> 528 <textarea id="user_gift_message" class="form-control" name="gift_message" data-default="Vous pouvez indiquer ici un message personnalisé (eg. "Profite bien de ton cadeau !")" style="display: none;"></textarea> 529 </div> 530 </div> 531 </fieldset> 532 533 <fieldset> 534 <div id="submit-section" class="row"> 535 <div class="col-md-12 text-right"> 536 <p id="notice-required" class="small">Ces champs sont requis</p> 537 <button type="submit" class="button active btn-block"> 538 <i class="tkt-icon-shopping-cart"></i>Ajouter au panier </button> 539 </div> 540 </div> 541 </fieldset> 542 <div class="row mt-2"> 543 <div class="col-md-12 alert alert-success"></div> 544 <div class="col-md-12 alert alert-danger"></div> 545 </div> 546 </form> 547 </div> 548 </div> 549 </section> 550</div> 551 </div> 552 </div> 553</div> 554 555 </div></div></article> 556 557 558<footer data-rocket-location-hash="d6a505e6249949c3d11c2fcd98075cab" class="mt-auto"> 559 <div data-rocket-location-hash="2ac0f0584fcdd4c52dd07f29eca2ded1" class="row mt-5 pt-5"> 560 <div class="d-none d-xl-block col-xl-4"> 561 <a href="https://www.giff.ch" class="logo-footer-link"> 562 <img src="https://www.giff.ch/wp-content/uploads/2026/06/giff-logo-2026-1.svg" alt="" class="logo-footer"> 563 </a> 564 </div> 565 <div class="col-12 col-xl-8"> 566 <hr class="mt-2 mb-4"> 567 <div class="d-sm-flex w-100"> 568 <div class="d-none d-md-block d-lg-none w-100"> 569 <a href="https://www.giff.ch" class="logo-footer-link"> 570 <img src="https://www.giff.ch/wp-content/uploads/2026/06/giff-logo-2026-1.svg" alt="" class="logo-footer"> 571 </a> 572 </div> 573 <div id="footer_menu" class="d-lg-flex justify-content-between text-center text-sm-start w-100 ps-sm-5 ps-lg-0"> 574 <div class="vertical-bar d-none d-lg-block"></div> 575 <div class="footer-network"> 576 <a href="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" target="_blank" rel="noreferrer" class="me-2 h3" title="facebook"><i class="bi bi-facebook"></i></a> 577 <a href="https://www.instagram.com/giff.ch/" target="_blank" rel="noreferrer" class="me-2 h3" title="instagram"><i class="bi bi-instagram"></i></a> 578 <a href="https://twitter.com/GIFF_ch" target="_blank" rel="noreferrer" class="me-2 h3" title="twitter"><i class="bi bi-twitter-x"></i></a> 579 <a href="https://www.linkedin.com/company/festival-tous-ecrans/" target="_blank" rel="noreferrer" class="me-2 h3" title="linkedin"><i class="bi bi-linkedin"></i></a> 580 </div> 581 <div class="vertical-bar d-none d-lg-block"></div> 582 <a href="https://www.giff.ch/newsletter/" target="" class="footer-link-menu"> 583 Newsletter </a> 584 <div class="vertical-bar d-none d-lg-block"></div> 585 <a href="https://www.giff.ch/giff-pro/presse/" target="" class="footer-link-menu"> 586 Presse </a> 587 <div class="vertical-bar d-none d-lg-block"></div> 588 <a href="https://www.giff.ch/le-festival/contacts/" target="" class="footer-link-menu"> 589 Contacts </a> 590 <div class="vertical-bar d-none d-lg-block"></div> 591 </div> 592 <div class="d-lg-none w-100 mt-sm-4"> 593 <div class="mt-3 mt-lg-5 pt-sm-3 pt-lg-0 mb-4 footer-menu-2 text-center text-sm-start"> 594 <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto"> 595 Mentions Légales </a> 596 <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm "> 597 Politique de confidentialité </a> 598 <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm "> 599 Conditions de vente </a> 600 <div class="font-size-sm mt-3">© GIFF 601 2026 </div> 602 </div> 603 </div> 604 </div> 605 <div class="d-lg-flex"> 606 <div class="d-none d-lg-block"> 607 <div class="mt-3 mt-lg-5 pt-sm-3 pt-lg-0 mb-4 footer-menu-2"> 608 <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto"> 609 Mentions Légales </a> 610 <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm "> 611 Politique de confidentialité </a> 612 <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm "> 613 Conditions de vente </a> 614 <div class="font-size-sm mt-3">© GIFF 615 2026<br> 616 </div> 617 </div> 618 </div> 619 <div id="footer-logo" class="mt-3 text-center ps-lg-4"> 620 <div class="d-flex justify-content-between w-100 flex-wrap"> 621 <div class="mb-3"> 622 <div class="d-flex h-100"><a href="http://www.ville-geneve.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto ville-geneve"><img width="300" height="180" src="https://www.giff.ch/wp-content/uploads/2025/10/logo-ville-geneve-noir-blanc.webp" class="pe-1 color-reverse" alt="" style="width:95px" decoding="async" loading="lazy" /></a></div> 623 </div> 624 <div class="mb-3"> 625 <div class="d-flex h-100"><a href="https://www.ge.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="350" height="308" src="https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-350x308.png" class="px-1" alt="https://www.ge.ch/" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-350x308.png 350w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-234x206.png 234w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-766x675.png 766w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-970x855.png 970w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-1165x1026.png 1165w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc-1532x1350.png 1532w, https://www.giff.ch/wp-content/uploads/2021/10/republiquecantongeneve_blanc.png 1664w" sizes="auto, (max-width: 350px) 100v
625w, 350px" /></a></div> 626 </div> 627 <div class="mb-3"> 628 <div class="d-flex h-100"><a href="https://www.bak.admin.ch/bak/fr/home.html" target="_blank" rel="noreferrer nofollow" class="m-auto bak"><img width="720" height="292" src="https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-720x292.png" class="px-1" alt="https://www.bak.admin.ch/bak/de/home.html" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-720x292.png 720w, https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-480x194.png 480w, https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-1200x486.png 1200w, https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-1520x615.png 1520w, https://www.giff.ch/wp-content/uploads/2021/10/OFC_blanc-1824x739.png 1824w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></div> 629 </div> 630 <div class="mb-3"> 631 <div class="d-flex h-100"><a href="https://www.mediadesk.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="720" height="107" src="https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-720x107.png" class="py-2 px-1" alt="https://www.mediadesk.ch/" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-720x107.png 720w, https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-480x72.png 480w, https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-1200x179.png 1200w, https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-1520x227.png 1520w, https://www.giff.ch/wp-content/uploads/2021/10/mediadesk_blanc-1824x272.png 1824w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></div> 632 </div> 633 <div class="mb-3"> 634 <div class="d-flex h-100"><a href="https://www.loro.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="720" height="244" src="https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-720x244.png" class="ps-1" alt="https://www.loro.ch/fr" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-720x244.png 720w, https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-480x162.png 480w, https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-1200x406.png 1200w, https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-1520x514.png 1520w, https://www.giff.ch/wp-content/uploads/2021/10/loterieromande_blanc-1-1824x617.png 1824w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></div> 635 </div> 636 </div> 637 <div class="d-flex justify-content-between w-100 flex-wrap"> 638 <div class="mb-3"> 639 <div class="d-flex h-100"><a href="https://www.edmond-de-rothschild.com/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="400" height="110" src="https://www.giff.ch/wp-content/uploads/2023/07/edmond-de-rothschild.png" class="pt-1 pe-1" alt="" style="width:90px" decoding="async" loading="lazy" /></a></div> 640 </div> 641 <div class="mb-3"> 642 <div class="d-flex h-100"><a href="https://leplaza-cinema.ch" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="400" height="219" src="https://www.giff.ch/wp-content/uploads/2025/10/FP_Logo_Hirizontal.webp" class="p-2 color-reverse" alt="" style="width:90px" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2025/10/FP_Logo_Hirizontal.webp 400w, https://www.giff.ch/wp-content/uploads/2025/10/FP_Logo_Hirizontal-376x206.webp 376w" sizes="auto, (max-width: 400px) 100vw, 400px" /></a></div> 643 </div> 644 <div class="mb-3"> 645 <div class="d-flex h-100"><a href="http://www.swissperform.ch/nc/fr/page-daccueil.html" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="674" height="308" src="https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-674x308.png" class="px-1" alt="http://www.swissperform.ch/nc/fr/page-daccueil.html" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-674x308.png 674w, https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-451x206.png 451w, https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-1200x548.png 1200w, https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-1520x694.png 1520w, https://www.giff.ch/wp-content/uploads/2021/10/swissperform_blanc-1-1824x833.png 1824w" sizes="auto, (max-width: 674px) 100vw, 674px" /></a></div> 646 </div> 647 <div class="mb-3"> 648 <div class="d-flex h-100"><a href="https://www.srgssr.ch/fr/accueil/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="676" height="233" src="https://www.giff.ch/wp-content/uploads/2021/10/srg_ssr_blanc_web.png" class="" alt="https://www.srgssr.ch/fr/accueil/" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2021/10/srg_ssr_blanc_web.png 676w, https://www.giff.ch/wp-content/uploads/2021/10/srg_ssr_blanc_web-480x165.png 480w" sizes="auto, (max-width: 676px) 100v
648w, 676px" /></a></div> 649 </div> 650 <div class="mb-3"> 651 <div class="d-flex h-100"><a href="http://www.rts.ch/" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="269" height="200" src="https://www.giff.ch/wp-content/uploads/2023/07/rts-logo-1.png" class="px-3" alt="" style="width:90px" decoding="async" loading="lazy" /></a></div> 652 </div> 653 <div class="mb-3"> 654 <div class="d-flex h-100"><a href="https://www.tdg.ch" target="_blank" rel="noreferrer nofollow" class="m-auto"><img width="720" height="281" src="https://www.giff.ch/wp-content/uploads/2026/06/tribune-de-geneve-logo-720x281.webp" class="py-2 ps-1" alt="" decoding="async" loading="lazy" srcset="https://www.giff.ch/wp-content/uploads/2026/06/tribune-de-geneve-logo-720x281.webp 720w, https://www.giff.ch/wp-content/uploads/2026/06/tribune-de-geneve-logo-480x187.webp 480w, https://www.giff.ch/wp-content/uploads/2026/06/tribune-de-geneve-logo.webp 813w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></div> 655 </div> 656 </div> 657</div> </div> 658 </div> 659 </div> 660</footer> 661</main> 662 663<div data-rocket-location-hash="db1ade9dd08a33f7703f9fc302ad87df" class="background-site-wrapper"> 664 <img src="https://www.giff.ch/wp-content/themes/giff/medias/images/background-dark-2026.webp" alt="" class="background-site"> 665</div> 666 667<div data-rocket-location-hash="afa3a02594d2e1fa5e4d61a1ee8581ef" class="modal fade" id="newsletterModal" data-bs-backdrop="static" data-bs-keyboard="true" tabindex="-1" aria-labelledby="newsletterLabel" aria-hidden="true"> 668 <div data-rocket-location-hash="46091e449ea83acc8d05aae6d4f178fd" class="modal-dialog modal-dialog-centered modal-lg"> 669 <div data-rocket-location-hash="9a7007a1754068f5a418aa1a3a790c17" class="modal-content"> 670 <div class="modal-header"> 671 <div class="modal-title h2 mb-0 py-2" id="newsletterLabel"> 672 Newsletter 673 </div> 674 <button id="closeNewsletter" type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 675 </div> 676 <div class="modal-body"> 677 <div class="row"> 678 <div class="col-12 col-sm-4 col-xl-3"> 679 <div class="mt-1 mb-3 d-none d-sm-block"><img src="https://www.giff.ch/wp-content/themes/giff/medias/images/giff_logo_2026.svg" alt="" class="w-100 img-fluid"> </div> 680 </div> 681 <div class="col-12 col-sm-8 col-xl-9"> 682 <div id="mc_embed_signup"> 683 <p class="mb-2 h3 mt-3 pt-1"> 684 Inscrivez-vous pour recevoir les dernières nouvelles du GIFF </p> 685 <div id="mc_embed_signup"> 686 <form action="https://giff.us7.list-manage.com/subscribe/post?u=4a6caf431f879e7480319e146&id=f757bf97fe&f_id=0075cfe1f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate> 687 <div id="mc_embed_signup_scroll"> 688 689 <div data-rocket-location-hash="7d811f982cbfb8357739d3eb4d5fe759" class="mb-2"> 690 <label for="mce-EMAIL" class="form-label">E-mail<span class="asterisk">*</span> </label> 691 <input type="email" value="" name="EMAIL" class="required email form-control" id="mce-EMAIL"> 692 </div> 693 694 <div class="row mb-2"> 695 <div class="col-12 col-md-4"> 696 <div class="mb-3"> 697 <label for="mce-FNAME">Prénom</label> 698 <input type="text" value="" name="FNAME" class="form-control" id="mce-FNAME"> 699 </div> 700 </div> 701 <div class="col-12 col-md-4"> 702 <div class="mb-3"> 703 <label for="mce-LNAME">Nom</label> 704 <input type="text" value="" name="LNAME" class="form-control" id="mce-LNAME"> 705 </div> 706 </div> 707 <div class="col-12 col-md-4"> 708 <div class="mb-3">
709 <label for="mce-MMERGE5">Profession</label> 710 <input type="text" value="" name="MMERGE5" class="form-control" id="mce-MMERGE5"> 711 </div> 712 </div> 713 </div> 714 715 <div class="d-flex flex-column mb-3"> 716 717 <div class="mb-2 pb-2"> 718 <div class="h4">Langue</div> 719 <div class="form-check form-check-inline"> 720 <input type="radio" name="group[30]" class="form-check-input" value="1" id="mce-group[30]-30-0" checked> 721 <label for="mce-group[30]-30-0" class="form-check-label">Français</label> 722 </div> 723 <div class="form-check form-check-inline"> 724 <input type="radio" name="group[30]" class="form-check-input" value="2" id="mce-group[30]-30-1"> 725 <label for="mce-group[30]-30-1" class="form-check-label">Anglais</label> 726 </div> 727 <div class="form-check form-check-inline"> 728 <input type="radio" name="group[30]" class="form-check-input" value="4" id="mce-group[30]-30-2"> 729 <label for="mce-group[30]-30-2" class="form-check-label">Allemand</label> 730 </div> 731 </div> 732 733 <div> 734 <div data-rocket-location-hash="ca7982339d5508c82e8505258d585041" class="h4 mb-1">Newsletter</div> 735 <div class="form-check form-check-inline"> 736 <input type="radio" name="group[34]" class="form-check-input" value="8" id="mce-group[34]-34-0" checked> 737 <label for="mce-group[34]-34-0" class="form-check-label">Public</label> 738 </div> 739 <div class="form-check form-check-inline"> 740 <input type="radio" name="group[34]" class="form-check-input" value="16" id="mce-group[34]-34-1"> 741 <label for="mce-group[34]-34-1" class="form-check-label">Pro</label> 742 </div> 743 <div class="form-check form-check-inline"> 744 <input type="radio" name="group[34]" class="form-check-input" value="32" id="mce-group[34]-34-2"> 745 <label for="mce-group[34]-34-2" class="form-check-label">Presse</label> 746 </div> 747 </div> 748 749 </div> 750 <div id="mce-responses" class="clear mt-3"> 751 <div class="response alert alert-warning" id="mce-error-response" style="display:none"></div> 752 <div class="response alert alert-success" id="mce-success-response" style="display:none"></div> 753 </div> 754 755 <div style="position: absolute; left: -5000px;" aria-hidden="true"> 756 <input type="text" name="b_4a6caf431f879e7480319e146_f757bf97fe" tabindex="-1" value=""> 757 </div> 758 759 <div class="mb-3"> 760 <input type="submit" value="S'inscrire" name="subscribe" id="mc-embedded-subscribe" class="btn btn-outline-primary mb-2"> 761 </div> 762 </div> 763 </form> 764 </div> 765
765<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script>
765 766
766<script type="text/javascript"> 767 (function($) { 768 window.fnames = new Array(); 769 window.ftypes = new Array(); 770 fnames[0] = 'EMAIL'; 771 ftypes[0] = 'email'; 772 fnames[1] = 'FNAME'; 773 ftypes[1] = 'text'; 774 fnames[2] = 'LNAME'; 775 ftypes[2] = 'text'; 776 fnames[5] = 'MMERGE5'; 777 ftypes[5] = 'text'; 778 fnames[3] = 'MMERGE3'; 779 ftypes[3] = 'text'; 780 fnames[4] = 'MMERGE4'; 781 ftypes[4] = 'text'; 782 }(jQuery)); 783 var $mcj = jQuery.noConflict(true); 784 </script>
784 785 </div> 786 </div> 787 </div> 788 </div> 789 </div> 790 </div> 791</div><div data-rocket-location-hash="0fe33cd98c101a0dae155776a8894881" class="modal fade" id="login-modal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="login-label" aria-hidden="true"> 792 <div data-rocket-location-hash="f6477b7774ab2e5fd10a2cd46e232020" class="modal-dialog modal-dialog-centered modal-md"> 793 <div data-rocket-location-hash="de82b39ababf41c8c85c15e14cf5dfa0" class="modal-content"> 794 <div class="modal-header"> 795 <div class="modal-title h2 mb-0 pt-2 pb-1" id="login-label"> 796 Connexion Fermée </div> 797 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 798 </div> 799 <div class="modal-body"> 800 <div class="mb-2"> 801 <div class="h3 mt-3 lh-sm"> 802 Connectez-vous pour réserver vos séances </div> 803 <div class="h4 mb-1 lh-sm" style="font-size: 1.25rem;"> 804 Vous avez un pass, une accréditation, une carte ou une invitation ? </div> 805 <div class="opacity-50" style="pointer-events: none;"> 806 <div class="tkt-wrapper" 807 data-component="Ticket/TicketConnect" 808 data-redirect="none" 809 data-cart-url="https://www.giff.ch/panier/" 810 data-checkout-url="https://www.giff.ch/panier/"></div> 811
812<script type="text/template" id="tkt-ticket-tpl"> 813 <% 814 const errors = { 815 'screening.start_at': "Les votes seront possibles d\u00e8s le d\u00e9but de la s\u00e9ance", 816 'screening.stop_at': "Les votes seront possibles d\u00e8s la fin de la s\u00e9ance", 817 'needs_scan': "Vous ne pouvez pas voter car votre billet n'a pas \u00e9t\u00e9 contr\u00f4l\u00e9", 818 'not_before': "Les votes ne sont pas encore possibles pour cette s\u00e9ance", 819 'not_after': "Les votes ne sont plus possibles pour cette s\u00e9ance", 820 }; 821 %> 822 <% if (tickets?.length > 1) { %> 823 <div class="mb-3"> 824 <ul class="nav nav-tabs nav-fill"> 825 <% _.sortBy(tickets, t => t.getDisplayName()).map(function (t) { %> 826 <li class="nav-item"> 827 <a data-ticket-id="<%= t._id %>"class="nav-link ticket-link <%= t._id === ticket?._id ? 'active' : '' %>"> 828 <%= t.getTypeName() %> - 829 <%= t.getDisplayName() %> 830 </a> 831 </li> 832 <% }) %> 833 </ul> 834 </div> 835 <% } %> 836 837 <% if (ticket) { %> 838 839 <% 840 const bookings = ticket.bookings || []; 841 const pastBookings = bookings.filter(b => b.screening?.isFinished()); 842 const futureBookings = bookings.filter(b => !b.screening?.isFinished()); 843 %> 844 <div class="tkt-ticket-view"> 845 <% if (!ticket.isNew()) { %> 846 <p class="alert alert-info small"><i class="tkt-icon-info-circle"></i>Nous n'émettons pas de billet individuel pour les réservations, votre ticket actuel vous sert de titre d'entrée aux séances réservées.</span></p> 847 <% } else { %> 848 <p class="alert alert-warning small"><i class="tkt-icon-info-circle"></i>Tant que vous n'aurez pas effectué le paiement de votre billet, vous ne pourrez pas effectuer de réservations ou accéder à la projection.</span></p> 849 <% } %> 850 851 <!-- Title --> 852 <div class="mb-3"> 853 <h3> 854 <strong> 855 <%= ticket.getTypeName() %> - 856 <%= ticket.getDisplayName() %> 857 </strong> 858 </h3> 859 </div> 860 861 <!-- Réservations --> 862 <% if (!ticket.isNew()) { %> 863 <section class="tkt-section tkt-light-section"> 864 <% if (!pastBookings.length && !futureBookings.length) { %> 865 <h3>Réservations</h3> 866 <div class="mb-2"> 867 Il n'y a actuellement aucune réservation sur ce billet. </div> 868 <% } else { %> 869 <% if (futureBookings.length) { %> 870 <h3>Réservations</h3> 871 <table class="table table-striped table-hover no-more-tables"> 872 <thead> 873 <tr> 874 <th>Date</th> 875 <th>Réservation</th> 876 <th>Lieu</th> 877 <th><i class="tkt-icon-smartphone"></i></th> 878 <th class="text-right">Action</th> 879 </tr> 880 </thead> 881 <tbody> 882 <% futureBookings.map(function(b) { %> 883 <tr> 884 <td><%= b.screening_start_at.format("DD.MM.YYYY HH[h]mm") %> - 885 <%= b.screening_stop_at.format("HH[h]mm") %></td> 886 <td><%= b.screening.getTitle() %></td> 887 <td><%= b.screening.cinema_hall.name %></td> 888 <td class="text-center"> 889 <% if (b.scanned_at.length) { %> 890 <i class="tkt-icon-checkmark"></i> 891 <% } %> 892 </td> 893 <td> 894 <div class="flex-col items-end"> 895 <% if (b.isCancelable) { %> 896 <a href="#" class="btn btn-danger btn-bloc cancel-booking-btn" data-booking-id="<%= b._id %>"> 897 Annuler </a> 898 <% } %> 899 <% if (votesConfig?.enabled && (b.vote || !b.screening.opaque?.disable_votes)) { %> 900 <% const { votable, reason } = b.isVotable(); %> 901 <div 902 data-component="Ui/Rating" 903 data-score="<%= b.vote?.score || 0 %>" 904 data-ticket-id="<%= b.ticket_id %>" 905 data-booking-id="<%= b._id %>" 906 data-size="24" 907 data-step="<%= votesConfig?.step %>" 908 data-max="<%= votesConfig?.max_score %>" 909 data-disabled-reason="<%= reason ? errors[reason] : '' %>" 910 ></div> 911 <% if (reason) { %> 912 <small> 913 <i class="tkt_icon_warning" /> 914 <%= errors[reason] %> 915 </small> 916 <% } %> 917 <% } %> 918 </div> 919 </td> 920 </tr> 921 <% }) %> 922 <tbody> 923 </table> 924 <div class="cancelable_booking_err text-danger text-center"></div> 925 <% } %> 926 927 <% if (pastBookings.length) { %> 928 <h3>Réservations passées</h3> 929 <table class="table table-striped table-hover no-more-tables"> 930 <thead> 931 <tr> 932 <th>Date</th> 933 <th>Réservation</th> 934 <th>Lieu</th> 935 <th><i class="tkt-icon-smartphone"></i></th> 936 <th></th> 937 </tr> 938 </thead> 939 <tbody>
940 <% pastBookings.map(function(b) { %> 941 <tr> 942 <td><%= b.screening_start_at.format("DD.MM.YYYY HH[h]mm") %> - 943 <%= b.screening_stop_at.format("HH[h]mm") %></td> 944 <td><%= b.screening.getTitle() %></td> 945 <td><%= b.screening.cinema_hall.name %></td> 946 <td class="text-center"> 947 <% if (b.scanned_at.length) { %> 948 <i class="tkt-icon-checkmark"></i> 949 <% } %> 950 </td> 951 <td> 952 <% if (votesConfig?.enabled && (b.vote || !b.screening.opaque?.disable_votes)) { %> 953 <% const { votable, reason } = b.isVotable(); %> 954 <div 955 data-component="Ui/Rating" 956 data-score="<%= b.vote?.score || 0 %>" 957 data-ticket-id="<%= b.ticket_id %>" 958 data-booking-id="<%= b._id %>" 959 data-size="24" 960 data-step="<%= votesConfig?.step %>" 961 data-max="<%= votesConfig?.max_score %>" 962 data-disabled-reason="<%= reason ? errors[reason] : '' %>" 963 ></div> 964 <% if (reason) { %> 965 <small> 966 <i class="tkt_icon_warning" /> 967 <%= errors[reason] %> 968 </small> 969 <% } %> 970 <% } %> 971 </td> 972 </tr> 973 <% }) %> 974 <tbody> 975 </table> 976 <div class="cancelable_booking_err text-danger text-center"></div> 977 <% } %> 978 <% } %> 979 <a class="btn button w-100" href="<%= program_url %>"> 980 Réserver des séances </a> 981 </section> 982 983 <% } %> 984 <!-- Owner --> 985 <% if (ticket?.hasContactInfo()) { %> 986 <section class="tkt-section tkt-dark-section mt-3"> 987 <h3 class="panel-title">Titulaire</h3> 988 <div class="text-center"> 989 <% if (ticket.contact?.rfc2397_portrait?.length) { %> 990 <img class="img-responsive img-thumbnail" src="<%= ticket.contact?.rfc2397_portrait %>" /> 991 <br /> 992 <% } %> 993 994 <% if (ticket.contact?.firstname || ticket.contact?.lastname) { %> 995 <h5> 996 <%= [ticket.contact.firstname, ticket.contact.lastname].filter(v => !!v).join(' ') %> 997 </h5> 998 <% } %> 999 1000 <div> 1001 <% if (ticket.contact?.birthdate) { %> 1002 <%= new Date(ticket.contact.birthdate).toLocaleDateString() %> 1003 <br /> 1004 <% } %> 1005 1006 <% if (ticket.contact?.address?.street) { %> 1007 <%= ticket.contact.address.street %> 1008 <br /> 1009 <% } %> 1010 1011 <% if (ticket.contact?.address?.zip || ticket.contact?.address?.city) { %> 1012 <%= [ticket.contact.address.zip, ticket.contact.address.city].filter(v => !!v).join(' ') %> 1013 <br /> 1014 <% } %> 1015 1016 <% if (ticket.contact?.address?.country) { %> 1017 <%= tktCountryDisplay(ticket.contact.address.country) %> 1018 <br /> 1019 <% } %> 1020 1021 <% if (ticket.contact?.email) { %> 1022 <%= ticket.contact.email %> 1023 <% } %> 1024 </div> 1025 </div> 1026 </section> 1027 <% } %> 1028 1029 <!-- Guests --> 1030 <% if (ticket?.hasGuestsInfo()) { %> 1031 <section class="tkt-section tkt-dark-section mt-3"> 1032 <h3 class="panel-title">Invités</h3> 1033 <div class="text-center">
1034 <% ticket.getGuestsInfo().forEach(guest => { %> 1035 <h5> 1036 <%= [guest.firstname, guest.lastname].filter(v => !!v).join(' ') %><br /> 1037 <small><%= guest.email %></small> 1038 </h5> 1039 <% }); %> 1040 </div> 1041 </section> 1042 <% } %> 1043 1044 <% if (ticket.getWalletBalance() > 0) { %> 1045 <div class="row"> 1046 <div class="col"> 1047 <section class="tkt-section tkt-light-section mt-3"> 1048 <div class="panel-heading wallet_info"> 1049 <h3 class="panel-title">Portefeuille électronique</h3> 1050 </div> 1051 <div class="panel-body wallet_info text-center"> 1052 <div class="text-center"> 1053 <h4><%= ticket.getFormattedWalletBalance() %></h4> 1054 </div> 1055 </div> 1056 </section> 1057 </div> 1058 </div> 1059 <% } %> 1060 1061 <div class="row"> 1062 <div class="col"> 1063 <section class="tkt-section tkt-light-section mt-3"> 1064 <div class="panel-heading"> 1065 <h3 class="panel-title">Validité</h3> 1066 <div class="panel-body"> 1067 <% if (!ticket.isNew()) { %> 1068 <div class="well text-center"> 1069 <% if (ticket.activated_at) { %> 1070 <h5> 1071 Activé le <%= ticket.activated_at.format("LL") %> </h5> 1072 <% if (ticket.getActivatedPricingName()) { %> 1073 <p>Tarif : <%= ticket.getActivatedPricingName() %> 1074 (<%= ticket.getFormattedPriceAndCurrency() %>) 1075 </p> 1076 <% } %> 1077 <% } %> 1078 </div> 1079 <% if (ticket.getExpirationDate()) { %> 1080 <% if (ticket.hasExpired()) { %> 1081 <div class="text-center alert alert-danger"> 1082 <b>A expiré le <%= ticket.getExpirationDate().format('LL') %> </b> 1083 </div> 1084 <% } else {%> 1085 <div class="text-center alert alert-success"> 1086 <b>Valable jusqu'au <%= ticket.getExpirationDate().format('LL') %></b> 1087 <p> 1088 <%= ticket.placesAvailable() %> 1089 </p> 1090 </div> 1091 <% } %> 1092 <% } %> 1093 <% } else { %> 1094 <div class="text-center alert alert-info w-100"> 1095 <b>Ce billet n'a pas encore été activé</b> 1096 </div> 1097 <div id="pricings-list" class="tkt-pricings-list"> 1098 <div class="card-header tkt-light-section"> 1099 <h5 class="card-title"> 1100 <b>Activation :</b> 1101 </h5> 1102 <table> 1103 <tr> 1104 <th>Tarifs</th> 1105 <th>Prix</th> 1106 </tr> 1107 <% Object.entries(ticket.pricings || {}).map(function(entry) { 1108 const key = entry[0]; 1109 const p = entry[1] || {}; 1110 const onlyOne = Object.keys(ticket.pricings || {}).length === 1; 1111 %> 1112 <tr> 1113 <td> 1114 <% if ((p.description?.fr || '').length > 0) { %> 1115 <input class="choose-pass" type="radio" name="user[pass]" value="<%= key %>" <%= onlyOne ? 'checked' : '' %>> <%= p.name?.fr || key %> <i class="tkt-icon-info-circle" data-component="Ui/Tippy" data-tippy-content="<%= p.description.fr %>"></i> 1116 <% } else { %> 1117 <input class="choose-pass" type="radio" name="user[pass]" value="<%= key %>" <%= onlyOne ? 'checked' : '' %>> <%= p.name?.fr || key %> 1118 <% } %> 1119 </td> 1120 <td><%= Object.keys(p.price || {})[0] + " " + parseFloat(Object.values(p.price || {})[0] || 0).toFixed(2) %></td> 1121 </tr> 1122 <% }) %> 1123 </table> 1124 </div> 1125 </div> 1126 1127 <div class="alert alert-danger ticket-pay-error d-none" role="alert"></div> 1128 1129 <div class="d-flex justify-content-between pt-3"> 1130 <button class="btn bg-success add_to_cart-btn"> 1131 <i class="tkt-icon-credit-card"></i> Payer votre <%= ticket.getTypeName() %> </button> 1132 <button class="btn bg-dark forget-ticket-btn align-items-end"> 1133 <i class="tkt-icon-sign-out"></i> Déconnexion </button> 1134 </div> 1135 <% } %> 1136 </div> 1137 </div> 1138 </section> 1139 </div> 1140 </div> 1141 <% if (!ticket.isNew() && ticket.isForgettable) { %> 1142 <div class="row mt-3"> 1143 <div class="col"> 1144 <button class="btn button forget-ticket-btn w-100"> 1145 <i class="tkt-icon-log-out"></i> Retirer ce billet de mon navigateur </button> 1146 </div> 1147 </div> 1148 <% } %> 1149 </div> 1150 <% } %> 1151</script>
1151 1152
1153<script type="text/template" id="tkt-ticket-connect-tpl"> 1154 <% if (!ticket) { %> 1155 <div class="tkt-ticket-connect"> 1156 <div class="connect-panel"> 1157 <div class="ticket_connect"> 1158 <div> 1159 Entrez votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span> </div> 1160 <div class="col"> 1161 <div class="row mt-5 input-pass"> 1162 <input id="pass-id" type="number" 1163 class="tkt-input input-invert form-control text-center pass-number-input" 1164 placeholder="123456" maxlength="6" /> 1165 <p class="minus">-</p> 1166 <input id="pass-code" type="password" 1167 class="tkt-input input-invert form-control text-center pass-key-input" 1168 placeholder="abcdef" maxlength="6" /> 1169 </div> 1170 </div> 1171 <div class="row"> 1172 <div class="col text-center"> 1173 <div class="error pass-error d-none text-center text-danger"></div> 1174 <button class="btn btn-primary button login-btn connect-btn mt-5 mb-3"> 1175 <i class="tkt-icon-log-out"></i> Connexion </button> 1176 </div> 1177 </div> 1178 <hr /> 1179 <div> 1180 Votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span> est composé d'un identifiant de 6 chiffres suivi d'un code alphanumérique et se trouve sur votre billet, pass ou accréditation. </div> 1181 </div> 1182 </div> 1183 </div> 1184 <% } %> 1185 1186 <% 1187 jQuery(document).ready(function($) { 1188 $("#pass-id").keyup(function() { 1189 if (this.value.length == this.maxLength) { 1190 $('#pass-code').focus(); 1191 } 1192 }); 1193 }); 1194 %> 1195</script>
1195 1196 </div> 1197 </div> 1198 <hr class="row"> 1199 <div class="mb-2"> 1200 <div data-rocket-location-hash="2ad2aa4c2e18f40f78a62ce5ddab58b1" class="h2 mb-1"> 1201 Vous êtes accrédité·e? </div> 1202 <div class="h4 mb-1"> 1203 Connectez-vous avec votre compte Eventival </div> 1204 <p> 1205 Vous pourrez ainsi accéder aux services du Geneva Digital Market et réserver vos séances. </p> 1206 <div data-rocket-location-hash="198b0bfee8f0781ad2749c4f2b98d81e" class="ev_waiting-btn mb-3 d-inline-block d-none" data-open_date="2025-08-26T09:00:00.000+02:00" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Connexion à partir du August 26, 09:00"> 1207 <button class="btn btn-outline-primary btn-eventival disabled"> <img src="https://www.giff.ch/wp-content/plugins/db-login/medias/eventival_logo_svg_dark.svg" class="icon-eventival-btn logo_eventival_dark mr-2 mt-n1 ms-n1" alt="Log-in with Eventival" width="20" height="20"><span> 1208 Connectez-vous avec Eventival </span> </button> 1209 </div> 1210 <div data-rocket-location-hash="8a9a3ad6aaae72f1a930deb7fa30622b" class="ev_login-btn mb-3 d-none"> <a href="https://account.eventival.com/auth/realms/Eventival/protocol/openid-connect/auth?client_id=ev-festival-giff&response_type=code&redirect_uri=https%3A%2F%2Fwww.giff.ch%2Flog-in%2F%3Flogin%3Ddbl-user&scope=openid%20email" class="btn btn-outline-primary btn-eventival disabled"> 1211 <img src="https://www.giff.ch/wp-content/plugins/db-login/medias/eventival_logo_svg_dark.svg" class="icon-eventival-btn logo_eventival_dark mr-2 mt-n1 ms-n1" alt="Log-in with Eventival" width="20" height="20"> 1212 <span> 1213 Connexion fermée </span> 1214 </a> 1215 </div> 1216 <div data-rocket-location-hash="3a7cbd69cea823c68e2c81dc1ea2f966" class="ev_logout-btn mb-3 d-none"> 1217 <button type="button" 1218 class="btn btn-outline-primary btn-eventival" 1219 onclick="document.cookie = 'dbl_user=; Max-Age=0; path=/;'; window.location.reload();"> 1220 <img src="https://www.giff.ch/wp-content/plugins/db-login/medias/eventival_logo_svg_dark.svg" class="icon-eventival-btn logo_eventival_dark mr-2 mt-n1 ms-n1" alt="Log-out with Eventival" width="20" height="20"> 1221 <span> 1222 Déconnexion </span> 1223 </button> 1224 </div> 1225 <div class='alert alert-warning d-none' role='alert' id='login-closed'>Le GDM ouvrira le </div><div class='alert alert-warning d-none' role='alert' id='eventival'>Désolé, nous rencontrons actuellement un problème technique avec notre système. Veuillez réessayer de vous connecter dans quelques minutes. Si le problème persiste, veuillez nous contacter à : <a href="mailto:[email protected]" class="text-bg">[email protected]</a></div><div class='alert alert-warning d-none' role='alert' id='setup-account'>Désolé, il semble que vous nâayez pas de compte ou que vous ne disposiez pas des autorisations nécessaires pour accéder à la plateforme en ligne Market. Veuillez nous contacter à : <a href="mailto:[email protected]">[email protected]</a>.</div><div class='alert alert-warning d-none' role='alert' id='accreditation'>Désolé, vous nâavez pas lâaccréditation requise pour vous connecter. Veuillez demander votre accréditation via <a href="https://www.giff.ch/giff-pro/accreditation/">ce lien</a>, ou contactez-nous à : <a href="mailto:[email protected]" class="text-bg">[email protected]</a></div>
1225<script> 1226 1227 </script>
1227 1228 </div> 1229 </div> 1230 </div> 1231 </div> 1232</div>
1233<script type="speculationrules"> 1234{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/giff\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 1235</script>
vendor: 1 bytes, line 1235
1235
1236<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/date.js?ver=1790258750" id="date-js"></script>
vendor: 1 bytes, line 1236
1236
1237<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/cookie.js?ver=1790258750" id="cookie-js"></script>
vendor: 1 bytes, line 1237
1237
1238<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/user.js?ver=1790258750" id="user-js"></script>
vendor: 1 bytes, line 1238
1238
1239<script id="user-js-after"> 1240window.addEventListener('DOMContentLoaded', (event) => { 1241 setup_user(); 1242 }) 1243</script>
vendor: 1 bytes, line 1243
1243
1244<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/access.js?ver=1790258750" id="access-js"></script>
vendor: 1 bytes, line 1244
1244
1245<script id="access-js-after"> 1246document.addEventListener('DOMContentLoaded', (event) => { 1247 //access_projects_nav(); 1248 //access_meetings_nav(); 1249 //access_whoshow_user_data(); 1250 update_login_header_btn(); 1251 tktConnect() 1252 logout_user() 1253 }) 1254document.addEventListener("DOMContentLoaded", (event) => { 1255 display_popup_on_error() 1256 }) 1257window.addEventListener('DOMContentLoaded', (event) => { 1258 access_dbl_login(); 1259 }); 1260</script>
vendor: 1 bytes, line 1260
1260
1261<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/plugins/db-login/assets/js/db-cinema.js?ver=1790258750" id="dbCinema-js"></script>
vendor: 1 bytes, line 1261
1261
1262<script id="rocket-browser-checker-js-after"> 1263"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}(); 1264</script>
vendor: 1 bytes, line 1264
1264
1265<script id="rocket-preload-links-js-extra"> 1266var RocketPreloadLinksConfig = {"excludeUris":"\/user\/|\/en\/user\/|\/giff-tv\/|\/en\/giff-tv\/|\/gdm\/whos-who\/|\/en\/gdm\/whos-who\/|\/whos-who-2024\/|\/en\/whos-who-2024\/|\/gdm\/personal-agenda\/|\/en\/gdm\/personal-schedule\/|\/profile\/|\/en\/profile\/|\/gdm\/my-meeting_requests\/|\/en\/gdm\/my-meeting_requests\/|\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/www.giff.ch","onHoverDelay":"100","rateThrottle":"3"}; 1267</script>
vendor: 1 bytes, line 1267
1267
1268<script id="rocket-preload-links-js-after"> 1269(function() { 1270"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run(); 1271}()); 1272</script>
vendor: 1 bytes, line 1272
1272
1273<script src="https://www.giff.ch/wp-content/themes/giff/assets/vendors/bootstrap-5.1.0/dist/js/bootstrap.bundle.min.js?ver=5.1.2" id="bootstrap-bundle-js-js"></script>
vendor: 1 bytes, line 1273
1273
1274<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/main.js?ver=1790258750" id="theme-js-js"></script>
vendor: 1 bytes, line 1274
1274
1275<script src="https://www.giff.ch/wp-content/themes/giff/assets/vendors/listjs-2.3.1/listjs.min.js?ver=2.3.2" id="listjs-js"></script>
vendor: 1 bytes, line 1275
1275
1276<script src="https://www.giff.ch/wp-content/themes/giff/assets/vendors/fuse.min.js?ver=6.6.3" id="fuse-js"></script>
vendor: 1 bytes, line 1276
1276
1277<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/utility_function.js?ver=1790258750" id="utility_function-js"></script>
vendor: 1 bytes, line 1277
1277
1278<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/data.js?ver=1790258750" id="data-js"></script>
vendor: 1 bytes, line 1278
1278
1279<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/construct.js?ver=1790258750" id="construct-js"></script>
vendor: 1 bytes, line 1279
1279
1280<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/search.js?ver=1790258750" id="search-js"></script>
vendor: 1 bytes, line 1280
1280
1281<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/filtering.js?ver=1790258750" id="filtering-js"></script>
vendor: 1 bytes, line 1281
1281
1282<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/ma_selection.js?ver=1790258750" id="ma_selection-js"></script>
vendor: 1 bytes, line 1282
1282
1283<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/express_checkout.js?ver=1790258750" id="express_checkout-js"></script>
vendor: 1 bytes, line 1283
1283
1284<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/filtering_prog.js?ver=1790258750" id="filtering_prog-js"></script>
vendor: 1 bytes, line 1284
1284
1285<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/program/json_loader.js?ver=1790258750" id="json_loader-js"></script>
vendor: 1 bytes, line 1285
1285
1286<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/tocome.js?ver=1790258750" id="tocome-js"></script>
vendor: 1 bytes, line 1286
1286
1287<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/giff-tv.js?ver=1790258750" id="giff-tv-js"></script>
vendor: 1 bytes, line 1287
1287
1288<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/tkt.js?ver=1790258750" id="tkt_script-js"></script>
vendor: 1 bytes, line 1288
1288
1289<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/add-to-calendar.js?ver=1790258750" id="add-to-calendar-js"></script>
vendor: 1 bytes, line 1289
1289
1290<script data-minify="1" src="https://www.giff.ch/wp-content/cache/min/1/wp-content/themes/giff/assets/js/video.js?ver=1790258750" id="block-video-js"></script>
1290 1291
1291<script type="text/template" id="tkt-booking-form-dates-tpl"> 1292 <% screenings = _.filter(screenings, function (s) { return s.stop_at > new Date(); }); %> 1293<% if (screenings.length > 1) { %> 1294<% 1295 var m = {}; 1296 _.forEach(screenings, function(s) { 1297 var day = s.start_at.format("dddd D MMMM"); 1298 if (!m[day]) 1299 m[day] = []; 1300 m[day].push(s); 1301 }); 1302 1303 1304 var dates = []; 1305 _.forEach(screenings, function(s) { 1306 var day = s.start_at.format("YYYY-MM-DD"); 1307 if (dates.indexOf(day) === -1) 1308 dates.push(day); 1309 }); 1310%> 1311 1312<div class="tkt-wrapper"> 1313 <div class="row"> 1314 <div class="col"> 1315 <span> 1316 Veuillez choisir la date désirée : </span> 1317 <div class="days-wrapper"> 1318 <% if (Object.keys(m).length > 6) { %> 1319 <input 1320 id="calendar" 1321 type="text" 1322 class="tkt-input form-control data-field" 1323 data-component="Form/Calendar" 1324 required 1325 data-alt-format="l j F" 1326 data-enable="<%= dates.join(',') %>" 1327 data-inline="true" 1328 /> 1329 1330 <% } else { %> 1331 <% _.forEach(Object.keys(m), function(day) { %> 1332 <span 1333 class="tkt-badge tkt-light-badge day" 1334 data-day="<%= day %>" 1335 data-ymd="<%= m[day][0].start_at.format('YYYY-MM-DD') %>" 1336 data-screening_id="<%= _.map(m[day], function (s) { return s._id; }).join(',') %>"> 1337 <%= day %> 1338 </span> 1339 <% }) %> 1340 <% } %> 1341 </div> 1342 1343 <br/> 1344 1345 <span> 1346 Veuillez choisir l'heure désirée : </span> 1347 <div class="dates-wrapper"> 1348 <% _.forEach(m, function(screenings, day) { %> 1349 <% _.forEach(screenings, function(s) { %> 1350 <span 1351 class="tkt-badge tkt-light-badge date" 1352 data-day="<%= day %>" 1353 data-ymd="<%= s.start_at.format('YYYY-MM-DD') %>" 1354 data-screening_id="<%= s._id %>" 1355 >
1356 <%= s.start_at.format("LT") %> 1357 1358 <% if (s.opaque) { %> 1359 <% if (s.opaque.version) { %> 1360 <%= (' - ' + s.opaque.version) %> 1361 <% } %> 1362 <% if (s.opaque._3d) { %> 1363 <%= ' - 3D' %> 1364 <% } %> 1365 <% } %> 1366 <%= ' - ' + s.cinema_hall.name %> 1367 </span> 1368 <% }) %> 1369 <% }) %> 1370 </div> 1371 1372 <br/> 1373 1374 </div> 1375 </div> 1376</div> 1377<% } else if (screenings.length == 1) { %> 1378<span data-screening_id="<%= screenings[0]._id %>" class="date single-date"> 1379 <%= screenings[0].start_at.format("dddd D MMMM") %> à <%= screenings[0].start_at.format("LT") + ' - ' + screenings[0].cinema_hall.name %></span> 1380<% } else { %> 1381<span>Il n'y a pas de billetterie disponible pour cet événement.</span> 1382<% } %> 1383 </script>
1383 1384
1384<script type="text/template" id="tkt-booking-form-pricings-tpl"> 1385 1386<% 1387 var uiLang = 'fr'; 1388 var localize = function (obj) { 1389 return (TKTLib && TKTLib.StringsHelper) 1390 ? (TKTLib.StringsHelper.getLocalizedValue(obj, uiLang) || '') 1391 : ''; 1392 }; 1393%> 1394<% const availabilities = bookability?.availabilities; %> 1395<% const eligible_types = (bookability?.eligible_types || screening?.eligible_types || []).filter(t => t._id != 'one-time-pass'); %> 1396<% const sellable_types = eligible_types.filter(t => !!t.sellable); %> 1397<% 1398 const sorted_pricings = _.chain((screening && screening.pricings) ? screening.pricings : {}) 1399 .map(function (pricing, key) { 1400 const opaque = pricing && pricing.opaque ? pricing.opaque : {}; 1401 const weight = parseFloat(opaque.eshop_sort_weight); 1402 return { 1403 key, 1404 pricing, 1405 weight: isFinite(weight) ? weight : Number.POSITIVE_INFINITY 1406 }; 1407 }) 1408 .sortBy(function (item) { return item.key; }) 1409 .sortBy(function (item) { return item.weight; }) 1410 .value(); 1411%> 1412<% 1413 const ticket_cannot_book_explanation = function (_id) { 1414 bookability.tickets = bookability.tickets || {}; 1415 return bookability.tickets[_id]?.cannot_book_explanation; 1416 } 1417%> 1418 1419<div class="tkt-wrapper"> 1420 <% if (_.keys(screening.pricings).length) { %> 1421 <% if ('map_only_bookings' in screening.opaque && screening.opaque.map_only_bookings) { %> 1422 <div class="row"> 1423 <div class="col"> 1424 <iframe width="100%" style="min-height: 500px" frameborder="0" title="Plan de salle" src="<%= TKTLib.EshopUrlHelper.getScreeningMapUrl(screening._id) %>"></iframe> 1425 </div> 1426 </div> 1427 <% } else if (show_pricings) { %> 1428 <% if (!availabilities || availabilities.me['right-now']['one-time-pass'] > 0) { %> 1429 <h4>Acheter des places</h3> 1430 <div class="pricings-form"> 1431 <div class="row"> 1432 <div class="col"> 1433 <span> 1434 Saisissez le nombre de place(s) que vous souhaitez ajouter à votre panier : </span> 1435 </div> 1436 </div> 1437 <% _.each(sorted_pricings, function(item) { const p = item.pricing; const key = item.key; const cannot_book = p.cannot_book_reason; %> 1438 <div class="row pricing-row<%= cannot_book ? ' unavailable text-muted' : '' %>" data-pricing-wrapper="<%= key %>"<%= cannot_book ? ' style="opacity:0.55"' : '' %>> 1439 <div class="col"> 1440 <% if (cannot_book) { %> 1441 <span class="tkt-badge tkt-badge-split flex-rev-on-mobile"> 1442 <span class="tkt-badge-part tkt-light-badge text-center"> 1443 <span class="pricing-qty">0</span> 1444 x 1445 <span class="pricing-name"> 1446 <% var pricing_name = localize(p.name); %> 1447 <%= pricing_name %> : 1448 <% var pricing_description = localize(p.description); %> 1449 <% if (pricing_description) { %> 1450 <span class="d-none tkt-tippy-content" id="tippy-pricing-desc-<%= key %>"><%= pricing_description %></span> 1451 <i class="tkt-icon-info" data-component="Ui/Tippy" data-tippy-source="#tippy-pricing-desc-<%= key %>" role="button" tabindex="0" aria-label="Plus d'informations"></i> 1452 <% } %> 1453 </span> 1454 <span class="pricing-price"> 1455 <% if (p.variable_price) { %> 1456 <% var minAmtU = p.min_price && p.min_price.CHF; %> 1457 <% if (minAmtU != null) { %> 1458 dès <%= typeof minAmtU.toFixed === 'function' ? minAmtU.toFixed(2) : Number(minAmtU).toFixed(2) %> CHF <% } else { %> 1459 Prix libre <% } %> 1460 <% } else { %> 1461 <%= p.price.CHF.toFixed(2) %> CHF <% } %> 1462 </span> 1463 <br><small class="text-danger"><%= cannot_book %></small> 1464 </span> 1465 </span> 1466 <input type="hidden" data-pricing="<%= key %>
1466" class="input pricing-input" value="0"/> 1467 <% } else { %> 1468 <span class="tkt-badge tkt-badge-split flex-rev-on-mobile tkt-badge-plus-minus"> 1469 <span class="tkt-badge-part tkt-grey-badge tkt-minus-btn text-center">-</span> 1470 <span class="tkt-badge-part tkt-light-badge text-center"> 1471 <span class="pricing-qty"> 1472 0 1473 </span> 1474 x 1475 <span class="pricing-name"> 1476 <% var pricing_name = localize(p.name); %> 1477 <%= pricing_name %> : 1478 <% var pricing_description = localize(p.description); %> 1479 <% if (pricing_description) { %> 1480 <span class="d-none tkt-tippy-content" id="tippy-pricing-desc-<%= key %>"><%= pricing_description %></span> 1481 <i class="tkt-icon-info" data-component="Ui/Tippy" data-tippy-source="#tippy-pricing-desc-<%= key %>" role="button" tabindex="0" aria-label="Plus d'informations"></i> 1482 <% } %> 1483 </span> 1484 <span class="pricing-price"> 1485 <% if (p.variable_price) { %> 1486 <% var minAmt = p.min_price && p.min_price.CHF; %> 1487 <% if (minAmt != null) { %> 1488 dès <%= typeof minAmt.toFixed === 'function' ? minAmt.toFixed(2) : Number(minAmt).toFixed(2) %> CHF <% } else { %> 1489 Prix libre <% } %> 1490 <% } else { %> 1491 <%= p.price.CHF.toFixed(2) %> CHF <% } %> 1492 </span> 1493 </span> 1494 <span class="tkt-badge-part tkt-dark-badge tkt-plus-btn text-center">+</span> 1495 </span> 1496 <input type="hidden" data-pricing="<%= key %>" class="input pricing-input" value="0"/> 1497 <% if (p.variable_price) { %> 1498 <% var vpMin = (function(){ var m = p.min_price && p.min_price.CHF; if (m == null) return 0; return typeof m.toFixed === 'function' ? Number(m) : Number(m); })(); %> 1499 <% var vpDefault = (function(){ var pr = p.price.CHF; var n = pr == null ? (vpMin > 0 ? vpMin : '') : (typeof pr.toFixed === 'function' ? Number(pr) : Number(pr)); if (vpMin > 0 && n !== '' && n < vpMin) return vpMin; return n; })(); %> 1500 <div class="pricing-sale-price-wrap mt-2" data-pricing="<%= key %>" style="display:none;"> 1501 <label class="small mb-0 pricing-sale-price-label" for="pricing-sale-price-<%= key %>"> 1502 Prix payé : 1503 </label> 1504 <div class="input-group input-group-sm pricing-sale-price-group"> 1505 <div class="input-group-prepend"> 1506 <span class="input-group-text">CHF</span> 1507 </div> 1508 <input 1509 type="number" 1510 step="0.05" 1511 <% if (vpMin > 0) { %>min="<%= vpMin %>"<% } %> 1512 class="form-control pricing-sale-price" 1513 id="pricing-sale-price-<%= key %>" 1514 data-pricing="<%= key %>" 1515 data-min-price="<%= vpMin %>" 1516 value="<%= vpDefault %>" 1517 onfocus="this.select()" 1518 /> 1519 </div> 1520 <small class="pricing-sale-price-hint text-danger d-none" aria-live="polite"></small> 1521 </div> 1522 <% } %> 1523 <% if (p.rules && p.rules.external_voucher) { %> 1524 <div class="external-voucher-fields mt-2" data-pricing="<%= key %>" data-provider="<%= p.rules.external_voucher %>" style="display:none"> 1525 <label class="d-block small mb-1"><%= p.rules.external_voucher === 'procinema' ? "Saisissez le code de votre bon ProCin\u00e9ma" : "Saisissez le code de votre bon" %></label> 1526 <div class="external-voucher-codes"></div> 1527 </div> 1528 <% } %> 1529 <% } %> 1530 </div> 1531 </div> 1532 <% }) %> 1533 <div class="row"> 1534 <div class="col"> 1535 <div class="error pricings-error d-none"></div> 1536 <button class="button add-to-cart-btn active" > 1537 Ajouter à mon panier </button> 1538 </div> 1539 </div> 1540 </div> 1541 <% } else { %> 1542 <% const otp_messages = bookability?.one_time_pass_messages; %> 1543 <% if (otp_messages && otp_messages.parts && otp_messages.parts.length) { %> 1544 <% _.each(otp_messages.parts, function(part) { %> 1545 <h5 class="no-one-time-pass-message"><%= part %></h5> 1546 <% }); %> 1547 <% } else if (availabilities && availabilities['me']['from-now']['one-time-pass'] > 0) { %> 1548 <h5 class="no-one-time-pass-message"> 1549 Il n'est pas encore possible d'acheter des tickets en ligne pour cette séance. </h5> 1550 <% } else if (availabilities && availabilities['me']['absolute']['one-time-pass'] > 0) { %> 1551 <h5 class="no-one-time-pass-message">
1552 Tickets disponibles uniquement sur place </h5> 1553 <% } else { %> 1554 <h5 class="no-one-time-pass-message"> 1555 Il n'est pas possible d'acheter des tickets en ligne pour cet événement. </h5> 1556 <% } %> 1557 <% } %> 1558 <% } %> 1559 <br/> 1560 <% } %> 1561 1562 <% if (show_ticket_id && screening.opaque && (!('map_only_bookings' in screening.opaque && screening.opaque.map_only_bookings)) && eligible_types.length) { %> 1563 <h4>Réserver des places sur vos billets</h3> 1564 1565 <div class="book-panel"> 1566 <% 1567 account_tickets.filter(ticket => !ticket.isOneTimePass() && ticket.canBook(screening)).concat( 1568 connected_tickets.filter(ticket => !ticket.isOneTimePass()), 1569 account_tickets.filter(ticket => !ticket.isOneTimePass() && !ticket.canBook(screening)), 1570 ).map(ticket => { 1571 %> 1572 <div class="ticket-wrapper" data-ticket-id="<%= ticket._id %>"> 1573 <div class="row"> 1574 <div class="col col-auto ticket-infos"> 1575 <a class="btn btn-outline btn-sm text-left" target="_blank" href="<%= ticket.getTicketViewUrl() %>"> 1576 <i class="tkt-icon-tag"></i> 1577 <b><%= ticket.getTypeName() %></b> 1578 - <%= ticket.getDisplayName() %> 1579 </a> 1580 <% if (ticket.hasBooked(screening)) { %> 1581 <div class="already-booked"> 1582 <small data-ticket-id="<%= ticket._id %>"> 1583 <b>Réservation pour cette séance avec ce billet : <%= ticket.getBookingsFor(screening)?.length || 0 %></b> 1584 </small> 1585 </div> 1586 <% } %> 1587 </div> 1588 <div class="col text-right book-btns"> 1589 <% if (ticket.canBook(screening)) { %> 1590 <button data-ticket-id="<%= ticket._id %>" class="button book-btn<%= ticket.hasBooked(screening) ? '-more' : '' %> active" > 1591 <i class="tkt-icon-plus"></i> 1592 <% if (ticket.hasBooked(screening)) { %> 1593 Réserver une place de plus sur ce billet <% } else { %> 1594 Réserver une place sur ce billet <% } %> 1595 </button> 1596 <% } else { %> 1597 <small data-ticket-id="<%= ticket._id %>" class="cannot-book-explanation"> 1598 <i><%= ticket_cannot_book_explanation(ticket._id) %></i> 1599 </small> 1600 <% } %> 1601 </div> 1602 </div> 1603 <div class="row"> 1604 <div class="col text-right"> 1605 <small class="success book-form-success d-none text-success pl-2"> 1606 Votre place a bien été réservée. </small> 1607 </div> 1608 </div> 1609 <div class="row"> 1610 <div class="col text-right"> 1611 <small class="book-form-error d-none text-danger pl-2"> 1612 </small> 1613 </div> 1614 </div> 1615 </div> 1616 <% }) %> 1617 </div> 1618 1619 <div class="pass-form mt-3"> 1620 <div class="connect-panel"> 1621 <div class="ticket_connect"> 1622 <div class="row"> 1623 <div class="col"> 1624 <span class="pass-title"> 1625 Entrez votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span> 1626 <a href="" class="show-connect-panel-form">Ajoutez-le</a> pour réserver.<br/> 1627 </span> 1628 </div> 1629 </div> 1630 <div class="connect-panel-form d-none"> 1631 <div class="col"> 1632 <div class="row mt-5 input-pass"> 1633 <input id="pass-id" type="number" class="tkt-input input-invert form-control text-center pass-number-input" placeholder="123456" maxlength="6"/> 1634 <p class="minus">-</p> 1635 <input id="pass-code" type="password" class="tkt-input input-invert form-control text-center pass-key-input" placeholder="abcde" maxlength="6"/> 1636 </div> 1637 </div> 1638 1639 <div class="row"> 1640 <div class="col text-center"> 1641 <div class="error pass-error d-none text-center text-danger"></div> 1642 <button class="btn btn-primary button login-btn connect-btn mt-5 mb-3"> 1643 <i class="tkt-icon-sign-in-alt"></i> Connexion </button> 1644 </div> 1645 </div> 1646 <hr> 1647 <div> 1648 Votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span> est composé d'un identifiant de 6 chiffres suivi d'un code alphanumérique et se trouve sur votre billet, pass ou accréditation. </div> 1649 <br> 1650 </div> 1651 </div> 1652 <% if (sellable_types.length > 0) { %> 1653 <div class="row"> 1654 <div class="col mt-3"> 1655 <div class="buy-pass-link">
1656 <span>Acheter un abonnement</span> 1657 <ul class="eligible-types-list"> 1658 <% sellable_types.map(function (t) { %> 1659 <li class="eligible-type"> 1660 <span class="type-name"> 1661 <i class="tkt-icon-ticket"></i> 1662 <a href="https://www.giff.ch/billetterie/?selected=<%= t._id %>" class="type-link"> 1663 <%= t.name.fr %> 1664 </a> 1665 </span> 1666 </li> 1667 <% }); %> 1668 </ul> 1669 </div> 1670 </div> 1671 </div> 1672 <% } %> 1673 </div> 1674 </div> 1675 <% } %> 1676 1677</div> 1678 </script>
1678 1679
1679<script type="text/template" id="tkt-booking-form-success-tpl"> 1680 <div class="tkt-wrapper"> 1681 <div class="row"> 1682 <div class="col"> 1683 <h3 class="success-title"> 1684 Merci, votre commande est réservée dans votre panier pour 30 minutes. </h3> 1685 <div class="float-right text-right"> 1686 <a href="<%= cart_url %>" class="button show-cart-btn active" > 1687 Accéder au panier </a> 1688 <div class="continue-shopping" > 1689 <a href="<%= program_url %>">Continuer ma visite</a> 1690 </div> 1691 </div> 1692 </div> 1693 </div> 1694</div> 1695 </script>
1695 1696 1697
1697<script> 1698 (function () { 1699 var jq = window.tktjQuery || window.jQuery; 1700 if (typeof jq === "function") { 1701 /* Restore WP jQuery if a theme snippet (MailChimp noConflict(true)) 1702 or a CMP removed the globals after jquery.js ran. */ 1703 window.jQuery = jq; 1704 window.$ = jq; 1705 } 1706 })(); 1707 // moment locale must be injected globally because it's needed 1708 // before the config initialization 1709 window.moment_locale = "fr_FR"; 1710 window.moment_timezone = "Europe/Zurich"; 1711 window.tkt_config = { 1712 "version": "1", 1713 "base_url": "https://www.giff.ch/", 1714 "engine_uri": "https://giff-engine.ticketack.com/", 1715 "eshop_uri": "https://giff.ticketack.com/", 1716 "api_key": "c5415263-df61-4835-80d0-eedaacf64572", 1717 "salepoint_id": "", 1718 "cashregister_id": "", 1719 "edition": "2026", 1720 "program_url": "https://www.giff.ch/programme/", 1721 "ticket_view_url": "https://www.giff.ch/billetterie/ticket/", 1722 "shop_url": "", 1723 "cart_url": "https://www.giff.ch/panier/", 1724 "cart_reset_url": "https://giff.ticketack.com/cart/reset", 1725 "checkout_url": "https://www.giff.ch/panier/", 1726 "login_url": "", 1727 "buy_pass_url": "https://www.giff.ch/billetterie/", 1728 "registration_url": "", 1729 "user_account_url": "", 1730 "privacy_policy_url": "https://www.giff.ch/politique-de-confidentialite/", 1731 "terms_conditions_url": "https://www.giff.ch/billetterie/conditions-de-vente/", 1732 "eshop_registration_enabled": false, 1733 "buyer_requested_fields": ["firstname","lastname","email","age","zip"], 1734 "buyer_required_fields": ["firstname","lastname","email","age","zip"], 1735 "otp_requested_fields": [], 1736 "otp_required_fields": [], 1737 "lang": "fr", 1738 "i18n": { 1739 "Veuillez choisir au moins un billet": "Veuillez choisir au moins un billet", 1740 "Veuillez remplir les deux champs": "Veuillez remplir les deux champs", 1741 "Les informations que vous avez saisies sont invalides": "Les informations que vous avez saisies sont invalides", 1742 "Une erreur est survenue. Veuillez r\u00e9-essayer ult\u00e9rieurement.": "Une erreur est survenue. Veuillez r\u00e9-essayer ult\u00e9rieurement.", 1743 "Vous ne pouvez pas r\u00e9server de place pour cette s\u00e9ance avec votre abonnement.": "Vous ne pouvez pas r\u00e9server de place pour cette s\u00e9ance avec votre abonnement.", 1744 "Vous ne pouvez pas r\u00e9server une place de plus pour cette s\u00e9ance avec votre abonnement.": "Vous ne pouvez pas r\u00e9server une place de plus pour cette s\u00e9ance avec votre abonnement.", 1745 "Veuillez choisir un tarif": "Veuillez choisir un tarif", 1746 "Votre panier a \u00e9t\u00e9 mis \u00e0 jour": "Votre panier a \u00e9t\u00e9 mis \u00e0 jour", 1747 "Code promo invalide": "Code promo invalide", 1748 "Impossible d'utiliser ce code promo": "Impossible d'utiliser ce code promo", 1749 "Le code promo a bien \u00e9t\u00e9 pris en compte": "Le code promo a bien \u00e9t\u00e9 pris en compte", 1750 "Vous disposez de": "Vous disposez de", 1751 "sur votre porte monnaie \u00e9lectronique": "sur votre portefeuille \u00e9lectronique", 1752 "Montant trop \u00e9lev\u00e9": "Montant trop \u00e9lev\u00e9", 1753 "Portefeuille appliqu\u00e9 avec succ\u00e8s": "Portefeuille appliqu\u00e9 avec succ\u00e8s", 1754 "Impossible d'utiliser votre portefeuille": "Impossible d'utiliser votre portefeuille", 1755 "title": "Nom", 1756 "name": "Nom", 1757 "firstname": "Pr\u00e9nom", 1758 "lastname": "Nom", 1759 "email": "E-mail", 1760 "password": "Mot de passe", 1761 "address": "Adresse", 1762 "street": "Rue", 1763 "zip": "Code postal", 1764 "city": "Ville", 1765 "country": "Pays", 1766 "phone": "T\u00e9l\u00e9phone", 1767 "cellphone": "T\u00e9l\u00e9phone portable", 1768 "email2": "Confirmation e-mail", 1769 "company": "Entreprise", 1770 "conditions": "Conditions", 1771 "comment": "Commentaires", 1772 "photo": "Photo", 1773 "gift_message": "Message cadeau", 1774 "Ticket": "Ticket", 1775 "birthdate": "Date de naissance", 1776 "rfc2397_portrait": "Photo", 1777 "age": "\u00c2ge", 1778 "sex": "Sexe", 1779 "language": "Langue", 1780 "Les adresses e-mail ne correspondent pas.": "Les adresses e-mail ne correspondent pas.", 1781 "ENOTSUP": "n'est pas support\u00e9", 1782 "ENOPROP": "est manquant", 1783 "EDUPLICATE": "existe d\u00e9j\u00e0", 1784 "EISNOTSTRING": "n'est pas une chaine de caract\u00e8re", 1785 "EEMPTY": "est vide",
1786 "ETOOSHORT": "est trop court", 1787 "ETOOBIG": "est trop grand", 1788 "EINVAL": "est invalide", 1789 "EISNOTOBJ": "n'est pas un objet", 1790 "EISNOTARRAY": "n'est pas un tableau", 1791 "EISNOTBOOL": "n'est pas un bool\u00e9en", 1792 "PENDING_STATUS": "En attente", 1793 "OPEN": "En cours", 1794 "PAYING": "Paiement en cours", 1795 "PAID": "Pay\u00e9e", 1796 "COMPLETED": "Termin\u00e9e", 1797 "ACTIVATION_ERROR": "Erreur", 1798 "CANCELED": "Annul\u00e9e", 1799 "POSTFINANCE": "Postfinance", 1800 "PROXYPAY": "Proxypay", 1801 "ESHOP_TRANSFER": "Virement", 1802 "NULL_PAYMENT": "Gratuit", 1803 "LATER_PAYMENT": "R\u00e9servation", 1804 "POS_CASH": "Esp\u00e8ces", 1805 "POS_CASH_COLLECTOR": "Monnayeur", 1806 "POS_SUMUP": "Carte bancaire", 1807 "POS_OTHER_EFT": "Carte bancaire", 1808 "POS_ZVT_EFT": "Carte bancaire", 1809 "POS_WALLET": "Portefeuille", 1810 "POS_TRANSFER": "Virement", 1811 "ACTIVATED": "Activ\u00e9", 1812 "NEW": "Inactif", 1813 "PENDING": "En attente de paiement", 1814 "BLOCKED": "Bloqu\u00e9", 1815 "Director": "directeur", 1816 "Directors": "directeurs", 1817 "r\u00e9servation": "r\u00e9servation", 1818 "r\u00e9servations": "r\u00e9servations", 1819 "sur": "sur", 1820 "disponible": "disponible", 1821 "disponibles": "disponibles" 1822} 1823 }; 1824 (function () { 1825 function normalizeCountryLabel(value) { 1826 return String(value || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]/g, ""); 1827 } 1828 var aliasMap = null; 1829 function countryAliasMap() { 1830 if (aliasMap) return aliasMap; 1831 aliasMap = { 1832 unknown: "", inconnu: "", sconosciuto: "", 1833 cotedivoire: "CI", ivorycoast: "CI", kosovo: "XK", 1834 zaire: "CD", yugoslavia: "YU", yougoslavie: "YU", 1835 serbiaandmontenegro: "RS", netherlandsantilles: "AN", 1836 unitedkingdom: "GB", uk: "GB", unitedstates: "US" 1837 }; 1838 var skip = { 1839 AC:1, AN:1, BU:1, CP:1, CQ:1, CS:1, DD:1, DG:1, DY:1, EA:1, EU:1, EZ:1, 1840 FX:1, HV:1, IC:1, NH:1, QO:1, RH:1, SU:1, TA:1, TP:1, UK:1, UN:1, VD:1, 1841 XA:1, XB:1, YD:1, YU:1, ZR:1, ZZ:1 1842 }; 1843 var langs = ["en", "fr", "de", "it"]; 1844 var displayers = {};
1845 langs.forEach(function (lang) { 1846 try { displayers[lang] = new Intl.DisplayNames([lang], { type: "region" }); } catch (e) {} 1847 }); 1848 for (var a = 65; a <= 90; a++) { 1849 for (var b = 65; b <= 90; b++) { 1850 var iso = String.fromCharCode(a) + String.fromCharCode(b); 1851 if (!aliasMap[iso.toLowerCase()]) aliasMap[iso.toLowerCase()] = iso; 1852 if (skip[iso]) continue; 1853 langs.forEach(function (lang) { 1854 var dn = displayers[lang]; 1855 if (!dn) return; 1856 try { 1857 var name = dn.of(iso); 1858 if (name && name !== iso) aliasMap[normalizeCountryLabel(name)] = iso; 1859 } catch (e) {} 1860 }); 1861 } 1862 } 1863 return aliasMap; 1864 } 1865 window.tktCountryIso = function (value) { 1866 var v = String(value == null ? "" : value).trim(); 1867 if (!v) return ""; 1868 if (/^[A-Za-z]{2}$/.test(v)) return v.toUpperCase(); 1869 return countryAliasMap()[normalizeCountryLabel(v)] || ""; 1870 }; 1871 window.tktCountryDisplay = function (value) { 1872 if (value == null || String(value).trim() === "") return ""; 1873 var iso = window.tktCountryIso(value); 1874 if (!iso) return String(value); 1875 try { 1876 var lang = (window.tkt_config && window.tkt_config.lang) || "fr"; 1877 return new Intl.DisplayNames([lang, "en"], { type: "region" }).of(iso) || iso; 1878 } catch (e) { 1879 return iso; 1880 } 1881 }; 1882 })(); 1883 </script>
1883 1884
1884<script> 1885 !function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host.replace(".i.posthog.com","-assets.i.posthog.com")+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagPayload isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]); 1886 (function() { 1887 function boot() { 1888 var props = { 1889 app: "wordpress", 1890 lang: window.tkt_config && window.tkt_config.lang, 1891 instance: "giff" 1892 }; 1893 function stripQuery(value) { 1894 if (typeof value !== "string" || value.indexOf("?") === -1) return value; 1895 try { 1896 var u = new URL(value, window.location.origin); 1897 u.search = ""; 1898 u.hash = ""; 1899 return u.toString(); 1900 } catch (e) { 1901 return value.split("?")[0]; 1902 } 1903 } 1904 function sanitizeProps(properties) { 1905 if (!properties) return properties; 1906 ["$current_url", "$initial_current_url", "$referrer", "url"].forEach(function (key) { 1907 if (properties[key]) properties[key] = stripQuery(properties[key]); 1908 }); 1909 return properties; 1910 } 1911 function applyGroup(client, memoSuffix) { 1912 if (!client || !props.instance) return; 1913 var instance = String(props.instance).slice(0, 100); 1914 var name = String(props.instance).slice(0, 100); 1915 var key = instance + "\0" + name; 1916 var storeKey = "tkt_ph_instance_group" + (memoSuffix || ""); 1917 try { 1918 if (client.__tkt_instance_group === key) return; 1919 if (window.sessionStorage && sessionStorage.getItem(storeKey) === key) { 1920 client.__tkt_instance_group = key; 1921 return; 1922 } 1923 } catch (e) {} 1924 try { 1925 client.group("instance", instance, { name: name }); 1926 client.__tkt_instance_group = key; 1927 try { sessionStorage.setItem(storeKey, key); } catch (e2) {} 1928 } catch (e) {} 1929 } 1930 posthog.init("phc_kBHqpqfwyMyc5nn56qyoekDHCFE9GrLD4fFKt8ePoYQn", { 1931 api_host: "https:\/\/eu.i.posthog.com", 1932 person_profiles: "identified_only", 1933 persistence: "localStorage+cookie", 1934 capture_pageview: true, 1935 capture_pageleave: true, 1936 capture_performance: { web_vitals: true }, 1937 autocapture: false, 1938 disable_session_recording: true, 1939 disable_surveys: true, 1940 advanced_disable_feature_flags: true, 1941 sanitize_properties: sanitizeProps 1942 }); 1943 try { posthog.register(props); } catch (e) {} 1944 applyGroup(posthog); 1945 var clientKey = ""; 1946 if (clientKey) { 1947 window.posthog_client = posthog.init(clientKey, { 1948 api_host: "https:\/\/eu.i.posthog.com", 1949 person_profiles: "identified_only", 1950 persistence: "localStorage+cookie", 1951 capture_pageview: true, 1952 capture_pageleave: true, 1953 capture_performance: { web_vitals: true }, 1954 autocapture: false, 1955 disable_session_recording: true, 1956 disable_surveys: true, 1957 advanced_disable_feature_flags: true, 1958 sanitize_properties: sanitizeProps 1959 }, "ticketack_client"); 1960 try { window.posthog_client.register(props); } catch (e) {} 1961 applyGroup(window.posthog_client, "_client"); 1962 } 1963 } 1964 var started = false;
1965 function bootOnce() { 1966 if (started) return; 1967 started = true; 1968 boot(); 1969 } 1970 function cookieYesPresent() { 1971 try { 1972 if (typeof window.getCkyConsent === "function") return true; 1973 if (document.getElementById("cookieyes")) return true; 1974 if (document.querySelector("script[src*=cookieyes]")) return true; 1975 if (/(?:^|; )cookieyes-consent=/.test(document.cookie)) return true; 1976 } catch (e) {} 1977 return false; 1978 } 1979 function wpConsentApiPresent() { 1980 try { 1981 if (typeof window.wp_has_consent === "function") return true; 1982 if (document.documentElement && document.documentElement.getAttribute("data-wpconsent") != null) return true; 1983 if (typeof window.wp_consent_type !== "undefined") return true; 1984 } catch (e) {} 1985 return false; 1986 } 1987 function cmpPresent() { 1988 return cookieYesPresent() || wpConsentApiPresent(); 1989 } 1990 function analyticsAllowed() { 1991 try { 1992 if (typeof window.getCkyConsent === "function") { 1993 var c = window.getCkyConsent(); 1994 if (c && c.categories) return !!c.categories.analytics; 1995 } 1996 } catch (e) {} 1997 try { 1998 var m = document.cookie.match(/(?:^|; )cookieyes-consent=([^;]*)/); 1999 if (m) { 2000 return /(?:^|,)analytics:yes(?:$|,)/.test(decodeURIComponent(m[1])); 2001 } 2002 } catch (e2) {} 2003 try { 2004 if (typeof window.wp_has_consent === "function") { 2005 if (window.wp_has_consent("statistics")) return true; 2006 if (window.wp_has_consent("analytics")) return true; 2007 return false; 2008 } 2009 } catch (e3) {} 2010 return null; 2011 } 2012 function listenConsent() { 2013 document.addEventListener("cookieyes_banner_load", function (e) { 2014 var cats = e && e.detail && e.detail.categories; 2015 if (cats && cats.analytics) bootOnce(); 2016 }); 2017 document.addEventListener("cookieyes_consent_update", function (e) { 2018 var accepted = e && e.detail && e.detail.accepted; 2019 if (accepted && accepted.indexOf && accepted.indexOf("analytics") !== -1) { 2020 bootOnce(); 2021 } else if (analyticsAllowed() === true) { 2022 bootOnce(); 2023 } 2024 }); 2025 document.addEventListener("wp_listen_for_consent_change", function (e) { 2026 var detail = e && e.detail; 2027 if (detail && (detail.statistics === "allow" || detail.analytics === "allow")) { 2028 bootOnce(); 2029 return; 2030 } 2031 if (analyticsAllowed() === true) bootOnce(); 2032 }); 2033 document.addEventListener("wp_consent_type_defined", function () { 2034 if (analyticsAllowed() === true) bootOnce(); 2035 }); 2036 } 2037 function schedule() { 2038 if (!cmpPresent()) { 2039 bootOnce(); 2040 return; 2041 } 2042 if (analyticsAllowed() === true) { 2043 bootOnce(); 2044 return; 2045 } 2046 listenConsent(); 2047 } 2048 if (typeof window.requestIdleCallback === "function") { 2049 window.requestIdleCallback(schedule, { timeout: 3000 }); 2050 } else { 2051 window.setTimeout(schedule, 0); 2052 } 2053 })(); 2054 </script>
2054 2055
2055<script src="https://www.giff.ch/wp-content/plugins/ticketack/front/build/app.js?v=2.112.0.202609151713"></script>
vendor: 1 bytes, line 2055
2055
2056<script>var rocket_beacon_data = {"ajax_url":"https:\/\/www.giff.ch\/wp-admin\/admin-ajax.php","nonce":"2ee014aadb","url":"https:\/\/www.giff.ch\/early-bird","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true,"preconnect_external_domain":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800,"preconnect_external_domain_elements":["link","script","iframe"],"preconnect_external_domain_exclusions":["static.cloudflareinsights.com","rel=\"profile\"","rel=\"preconnect\"","rel=\"dns-prefetch\"","rel=\"icon\""]}</script>
2056<script data-name="wpr-wpr-beacon" src='https://www.giff.ch/wp-content/plugins/wp-rocket/assets/js/wpr-beacon.min.js' async></script>
2056</body> 2057 2058</html> 2059 2060<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1790944209 -->
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.