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>Contacts - GIFF - Geneva International Film Festival</title> 13<link data-rocket-prefetch href="https://www.googletagmanager.com" rel="dns-prefetch"> 14<link data-rocket-prefetch href="https://www.youtube.com" rel="dns-prefetch"> 15<link data-rocket-prefetch href="https://player.vimeo.com" rel="dns-prefetch"> 16<link data-rocket-prefetch href="https://cdn-cookieyes.com" rel="dns-prefetch"> 17<link data-rocket-prefetch href="https://s3.amazonaws.com" rel="dns-prefetch"><link rel="preload" data-rocket-preload as="image" href="https://www.giff.ch/wp-content/themes/giff/medias/images/background-dark-2026.webp" fetchpriority="high"> 18 <meta name="description" content="Geneva International Film Festival (GIFF)Rue de Chantepoulet 1CH â 1201 Genève Général : +41 (0)22 809 69 20 Contact pour demande générale (e-mail)" /> 19 <link rel="canonical" href="https://www.giff.ch/le-festival/contacts/" /> 20 <meta property="og:locale" content="fr_FR" /> 21 <meta property="og:type" content="article" /> 22 <meta property="og:title" content="Contacts - GIFF - Geneva International Film Festival" /> 23 <meta property="og:description" content="Geneva International Film Festival (GIFF)Rue de Chantepoulet 1CH â 1201 Genève Général : +41 (0)22 809 69 20 Contact pour demande générale (e-mail)" /> 24 <meta property="og:url" content="https://www.giff.ch/le-festival/contacts/" /> 25 <meta property="og:site_name" content="GIFF - Geneva International Film Festival" /> 26 <meta property="article:publisher" content="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" /> 27 <meta property="article:modified_time" content="2026-08-11T09:28:21+00:00" /> 28 <meta property="og:image" content="https://www.giff.ch/wp-content/uploads/2026/06/reseaux_2026_1920.webp" /> 29 <meta property="og:image:width" content="1920" /> 30 <meta property="og:image:height" content="1080" /> 31 <meta property="og:image:type" content="image/webp" /> 32 <meta name="twitter:card" content="summary_large_image" /> 33 <meta name="twitter:site" content="@GIFF_ch" /> 34 <meta name="twitter:label1" content="Durée de lecture estimée" /> 35 <meta name="twitter:data1" content="1 minute" /> 36
36<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.giff.ch\/le-festival\/contacts\/","url":"https:\/\/www.giff.ch\/le-festival\/contacts\/","name":"Contacts - GIFF - Geneva International Film Festival","isPartOf":{"@id":"https:\/\/www.giff.ch\/#website"},"datePublished":"2021-09-20T13:52:25+00:00","dateModified":"2026-08-11T09:28:21+00:00","description":"Geneva International Film Festival (GIFF)Rue de Chantepoulet 1CH â 1201 Genève Général : +41 (0)22 809 69 20 Contact pour demande générale (e-mail)","breadcrumb":{"@id":"https:\/\/www.giff.ch\/le-festival\/contacts\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.giff.ch\/le-festival\/contacts\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.giff.ch\/le-festival\/contacts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.giff.ch\/"},{"@type":"ListItem","position":2,"name":"LE FESTIVAL","item":"https:\/\/www.giff.ch\/le-festival\/"},{"@type":"ListItem","position":3,"name":"Contacts"}]},{"@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>
36 37 <!-- / Yoast SEO plugin. --> 38 39 40<link rel='dns-prefetch' href='//www.youtube.com' /> 41<link rel='dns-prefetch' href='//player.vimeo.com' /> 42 43<style id='classic-theme-styles-inline-css'> 44/*! This file is auto-generated */ 45.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} 46</style> 47<style id='global-styles-inline-css'> 48: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%);
48--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;}
48.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;} 49:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} 50:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} 51:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 52</style> 53<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' /> 54<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' /> 55<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' /> 56<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' /> 57<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' /> 58<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' />
59<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 59
59
60<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 60
60
61<script id="jquery-js-after"> 62window.tktjQuery=window.jQuery; 63</script>
vendor: 1 bytes, line 63
63
64<script src="https://www.youtube.com/player_api?ver=1" id="youtube-api-js"></script>
vendor: 1 bytes, line 64
64
65<script src="https://player.vimeo.com/api/player.js?ver=1" id="vimeo-api-js"></script>
65 66<meta name="generator" content="WPML ver:4.9.5 stt:1,4;" /> 67<link rel="icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-32x32.webp" sizes="32x32" /> 68<link rel="icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-192x192.webp" sizes="192x192" /> 69<link rel="apple-touch-icon" href="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-180x180.webp" /> 70<meta name="msapplication-TileImage" content="https://www.giff.ch/wp-content/uploads/2026/06/cropped-favion_2026-270x270.webp" /> 71 72 73
73<script> 74 window.dataLayer = window.dataLayer || []; 75 76 function gtag() { 77 dataLayer.push(arguments); 78 } 79 80 gtag("consent", "default", { 81 ad_storage: "granted", 82 analytics_storage: "granted", 83 functionality_storage: "granted", 84 personalization_storage: "granted", 85 security_storage: "granted", 86 wait_for_update: 2000, 87 }); 88 89 gtag("set", "ads_data_redaction", true); 90 gtag("set", "url_passthrough", true); 91 </script>
91 92 93
93<script>
vendor: 610 bytes, lines 93-107
93 94 (function(w, d, s, l, i) { 95 w[l] = w[l] || []; 96 w[l].push({ 97 'gtm.start': new Date().getTime(), 98 event: 'gtm.js' 99 }); 100 var f = d.getElementsByTagName(s)[0], 101 j = d.createElement(s), 102 dl = l != 'dataLayer' ? '&l=' + l : ''; 103 j.async = true; 104 j.src = 105 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 106 f.parentNode.insertBefore(j, f); 107 })(window, document, 'script', 'dataLayer', '
107GTM-M39VPWR
vendor: 12 bytes, lines 107-108
107'); 108
108</script>
108 109 110 111
111<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>
111 112 113 114<meta name="generator" content="WP Rocket 3.23.3.3" data-wpr-features="wpr_minify_js wpr_preconnect_external_domains wpr_oci wpr_minify_css wpr_cdn wpr_preload_links wpr_desktop" /></head> 115 116<body class="wp-singular page-template-default page page-id-4215 page-child parent-pageid-36820 wp-custom-logo wp-embed-responsive wp-theme-giff intersaison"> 117 118 <!-- Google Tag Manager (noscript) -->
vendor: 89 bytes, lines 118-120
118 119 <noscript> 120 <iframe src="https://www.googletagmanager.com/ns.html?id=
120GTM-M39VPWR
vendor: 100 bytes, lines 120-122
120" height="0" width="0" style="display:none;visibility:hidden"></iframe> 121 </noscript> 122
122<!-- End Google Tag Manager (noscript) --> 123 124 <main id="main-container" class="container-fluid d-flex flex-column"> 125 126 <header id="main-nav" class="sticky-top is-selling is-nav-inter "> 127 128 <div id="heading-menu" class="d-flex h-100"> 129 130 <div id="main-nav-brand" class="my-auto me-auto"> 131 <a href="https://www.giff.ch" class="d-flex"> 132 <h1 class="brand-website"> 133 <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"> 134 <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" /> 135 </svg> 136 </h1> 137 <div class="brand-sentence"> 138 <div> 139 32ND GENEVA 140 </div> 141 <div>INTERNATIONAL</div> 142 <div>FILM FESTIVAL</div> 143 <div>30.10-8.11.2026</div> 144 </div> 145 </a> 146 </div> 147 148 <div id="main-nav-links" class="m-auto d-none d-xl-flex"> 149 <button class="giff-primary-hover active btn-sub-menu" onClick="openMenu(this, 'le_festival')"> 150 LE FESTIVAL </button> 151 <button class="gdm-primary-hover btn-sub-menu" onClick="openMenu(this, 'gdm')"> 152 Industrie </button> 153 <button class="giff-primary-hover btn-sub-menu" onClick="openMenu(this, 'agenda')"> 154 AGENDA </button> 155 <button class="giff-primary-hover btn-sub-menu" onClick="openMenu(this, 'relive')"> 156 Relive </button> 157 </div> 158 159 <div id="main-nav-sub-links" class="d-flex m-auto me-0"> 160 <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"> 161 Early Bird </span> </a> 162 <a href="https://www.giff.ch/panier/" class="btn btn-link btn-infoToggle"> 163 <i class="bi bi-lg bi-cart3"></i> 164 <span class="h6 infoToggle"> 165 Panier </span> 166 <div class="tkt-wrapper" data-component="Cart/CartIcon"></div> 167 </a> 168 </div> 169 170 <div class="menu-lang m-auto mx-4 me-xl-auto "> 171 <a href="https://www.giff.ch/en/le-festival/contacts/" class="h3">EN</a> 172<span class="h3">|</span> 173 <span class="h3 text-primary">FR</span> 174 </div> 175 176 <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"> 177 <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"> 178 <rect width="68" height="8" y="0"/> 179 <rect width="68" height="8" y="20"/> 180 <rect width="68" height="8" y="40"/> 181</svg> </button> 182 183 </div> 184 185 <div id="le_festival-menu" class="sub-menu d-none d-xl-block"><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> 186<button class="me-2 menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent 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> 187<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> 188<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> 189</div></div><div id='menu-46379' class='sub-sub-menu pt-2 pb-1 d-flex w-100 '><a href="https://www.giff.ch/le-festival/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-page-parent"><span class='h3'>à propos</span></a></li> 190<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> 191<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> 192<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> 193<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> 194<a href="https://www.giff.ch/le-festival/contacts/" class="me-4 menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-4215 current_page_item"><span class='h3'>Contacts</span></a></li> 195</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> 196<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> 197<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> 198<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>
199<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> 200<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> 201<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> 202</div></div><div 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> 203<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> 204<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> 205</div></div></div><div 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> 206<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> 207</div></div></div><div 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> 208<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> 209<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> 210<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> 211<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> 212<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> 213</div></div></div></header> 214 215 216<div class="offcanvas offcanvas-end" tabindex="-1" id="menu-nav-mobile" aria-labelledby="menu-nav-label"> 217 <div class="offcanvas-header d-flex pt-0"> 218 219 <div class="h4 me-sm-3 logo-header-mobile"> <a href="https://www.giff.ch" class="d-flex">
220 <div class="brand-website"> 221 <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"> 222 <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" /> 223 </svg> 224 </div> 225 <div class="brand-sentence"> 226 <div> 227 32th GENEVA 228 </div> 229 <div>INTERNATIONAL</div> 230 <div>FILM FESTIVAL</div> 231 <div>30.10-8.11.2026</div> 232 </div> 233 </a> 234 </div> 235 236 <div class="m-auto menu-lang"> 237 <a href="https://www.giff.ch/en/le-festival/contacts/" class="h3">EN</a> 238<span class="h3">|</span> 239 <span class="h3 text-primary">FR</span> 240 </div> 241 <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> 242 </div> 243 <div class="offcanvas-body d-flex flex-column"> 244 <hr class="mt-0 mb-3"> 245 <div id="menu-wrapper" class="h-100 d-flex flex-column"> 246 <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"> 247 LE FESTIVAL </button> 248 <div id="accordion-le_festival" class="accordion-collapse collapse" aria-labelledby="heading-le_festival" data-bs-parent="#menu-wrapper"> 249 <div class="accordion"><a href='https://www.giff.ch/' target='' rel='' class='h2 mb-1 d-block'>ACCUEIL</a> 250 <div class='accordion-item'> 251 <div class='accordion-header' id='heading-46379'> 252 <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'> 253 LE FESTIVAL 254 </button> 255 </div> 256 <div id='accordion-46379' class='accordion-collapse collapse' aria-labelledby='heading-46379' data-bs-parent='#navMobile-'> 257 <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> 258 </div> 259 </div> 260 </div><a href='https://www.giff.ch/le-festival/partenaires/' target='' rel='' class='h2 mb-1 d-block'>Partenaires</a> 261 <div class='accordion-item'> 262 <div class='accordion-header' id='heading-37550'> 263 <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'> 264 Archives 265 </button> 266 </div> 267 <div id='accordion-37550' class='accordion-collapse collapse' aria-labelledby='heading-37550' data-bs-parent='#navMobile-'> 268 <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>
268<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> 269 </div> 270 </div> 271 </div></div> </div> 272 <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"> 273 Industrie </button> 274 <div id="accordion-gdm" class="accordion-collapse collapse" aria-labelledby="heading-gdm" data-bs-parent="#menu-wrapper"> 275 <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> 276 <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"> 277 AGENDA </button> 278 <div id="accordion-agenda" class="accordion-collapse collapse" aria-labelledby="heading-agenda" data-bs-parent="#menu-wrapper"> 279 <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> 280 <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"> 281 Relive </button> 282 <div id="accordion-relive" class="accordion-collapse collapse" aria-labelledby="heading-relive" data-bs-parent="#menu-wrapper"> 283 <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> 284 </div> 285 <div class="mt-auto"> 286 <div class="row mt-5"> 287 <div class="col-6 d-flex flex-column"> 288 <div class="footer_menu_1 mt-auto text-uppercase"> 289 <a href="https://www.giff.ch/newsletter/" target="" class="footer-link-menu d-block"> 290 Newsletter </a> 291 <a href="https://www.giff.ch/giff-pro/presse/" target="" class="footer-link-menu d-block"> 292 Presse </a> 293 <a href="https://www.giff.ch/le-festival/contacts/" target="" class="footer-link-menu d-block"> 294 Contacts </a> 295 </div> 296 <div class="footer-network mt-3 mb-4"> 297 <a href="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" target="_blank" rel="noreferrer" class="me-2 h3" title="facebook"><i class="bi bi-facebook"></i></a> 298 <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> 299 <a href="https://twitter.com/GIFF_ch" target="_blank" rel="noreferrer" class="me-2 h3" title="twitter"><i class="bi bi-twitter"></i></a> 300 <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> 301 </div> 302 </div> 303 <div class="col-6"> 304 <div class="footer-menu-2 h-100 d-flex flex-column"> 305 <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto"> 306 Mentions Légales </a> 307 <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm "> 308 Politique de confidentialité </a> 309 <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm "> 310 Conditions de vente </a> 311 <div class="font-size-sm mt-3 mb-4">© GIFF 312 2026 </div> 313 </div> 314 </div> 315 </div> 316 </div> 317 </div> 318</div><article class="mt-4 static-content"> 319 <div class="row"><div class="mx-auto col-md-11 col-lg-10 col-xl-8"> <h1 class="mb-3"> 320 Contacts </h1> 321 322<p><strong>Geneva International Film Festival (GIFF)</strong><br>Rue de Chantepoulet 1<br>CH â 1201 Genève</p> 323 324 325 326<p>Général :<strong> +41 (0)22 809 69 20</strong></p> 327 328 329 330<p><a href="mailto:[email protected]" target="_blank" rel="noreferrer noopener">Contact pour demande générale (e-mail)</a></p> 331 332 333 334<p>Contact pour demande spécifique:</p> 335 336 337 338<p class="has-text-align-left"><a href="mailto:[email protected]" target="_blank" rel="noreferrer noopener">Administration</a><br><a href="mailto:[email protected]">Programmation</a><br><a href="mailto:[email protected]">Communication</a><br><a href="mailto:[email protected]">Partenariat</a><br><a href="mailto:[email protected]" target="_blank" rel="noreferrer noopener">Press</a><a href="mailto:[email protected]">e</a></p> 339 340 341 342<p></p> 343 344 345 346<p></p> 347 </div></div></article> 348 349 350<footer class="mt-auto"> 351 <div class="row mt-5 pt-5"> 352 <div class="d-none d-xl-block col-xl-4"> 353 <a href="https://www.giff.ch" class="logo-footer-link"> 354 <img src="https://www.giff.ch/wp-content/uploads/2026/06/giff-logo-2026-1.svg" alt="" class="logo-footer"> 355 </a> 356 </div> 357 <div class="col-12 col-xl-8"> 358 <hr class="mt-2 mb-4"> 359 <div class="d-sm-flex w-100"> 360 <div class="d-none d-md-block d-lg-none w-100"> 361 <a href="https://www.giff.ch" class="logo-footer-link"> 362 <img src="https://www.giff.ch/wp-content/uploads/2026/06/giff-logo-2026-1.svg" alt="" class="logo-footer"> 363 </a> 364 </div> 365 <div id="footer_menu" class="d-lg-flex justify-content-between text-center text-sm-start w-100 ps-sm-5 ps-lg-0"> 366 <div class="vertical-bar d-none d-lg-block"></div> 367 <div class="footer-network"> 368 <a href="https://www.facebook.com/GenevaInternationalFilmFestivalGIFF/" target="_blank" rel="noreferrer" class="me-2 h3" title="facebook"><i class="bi bi-facebook"></i></a> 369 <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> 370 <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> 371 <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> 372 </div> 373 <div class="vertical-bar d-none d-lg-block"></div> 374 <a href="https://www.giff.ch/newsletter/" target="" class="footer-link-menu"> 375 Newsletter </a> 376 <div class="vertical-bar d-none d-lg-block"></div> 377 <a href="https://www.giff.ch/giff-pro/presse/" target="" class="footer-link-menu"> 378 Presse </a> 379 <div class="vertical-bar d-none d-lg-block"></div> 380 <a href="https://www.giff.ch/le-festival/contacts/" target="" class="footer-link-menu"> 381 Contacts </a> 382 <div class="vertical-bar d-none d-lg-block"></div> 383 </div> 384 <div class="d-lg-none w-100 mt-sm-4"> 385 <div class="mt-3 mt-lg-5 pt-sm-3 pt-lg-0 mb-4 footer-menu-2 text-center text-sm-start"> 386 <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto"> 387 Mentions Légales </a> 388 <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm "> 389 Politique de confidentialité </a> 390 <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm "> 391 Conditions de vente </a> 392 <div class="font-size-sm mt-3">© GIFF 393 2026 </div> 394 </div> 395 </div> 396 </div> 397 <div class="d-lg-flex"> 398 <div class="d-none d-lg-block"> 399 <div class="mt-3 mt-lg-5 pt-sm-3 pt-lg-0 mb-4 footer-menu-2"> 400 <a href="https://www.giff.ch/mentions-legales/" target="" class="footer-link-menu-2 font-size-sm mt-auto"> 401 Mentions Légales </a> 402 <a href="https://www.giff.ch/politique-de-confidentialite/" target="" class="footer-link-menu-2 font-size-sm "> 403 Politique de confidentialité </a> 404 <a href="https://www.giff.ch/billetterie/conditions-de-vente/" target="" class="footer-link-menu-2 font-size-sm "> 405 Conditions de vente </a> 406 <div class="font-size-sm mt-3">© GIFF 407 2026<br> 408 </div> 409 </div> 410 </div> 411 <div id="footer-logo" class="mt-3 text-center ps-lg-4"> 412 <div class="d-flex justify-content-between w-100 flex-wrap"> 413 <div class="mb-3"> 414 <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> 415 </div> 416 <div class="mb-3"> 417 <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
417w, 350px" /></a></div> 418 </div> 419 <div class="mb-3"> 420 <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> 421 </div> 422 <div class="mb-3"> 423 <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> 424 </div> 425 <div class="mb-3"> 426 <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> 427 </div> 428 </div> 429 <div class="d-flex justify-content-between w-100 flex-wrap"> 430 <div class="mb-3"> 431 <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> 432 </div> 433 <div class="mb-3"> 434 <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> 435 </div> 436 <div class="mb-3"> 437 <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> 438 </div> 439 <div class="mb-3"> 440 <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
440w, 676px" /></a></div> 441 </div> 442 <div class="mb-3"> 443 <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> 444 </div> 445 <div class="mb-3"> 446 <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> 447 </div> 448 </div> 449</div> </div> 450 </div> 451 </div> 452</footer> 453</main> 454 455<div class="background-site-wrapper"> 456 <img fetchpriority="high" src="https://www.giff.ch/wp-content/themes/giff/medias/images/background-dark-2026.webp" alt="" class="background-site"> 457</div> 458 459<div class="modal fade" id="newsletterModal" data-bs-backdrop="static" data-bs-keyboard="true" tabindex="-1" aria-labelledby="newsletterLabel" aria-hidden="true"> 460 <div class="modal-dialog modal-dialog-centered modal-lg"> 461 <div class="modal-content"> 462 <div class="modal-header"> 463 <div class="modal-title h2 mb-0 py-2" id="newsletterLabel"> 464 Newsletter 465 </div> 466 <button id="closeNewsletter" type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 467 </div> 468 <div class="modal-body"> 469 <div class="row"> 470 <div class="col-12 col-sm-4 col-xl-3"> 471 <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> 472 </div> 473 <div class="col-12 col-sm-8 col-xl-9"> 474 <div id="mc_embed_signup"> 475 <p class="mb-2 h3 mt-3 pt-1"> 476 Inscrivez-vous pour recevoir les dernières nouvelles du GIFF </p> 477 <div id="mc_embed_signup"> 478 <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> 479 <div id="mc_embed_signup_scroll"> 480 481 <div class="mb-2"> 482 <label for="mce-EMAIL" class="form-label">E-mail<span class="asterisk">*</span> </label> 483 <input type="email" value="" name="EMAIL" class="required email form-control" id="mce-EMAIL"> 484 </div> 485 486 <div class="row mb-2"> 487 <div class="col-12 col-md-4"> 488 <div class="mb-3"> 489 <label for="mce-FNAME">Prénom</label> 490 <input type="text" value="" name="FNAME" class="form-control" id="mce-FNAME"> 491 </div> 492 </div> 493 <div class="col-12 col-md-4"> 494 <div class="mb-3"> 495 <label for="mce-LNAME">Nom</label> 496 <input type="text" value="" name="LNAME" class="form-control" id="mce-LNAME"> 497 </div> 498 </div> 499 <div class="col-12 col-md-4"> 500 <div class="mb-3"> 501 <label for="mce-MMERGE5">Profession</label> 502 <input type="text" value="" name="MMERGE5" class="form-control" id="mce-MMERGE5"> 503 </div> 504 </div> 505 </div> 506 507 <div class="d-flex flex-column mb-3"> 508 509 <div class="mb-2 pb-2"> 510 <div class="h4">Langue</div> 511 <div class="form-check form-check-inline"> 512 <input type="radio" name="group[30]" class="form-check-input" value="1" id="mce-group[30]-30-0" checked>
513 <label for="mce-group[30]-30-0" class="form-check-label">Français</label> 514 </div> 515 <div class="form-check form-check-inline"> 516 <input type="radio" name="group[30]" class="form-check-input" value="2" id="mce-group[30]-30-1"> 517 <label for="mce-group[30]-30-1" class="form-check-label">Anglais</label> 518 </div> 519 <div class="form-check form-check-inline"> 520 <input type="radio" name="group[30]" class="form-check-input" value="4" id="mce-group[30]-30-2"> 521 <label for="mce-group[30]-30-2" class="form-check-label">Allemand</label> 522 </div> 523 </div> 524 525 <div> 526 <div class="h4 mb-1">Newsletter</div> 527 <div class="form-check form-check-inline"> 528 <input type="radio" name="group[34]" class="form-check-input" value="8" id="mce-group[34]-34-0" checked> 529 <label for="mce-group[34]-34-0" class="form-check-label">Public</label> 530 </div> 531 <div class="form-check form-check-inline"> 532 <input type="radio" name="group[34]" class="form-check-input" value="16" id="mce-group[34]-34-1"> 533 <label for="mce-group[34]-34-1" class="form-check-label">Pro</label> 534 </div> 535 <div class="form-check form-check-inline"> 536 <input type="radio" name="group[34]" class="form-check-input" value="32" id="mce-group[34]-34-2"> 537 <label for="mce-group[34]-34-2" class="form-check-label">Presse</label> 538 </div> 539 </div> 540 541 </div> 542 <div id="mce-responses" class="clear mt-3"> 543 <div class="response alert alert-warning" id="mce-error-response" style="display:none"></div> 544 <div class="response alert alert-success" id="mce-success-response" style="display:none"></div> 545 </div> 546 547 <div style="position: absolute; left: -5000px;" aria-hidden="true"> 548 <input type="text" name="b_4a6caf431f879e7480319e146_f757bf97fe" tabindex="-1" value=""> 549 </div> 550 551 <div class="mb-3"> 552 <input type="submit" value="S'inscrire" name="subscribe" id="mc-embedded-subscribe" class="btn btn-outline-primary mb-2"> 553 </div> 554 </div> 555 </form> 556 </div> 557
557<script type='text/javascript' src='//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js'></script>
557 558
558<script type="text/javascript"> 559 (function($) { 560 window.fnames = new Array(); 561 window.ftypes = new Array(); 562 fnames[0] = 'EMAIL'; 563 ftypes[0] = 'email'; 564 fnames[1] = 'FNAME'; 565 ftypes[1] = 'text'; 566 fnames[2] = 'LNAME'; 567 ftypes[2] = 'text'; 568 fnames[5] = 'MMERGE5'; 569 ftypes[5] = 'text'; 570 fnames[3] = 'MMERGE3'; 571 ftypes[3] = 'text'; 572 fnames[4] = 'MMERGE4'; 573 ftypes[4] = 'text'; 574 }(jQuery)); 575 var $mcj = jQuery.noConflict(true); 576 </script>
576 577 </div> 578 </div> 579 </div> 580 </div> 581 </div> 582 </div> 583</div><div class="modal fade" id="login-modal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="login-label" aria-hidden="true"> 584 <div class="modal-dialog modal-dialog-centered modal-md"> 585 <div class="modal-content"> 586 <div class="modal-header"> 587 <div class="modal-title h2 mb-0 pt-2 pb-1" id="login-label"> 588 Connexion Fermée </div> 589 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 590 </div> 591 <div class="modal-body"> 592 <div class="mb-2"> 593 <div class="h3 mt-3 lh-sm"> 594 Connectez-vous pour réserver vos séances </div> 595 <div class="h4 mb-1 lh-sm" style="font-size: 1.25rem;"> 596 Vous avez un pass, une accréditation, une carte ou une invitation ? </div> 597 <div class="opacity-50" style="pointer-events: none;"> 598 <div class="tkt-wrapper" 599 data-component="Ticket/TicketConnect" 600 data-redirect="none" 601 data-cart-url="https://www.giff.ch/panier/" 602 data-checkout-url="https://www.giff.ch/panier/"></div> 603
604<script type="text/template" id="tkt-ticket-tpl"> 605 <% 606 const errors = { 607 'screening.start_at': "Les votes seront possibles d\u00e8s le d\u00e9but de la s\u00e9ance", 608 'screening.stop_at': "Les votes seront possibles d\u00e8s la fin de la s\u00e9ance", 609 'needs_scan': "Vous ne pouvez pas voter car votre billet n'a pas \u00e9t\u00e9 contr\u00f4l\u00e9", 610 'not_before': "Les votes ne sont pas encore possibles pour cette s\u00e9ance", 611 'not_after': "Les votes ne sont plus possibles pour cette s\u00e9ance", 612 }; 613 %> 614 <% if (tickets?.length > 1) { %> 615 <div class="mb-3"> 616 <ul class="nav nav-tabs nav-fill"> 617 <% _.sortBy(tickets, t => t.getDisplayName()).map(function (t) { %> 618 <li class="nav-item"> 619 <a data-ticket-id="<%= t._id %>"class="nav-link ticket-link <%= t._id === ticket?._id ? 'active' : '' %>"> 620 <%= t.getTypeName() %> - 621 <%= t.getDisplayName() %> 622 </a> 623 </li> 624 <% }) %> 625 </ul> 626 </div> 627 <% } %> 628 629 <% if (ticket) { %> 630 631 <% 632 const bookings = ticket.bookings || []; 633 const pastBookings = bookings.filter(b => b.screening?.isFinished()); 634 const futureBookings = bookings.filter(b => !b.screening?.isFinished()); 635 %> 636 <div class="tkt-ticket-view"> 637 <% if (!ticket.isNew()) { %> 638 <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> 639 <% } else { %> 640 <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> 641 <% } %> 642 643 <!-- Title --> 644 <div class="mb-3"> 645 <h3> 646 <strong> 647 <%= ticket.getTypeName() %> - 648 <%= ticket.getDisplayName() %> 649 </strong> 650 </h3> 651 </div> 652 653 <!-- Réservations --> 654 <% if (!ticket.isNew()) { %> 655 <section class="tkt-section tkt-light-section"> 656 <% if (!pastBookings.length && !futureBookings.length) { %> 657 <h3>Réservations</h3> 658 <div class="mb-2"> 659 Il n'y a actuellement aucune réservation sur ce billet. </div> 660 <% } else { %> 661 <% if (futureBookings.length) { %> 662 <h3>Réservations</h3> 663 <table class="table table-striped table-hover no-more-tables"> 664 <thead> 665 <tr> 666 <th>Date</th> 667 <th>Réservation</th> 668 <th>Lieu</th> 669 <th><i class="tkt-icon-smartphone"></i></th> 670 <th class="text-right">Action</th> 671 </tr> 672 </thead> 673 <tbody> 674 <% futureBookings.map(function(b) { %> 675 <tr> 676 <td><%= b.screening_start_at.format("DD.MM.YYYY HH[h]mm") %> - 677 <%= b.screening_stop_at.format("HH[h]mm") %></td> 678 <td><%= b.screening.getTitle() %></td> 679 <td><%= b.screening.cinema_hall.name %></td> 680 <td class="text-center"> 681 <% if (b.scanned_at.length) { %> 682 <i class="tkt-icon-checkmark"></i> 683 <% } %> 684 </td> 685 <td> 686 <div class="flex-col items-end"> 687 <% if (b.isCancelable) { %> 688 <a href="#" class="btn btn-danger btn-bloc cancel-booking-btn" data-booking-id="<%= b._id %>"> 689 Annuler </a> 690 <% } %> 691 <% if (votesConfig?.enabled && (b.vote || !b.screening.opaque?.disable_votes)) { %> 692 <% const { votable, reason } = b.isVotable(); %> 693 <div 694 data-component="Ui/Rating" 695 data-score="<%= b.vote?.score || 0 %>" 696 data-ticket-id="<%= b.ticket_id %>" 697 data-booking-id="<%= b._id %>" 698 data-size="24" 699 data-step="<%= votesConfig?.step %>" 700 data-max="<%= votesConfig?.max_score %>" 701 data-disabled-reason="<%= reason ? errors[reason] : '' %>" 702 ></div> 703 <% if (reason) { %> 704 <small> 705 <i class="tkt_icon_warning" /> 706 <%= errors[reason] %> 707 </small> 708 <% } %> 709 <% } %> 710 </div> 711 </td> 712 </tr> 713 <% }) %> 714 <tbody> 715 </table> 716 <div class="cancelable_booking_err text-danger text-center"></div> 717 <% } %> 718 719 <% if (pastBookings.length) { %> 720 <h3>Réservations passées</h3> 721 <table class="table table-striped table-hover no-more-tables"> 722 <thead> 723 <tr> 724 <th>Date</th> 725 <th>Réservation</th> 726 <th>Lieu</th> 727 <th><i class="tkt-icon-smartphone"></i></th> 728 <th></th> 729 </tr> 730 </thead> 731 <tbody>
732 <% pastBookings.map(function(b) { %> 733 <tr> 734 <td><%= b.screening_start_at.format("DD.MM.YYYY HH[h]mm") %> - 735 <%= b.screening_stop_at.format("HH[h]mm") %></td> 736 <td><%= b.screening.getTitle() %></td> 737 <td><%= b.screening.cinema_hall.name %></td> 738 <td class="text-center"> 739 <% if (b.scanned_at.length) { %> 740 <i class="tkt-icon-checkmark"></i> 741 <% } %> 742 </td> 743 <td> 744 <% if (votesConfig?.enabled && (b.vote || !b.screening.opaque?.disable_votes)) { %> 745 <% const { votable, reason } = b.isVotable(); %> 746 <div 747 data-component="Ui/Rating" 748 data-score="<%= b.vote?.score || 0 %>" 749 data-ticket-id="<%= b.ticket_id %>" 750 data-booking-id="<%= b._id %>" 751 data-size="24" 752 data-step="<%= votesConfig?.step %>" 753 data-max="<%= votesConfig?.max_score %>" 754 data-disabled-reason="<%= reason ? errors[reason] : '' %>" 755 ></div> 756 <% if (reason) { %> 757 <small> 758 <i class="tkt_icon_warning" /> 759 <%= errors[reason] %> 760 </small> 761 <% } %> 762 <% } %> 763 </td> 764 </tr> 765 <% }) %> 766 <tbody> 767 </table> 768 <div class="cancelable_booking_err text-danger text-center"></div> 769 <% } %> 770 <% } %> 771 <a class="btn button w-100" href="<%= program_url %>"> 772 Réserver des séances </a> 773 </section> 774 775 <% } %> 776 <!-- Owner --> 777 <% if (ticket?.hasContactInfo()) { %> 778 <section class="tkt-section tkt-dark-section mt-3"> 779 <h3 class="panel-title">Titulaire</h3> 780 <div class="text-center"> 781 <% if (ticket.contact?.rfc2397_portrait?.length) { %> 782 <img class="img-responsive img-thumbnail" src="<%= ticket.contact?.rfc2397_portrait %>" /> 783 <br /> 784 <% } %> 785 786 <% if (ticket.contact?.firstname || ticket.contact?.lastname) { %> 787 <h5> 788 <%= [ticket.contact.firstname, ticket.contact.lastname].filter(v => !!v).join(' ') %> 789 </h5> 790 <% } %> 791 792 <div> 793 <% if (ticket.contact?.birthdate) { %> 794 <%= new Date(ticket.contact.birthdate).toLocaleDateString() %> 795 <br /> 796 <% } %> 797 798 <% if (ticket.contact?.address?.street) { %> 799 <%= ticket.contact.address.street %> 800 <br /> 801 <% } %> 802 803 <% if (ticket.contact?.address?.zip || ticket.contact?.address?.city) { %> 804 <%= [ticket.contact.address.zip, ticket.contact.address.city].filter(v => !!v).join(' ') %> 805 <br /> 806 <% } %> 807 808 <% if (ticket.contact?.address?.country) { %> 809 <%= tktCountryDisplay(ticket.contact.address.country) %> 810 <br /> 811 <% } %> 812 813 <% if (ticket.contact?.email) { %> 814 <%= ticket.contact.email %> 815 <% } %> 816 </div> 817 </div> 818 </section> 819 <% } %> 820 821 <!-- Guests --> 822 <% if (ticket?.hasGuestsInfo()) { %> 823 <section class="tkt-section tkt-dark-section mt-3"> 824 <h3 class="panel-title">Invités</h3> 825 <div class="text-center">
826 <% ticket.getGuestsInfo().forEach(guest => { %> 827 <h5> 828 <%= [guest.firstname, guest.lastname].filter(v => !!v).join(' ') %><br /> 829 <small><%= guest.email %></small> 830 </h5> 831 <% }); %> 832 </div> 833 </section> 834 <% } %> 835 836 <% if (ticket.getWalletBalance() > 0) { %> 837 <div class="row"> 838 <div class="col"> 839 <section class="tkt-section tkt-light-section mt-3"> 840 <div class="panel-heading wallet_info"> 841 <h3 class="panel-title">Portefeuille électronique</h3> 842 </div> 843 <div class="panel-body wallet_info text-center"> 844 <div class="text-center"> 845 <h4><%= ticket.getFormattedWalletBalance() %></h4> 846 </div> 847 </div> 848 </section> 849 </div> 850 </div> 851 <% } %> 852 853 <div class="row"> 854 <div class="col"> 855 <section class="tkt-section tkt-light-section mt-3"> 856 <div class="panel-heading"> 857 <h3 class="panel-title">Validité</h3> 858 <div class="panel-body"> 859 <% if (!ticket.isNew()) { %> 860 <div class="well text-center"> 861 <% if (ticket.activated_at) { %> 862 <h5> 863 Activé le <%= ticket.activated_at.format("LL") %> </h5> 864 <% if (ticket.getActivatedPricingName()) { %> 865 <p>Tarif : <%= ticket.getActivatedPricingName() %> 866 (<%= ticket.getFormattedPriceAndCurrency() %>) 867 </p> 868 <% } %> 869 <% } %> 870 </div> 871 <% if (ticket.getExpirationDate()) { %> 872 <% if (ticket.hasExpired()) { %> 873 <div class="text-center alert alert-danger"> 874 <b>A expiré le <%= ticket.getExpirationDate().format('LL') %> </b> 875 </div> 876 <% } else {%> 877 <div class="text-center alert alert-success"> 878 <b>Valable jusqu'au <%= ticket.getExpirationDate().format('LL') %></b> 879 <p> 880 <%= ticket.placesAvailable() %> 881 </p> 882 </div> 883 <% } %> 884 <% } %> 885 <% } else { %> 886 <div class="text-center alert alert-info w-100"> 887 <b>Ce billet n'a pas encore été activé</b> 888 </div> 889 <div id="pricings-list" class="tkt-pricings-list"> 890 <div class="card-header tkt-light-section"> 891 <h5 class="card-title"> 892 <b>Activation :</b> 893 </h5> 894 <table> 895 <tr> 896 <th>Tarifs</th> 897 <th>Prix</th> 898 </tr> 899 <% Object.entries(ticket.pricings || {}).map(function(entry) { 900 const key = entry[0]; 901 const p = entry[1] || {}; 902 const onlyOne = Object.keys(ticket.pricings || {}).length === 1; 903 %> 904 <tr> 905 <td> 906 <% if ((p.description?.fr || '').length > 0) { %> 907 <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> 908 <% } else { %> 909 <input class="choose-pass" type="radio" name="user[pass]" value="<%= key %>" <%= onlyOne ? 'checked' : '' %>> <%= p.name?.fr || key %> 910 <% } %> 911 </td> 912 <td><%= Object.keys(p.price || {})[0] + " " + parseFloat(Object.values(p.price || {})[0] || 0).toFixed(2) %></td> 913 </tr> 914 <% }) %> 915 </table> 916 </div> 917 </div> 918 919 <div class="alert alert-danger ticket-pay-error d-none" role="alert"></div> 920 921 <div class="d-flex justify-content-between pt-3"> 922 <button class="btn bg-success add_to_cart-btn"> 923 <i class="tkt-icon-credit-card"></i> Payer votre <%= ticket.getTypeName() %> </button> 924 <button class="btn bg-dark forget-ticket-btn align-items-end"> 925 <i class="tkt-icon-sign-out"></i> Déconnexion </button> 926 </div> 927 <% } %> 928 </div> 929 </div> 930 </section> 931 </div> 932 </div> 933 <% if (!ticket.isNew() && ticket.isForgettable) { %> 934 <div class="row mt-3"> 935 <div class="col"> 936 <button class="btn button forget-ticket-btn w-100"> 937 <i class="tkt-icon-log-out"></i> Retirer ce billet de mon navigateur </button> 938 </div> 939 </div> 940 <% } %> 941 </div> 942 <% } %> 943</script>
943 944
945<script type="text/template" id="tkt-ticket-connect-tpl"> 946 <% if (!ticket) { %> 947 <div class="tkt-ticket-connect"> 948 <div class="connect-panel"> 949 <div class="ticket_connect"> 950 <div> 951 Entrez votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span> </div> 952 <div class="col"> 953 <div class="row mt-5 input-pass"> 954 <input id="pass-id" type="number" 955 class="tkt-input input-invert form-control text-center pass-number-input" 956 placeholder="123456" maxlength="6" /> 957 <p class="minus">-</p> 958 <input id="pass-code" type="password" 959 class="tkt-input input-invert form-control text-center pass-key-input" 960 placeholder="abcdef" maxlength="6" /> 961 </div> 962 </div> 963 <div class="row"> 964 <div class="col text-center"> 965 <div class="error pass-error d-none text-center text-danger"></div> 966 <button class="btn btn-primary button login-btn connect-btn mt-5 mb-3"> 967 <i class="tkt-icon-log-out"></i> Connexion </button> 968 </div> 969 </div> 970 <hr /> 971 <div> 972 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> 973 </div> 974 </div> 975 </div> 976 <% } %> 977 978 <% 979 jQuery(document).ready(function($) { 980 $("#pass-id").keyup(function() { 981 if (this.value.length == this.maxLength) { 982 $('#pass-code').focus(); 983 } 984 }); 985 }); 986 %> 987</script>
987 988 </div> 989 </div> 990 <hr class="row"> 991 <div class="mb-2"> 992 <div class="h2 mb-1"> 993 Vous êtes accrédité·e? </div> 994 <div class="h4 mb-1"> 995 Connectez-vous avec votre compte Eventival </div> 996 <p> 997 Vous pourrez ainsi accéder aux services du Geneva Digital Market et réserver vos séances. </p> 998 <div 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"> 999 <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> 1000 Connectez-vous avec Eventival </span> </button> 1001 </div> 1002 <div 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"> 1003 <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"> 1004 <span> 1005 Connexion fermée </span> 1006 </a> 1007 </div> 1008 <div class="ev_logout-btn mb-3 d-none"> 1009 <button type="button" 1010 class="btn btn-outline-primary btn-eventival" 1011 onclick="document.cookie = 'dbl_user=; Max-Age=0; path=/;'; window.location.reload();"> 1012 <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"> 1013 <span> 1014 Déconnexion </span> 1015 </button> 1016 </div> 1017 <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>
1017<script> 1018 1019 </script>
1019 1020 </div> 1021 </div> 1022 </div> 1023 </div> 1024</div>
1025<script type="speculationrules"> 1026{"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"}]} 1027</script>
vendor: 1 bytes, line 1027
1027
1028<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 1028
1028
1029<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 1029
1029
1030<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 1030
1030
1031<script id="user-js-after"> 1032window.addEventListener('DOMContentLoaded', (event) => { 1033 setup_user(); 1034 }) 1035</script>
vendor: 1 bytes, line 1035
1035
1036<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 1036
1036
1037<script id="access-js-after"> 1038document.addEventListener('DOMContentLoaded', (event) => { 1039 //access_projects_nav(); 1040 //access_meetings_nav(); 1041 //access_whoshow_user_data(); 1042 update_login_header_btn(); 1043 tktConnect() 1044 logout_user() 1045 }) 1046document.addEventListener("DOMContentLoaded", (event) => { 1047 display_popup_on_error() 1048 }) 1049window.addEventListener('DOMContentLoaded', (event) => { 1050 access_dbl_login(); 1051 }); 1052</script>
vendor: 1 bytes, line 1052
1052
1053<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 1053
1053
1054<script id="rocket-browser-checker-js-after"> 1055"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}(); 1056</script>
vendor: 1 bytes, line 1056
1056
1057<script id="rocket-preload-links-js-extra"> 1058var 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"}; 1059</script>
vendor: 1 bytes, line 1059
1059
1060<script id="rocket-preload-links-js-after"> 1061(function() { 1062"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(); 1063}()); 1064</script>
vendor: 1 bytes, line 1064
1064
1065<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 1065
1065
1066<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 1066
1066
1067<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 1067
1067
1068<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 1068
1068
1069<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 1069
1069
1070<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 1070
1070
1071<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 1071
1071
1072<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 1072
1072
1073<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 1073
1073
1074<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 1074
1074
1075<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 1075
1075
1076<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 1076
1076
1077<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 1077
1077
1078<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 1078
1078
1079<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 1079
1079
1080<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 1080
1080
1081<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 1081
1081
1082<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>
1082 1083
1083<script type="text/template" id="tkt-booking-form-dates-tpl"> 1084 <% screenings = _.filter(screenings, function (s) { return s.stop_at > new Date(); }); %> 1085<% if (screenings.length > 1) { %> 1086<% 1087 var m = {}; 1088 _.forEach(screenings, function(s) { 1089 var day = s.start_at.format("dddd D MMMM"); 1090 if (!m[day]) 1091 m[day] = []; 1092 m[day].push(s); 1093 }); 1094 1095 1096 var dates = []; 1097 _.forEach(screenings, function(s) { 1098 var day = s.start_at.format("YYYY-MM-DD"); 1099 if (dates.indexOf(day) === -1) 1100 dates.push(day); 1101 }); 1102%> 1103 1104<div class="tkt-wrapper"> 1105 <div class="row"> 1106 <div class="col"> 1107 <span> 1108 Veuillez choisir la date désirée : </span> 1109 <div class="days-wrapper"> 1110 <% if (Object.keys(m).length > 6) { %> 1111 <input 1112 id="calendar" 1113 type="text" 1114 class="tkt-input form-control data-field" 1115 data-component="Form/Calendar" 1116 required 1117 data-alt-format="l j F" 1118 data-enable="<%= dates.join(',') %>" 1119 data-inline="true" 1120 /> 1121 1122 <% } else { %> 1123 <% _.forEach(Object.keys(m), function(day) { %> 1124 <span 1125 class="tkt-badge tkt-light-badge day" 1126 data-day="<%= day %>" 1127 data-ymd="<%= m[day][0].start_at.format('YYYY-MM-DD') %>" 1128 data-screening_id="<%= _.map(m[day], function (s) { return s._id; }).join(',') %>"> 1129 <%= day %> 1130 </span> 1131 <% }) %> 1132 <% } %> 1133 </div> 1134 1135 <br/> 1136 1137 <span> 1138 Veuillez choisir l'heure désirée : </span> 1139 <div class="dates-wrapper"> 1140 <% _.forEach(m, function(screenings, day) { %> 1141 <% _.forEach(screenings, function(s) { %> 1142 <span 1143 class="tkt-badge tkt-light-badge date" 1144 data-day="<%= day %>" 1145 data-ymd="<%= s.start_at.format('YYYY-MM-DD') %>" 1146 data-screening_id="<%= s._id %>" 1147 >
1148 <%= s.start_at.format("LT") %> 1149 1150 <% if (s.opaque) { %> 1151 <% if (s.opaque.version) { %> 1152 <%= (' - ' + s.opaque.version) %> 1153 <% } %> 1154 <% if (s.opaque._3d) { %> 1155 <%= ' - 3D' %> 1156 <% } %> 1157 <% } %> 1158 <%= ' - ' + s.cinema_hall.name %> 1159 </span> 1160 <% }) %> 1161 <% }) %> 1162 </div> 1163 1164 <br/> 1165 1166 </div> 1167 </div> 1168</div> 1169<% } else if (screenings.length == 1) { %> 1170<span data-screening_id="<%= screenings[0]._id %>" class="date single-date"> 1171 <%= screenings[0].start_at.format("dddd D MMMM") %> à <%= screenings[0].start_at.format("LT") + ' - ' + screenings[0].cinema_hall.name %></span> 1172<% } else { %> 1173<span>Il n'y a pas de billetterie disponible pour cet événement.</span> 1174<% } %> 1175 </script>
1175 1176
1176<script type="text/template" id="tkt-booking-form-pricings-tpl"> 1177 1178<% 1179 var uiLang = 'fr'; 1180 var localize = function (obj) { 1181 return (TKTLib && TKTLib.StringsHelper) 1182 ? (TKTLib.StringsHelper.getLocalizedValue(obj, uiLang) || '') 1183 : ''; 1184 }; 1185%> 1186<% const availabilities = bookability?.availabilities; %> 1187<% const eligible_types = (bookability?.eligible_types || screening?.eligible_types || []).filter(t => t._id != 'one-time-pass'); %> 1188<% const sellable_types = eligible_types.filter(t => !!t.sellable); %> 1189<% 1190 const sorted_pricings = _.chain((screening && screening.pricings) ? screening.pricings : {}) 1191 .map(function (pricing, key) { 1192 const opaque = pricing && pricing.opaque ? pricing.opaque : {}; 1193 const weight = parseFloat(opaque.eshop_sort_weight); 1194 return { 1195 key, 1196 pricing, 1197 weight: isFinite(weight) ? weight : Number.POSITIVE_INFINITY 1198 }; 1199 }) 1200 .sortBy(function (item) { return item.key; }) 1201 .sortBy(function (item) { return item.weight; }) 1202 .value(); 1203%> 1204<% 1205 const ticket_cannot_book_explanation = function (_id) { 1206 bookability.tickets = bookability.tickets || {}; 1207 return bookability.tickets[_id]?.cannot_book_explanation; 1208 } 1209%> 1210 1211<div class="tkt-wrapper"> 1212 <% if (_.keys(screening.pricings).length) { %> 1213 <% if ('map_only_bookings' in screening.opaque && screening.opaque.map_only_bookings) { %> 1214 <div class="row"> 1215 <div class="col"> 1216 <iframe width="100%" style="min-height: 500px" frameborder="0" title="Plan de salle" src="<%= TKTLib.EshopUrlHelper.getScreeningMapUrl(screening._id) %>"></iframe> 1217 </div> 1218 </div> 1219 <% } else if (show_pricings) { %> 1220 <% if (!availabilities || availabilities.me['right-now']['one-time-pass'] > 0) { %> 1221 <h4>Acheter des places</h3> 1222 <div class="pricings-form"> 1223 <div class="row"> 1224 <div class="col"> 1225 <span> 1226 Saisissez le nombre de place(s) que vous souhaitez ajouter à votre panier : </span> 1227 </div> 1228 </div> 1229 <% _.each(sorted_pricings, function(item) { const p = item.pricing; const key = item.key; const cannot_book = p.cannot_book_reason; %> 1230 <div class="row pricing-row<%= cannot_book ? ' unavailable text-muted' : '' %>" data-pricing-wrapper="<%= key %>"<%= cannot_book ? ' style="opacity:0.55"' : '' %>> 1231 <div class="col"> 1232 <% if (cannot_book) { %> 1233 <span class="tkt-badge tkt-badge-split flex-rev-on-mobile"> 1234 <span class="tkt-badge-part tkt-light-badge text-center"> 1235 <span class="pricing-qty">0</span> 1236 x 1237 <span class="pricing-name"> 1238 <% var pricing_name = localize(p.name); %> 1239 <%= pricing_name %> : 1240 <% var pricing_description = localize(p.description); %> 1241 <% if (pricing_description) { %> 1242 <span class="d-none tkt-tippy-content" id="tippy-pricing-desc-<%= key %>"><%= pricing_description %></span> 1243 <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> 1244 <% } %> 1245 </span> 1246 <span class="pricing-price"> 1247 <% if (p.variable_price) { %> 1248 <% var minAmtU = p.min_price && p.min_price.CHF; %> 1249 <% if (minAmtU != null) { %> 1250 dès <%= typeof minAmtU.toFixed === 'function' ? minAmtU.toFixed(2) : Number(minAmtU).toFixed(2) %> CHF <% } else { %> 1251 Prix libre <% } %> 1252 <% } else { %> 1253 <%= p.price.CHF.toFixed(2) %> CHF <% } %> 1254 </span> 1255 <br><small class="text-danger"><%= cannot_book %></small> 1256 </span> 1257 </span> 1258 <input type="hidden" data-pricing="<%= key %>
1258" class="input pricing-input" value="0"/> 1259 <% } else { %> 1260 <span class="tkt-badge tkt-badge-split flex-rev-on-mobile tkt-badge-plus-minus"> 1261 <span class="tkt-badge-part tkt-grey-badge tkt-minus-btn text-center">-</span> 1262 <span class="tkt-badge-part tkt-light-badge text-center"> 1263 <span class="pricing-qty"> 1264 0 1265 </span> 1266 x 1267 <span class="pricing-name"> 1268 <% var pricing_name = localize(p.name); %> 1269 <%= pricing_name %> : 1270 <% var pricing_description = localize(p.description); %> 1271 <% if (pricing_description) { %> 1272 <span class="d-none tkt-tippy-content" id="tippy-pricing-desc-<%= key %>"><%= pricing_description %></span> 1273 <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> 1274 <% } %> 1275 </span> 1276 <span class="pricing-price"> 1277 <% if (p.variable_price) { %> 1278 <% var minAmt = p.min_price && p.min_price.CHF; %> 1279 <% if (minAmt != null) { %> 1280 dès <%= typeof minAmt.toFixed === 'function' ? minAmt.toFixed(2) : Number(minAmt).toFixed(2) %> CHF <% } else { %> 1281 Prix libre <% } %> 1282 <% } else { %> 1283 <%= p.price.CHF.toFixed(2) %> CHF <% } %> 1284 </span> 1285 </span> 1286 <span class="tkt-badge-part tkt-dark-badge tkt-plus-btn text-center">+</span> 1287 </span> 1288 <input type="hidden" data-pricing="<%= key %>" class="input pricing-input" value="0"/> 1289 <% if (p.variable_price) { %> 1290 <% 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); })(); %> 1291 <% 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; })(); %> 1292 <div class="pricing-sale-price-wrap mt-2" data-pricing="<%= key %>" style="display:none;"> 1293 <label class="small mb-0 pricing-sale-price-label" for="pricing-sale-price-<%= key %>"> 1294 Prix payé : 1295 </label> 1296 <div class="input-group input-group-sm pricing-sale-price-group"> 1297 <div class="input-group-prepend"> 1298 <span class="input-group-text">CHF</span> 1299 </div> 1300 <input 1301 type="number" 1302 step="0.05" 1303 <% if (vpMin > 0) { %>min="<%= vpMin %>"<% } %> 1304 class="form-control pricing-sale-price" 1305 id="pricing-sale-price-<%= key %>" 1306 data-pricing="<%= key %>" 1307 data-min-price="<%= vpMin %>" 1308 value="<%= vpDefault %>" 1309 onfocus="this.select()" 1310 /> 1311 </div> 1312 <small class="pricing-sale-price-hint text-danger d-none" aria-live="polite"></small> 1313 </div> 1314 <% } %> 1315 <% if (p.rules && p.rules.external_voucher) { %> 1316 <div class="external-voucher-fields mt-2" data-pricing="<%= key %>" data-provider="<%= p.rules.external_voucher %>" style="display:none"> 1317 <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> 1318 <div class="external-voucher-codes"></div> 1319 </div> 1320 <% } %> 1321 <% } %> 1322 </div> 1323 </div> 1324 <% }) %> 1325 <div class="row"> 1326 <div class="col"> 1327 <div class="error pricings-error d-none"></div> 1328 <button class="button add-to-cart-btn active" > 1329 Ajouter à mon panier </button> 1330 </div> 1331 </div> 1332 </div> 1333 <% } else { %> 1334 <% const otp_messages = bookability?.one_time_pass_messages; %> 1335 <% if (otp_messages && otp_messages.parts && otp_messages.parts.length) { %> 1336 <% _.each(otp_messages.parts, function(part) { %> 1337 <h5 class="no-one-time-pass-message"><%= part %></h5> 1338 <% }); %> 1339 <% } else if (availabilities && availabilities['me']['from-now']['one-time-pass'] > 0) { %> 1340 <h5 class="no-one-time-pass-message"> 1341 Il n'est pas encore possible d'acheter des tickets en ligne pour cette séance. </h5> 1342 <% } else if (availabilities && availabilities['me']['absolute']['one-time-pass'] > 0) { %> 1343 <h5 class="no-one-time-pass-message">
1344 Tickets disponibles uniquement sur place </h5> 1345 <% } else { %> 1346 <h5 class="no-one-time-pass-message"> 1347 Il n'est pas possible d'acheter des tickets en ligne pour cet événement. </h5> 1348 <% } %> 1349 <% } %> 1350 <% } %> 1351 <br/> 1352 <% } %> 1353 1354 <% if (show_ticket_id && screening.opaque && (!('map_only_bookings' in screening.opaque && screening.opaque.map_only_bookings)) && eligible_types.length) { %> 1355 <h4>Réserver des places sur vos billets</h3> 1356 1357 <div class="book-panel"> 1358 <% 1359 account_tickets.filter(ticket => !ticket.isOneTimePass() && ticket.canBook(screening)).concat( 1360 connected_tickets.filter(ticket => !ticket.isOneTimePass()), 1361 account_tickets.filter(ticket => !ticket.isOneTimePass() && !ticket.canBook(screening)), 1362 ).map(ticket => { 1363 %> 1364 <div class="ticket-wrapper" data-ticket-id="<%= ticket._id %>"> 1365 <div class="row"> 1366 <div class="col col-auto ticket-infos"> 1367 <a class="btn btn-outline btn-sm text-left" target="_blank" href="<%= ticket.getTicketViewUrl() %>"> 1368 <i class="tkt-icon-tag"></i> 1369 <b><%= ticket.getTypeName() %></b> 1370 - <%= ticket.getDisplayName() %> 1371 </a> 1372 <% if (ticket.hasBooked(screening)) { %> 1373 <div class="already-booked"> 1374 <small data-ticket-id="<%= ticket._id %>"> 1375 <b>Réservation pour cette séance avec ce billet : <%= ticket.getBookingsFor(screening)?.length || 0 %></b> 1376 </small> 1377 </div> 1378 <% } %> 1379 </div> 1380 <div class="col text-right book-btns"> 1381 <% if (ticket.canBook(screening)) { %> 1382 <button data-ticket-id="<%= ticket._id %>" class="button book-btn<%= ticket.hasBooked(screening) ? '-more' : '' %> active" > 1383 <i class="tkt-icon-plus"></i> 1384 <% if (ticket.hasBooked(screening)) { %> 1385 Réserver une place de plus sur ce billet <% } else { %> 1386 Réserver une place sur ce billet <% } %> 1387 </button> 1388 <% } else { %> 1389 <small data-ticket-id="<%= ticket._id %>" class="cannot-book-explanation"> 1390 <i><%= ticket_cannot_book_explanation(ticket._id) %></i> 1391 </small> 1392 <% } %> 1393 </div> 1394 </div> 1395 <div class="row"> 1396 <div class="col text-right"> 1397 <small class="success book-form-success d-none text-success pl-2"> 1398 Votre place a bien été réservée. </small> 1399 </div> 1400 </div> 1401 <div class="row"> 1402 <div class="col text-right"> 1403 <small class="book-form-error d-none text-danger pl-2"> 1404 </small> 1405 </div> 1406 </div> 1407 </div> 1408 <% }) %> 1409 </div> 1410 1411 <div class="pass-form mt-3"> 1412 <div class="connect-panel"> 1413 <div class="ticket_connect"> 1414 <div class="row"> 1415 <div class="col"> 1416 <span class="pass-title"> 1417 Entrez votre <span class="tkt-ticketid_ticket">Ticket</span><span class="tkt-ticketid_id">ID</span> 1418 <a href="" class="show-connect-panel-form">Ajoutez-le</a> pour réserver.<br/> 1419 </span> 1420 </div> 1421 </div> 1422 <div class="connect-panel-form d-none"> 1423 <div class="col"> 1424 <div class="row mt-5 input-pass"> 1425 <input id="pass-id" type="number" class="tkt-input input-invert form-control text-center pass-number-input" placeholder="123456" maxlength="6"/> 1426 <p class="minus">-</p> 1427 <input id="pass-code" type="password" class="tkt-input input-invert form-control text-center pass-key-input" placeholder="abcde" maxlength="6"/> 1428 </div> 1429 </div> 1430 1431 <div class="row"> 1432 <div class="col text-center"> 1433 <div class="error pass-error d-none text-center text-danger"></div> 1434 <button class="btn btn-primary button login-btn connect-btn mt-5 mb-3"> 1435 <i class="tkt-icon-sign-in-alt"></i> Connexion </button> 1436 </div> 1437 </div> 1438 <hr> 1439 <div> 1440 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> 1441 <br> 1442 </div> 1443 </div> 1444 <% if (sellable_types.length > 0) { %> 1445 <div class="row"> 1446 <div class="col mt-3"> 1447 <div class="buy-pass-link">
1448 <span>Acheter un abonnement</span> 1449 <ul class="eligible-types-list"> 1450 <% sellable_types.map(function (t) { %> 1451 <li class="eligible-type"> 1452 <span class="type-name"> 1453 <i class="tkt-icon-ticket"></i> 1454 <a href="https://www.giff.ch/billetterie/?selected=<%= t._id %>" class="type-link"> 1455 <%= t.name.fr %> 1456 </a> 1457 </span> 1458 </li> 1459 <% }); %> 1460 </ul> 1461 </div> 1462 </div> 1463 </div> 1464 <% } %> 1465 </div> 1466 </div> 1467 <% } %> 1468 1469</div> 1470 </script>
1470 1471
1471<script type="text/template" id="tkt-booking-form-success-tpl"> 1472 <div class="tkt-wrapper"> 1473 <div class="row"> 1474 <div class="col"> 1475 <h3 class="success-title"> 1476 Merci, votre commande est réservée dans votre panier pour 30 minutes. </h3> 1477 <div class="float-right text-right"> 1478 <a href="<%= cart_url %>" class="button show-cart-btn active" > 1479 Accéder au panier </a> 1480 <div class="continue-shopping" > 1481 <a href="<%= program_url %>">Continuer ma visite</a> 1482 </div> 1483 </div> 1484 </div> 1485 </div> 1486</div> 1487 </script>
1487 1488 1489
1489<script> 1490 (function () { 1491 var jq = window.tktjQuery || window.jQuery; 1492 if (typeof jq === "function") { 1493 /* Restore WP jQuery if a theme snippet (MailChimp noConflict(true)) 1494 or a CMP removed the globals after jquery.js ran. */ 1495 window.jQuery = jq; 1496 window.$ = jq; 1497 } 1498 })(); 1499 // moment locale must be injected globally because it's needed 1500 // before the config initialization 1501 window.moment_locale = "fr_FR"; 1502 window.moment_timezone = "Europe/Zurich"; 1503 window.tkt_config = { 1504 "version": "1", 1505 "base_url": "https://www.giff.ch/", 1506 "engine_uri": "https://giff-engine.ticketack.com/", 1507 "eshop_uri": "https://giff.ticketack.com/", 1508 "api_key": "c5415263-df61-4835-80d0-eedaacf64572", 1509 "salepoint_id": "", 1510 "cashregister_id": "", 1511 "edition": "2026", 1512 "program_url": "https://www.giff.ch/programme/", 1513 "ticket_view_url": "https://www.giff.ch/billetterie/ticket/", 1514 "shop_url": "", 1515 "cart_url": "https://www.giff.ch/panier/", 1516 "cart_reset_url": "https://giff.ticketack.com/cart/reset", 1517 "checkout_url": "https://www.giff.ch/panier/", 1518 "login_url": "", 1519 "buy_pass_url": "https://www.giff.ch/billetterie/", 1520 "registration_url": "", 1521 "user_account_url": "", 1522 "privacy_policy_url": "https://www.giff.ch/politique-de-confidentialite/", 1523 "terms_conditions_url": "https://www.giff.ch/billetterie/conditions-de-vente/", 1524 "eshop_registration_enabled": false, 1525 "buyer_requested_fields": ["firstname","lastname","email","age","zip"], 1526 "buyer_required_fields": ["firstname","lastname","email","age","zip"], 1527 "otp_requested_fields": [], 1528 "otp_required_fields": [], 1529 "lang": "fr", 1530 "i18n": { 1531 "Veuillez choisir au moins un billet": "Veuillez choisir au moins un billet", 1532 "Veuillez remplir les deux champs": "Veuillez remplir les deux champs", 1533 "Les informations que vous avez saisies sont invalides": "Les informations que vous avez saisies sont invalides", 1534 "Une erreur est survenue. Veuillez r\u00e9-essayer ult\u00e9rieurement.": "Une erreur est survenue. Veuillez r\u00e9-essayer ult\u00e9rieurement.", 1535 "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.", 1536 "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.", 1537 "Veuillez choisir un tarif": "Veuillez choisir un tarif", 1538 "Votre panier a \u00e9t\u00e9 mis \u00e0 jour": "Votre panier a \u00e9t\u00e9 mis \u00e0 jour", 1539 "Code promo invalide": "Code promo invalide", 1540 "Impossible d'utiliser ce code promo": "Impossible d'utiliser ce code promo", 1541 "Le code promo a bien \u00e9t\u00e9 pris en compte": "Le code promo a bien \u00e9t\u00e9 pris en compte", 1542 "Vous disposez de": "Vous disposez de", 1543 "sur votre porte monnaie \u00e9lectronique": "sur votre portefeuille \u00e9lectronique", 1544 "Montant trop \u00e9lev\u00e9": "Montant trop \u00e9lev\u00e9", 1545 "Portefeuille appliqu\u00e9 avec succ\u00e8s": "Portefeuille appliqu\u00e9 avec succ\u00e8s", 1546 "Impossible d'utiliser votre portefeuille": "Impossible d'utiliser votre portefeuille", 1547 "title": "Nom", 1548 "name": "Nom", 1549 "firstname": "Pr\u00e9nom", 1550 "lastname": "Nom", 1551 "email": "E-mail", 1552 "password": "Mot de passe", 1553 "address": "Adresse", 1554 "street": "Rue", 1555 "zip": "Code postal", 1556 "city": "Ville", 1557 "country": "Pays", 1558 "phone": "T\u00e9l\u00e9phone", 1559 "cellphone": "T\u00e9l\u00e9phone portable", 1560 "email2": "Confirmation e-mail", 1561 "company": "Entreprise", 1562 "conditions": "Conditions", 1563 "comment": "Commentaires", 1564 "photo": "Photo", 1565 "gift_message": "Message cadeau", 1566 "Ticket": "Ticket", 1567 "birthdate": "Date de naissance", 1568 "rfc2397_portrait": "Photo", 1569 "age": "\u00c2ge", 1570 "sex": "Sexe", 1571 "language": "Langue", 1572 "Les adresses e-mail ne correspondent pas.": "Les adresses e-mail ne correspondent pas.", 1573 "ENOTSUP": "n'est pas support\u00e9", 1574 "ENOPROP": "est manquant", 1575 "EDUPLICATE": "existe d\u00e9j\u00e0", 1576 "EISNOTSTRING": "n'est pas une chaine de caract\u00e8re", 1577 "EEMPTY": "est vide",
1578 "ETOOSHORT": "est trop court", 1579 "ETOOBIG": "est trop grand", 1580 "EINVAL": "est invalide", 1581 "EISNOTOBJ": "n'est pas un objet", 1582 "EISNOTARRAY": "n'est pas un tableau", 1583 "EISNOTBOOL": "n'est pas un bool\u00e9en", 1584 "PENDING_STATUS": "En attente", 1585 "OPEN": "En cours", 1586 "PAYING": "Paiement en cours", 1587 "PAID": "Pay\u00e9e", 1588 "COMPLETED": "Termin\u00e9e", 1589 "ACTIVATION_ERROR": "Erreur", 1590 "CANCELED": "Annul\u00e9e", 1591 "POSTFINANCE": "Postfinance", 1592 "PROXYPAY": "Proxypay", 1593 "ESHOP_TRANSFER": "Virement", 1594 "NULL_PAYMENT": "Gratuit", 1595 "LATER_PAYMENT": "R\u00e9servation", 1596 "POS_CASH": "Esp\u00e8ces", 1597 "POS_CASH_COLLECTOR": "Monnayeur", 1598 "POS_SUMUP": "Carte bancaire", 1599 "POS_OTHER_EFT": "Carte bancaire", 1600 "POS_ZVT_EFT": "Carte bancaire", 1601 "POS_WALLET": "Portefeuille", 1602 "POS_TRANSFER": "Virement", 1603 "ACTIVATED": "Activ\u00e9", 1604 "NEW": "Inactif", 1605 "PENDING": "En attente de paiement", 1606 "BLOCKED": "Bloqu\u00e9", 1607 "Director": "directeur", 1608 "Directors": "directeurs", 1609 "r\u00e9servation": "r\u00e9servation", 1610 "r\u00e9servations": "r\u00e9servations", 1611 "sur": "sur", 1612 "disponible": "disponible", 1613 "disponibles": "disponibles" 1614} 1615 }; 1616 (function () { 1617 function normalizeCountryLabel(value) { 1618 return String(value || "").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]/g, ""); 1619 } 1620 var aliasMap = null; 1621 function countryAliasMap() { 1622 if (aliasMap) return aliasMap; 1623 aliasMap = { 1624 unknown: "", inconnu: "", sconosciuto: "", 1625 cotedivoire: "CI", ivorycoast: "CI", kosovo: "XK", 1626 zaire: "CD", yugoslavia: "YU", yougoslavie: "YU", 1627 serbiaandmontenegro: "RS", netherlandsantilles: "AN", 1628 unitedkingdom: "GB", uk: "GB", unitedstates: "US" 1629 }; 1630 var skip = { 1631 AC:1, AN:1, BU:1, CP:1, CQ:1, CS:1, DD:1, DG:1, DY:1, EA:1, EU:1, EZ:1, 1632 FX:1, HV:1, IC:1, NH:1, QO:1, RH:1, SU:1, TA:1, TP:1, UK:1, UN:1, VD:1, 1633 XA:1, XB:1, YD:1, YU:1, ZR:1, ZZ:1 1634 }; 1635 var langs = ["en", "fr", "de", "it"]; 1636 var displayers = {};
1637 langs.forEach(function (lang) { 1638 try { displayers[lang] = new Intl.DisplayNames([lang], { type: "region" }); } catch (e) {} 1639 }); 1640 for (var a = 65; a <= 90; a++) { 1641 for (var b = 65; b <= 90; b++) { 1642 var iso = String.fromCharCode(a) + String.fromCharCode(b); 1643 if (!aliasMap[iso.toLowerCase()]) aliasMap[iso.toLowerCase()] = iso; 1644 if (skip[iso]) continue; 1645 langs.forEach(function (lang) { 1646 var dn = displayers[lang]; 1647 if (!dn) return; 1648 try { 1649 var name = dn.of(iso); 1650 if (name && name !== iso) aliasMap[normalizeCountryLabel(name)] = iso; 1651 } catch (e) {} 1652 }); 1653 } 1654 } 1655 return aliasMap; 1656 } 1657 window.tktCountryIso = function (value) { 1658 var v = String(value == null ? "" : value).trim(); 1659 if (!v) return ""; 1660 if (/^[A-Za-z]{2}$/.test(v)) return v.toUpperCase(); 1661 return countryAliasMap()[normalizeCountryLabel(v)] || ""; 1662 }; 1663 window.tktCountryDisplay = function (value) { 1664 if (value == null || String(value).trim() === "") return ""; 1665 var iso = window.tktCountryIso(value); 1666 if (!iso) return String(value); 1667 try { 1668 var lang = (window.tkt_config && window.tkt_config.lang) || "fr"; 1669 return new Intl.DisplayNames([lang, "en"], { type: "region" }).of(iso) || iso; 1670 } catch (e) { 1671 return iso; 1672 } 1673 }; 1674 })(); 1675 </script>
1675 1676
1676<script> 1677 !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||[]); 1678 (function() { 1679 function boot() { 1680 var props = { 1681 app: "wordpress", 1682 lang: window.tkt_config && window.tkt_config.lang, 1683 instance: "giff" 1684 }; 1685 function stripQuery(value) { 1686 if (typeof value !== "string" || value.indexOf("?") === -1) return value; 1687 try { 1688 var u = new URL(value, window.location.origin); 1689 u.search = ""; 1690 u.hash = ""; 1691 return u.toString(); 1692 } catch (e) { 1693 return value.split("?")[0]; 1694 } 1695 } 1696 function sanitizeProps(properties) { 1697 if (!properties) return properties; 1698 ["$current_url", "$initial_current_url", "$referrer", "url"].forEach(function (key) { 1699 if (properties[key]) properties[key] = stripQuery(properties[key]); 1700 }); 1701 return properties; 1702 } 1703 function applyGroup(client, memoSuffix) { 1704 if (!client || !props.instance) return; 1705 var instance = String(props.instance).slice(0, 100); 1706 var name = String(props.instance).slice(0, 100); 1707 var key = instance + "\0" + name; 1708 var storeKey = "tkt_ph_instance_group" + (memoSuffix || ""); 1709 try { 1710 if (client.__tkt_instance_group === key) return; 1711 if (window.sessionStorage && sessionStorage.getItem(storeKey) === key) { 1712 client.__tkt_instance_group = key; 1713 return; 1714 } 1715 } catch (e) {} 1716 try { 1717 client.group("instance", instance, { name: name }); 1718 client.__tkt_instance_group = key; 1719 try { sessionStorage.setItem(storeKey, key); } catch (e2) {} 1720 } catch (e) {} 1721 } 1722 posthog.init("phc_kBHqpqfwyMyc5nn56qyoekDHCFE9GrLD4fFKt8ePoYQn", { 1723 api_host: "https:\/\/eu.i.posthog.com", 1724 person_profiles: "identified_only", 1725 persistence: "localStorage+cookie", 1726 capture_pageview: true, 1727 capture_pageleave: true, 1728 capture_performance: { web_vitals: true }, 1729 autocapture: false, 1730 disable_session_recording: true, 1731 disable_surveys: true, 1732 advanced_disable_feature_flags: true, 1733 sanitize_properties: sanitizeProps 1734 }); 1735 try { posthog.register(props); } catch (e) {} 1736 applyGroup(posthog); 1737 var clientKey = ""; 1738 if (clientKey) { 1739 window.posthog_client = posthog.init(clientKey, { 1740 api_host: "https:\/\/eu.i.posthog.com", 1741 person_profiles: "identified_only", 1742 persistence: "localStorage+cookie", 1743 capture_pageview: true, 1744 capture_pageleave: true, 1745 capture_performance: { web_vitals: true }, 1746 autocapture: false, 1747 disable_session_recording: true, 1748 disable_surveys: true, 1749 advanced_disable_feature_flags: true, 1750 sanitize_properties: sanitizeProps 1751 }, "ticketack_client"); 1752 try { window.posthog_client.register(props); } catch (e) {} 1753 applyGroup(window.posthog_client, "_client"); 1754 } 1755 } 1756 var started = false;
1757 function bootOnce() { 1758 if (started) return; 1759 started = true; 1760 boot(); 1761 } 1762 function cookieYesPresent() { 1763 try { 1764 if (typeof window.getCkyConsent === "function") return true; 1765 if (document.getElementById("cookieyes")) return true; 1766 if (document.querySelector("script[src*=cookieyes]")) return true; 1767 if (/(?:^|; )cookieyes-consent=/.test(document.cookie)) return true; 1768 } catch (e) {} 1769 return false; 1770 } 1771 function wpConsentApiPresent() { 1772 try { 1773 if (typeof window.wp_has_consent === "function") return true; 1774 if (document.documentElement && document.documentElement.getAttribute("data-wpconsent") != null) return true; 1775 if (typeof window.wp_consent_type !== "undefined") return true; 1776 } catch (e) {} 1777 return false; 1778 } 1779 function cmpPresent() { 1780 return cookieYesPresent() || wpConsentApiPresent(); 1781 } 1782 function analyticsAllowed() { 1783 try { 1784 if (typeof window.getCkyConsent === "function") { 1785 var c = window.getCkyConsent(); 1786 if (c && c.categories) return !!c.categories.analytics; 1787 } 1788 } catch (e) {} 1789 try { 1790 var m = document.cookie.match(/(?:^|; )cookieyes-consent=([^;]*)/); 1791 if (m) { 1792 return /(?:^|,)analytics:yes(?:$|,)/.test(decodeURIComponent(m[1])); 1793 } 1794 } catch (e2) {} 1795 try { 1796 if (typeof window.wp_has_consent === "function") { 1797 if (window.wp_has_consent("statistics")) return true; 1798 if (window.wp_has_consent("analytics")) return true; 1799 return false; 1800 } 1801 } catch (e3) {} 1802 return null; 1803 } 1804 function listenConsent() { 1805 document.addEventListener("cookieyes_banner_load", function (e) { 1806 var cats = e && e.detail && e.detail.categories; 1807 if (cats && cats.analytics) bootOnce(); 1808 }); 1809 document.addEventListener("cookieyes_consent_update", function (e) { 1810 var accepted = e && e.detail && e.detail.accepted; 1811 if (accepted && accepted.indexOf && accepted.indexOf("analytics") !== -1) { 1812 bootOnce(); 1813 } else if (analyticsAllowed() === true) { 1814 bootOnce(); 1815 } 1816 }); 1817 document.addEventListener("wp_listen_for_consent_change", function (e) { 1818 var detail = e && e.detail; 1819 if (detail && (detail.statistics === "allow" || detail.analytics === "allow")) { 1820 bootOnce(); 1821 return; 1822 } 1823 if (analyticsAllowed() === true) bootOnce(); 1824 }); 1825 document.addEventListener("wp_consent_type_defined", function () { 1826 if (analyticsAllowed() === true) bootOnce(); 1827 }); 1828 } 1829 function schedule() { 1830 if (!cmpPresent()) { 1831 bootOnce(); 1832 return; 1833 } 1834 if (analyticsAllowed() === true) { 1835 bootOnce(); 1836 return; 1837 } 1838 listenConsent(); 1839 } 1840 if (typeof window.requestIdleCallback === "function") { 1841 window.requestIdleCallback(schedule, { timeout: 3000 }); 1842 } else { 1843 window.setTimeout(schedule, 0); 1844 } 1845 })(); 1846 </script>
1846 1847
1847<script src="https://www.giff.ch/wp-content/plugins/ticketack/front/build/app.js?v=2.112.0.202609151713"></script>
1847 1848</body> 1849 1850</html> 1851 1852<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1790946140 -->
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.