Galaxy S24 Ultra | Galaxy AI | Samsung NL (2024)

Table of Contents
Galaxy S24 Ultra Galaxy AI* is here Stijlvol. Sterk. Schitterend Extra stevigheid dankzij titanium Extra stevigheid dankzij titanium Betere krasbestendigheid met Corning® Gorilla® Armor Water- en stofbestendig. Zorgeloos Nieuwe kleuren. Mineral chic Ontdek het op mineralen geïnspireerde verhaal Een scala aan nieuwe mogelijkheden met de geïntegreerde S Pen Een scala aan nieuwe mogelijkheden met de geïntegreerde S Pen Ongeëvenaarde NPU. Toonaangevende camera. Nu met Galaxy AI* 200 MP. Voor levensechte details 200 MP. Voor levensechte details Onze krachtigste Quad Tele-zoom ooit 5x optical zoom, 50MP 5x zoom en 8k video Digital zoom haalt het dichterbij, Galaxy AI* Zoom verbetert het Digital zoom haalt het dichterbij, Galaxy AI* Zoom verbetert het Maak de mooiste opnames met ProVisual, zelfs scherp in het donker Maak de mooiste opnames met ProVisual, zelfs scherp in het donker Duidelijke portretten in het donker door Galaxy AI* 5x night video zoomt in tot een scherp beeld Wijzig het formaat. Pas de foto aan. Zo eenvoudig is het Wijzig het formaat. Pas de foto aan. Zo eenvoudig is het Formaat wijzigen en foto bijwerken met Photo Assist Manipuleer de tijd met Instant Slow-mo Manipuleer de tijd met Instant Slow-mo Super HDR. Galaxy AI* van preview tot post Super HDR. Galaxy AI* van preview tot post Omcirkel het. Vind het. Zo eenvoudig is het Omcirkelen, Vinden Live Translate. De eenvoudigste manier om te communiceren Spreek de taal, overal ter wereld Een tolk op zak Kies de juiste toon voor je bericht met Chat Assist Realtime tekstvertalingen altijd binnen handbereik Vat notities samen in een oogwenk dankzij Galaxy AI* Notities makkelijk gemaakt Onze meest realistische mobiele game-ervaring ooit Een batterij die de hele dag meegaat voor eindeloos gameplezier Display van 2600 nits. Ons helderste, adaptieve mobiele scherm Waarom overstappen van iOS naar Galaxy? Schakel moeiteloos over van iOS Verleg je grenzen met Galaxy AI* Moeiteloos schakelen tussen apparaten Try Galaxy op je telefoon Jouw privacy. Gegarandeerd. Ruil in en bespaar Tot 1 TB opslagruimte Kies de mooiste accessoires Veelgestelde vragen

Galaxy S24 Ultra

  • SPECIFICATIES
  • SUPPORT
  • REVIEWS

Koop nu

  • Highlights
  • Vergelijken
  • Accessoires
  • SPECIFICATIES
  • SUPPORT
  • REVIEWS
Galaxy S24 Ultra | Galaxy AI | Samsung NL (1)

Koop nu Reserveer nu Pre-order nu Waar te koop

Galaxy S24 Ultra | Galaxy AI | Samsung NL (2)

Galaxy S24 Ultra

Galaxy S24 Ultra | Galaxy AI | Samsung NL (3)

Galaxy AI* is here

Welkom in de wereld van mobiele Galaxy AI. Met de Galaxy S24 Ultra gaat er een nieuwe wereld aan creativiteit, productiviteit en mogelijkheden voor je open. Allemaal op je smartphone.

Galaxy S24 Ultra | Galaxy AI | Samsung NL (4)

S Pen wordt gebruikt om een plant te traceren die te zien is in een afbeeldingsbericht op sociale media. Vervolgens omringen vier hoeken het beeld, om aan te geven dat het is vastgelegd voor zoeken. Circle to Search with Google.

Galaxy S24 Ultra | Galaxy AI | Samsung NL (5)

We zien een telefoongesprek dat in real time wordt vertaald. De dialoog wordt in twee talen op het scherm weergegeven.

Galaxy S24 Ultra | Galaxy AI | Samsung NL (6)

We zien een gesprek dat met behulp van de Interpreter-app in real time in twee talen wordt getranscribeerd en vertaald.

Galaxy S24 Ultra | Galaxy AI | Samsung NL (7)

Een lang tekstblok wordt gemarkeerd in een notitie. Met een paar tikken wordt een vereenvoudigd overzicht van de inhoud gemaakt.

Galaxy S24 Ultra | Galaxy AI | Samsung NL (8)

Een foto wordt bewerkt in de Gallery-app. Een van de onderwerpen wordt geselecteerd en verplaatst naar een andere locatie in de afbeelding. Vervolgens worden de ontbrekende gebieden ingevuld.

Galaxy S24 Ultra | Galaxy AI | Samsung NL (9)

Een sms-gesprek wordt in een vreemde taal weergegeven. Een pop-upballon toont: ‘Tik om te vertalen’. Wanneer er op wordt getikt, verandert de ballon in een balk met een vervolgkeuzemenu voor invoer- en uitvoertaal. Elke berichtballon toont nu zowel het originele bericht als de vertaling.

Circle to Search

Ga naar Circle to Search

Live Translate

Ga naar Live Translate

Interpreter

Ga naar Interpreter

Note Assist

Ga naar Note Assist

Photo Assist

Ga naar Photo Assist

Hulp bij chatten

Ga naar Chat Assist

  • Circle to Search

  • Live Translate

  • Interpreter

  • Note Assist

  • Photo Assist

  • Hulp bij chatten

Try Galaxy op je telefoon Scan deze QR code of ga naar trygalaxy.com

Galaxy S24 Ultra | Galaxy AI | Samsung NL (10)

Camera

"Voor wie de mooiste nachtopnames wil maken of het beeld wil aanpassen met AI"

Forbes Vetted

Galaxy AI

"Het nieuwe tijdperk van smartphones met AI"

GQ

Galaxy AI

"Galaxy AI voelt echt als de toekomst van de telefoon"

Omgekeerd

    Stijlvol. Sterk. Schitterend

    Galaxy S24 Ultra | Galaxy AI | Samsung NL (11)

    We zien een extreme close-up van de zijkant van de Galaxy S24 Ultra. Daarna schijnt er licht over de voorkant van de telefoon. Vervolgens zien we een close-up van het achterpaneel met de S Pen ervoor.

    Maak kennis met de Galaxy S24 Ultra: de ultieme Galaxy Ultra met een nieuwe titanium behuizing en een plat scherm van 6,8”., Een prachtig design.

    Extra stevigheid dankzij titanium

    Extra stevigheid dankzij titanium

    De behuizing heeft een upgrade gekregen en is voorzien van een laag titanium. De stevigheid van titanium is nu binnen handbereik.

    Betere krasbestendigheid met Corning® Gorilla® Armor

    Galaxy S24 Ultra | Galaxy AI | Samsung NL (12)

    Corning® Gorilla® Armor beschermt je scherm tegen krassen en houdt je telefoon in optimale conditie.

    Water- en stofbestendig. Zorgeloos

    Galaxy S24 Ultra | Galaxy AI | Samsung NL (13)

    Laat je plannen niet in het water vallen. De Galaxy S24 Ultra is IP68-gecertificeerd* voor water- en stofbestendigheid. Je bent dus klaar voor ieder avontuur en hoeft niet meer bang te zijn voor een beetje water.

    Galaxy S24 Ultra | Galaxy AI | Samsung NL (14)

    Nieuwe kleuren. Mineral chic

    Galaxy S24 Ultra | Galaxy AI | Samsung NL (15)

    Galaxy S24 Ultra | Galaxy AI | Samsung NL (16)

    Alleen verkrijgbaar via samsung.com

      Titanium Gray Titanium Black Titanium Violet Titanium Yellow Titanium Blue Titanium Green Titanium Orange

      We zien drie Galaxy S24 Ultra-telefoons in de kleur Titanium Gray - grijs. We zien het vooraanzicht van één telefoon en het achteraanzicht van de andere telefoon naast elkaar met een S Pen ernaast. Van de derde telefoon wordt de zijkant weergegeven om de randen van de behuizing te laten zien.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (17)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (18)

      We zien drie Galaxy S24 Ultra-telefoons in de kleur Titanium Black - zwart. We zien het vooraanzicht van één telefoon en het achteraanzicht van de andere telefoon naast elkaar met een S Pen ernaast. Van de derde telefoon wordt de zijkant weergegeven om de randen van de behuizing te laten zien.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (19)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (20)

      We zien drie Galaxy S24 Ultra-telefoons in de kleur Titanium Violet - paars. We zien het vooraanzicht van één telefoon en het achteraanzicht van de andere telefoon naast elkaar met een S Pen ernaast. Van de derde telefoon wordt de zijkant weergegeven om de randen van de behuizing te laten zien.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (21)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (22)

      We zien drie Galaxy S24 Ultra-telefoons in de kleur Titanium Yellow - geel. We zien het vooraanzicht van één telefoon en het achteraanzicht van de andere telefoon naast elkaar met een S Pen ernaast. Van de derde telefoon wordt de zijkant weergegeven om de randen van de behuizing te laten zien.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (23)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (24)

      We zien drie Galaxy S24 Ultra-telefoons in de kleur Titanium Blue - blauw. We zien het vooraanzicht van één telefoon en het achteraanzicht van de andere telefoon naast elkaar met een S Pen ernaast. Van de derde telefoon wordt de zijkant weergegeven om de randen van de behuizing te laten zien.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (25)

      Online Exclusive

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (26)

      Alleen verkrijgbaar via samsung.com

      We zien drie Galaxy S24 Ultra-telefoons in de kleur Titanium Green - groen. We zien het vooraanzicht van één telefoon en het achteraanzicht van de andere telefoon naast elkaar met een S Pen ernaast. Van de derde telefoon wordt de zijkant weergegeven om de randen van de behuizing te laten zien.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (27)

      Online Exclusive

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (28)

      Alleen verkrijgbaar via samsung.com

      We zien drie Galaxy S24 Ultra-telefoons in de kleur Titanium Orange - oranje. We zien het vooraanzicht van één telefoon en het achteraanzicht van de andere telefoon naast elkaar met een S Pen ernaast. Van de derde telefoon wordt de zijkant weergegeven om de randen van de behuizing te laten zien.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (29)

      Online Exclusive

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (30)

      Alleen verkrijgbaar via samsung.com

      Ontdek het op mineralen geïnspireerde verhaal

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (31)

      Iedere titaniumkleur is geïnspireerd door de schoonheid van de aarde en voorzien van een gladde afwerking. Hierdoor voelt de telefoon aan als een gepolijste edelsteen.

      Een scala aan nieuwe mogelijkheden met de geïntegreerde S Pen

      Een scala aan nieuwe mogelijkheden met de geïntegreerde S Pen

      De legendarische Galaxy Note, maar dan in een nieuw jasje. Schrijf, tik en navigeer met een ongekende precisie op het nieuwe, platte scherm.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (32)

      Galaxy AI*

      Ongeëvenaarde NPU. Toonaangevende camera. Nu met Galaxy AI*

      camera achter

      200 MP

      Wide-angle & 2x Optical Quality Zoom

      12 MP

      Ultra Wide

      50 MP

      5x Optical Zoom & 10x Optical Quality Zoom

      10 MP

      3x Optical Zoom

      camera voorkant

      12 MP

      Selfie Camera

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (33)

      200 MP. Voor levensechte details

      200 MP. Voor levensechte details

      De Galaxy S24 Ultra is voorzien van de grootste hoeveelheid megapixels op een smartphone en Galaxy AI* processing en legt de lat daarmee hoog op het gebied van beeldkwaliteit. De nieuwe ProVisual herkent bovendien objecten en verbetert de kleurhoogte, vermindert ruis en laat details beter tot hun recht komen.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (34)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (35)

      Opnames met de Galaxy S24 Ultra #withGalaxy

      Onze krachtigste Quad Tele-zoom ooit

      Maak ook van veraf de mooiste opnames. Je kunt nu 2x, 3x, 5x en zelfs 10x close-ups maken met optical en optical quality zoom.,, Bovendien is de nieuwe, krachtige Tele OIS breder dan voorheen voor een stabielere opname met minder onscherpte bij het inzoomen.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (36)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (37)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (38)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (39)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (40)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (41)

      Tik om in te zoomen

      Gemaakt met de Galaxy S24 Ultra #withGalaxy

      5x optical zoom, 50MP

      De camerasensor met hoge resolutie en telephoto-camera zorgen samen voor ongelofelijk scherpe foto's, zelfs als ze worden ingezoomd. Zoom in op je onderwerp met 5x zoom. Het resultaat? Duidelijkere en scherpere details van 50 MP.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (42)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (43)

      Gemaakt met de Galaxy S24 Ultra #withGalaxy

      1x, 5x

      5x zoom en 8k video

      Voor het eerst op een Galaxy smartphone: maak opnames in ongeëvenaarde 8k-videokwaliteit met 5x optical zoom. Leg bijzonderheden vast met deze alleskunner op het gebied van video.

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (44)

      In de zoeker van de Camera-app zien we beelden van een waterval in 8K-resolutie met 5x zoom. De video is stabiel en rijk aan details.

      Gemaakt met de Galaxy S24 Ultra #withGalaxy

      Digital zoom haalt het dichterbij, Galaxy AI* Zoom verbetert het

      Digital zoom haalt het dichterbij, Galaxy AI* Zoom verbetert het

      Ga van panoramisch naar ingezoomd dankzij op deep learning gebaseerde Galaxy AI Zoom. Ga van 1x zoom naar 100x zoom, zonder in te boeten aan de scherpte dankzij Galaxy AI.,

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (45)

      Gemaakt met de Galaxy S24 Ultra #withGalaxy

      Maak de mooiste opnames met ProVisual, zelfs scherp in het donker

      Maak de mooiste opnames met ProVisual, zelfs scherp in het donker

      Met Space Zoom ben je altijd het middelpunt van de actie, ook in het donker. Dankzij 1,6x grotere pixels en een bredere Tele OIS zijn je foto's duidelijker en stabieler. Zelfs objecten in de verte komen tot hun recht.,,

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (46)

      Galaxy S24 Ultra | Galaxy AI | Samsung NL (47)

      Gemaakt met de Galaxy S24 Ultra #withGalaxy

        Duidelijke portretten in het donker door Galaxy AI*

        Een nieuwe 5x sensor en grotere pixels betekenen meer details en scherpte van
        's ochtends vroeg tot 's avonds laat.,, Dankzij onze Galaxy AI Stereo dieptekaart en onze splinternieuwe 5x portretmodus maak je de mooiste portretten met een nog betere beeldkwaliteit.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (48)

        Gemaakt met de Galaxy S24 Ultra #withGalaxy

        5x night video zoomt in tot een scherp beeld

        De 5x night zoom videomogelijkheden zijn verrijkt met 5x sensor zodat details echt tot leven komen. Dankzij onze speciale ISP Block zijn korrelige, donkere video's verleden tijd.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (49)

        We zien een Nightography-video van breakdancers in een donkere studio. Het beeld is ingezoomd en wordt nog verder ingezoomd. Op beide zoomafstanden zijn de onderwerpen duidelijk en kleurrijk met minimale ruis.

        Gemaakt met de Galaxy S24 Ultra #withGalaxy

        Wijzig het formaat. Pas de foto aan. Zo eenvoudig is het

        Wijzig het formaat. Pas de foto aan. Zo eenvoudig is het

        Zie je iets liever op een andere plek? Je verplaatst het in een handomdraai. Dankzij de nieuwe bewerkingsopties op basis van Galaxy AI* kun je jouw foto helemaal naar je hand zetten. Verplaats objecten en vul de open plek eenvoudig in.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (50)

        Een foto wordt bewerkt in de Gallery-app. Er wordt op een bewerkingsknop getikt en een van de onderwerpen wordt geselecteerd. Ze worden verplaatst naar een andere locatie in de afbeelding. Vervolgens worden ontbrekende gebieden ingevuld.

        Photo Assist

        Formaat wijzigen en foto bijwerken met Photo Assist

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (51)

        Op het scherm van de Galaxy S24 Ultra wordt een foto getoond van een skateboarder die aan het skaten is in een skateboardpark. De knop Bewerken wordt geselecteerd. Vervolgens de knop met Galaxy AI-sterren. De skateboarder wordt omcirkeld en vervolgens hoger verplaatst. Er wordt op de knop ‘Genereren’ getikt. De foto wordt verwerkt en het ontbrekende gedeelte waar het onderwerp zich bevond, wordt opgevuld. Er wordt een ‘voor’ en ‘na’ getoond.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (52)

        In de Gallery-app is een foto geopend van een skateboarder die in een skateboardpark optreedt. De knop Bewerken wordt geselecteerd.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (53)

        De foto bevindt zich nu in de bewerkingsmodus van de Gallery-app.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (54)

        In de bewerkingsmodus wordt op de knop met Galaxy AI-sterren getikt.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (55)

        Er passeert kort een blauwachtige gekleurde golf over de foto.

        Tik of teken voor selectie

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (56)

        De contouren van de skateboarder worden gemarkeerd.

        De selectie verplaatsen

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (57)

        De skateboarder wordt vervolgens hoger op de foto geplaatst.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (58)

        De foto wordt verwerkt.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (59)

        Het ontbrekende gedeelte waar het onderwerp zich bevond, wordt opgevuld.

        Photo Assist

        Geef afbeeldingen opnieuw vorm door mensen of objecten te verplaatsen en achtergronden te vullen.

        Manipuleer de tijd met Instant Slow-mo

        Manipuleer de tijd met Instant Slow-mo

        Verander gewone video's in cineastische wonderen met Instant Slow-mo. Met AI-gegenereerde beelden tussen frames hoef je alleen maar te tikken en vast te houden om te bepalen wanneer het Slow-mo-effect start en stopt, zelfs bij downloads.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (60)

        Een video van een waterballongevecht op een kinderfeestje in een achtertuin speelt op normale snelheid op de display van de Galaxy S24 Ultra. Een volwassene verschijnt van achter de cadeautafel. Terwijl een waterballon op zijn hoofd explodeert, verandert de video in slow motion.

        Super HDR. Galaxy AI* van preview tot post

        Super HDR. Galaxy AI* van preview tot post

        Dankzij onze nieuwste Super HDR-upgrade worden camerapreviews weergegeven met Super HDR, net als je uiteindelijke opname. Je ziet direct hoe je super levendige foto's en video's eruitzien voordat je ze vastlegt. En het werkt zelfs met de camera's van socialmedia-apps.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (61)

        Een vrouw wordt gefotografeerd bij zonsondergang. De kleur en verzadiging zijn verbeterd met Super HDR, waardoor het onderwerp scherp is en de wolken extra worden geaccentueerd. De Super HDR-afbeelding komt overeen met de foto in hoge resolutie die is opgeslagen in de Galerij.

        Gemaakt met de Galaxy S24 Ultra #withGalaxy

        Omcirkel het. Vind het. Zo eenvoudig is het

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (62)

        We zien de S Pen die wordt gebruikt om een plant te traceren in een foto op social media. De plant wordt gelokaliseerd en het scherm linkt door naar een pagina met Google-zoekresultaten over de plant.

        Maak kennis met een nieuwe manier van zoeken met Circle to Search. Kom je iets leuks of interessants tegen op je favoriete socialmediakanaal? Omcirkel het met je S Pen of vinger en ga direct naar de Google-zoekresultaten.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (63)

        Circle to Search

        Omcirkelen, Vinden

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (64)

        Een video die op een social media-app is gepost, wordt afgespeeld op het scherm van de Galaxy S24 Ultra. Er wordt een onlangs ingerichte woonkamer getoond. Omcirkelen om te zoeken met Google. De opname zoomt in op een ingelijste poster aan de muur. De startknop wordt lang ingedrukt. Onderaan het scherm verschijnt een Google-zoekbalk. Er wordt een cirkel rond de poster getrokken. De poster wordt geïdentificeerd en vergelijkbare Google-resultaten verschijnen in een pop-upvenster boven de social media-app. Omcirkelen om te zoeken met Google.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (65)

        Een social media-app speelt een videobericht af.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (66)

        De post op sociale media toont een onlangs ingerichte woonkamer.

        Druk lang op de startknop

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (67)

        Er wordt een gestippelde cirkel rond een ingelijste poster aan de muur getrokken.

        Omcirkel of tik om te zoeken.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (68)

        Google staat bovenaan de lijst geschreven en onderaan verschijnt een Google-zoekbalk.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (69)

        Er wordt een cirkel rond de poster getrokken. De poster wordt geïdentificeerd en vergelijkbare Google-resultaten verschijnen in een pop-upvenster boven de social media-app.

        Circle to Search

        Zoek iets zonder tussen apps te schakelen.

        Live Translate. De eenvoudigste manier om te communiceren

        Met Live Translate wordt je telefoongesprek in real time vertaald. Doorbreek taalbarrières als nooit tevoren, zelfs met berichten. Geef antwoord in je eigen taal en je gesprekspartner hoort de vertaling.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (70)

        We zien een telefoongesprek dat in real time wordt vertaald. De dialoog wordt in twee talen op het scherm weergegeven.

        Live Translate

        Spreek de taal, overal ter wereld

        Tik om te bellen

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (71)

        Op het scherm van de Galaxy S24 Ultra is een telefoongesprek gaande. Een knop bestaande uit Galaxy AI-sterren wordt digitaal gemarkeerd op het scherm. Vervolgens toont het scherm een tekstdialoog met een taalvervolgkeuzemenu bovenaan het gesprek. Het telefoongesprek wordt op het scherm in de oorspronkelijk gesproken taal weergegeven en onder deze originele transcriptie wordt de vertaling weergegeven.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (72)

        Op het scherm van de Galaxy S24 Ultra is een telefoongesprek gaande. Er staat een vervolgkeuzemenu bovenaan een gesprek.

        Tik om te vertalen

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (73)

        Het telefoongesprek wordt op het scherm in de oorspronkelijk gesproken taal weergegeven en onder deze originele transcriptie wordt de vertaling weergegeven.

        Live Translate

        U hebt uw portemonnee onderweg in een taxi laten liggen! Hoe kunt u met een buitenlandse taxichauffeur praten?

        Een tolk op zak

        Wil je een tip van iemand die er woont? Geen probleem! Je hebt een tolk op zak. Gebruik hem zelfs in vliegtuigmodus zonder Wi-Fi.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (74)

        In the Interpreter app, a conversation in two languages is transcribed and translated in real time.

        Kies de juiste toon voor je bericht met Chat Assist

        Schrijf tekstberichten met Galaxy AI* in Chat Assist. Verwoord jezelf als een professional of als een goede vriend. Zet de juiste woorden op papier in een handomdraai.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (75)

        Hulp bij chatten

        Realtime tekstvertalingen altijd binnen handbereik

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (76)

        Op het display van een Galaxy S24 Ultra is een sms-gesprek geopend. De berichten zijn in een vreemde taal. Een pop-upballon toont: ‘Tik om te vertalen’. Wanneer er op wordt getikt, verandert de ballon in een balk met een vervolgkeuzemenu voor invoer- en uitvoertaal. Elke berichtballon toont nu zowel het originele bericht als de vertaling.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (77)

        Er wordt op een sms-gesprek uit een lijst met gesprekken getikt.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (78)

        Het gesprek wordt geopend en er wordt een dialoog in een vreemde taal weergegeven. Er verschijnt een pop-upballon met de tekst ‘Tik om te vertalen’ waarop getikt wordt.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (79)

        Het vervolgkeuzemenu voor invoer- en uitvoertaal toont respectievelijk Auto en Engels. Elke berichtballon toont nu zowel het originele bericht als de Engelse vertaling. Er wordt op het uitvoertaalmenu getikt.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (80)

        In het uitvoertaalmenu wordt Engels gewijzigd in Frans.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (81)

        Nu zijn de berichten vertaald in het Frans.

        Chat Assist

        Optimaliseer uw communicatie door chats en tekstberichten te vertalen.

        Vat notities samen in een oogwenk dankzij Galaxy AI*

        Of je nu een deadline probeert te halen of zomaar even iets noteert: met Note Assist maak je alles behapbaar. Begin met schrijven en tover het later om in een duidelijke, makkelijk leesbare samenvatting.

        Ben je op zoek naar een oude notitie? De nieuwe covers laten eenvoudige samenvattingen zien. Zo ziet je scherm er overzichtelijk uit en kun je je gemaakte notities makkelijk terugvinden.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (82)

        We zien een groot blok met gemarkeerde tekst in een Notitie. Met een paar tikken wordt er een eenvoudig overzicht van de content geproduceerd. Het document wordt opgeslagen.

        Note Assist

        Notities makkelijk gemaakt

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (83)

        Op het display van de Galaxy S24 Ultra is een Note geopend. Het is een lang persbericht. Op de onderste werkbalk wordt op de knop met Galaxy AI-sterren getikt. Er verschijnt een pop-upmenu en er wordt op ‘Auto format’ getikt. Vervolgens op ‘Headers en bullets’. De Note wordt verwerkt en er wordt een ontwerp van het persbericht gegenereerd. Elke keer dat de Note naar links wordt geveegd, verandert het formaat van het ontwerp.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (84)

        Een lang persbericht wordt weergegeven in een Note. Op de onderste werkbalk wordt op de knop met Galaxy AI-sterren getikt.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (85)

        Er verschijnt een pop-upmenu en er wordt op ‘Auto format’ getikt.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (86)

        Vervolgens wordt er op ‘Headers en bullets’ getikt.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (87)

        De Note wordt verwerkt en een ontwerp van het persbericht wordt gegenereerd in een pop-up boven de Note. Er wordt op de middelste knop onderaan de pop-up getikt.

        Klik hier

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (88)

        De ontwerpversie wordt opgeslagen en vervangt de originele Note.

        Note Assist

        Met Automatisch indelen kunt u de tekst van uw notitie automatisch indelen in een eenvoudig te lezen samenvatting met kernpunten.

        Onze meest realistische mobiele game-ervaring ooit

        Logo van Arena Breakout. Ray tracing aan. Ray tracing uit. We zien een voor-en-na-vergelijking van het scherm van de Galaxy S24 Ultra om de ray tracing-effecten in het spel Arena Breakout te laten zien. Dankzij ray tracing worden reflecties op oppervlakten nog meer geaccentueerd.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (89)

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (90)

        Pak de overwinning met de nieuwe Snapdragon® 8 Gen 3 voor Galaxy. Dankzij de snellere processor ben je onverslaanbaar in al jouw games. Zie grafische effecten in real time tot leven komen met ray tracing voor hyperrealistische schaduwen en reflecties.

        En we hebben het formaat van het Vapor Chamber-koelsysteem van de Galaxy S24 Ultra verdubbeld zodat de warmte nog beter wordt afgevoerd en de graphics optimaal worden weergegeven.

        • NPU

          41 % improved operation with Galaxy AI*

        • GPU

          30 % krachtigere graphics en prestaties

        • CPU

          20 % snellere, efficiëntere, prestaties

        Een batterij die de hele dag meegaat voor eindeloos gameplezier

        De batterij van de Ultra heeft een enorme capaciteit. Hij schiet dus nooit tekort en zeker niet op het moment suprême.,

        • Video’s kijken tot

          30 uur

        • Muziek luisteren tot

          95 uur

        Display van 2600 nits. Ons helderste, adaptieve mobiele scherm

        Ons meeslepende scherm is voorzien van een aantal grote upgrades. Corning® Gorilla® Armor vermindert reflecties en verbetert de helderheid, zelfs in direct zonlicht. De verbeterde Vision Booster verbetert het contrast en de kleuren voor een ongeëvenaarde ervaring.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (91)

        We zien een scherpe video als voor-en-na-vergelijking op een Galaxy S24 Ultra-scherm. De telefoon bevindt zich buiten in het daglicht en er wordt een video afgespeeld op het scherm.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (92)

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (93)

        Waarom overstappen van iOS naar Galaxy?

        Schakel moeiteloos over van iOS

        Bewaar je foto's, video's, contacten, agenda en apps met Smart Switch — zelfs als je overschakelt vanuit iOS.,,

        Ga naar Smart Switch

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (94)

        Verleg je grenzen met Galaxy AI*

        Schakel over op Galaxy en ervaar het gemak van de nieuwe generatie mobiele Galaxy AI.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (95)

        Moeiteloos schakelen tussen apparaten

        Kies voor Galaxy en ontdek het gemak van werken, gamen en je gezondheid bijhouden op al je apparaten.

        Ga naar Connected Experience

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (96)

        Try Galaxy op je telefoon

        Heb je het nieuwste Galaxy-apparaat al uitgeprobeerd? Probeer het nu! Op je telefoon! Start de ervaring met deze download.

        Heb je het nieuwste Galaxy-apparaat al uitgeprobeerd? Probeer het nu! Op je telefoon! Scan de QR code en download om te beginnen.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (97)

        Jouw privacy. Gegarandeerd.

        Privacy van gebruikers blijft onze prioriteit in het tijdperk van AI. Met de lancering van Galaxy AI op de Galaxy S24-serie kun je erop vertrouwen dat we je persoonsgegevens niet voor enig doel opslaan of gebruiken zonder je toestemming.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (98)

        Samsung Knox

        Ruil in en bespaar

        Ruil je oude telefoon in en ontvang voordeel op je nieuwe Galaxy S24 Ultra.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (99)

        Tot 1 TB opslagruimte

        Genoeg opslagruimte met keuze uit 256 GB, 512 GB en 1 TB.

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (100)

        Kies de mooiste accessoires

        Ontdek meer

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (101)

        Veelgestelde vragen

        Galaxy S24 | S24+

        Ontdek meer

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (102)

        Ontdek hoe je jouw Galaxy S24 Ultra kunt bemachtigen

        Koop nu Reserveer nu Pre-order nu Waar te koop

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (103)

        Ga naar Galaxy S24 Ultra in AR Openen in AR

        Life opens up with Galaxy

        Ontdek meer

        Galaxy S24 Ultra | Galaxy AI | Samsung NL (107)

        Bekijk in 360º-weergave

        Probeer het uit!

        *Kleuren die 'Online Exclusive' zijn, zijn alleen verkrijgbaar via samsung.com.

        Een geheel nieuwe manier van zakendoen

        Ga naar de Samsung Business Store

        *Deze Galaxy AI-functies zijn ten minste tot eind 2025 gratis op ondersteunde Samsung Galaxy-apparaten.

        *Inloggen op je Samsung-account kan vereist zijn voor het gebruik van bepaalde Samsung Galaxy AI-functies. Samsung doet geen beloftes, toezeggingen of garanties ten aanzien van de nauwkeurigheid, compleetheid of betrouwbaarheid van de output van Galaxy AI-functies. Het gebruik van Galaxy AI-functies kan extra kosten met zich mee brengen.

        *De hier vermelde specificaties en beschrijvingen kunnen verschillen van de werkelijke productspecificaties en beschrijvingen. Samsung behoudt zich het recht voor dit document en het product te allen tijde te wijzigen, zonder voorafgaande aankondiging. Alle functies, features, specificaties, GUI en andere productinformatie in dit document wat betreft de voordelen, het design, de prijs, de onderdelen, prestaties, beschikbaarheid en functies van het product kunnen worden gewijzigd zonder voorafgaande waarschuwing. De afbeeldingen op de schermen zijn gesimuleerde beelden en louter illustratief.

        *Gesimuleerde afbeelding voor illustratieve doeleinden. Scènes zijn ingekort en gesimuleerd. Daadwerkelijke gebruikersinterface kan afwijken van de afbeelding.

        1. Scènes zijn ingekort en gesimuleerd. Resultaten dienen uitsluitend voor illustratieve doeleinden. Resultaten kunnen verschillen afhankelijk van visuele overeenkomsten. Internetverbinding vereist. Gebruikers moeten Android mogelijk updaten naar de nieuwste versie. Productwerking kan afhankelijk zijn van je app- en apparaatinstellingen. Sommige functies zijn mogelijk niet compatibel met bepaalde apps. De beschikbaarheid van diensten verschilt per regio. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
        2. Voor het gebruik van Live Translate is een netwerkverbinding vereist en dien je ingelogd te zijn op je Samsung-account. Live Translate is alleen beschikbaar op de vooraf geïnstalleerde Samsung Phone-app. Voor bepaalde talen is het downloaden van een taalpakket vereist. De beschikbaarheid van diensten kan variëren per regio. De nauwkeurigheid van resultaten wordt niet gegarandeerd. Nederlands nog niet beschikbaar. Verwachte lancering van Nederlandse taal eind 2024.
        3. Voor het gebruik van Interpreter dien je ingelogd te zijn op je Samsung-account. Voor bepaalde talen is het downloaden van een taalpakket vereist. De nauwkeurigheid van resultaten wordt niet gegarandeerd. De beschikbaarheid en ondersteunde functies kunnen verschillen per land, regio of provider. Ondersteunde talen kunnen variëren.
        4. Voor het gebruik van Note Assist is een netwerkverbinding vereist en dien je ingelogd te zijn op je Samsung-account. Er geldt een karakterlimiet. De beschikbaarheid van diensten kan variëren per regio. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
        5. Voor het gebruik van Generative Edit is een netwerkverbinding vereist en dien je ingelogd te zijn op je Samsung-account. Als je een foto bewerkt met Generative Edit, krijg je een foto in aangepast formaat tot 12 MP. Er wordt een zichtbaar watermerk over de afbeelding geplaatst om aan te geven dat de afbeelding door Galaxy AI is gegenereerd. De nauwkeurigheid en betrouwbaarheid van de geleverde output is zijn niet gegarandeerd.
        6. Diagonaal gemeten is de schermafmeting van de Galaxy S24 Ultra 6,8'' als een volledige rechthoek en 6,8'' als je rekening houdt met de afgeronde hoeken. Het feitelijke weergavegebied is kleiner vanwege de afgeronde hoeken en de camera-uitsparing.
        7. Alleen de telefoonbehuizing is voorzien van titanium. De volume- en zijknoppen behoren niet tot de behuizing.
        8. Vergeleken met de Galaxy S23 Ultra.
        9. De beschikbaarheid van bepaalde kleuren kan verschillen per regio.
        10. Zoomen met optische kwaliteit wordt ingeschakeld door de Adaptive Pixel-sensor.
        11. Galaxy AI* Zoom wordt toegepast op afstanden tussen digitale zoomafstanden. De nauwkeurigheid van resultaten is niet gegarandeerd.
        12. Resultaten kunnen verschillen afhankelijk van de licht- en/of opnameomstandigheden, zoals bij meerdere personen/objecten, onscherpe instelling of bewegende personen/objecten.
        13. Afstanden 3x en 5x zijn optical zoom. Afstanden 2x en 10x zijn optical quality zoom.
        14. 2x zoom moet worden ingeschakeld in de Camera Assistant-appinstellingen. Camera Assistant kan worden gedownload in de Galaxy Store.
        15. 8k-video kan alleen worden gekeken op een apparaat met de juiste ondersteuning.
        16. 100X Space Zoom bestaat uit 10x optical quality zoom en 100x digitale zoom met Super Resolution-technologie. Meer dan 10x inzoomen kan resulteren in iets lagere beeldkwaliteit.
        17. Bepaalde apps bieden mogelijk geen ondersteuning voor Super HDR.
        18. Voor het gebruik van Tone Suggestion in Chat Assist is een netwerkverbinding vereist en dien je ingelogd te zijn op je Samsung-account. De lengtevereisten dienen te worden opgevolgd om de feature te activeren. De beschikbaarheid van diensten kan variëren per regio. De nauwkeurigheid van resultaten wordt niet gegarandeerd.
        19. Arena Breakout © Proxima Beta Pte. Limited. Alle rechten voorbehouden. Alle andere handelsmerken, logo's en copyrights zijn eigendom van hun respectieve eigenaren. Beschikbaar in de Samsung Galaxy Store en andere app stores in geselecteerde landen.
        20. Producten van het merk Snapdragon zijn producten van Qualcomm Technologies, Inc. en/of haar dochterondernemingen.
        21. Het Vapor Chamber-koelsysteem waarmee de Galaxy S24 Ultra is uitgerust, is 92% groter dan dat van de Galaxy S23 Ultra.
        22. De weergegeven AP-prestatieverbeteringen zijn vergeleken met de Galaxy S23 Ultra. De daadwerkelijke prestaties hangen af van de gebruikersomgeving, omstandigheden en vooraf geïnstalleerde software en applicaties.
        23. De werkelijke batterijduur is afhankelijk van netwerkomgeving, gebruikte functies en apps, aantal gesprekken en berichten, aantal keren opladen en veel andere factoren. Geschat op basis van het gebruiksprofiel van een gemiddelde/typische gebruiker zoals vastgesteld door UX Connect Research. Onafhankelijk getest door UX Connect Research tussen 25-11-2023 en 15-12-2023 in de VS en het VK met prerelease-versies van de SM-S921, SM-S926 en SM-S928 met LTE en 5G Sub-6 netwerken. NIET getest op 5G mmWave netwerk.
        24. Gebaseerd op testomstandigheden in het interne laboratorium van Samsung met de pre-releaseversies van een bepaald model, verbonden met een koptelefoon via Bluetooth en standaardinstellingen via LTE. Geschat op basis van de batterijcapaciteit en de gemeten stroom bij het batterijverbruik tijdens het afspelen van video's (respectievelijk videoresolutie van 720p, opgeslagen op het toestel) en audio (mp3-bestand, 192 kbps, opgeslagen op het toestel met LCD-scherm uitgeschakeld). De daadwerkelijke afspeelduur van video en audio varieert afhankelijk van de netwerkverbinding, instellingen, bestandsformaat, schermhelderheid, batterijconditie en vele andere factoren.
        25. Het Dynamic AMOLED 2X display van de Galaxy S24 Ultra is door VDE Duitsland gecertificeerd voor 100% mobiel kleurvolume in het DCI-P3-kleurbereik. Dit betekent dat je afbeeldingen nooit vervagen en dat je kleuren ongekend levendig zijn, zelfs bij verschillende helderheidsniveaus. Het display heeft een maximale helderheid van 2600 nits, waarbij het contrast tussen donkere en lichte details van digitale content is verbeterd voor een helderdere beeldkwaliteit met een 5.000.000:1 contrastverhouding voor een nog meeslependere mobiele ervaring.
        26. Voor bekabelde overdrachten van Android™-apparaten geldt dat zowel het versturende apparaat als het ontvangende apparaat voorzien moeten zijn van Android™ 4.3 of hoger. Overdrachten kunnen worden voltooid zonder kabel via een draadloze verbinding. Voor draadloze verbindingen geldt dat zowel het versturende apparaat als het ontvangende apparaat voorzien moeten zijn van Android™ 4.0 of hoger. Open Smart Switch Mobile in Instellingen op het ontvangende Galaxy-apparaat of download de Smart Switch mobiele app in de Galaxy Store. De gegevens en content die kunnen worden overgedragen, kunnen verschillen per overdrachtsmethode.
        27. Voor bekabelde overdrachten van iOS-apparaten geldt dat zowel het ontvangende apparaat voorzien moeten zijn van Android™ 4.3 of hoger en het versturende apparaat van iOS 5 of hoger. Overdrachten kunnen worden voltooid zonder kabel via een draadloze verbinding of iCloud. Voor draadloze verbindingen geldt dat het ontvangende apparaat voorzien moeten zijn van Android™ 4.0 of hoger en het versturende apparaat van iOS 12 of hoger. Voor iCloud-overdrachten geldt dat het ontvangende apparaat voorzien moet zijn van Android™ 4.0 of hoger en het versturende apparaat van iOS 5 of hoger. Open Smart Switch Mobile in Instellingen op het ontvangende Galaxy-apparaat of download de Smart Switch mobiele app in de Galaxy Store. Voor draadloze overdrachten kun je Smart Switch voor iOS downloaden in de App Store op je iPhone of iPad. De gegevens en content die kunnen worden overgedragen, kunnen verschillen per overdrachtsmethode.
        28. We raden aan om een bekabelde verbinding te gebruiken als je meerdere sets gegevens tegelijk overzet.
        29. De Galaxy Buds2 Pro, Galaxy Watch6 Classic en Galaxy Tab S9 zijn apart verkrijgbaar.
        30. Beschikbaar op apparaten met Android OS 10 (Q OS) of hoger en One UI 2.1 of hoger. De volgende pc's worden ondersteund: Samsung Notebooks en Samsung Galaxy Books inclusief op Qualcomm gebaseerde pc's uit 2020 of later en Windows pc's van andere fabrikanten met versie Windows 10 2004 of hoger en voorzien van Intel-versie 22.50.02 Bluetooth-drivers of hoger en Intel-versie 22.50.07 Wi-Fi-drivers of hoger.
        31. De Galaxy Tab S9 is los verkrijgbaar.
        32. Er kunnen maximaal 1000 bestanden tegelijk worden gedeeld via QR-codes en contacten. Ieder bestand mag maximaal 3 GB zijn en er kan in totaal maximaal 5 GB aan gegevens worden overgedragen per dag. Op het versturende apparaat dient een Samsung-account aanwezig te zijn en zowel het versturende als het ontvangende apparaat dient voorzien te zijn van een internetverbinding.
        33. Knox Matrix wordt ondersteund op Galaxy-smartphones en -tablets met One UI 6.0 of hoger. Beschikbaarheid kan verschillen per land of regio.
        34. Er zijn voorwaarden van toepassing. Beschikbaarheid kan verschillen per regio. Check of jouw toestel in aanmerking komt om in te ruilen op de Inruilpagina.
        35. De opslagopties en beschikbaarheid kunnen verschillen per regio. Daadwerkelijke opslagruimte kan verschillen afhankelijk van vooraf geïnstalleerde software.
        36. Alle accessoires zijn apart verkrijgbaar.
        37. Het scherm van de Galaxy S24 Ultra is diagonaal gemeten als volledige rechthoek 6.8”, en 6.8” rekening houdend met de afgeronde hoeken; het scherm van de Galaxy S24 is gemeten als volledige rechthoek 6.2”, en 6” rekening houdend met de afgeronde hoeken; en het scherm van de Galaxy S24+ is gemeten als een volledige rechthoek 6.7”, en 6,5” rekening houdend met de afgeronde hoeken; het feitelijke weergavegebied is kleiner, vanwege de afgeronde hoeken en de camera-uitsparing.
        38. Gemiddelde waarde zoals getest onder laboratoriumomstandigheden door een externe partij. De gemiddelde waarde is het geschatte rekenkundig gemiddelde, rekening houdend met de verschillen in batterijcapaciteit van de batterijsamples die zijn getest onder de IEC 61960-standaard. De opgegeven capaciteit is 3.880 mAh voor de Galaxy S24, 4.755 mAh voor de Galaxy S24+ en 4.855 mAH voor de Galaxy S24 Ultra. De feitelijke levensduur van de batterij kan variëren afhankelijk van netwerkomgeving, gebruik en andere factoren.
        39. Galaxy S24, S24+ en S24 Ultra zijn beoordeeld als IP68. Gebaseerd op labtestomstandigheden bij onderdompeling in maximaal 1,5 meter zoet water gedurende maximaal 30 minuten. Gebruik op het strand of in het zwembad wordt niet aanbevolen. De water- en stofbestendigheid van het apparaat is niet permanent en kan na verloop van tijd afnemen wegens normale slijtage.
        40. Instant Slow-mo is alleen beschikbaar op de vooraf geïnstalleerde Samsung Video Player en Samsung Gallery-app. De beschikbaarheid van de service kan verschillen per videospecificatie.
        41. Voor de vertaalfunctie in Chat Assist is een netwerkverbinding, het inloggen op de Samsung Account en het downloaden van het taalpakket in de Galaxy store vereist. Om de functie te activeren, moet aan de lengtevereisten worden voldaan. Beschikbaarheid kan per land, regio of taal verschillen. Het is mogelijk dat sommige chattoepassingen deze functie niet ondersteunen. De nauwkeurigheid van de resultaten is niet gegarandeerd.

        ')); } } }; const isZoom = function () { const winInnerWidth = window.innerWidth, winOuterWidth = window.outerWidth; let zoomLevel = 100 / ((winInnerWidth / winOuterWidth) * 100); if(zoomLevel > 1.75) { document.documentElement.classList.add('browser-zoomed-175'); } else { document.documentElement.classList.remove('browser-zoomed-175'); } }; return { addLoadStatusClass: addLoadStatusClass, setResolution: setResolution, onClickSup: onClickSup, centeredFocus: centeredFocus, setArBanner:setArBanner, isZoom: isZoom, }})();(function () { const resize = window.flagship.common.resize, common = window.flagship.highlights.common, utils = window.flagship.common.utils, agent = navigator.userAgent.toLowerCase(), maxOs = agent.indexOf('mac os') > -1, touchDevice = ('ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch)); let els = {}; const init = function () { els.videoWrap = document.querySelectorAll('.common-video'); els.isGlobal = document.documentElement.classList.contains('global'); if (!!els.videoWrap[0]) { setElements(); } }; const setElements = function () { // popup els.viewerPopup = document.querySelector('.highlights-viewer'); els.lowLightPopup = document.querySelector('.highlights-low-light-popup'); els.zoomVideoPopup = document.querySelector('.highlights-quad-telephoto-popup'); els.generativeEditPopup = document.querySelector('.highlights-suggestion-ai-popup'); els.generativeEditExperience = document.querySelector('#generative-edit-experience'); els.circleToSearchExperience = document.querySelector('#circle-to-search-experience'); els.liveTranslateExperience = document.querySelector('#live-translate-experience'); els.chatAssistExperience = document.querySelector('#chat-assist-experience'); els.noteAssistExperience = document.querySelector('#note-assist-experience'); // video els.videosWrap = document.querySelectorAll('.common-video'); els.videos = document.querySelectorAll('.common-video video'); for (var i = 0; i < els.videosWrap.length; i++) { els.videos[i].videoWrap = els.videosWrap[i]; } }; const bindEvents = function () { window.addEventListener('load', anchorPosition); window.addEventListener('hashchange', anchorPosition); }; const anchorPosition = function () { if (window.location.hash != '') { switch (window.location.hash) { case '#see-in-360': if (els.viewerPopup) els.viewerPopup.show(); break; case '#low-light-zoom': if (els.lowLightPopup) els.lowLightPopup.show(); break; case '#5x-zoom': if (els.zoomVideoPopup) els.zoomVideoPopup.show(); break; case '#generative-edit': if (els.generativeEditPopup) els.generativeEditPopup.show(); break; case '#generative-edit-experience': if (els.generativeEditExperience) { els.generativeEditExperience.show(); } break; case '#circle-to-search-experience': if (els.circleToSearchExperience) { els.circleToSearchExperience.show(); } break; case '#live-translate-experience': if (els.liveTranslateExperience) { els.liveTranslateExperience.show(); } break; case '#chat-assist-experience': if (els.chatAssistExperience) { els.chatAssistExperience.show(); } break; case '#note-assist-experience': if (els.noteAssistExperience) { els.noteAssistExperience.show(); } break; default: let hash = location.hash.split('#')[1], hashSection = document.querySelector('#contents #' + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { let sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); }, 300); break; } } }; var setResize = function () { resize.init([{ resolution: 1920, resolutionName: 'desktop', eventFunction: '' }, { resolution: 1023, resolutionName: 'tablet', eventFunction: '' }, { resolution: 767, resolutionName: 'mobile', eventFunction: '' }, { resolution: 320, resolutionName: 'mobileS', eventFunction: '' }], 200); resize.add(common.setResolution); }; const setScrollControl = function () { window.scrollController = ANIUTIL.scrollController(); scrollController.init({ speed: 120, duration: 0.5 }); }; const setImageLoader = function () { window.imageLoader = ANIUTIL.mediaLoader({ lazyClass: '.js-img-src', responsiveClass: '.js-res-img', preset: els.isGlobal ? '' : '?imbypass=true', loadOption: [{ resolution: 1920, attribute: 'data-src-pc' }, { resolution: 1023, attribute: 'data-src-tb' }, { resolution: 767, attribute: 'data-src-mo' }, { resolution: 360, attribute: 'data-src-mo-s' }], visiblePoint: 2 }); window.bgLoader = ANIUTIL.mediaLoader({ type: 'bgImage', lazyClass: '.js-bg-img', loadOption: [{ resolution: 1920, attribute: '', bgOpts: '' }], visiblePoint: 1 }); }; const setVideoLoader = function () { window.videoLoader = ANIUTIL.mediaLoader({ type: 'video', lazyClass: '.js-video-src', responsiveClass: '.js-res-video', preset: els.isGlobal ? '' : '?imbypass=true', loadOption: [{ resolution: 1920, attribute: 'data-video-src-pc' }, { resolution: 1023, attribute: 'data-video-src-tb' }, { resolution: 767, attribute: 'data-video-src-mo' }, { resolution: 360, attribute: 'data-video-src-mo-s' }], visiblePoint: 1, endCallback: function (video) { if (video.videoWrap && !video.videoWrap.classList.contains('is-loaded')) { video.videoWrap.classList.add('is-loaded'); } } }); }; const setCenteredfocus = function () { els.contents = document.querySelector('#contents'); els.allClickables = els.contents.querySelectorAll('a, button, input, select'); for (let i = 0; i < els.allClickables.length; i++) { els.allClickables[i].addEventListener('focusin', common.centeredFocus); } }; const setDisclaimerNumber = function () { const supTag = document.querySelectorAll('.click_sup'), btmDicl = document.querySelectorAll('li.common-bottom-disclaimer__list-item'); let btmDiclArr = []; for (let i = 0; i < btmDicl.length; i++) { let dataSup = btmDicl[i].getAttribute('data-sup'); btmDiclArr.push(dataSup); } for (let j = 0; j < supTag.length; j++) { let dataSupTag = supTag[j].getAttribute('data-sup-tag'); let supChildCount = supTag[j].parentElement.childElementCount; if (btmDiclArr.indexOf(dataSupTag) > -1) { supTag[j].innerText = btmDiclArr.indexOf(dataSupTag) + 1; } else { if (supChildCount == 1) { supTag[j].parentElement.remove(); } else { let supParent = supTag[j].parentElement.childNodes; let supArr = []; for (let supIndex = 0; supIndex < supParent.length; supIndex++) { supArr.push(supParent[supIndex]); } let index = supArr.indexOf(supTag[j]); if (index != 0 && index % 2 == 0) { supParent[index].remove(); supParent[index - 1].remove(); } else { if (index != supArr.length) supParent[index + 1].remove(); supParent[index].remove(); } } } } }; const setDisclaimer = function () { els.supClicker = document.querySelectorAll('a.click_sup'); for (let i = 0; i < els.supClicker.length; i++) { els.supClicker[i].addEventListener('click', common.onClickSup); } }; const setVideoTheme = function () { for (let i = 0; i < els.videoWrap.length; i++) { let colorType = els.videoWrap[i].getAttribute('data-theme-type'); if (colorType === 'white') { els.videoWrap[i].classList.add('common-video__white'); } else if (colorType === 'black') { els.videoWrap[i].classList.add('common-video__black'); } } }; const setVideoBlind = function () { for (let i = 0; i < els.videoWrap.length; i++) { els.videoWrap[i].control = els.videoWrap[i].querySelector('.common-video__control'); els.videoWrap[i].blind = els.videoWrap[i].querySelector('.blind'); els.videoWrap[i].blind.innerHTML = (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) ? LOCAL_VARI.play : 'play'; } }; const onLoadHandler = function () { common.addLoadStatusClass(); common.setArBanner(); init(); bindEvents(); setResize(); if (!maxOs && !touchDevice) { setScrollControl(); } setImageLoader(); setVideoLoader(); setCenteredfocus(); setDisclaimerNumber(); setDisclaimer(); setVideoTheme(); setVideoBlind(); common.isZoom(); resize.add(common.isZoom); }; onLoadHandler();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.accordion = (function () { const resize = window.flagship.common.resize; let els = {}; let objs = { accordion: [] }; let prevDevice = null; let currDevice = resize.checkResolution(); const init = function () { els.accordionList = document.querySelectorAll('.common-accordion__list'); if (!!els.accordionList && els.accordionList.length > 0) { bindEvents(); } }; const bindEvents = function () { resize.add(onResizeHandler); setAccordion(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveHandler(); prevDevice = currDevice; } }; const onResponsiveHandler = function () { for (let i = 0; i < els.accordionList.length; i++) { let isOpenedItem = els.accordionList[i].querySelector('.is-open'); if (!!isOpenedItem) { let isOpenedItemContent = isOpenedItem.querySelector('.js-accordion-content'); let clientHeight = isOpenedItemContent.children[0].clientHeight; isOpenedItemContent.style.height = `${clientHeight}px`; } } }; const setAccordion = function () { for (let i = 0; i < els.accordionList.length; i++) { objs.accordion[i] = new window.flagship.common.accordion({ wrap: els.accordionList[i], openType: 'single', open: { start: function (target) { handlerList.setImages(target); handlerList.setVideo(target); }, end: function (target) { let targetVideo = target.querySelector('.common-accordion__content video'); if (targetVideo && targetVideo.paused) targetVideo.play(); } }, close: { start: function (target) { let targetVideo = target.querySelector('.common-accordion__content video'); if (targetVideo && !targetVideo.paused) { targetVideo.pause(); targetVideo.currentTime = 0; } }, end: function () {} } }); objs.accordion[i].init(); } }; const handlerList = { setImages: function (target) { let targetImages = target.querySelectorAll('.common-accordion__content img'); if (targetImages && targetImages.length > 0) { for (let i = 0; i < targetImages.length; i++) { if (!targetImages[i].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([targetImages[i]]); } } } }, setVideo: function (target) { let targetVideos = target.querySelectorAll('.common-accordion__content video'); if (targetVideos && targetVideos.length > 0) { for (let i = 0; i < targetVideos.length; i++) { if (!targetVideos[i].classList.contains('is-video-load-complete')) { videoLoader.setResponsiveMedia([targetVideos[i]]); } } } } } return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.clickToVideo = (function () { let els = {}, objs = { clickToVideo: [], }; const init = function () { els.clickToVideosWrap = document.querySelectorAll('.js-scroll-video-disable .common-video'); if (els.clickToVideosWrap.length > 0) { setElements(); setVideo(); } }; const setElements = function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { els.clickToVideosWrap[i].video = els.clickToVideosWrap[i].querySelector('.common-video__figure>video'); els.clickToVideosWrap[i].controller = els.clickToVideosWrap[i].querySelector('.common-video__control'); els.clickToVideosWrap[i].controller.video = els.clickToVideosWrap[i].video; els.clickToVideosWrap[i].controller.addEventListener('click', clickVideoCta); } }; const setVideo = function () { for (let i = 0; i < els.clickToVideosWrap.length; i++) { objs.clickToVideo[i] = ANIUTIL.videoHandler({ wrap: els.clickToVideosWrap[i], video: els.clickToVideosWrap[i].video, controller: els.clickToVideosWrap[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } }, playCallback: function () { setTagging.pause(this.controller); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } } }); } }; const clickVideoCta = function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.scrollVideo = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, objs = { scrollVideo: [], scene: [] }, currDevice = resize.checkResolution(); const init = function () { els.scrollVideoWraps = document.querySelectorAll('.common-video.js-scroll-video'); els.pageScrollVideoWraps = []; if (!!els.scrollVideoWraps) { for (let i = 0; i < els.scrollVideoWraps.length; i++) { if (!els.scrollVideoWraps[i].parentElement.classList.contains('common-popup__video') && !els.scrollVideoWraps[i].parentElement.classList.contains('js-scroll-video-disable')) { els.pageScrollVideoWraps.push(els.scrollVideoWraps[i]); } } } if (els.pageScrollVideoWraps.length > 0) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; const setElements = function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { els.pageScrollVideoWraps[i].video = els.pageScrollVideoWraps[i].querySelector('.common-video__figure>video'); els.pageScrollVideoWraps[i].controller = els.pageScrollVideoWraps[i].querySelector('.common-video__control'); els.pageScrollVideoWraps[i].controller.video = els.pageScrollVideoWraps[i].video; els.pageScrollVideoWraps[i].startPoint = !!els.pageScrollVideoWraps[i].getAttribute('data-start-point') ? parseInt(els.pageScrollVideoWraps[i].getAttribute('data-start-point')) : undefined; els.pageScrollVideoWraps[i].reversePoint = !!els.pageScrollVideoWraps[i].getAttribute('data-reverse-point') ? parseInt(els.pageScrollVideoWraps[i].getAttribute('data-reverse-point')) : undefined; els.pageScrollVideoWraps[i].moStartPoint = !!els.pageScrollVideoWraps[i].getAttribute('data-mo-start-point') ? parseInt(els.pageScrollVideoWraps[i].getAttribute('data-mo-start-point')) : undefined; els.pageScrollVideoWraps[i].moReversePoint = !!els.pageScrollVideoWraps[i].getAttribute('data-mo-reverse-point') ? parseInt(els.pageScrollVideoWraps[i].getAttribute('data-mo-reverse-point')) : undefined; els.pageScrollVideoWraps[i].controller.addEventListener('click', handlerList.videoCta); } }; const bindEvents = function () { window.addEventListener('scroll', handlerList.scroll); handlerList.scroll(); resize.add(onResizeHandler); }; const onResizeHandler = function (currRes) { currDevice = currRes; }; const objList = { setVideo: function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { objs.scrollVideo[i] = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: (currDevice.indexOf('mobile') > -1) ? els.pageScrollVideoWraps[i].moStartPoint : els.pageScrollVideoWraps[i].startPoint, reversePoint: (currDevice.indexOf('mobile') > -1) ? els.pageScrollVideoWraps[i].moReversePoint : els.pageScrollVideoWraps[i].reversePoint, wrap: els.pageScrollVideoWraps[i], video: els.pageScrollVideoWraps[i].video, controller: els.pageScrollVideoWraps[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } }, playCallback: function () { setTagging.pause(this.controller); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } } }); } }, setScene: function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { objs.scene[i] = SCROLLER({ trackElement: els.pageScrollVideoWraps[i].video, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } } }; const handlerList = { scroll: function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { objs.scene[i].trackAnimation(function () { objs.scrollVideo[i].scrollActive(this.progress); }); } }, videoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.tutorialPopup = function (opts) { const utils = window.flagship.common.utils; let els = {}; let status = {}; let show = {}, hide = {}; status.isGlobal = document.documentElement.classList.contains('global'); const init = function () { setElements(); setOpts(); bindEvent(); }; const setElements = function () { els.html = document.documentElement; els.tutorialPopup = opts.tutorialPopup; els.closeCtas = opts.closeCtas; els.dimmed = !!!opts.dimmed ? '' : opts.dimmed; els.tutorialPopupClass = opts.tutorialPopupClass; }; const setOpts = function () { show.start = (!!!opts.show) ? undefined : opts.show.start; show.end = (!!!opts.show) ? undefined : opts.show.end; hide.start = (!!!opts.hide) ? undefined : opts.hide.start; hide.end = (!!!opts.hide) ? undefined : opts.hide.end; } const bindEvent = function () { opts.openerEvent.element.addEventListener('click', showLayer); els.tutorialPopup.show = showLayer; els.tutorialPopup.hide = hideLayer; }; const showLayer = function (e) { if (opts.openerEvent.proxy) { if (opts.openerEvent.parent) { if (e.target.parentElement.classList.contains(opts.openerEvent.class)) { els.openerCta = e.target.parentElement; } } else { if (e.target.classList.contains(opts.openerEvent.class)) { els.openerCta = e.target; } } } else { els.openerCta = this; } els.tutorialPopup.opener = els.openerCta; if (show.start) show.start(els); els.html.classList.add('is-layer-open'); utils.hiddenScroll(els.tutorialPopup); if (utils.detector.isIosDevice) { els.tutorialPopup.opener.blur(); els.openerCta.style.display = 'none'; } els.closeCtas[0].focus(); setTimeout(function () { els.closeCtas[0].focus(); }, 400); for (let i = 0; i < els.closeCtas.length; i++) { els.closeCtas[i].addEventListener('click', hideLayer); } if (els.dimmed) els.dimmed.addEventListener('click', onClickDimmed); if (show.end) show.end(els); }; const hideLayer = function () { if (utils.detector.isIosDevice) els.openerCta.style.display = ''; if (hide.start) hide.start(els); for (let i = 0; i < els.closeCtas.length; i++) { els.closeCtas[i].removeEventListener('click', hideLayer); } if (els.dimmed) els.dimmed.removeEventListener('click', onClickDimmed); els.html.classList.remove('is-layer-open'); utils.visibleScroll(); if (!!!els.openerCta) { els.tutorialPopup.opener.focus(); } else { els.openerCta.focus(); } setTimeout(function () { if (!!!els.openerCta) { els.tutorialPopup.opener.focus(); } else { els.openerCta.focus(); } }, 300); if (hide.end) hide.end(els); }; const onClickDimmed = function (e) { if (e.currentTarget == e.target) { hideLayer(); } }; return init(); };})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.camera = (function () { let els = {}; let objs = {}; const init = function () { els.section = document.querySelector('.highlights-camera'); if (!!els.section) { bindEvents(); } }; const bindEvents = function () { setScene(); window.addEventListener('scroll', scrollHandler); }; const setScene = function(){ TweenMax.set(els.section, {y: 150}); objs.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }; const scrollHandler = function(){ objs.scene.trackAnimation(function(){ let activeValue = ANIUTIL.calRange({ targetValue: 1, progress: this.progress, startPoint: 0, endPoint: 40 }); let moveValue = ANIUTIL.calRange({ targetValue: 150, progress: this.progress, startPoint: 0, endPoint: 40 }); TweenMax.to(els.section, 0, {y: 150 - moveValue}); els.section.style.opacity = activeValue; }); } return { init: init } })();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.cameraAi = (function () { let els = {}; let objs = {}; const init = function () { els.section = document.querySelector('.highlights-ai'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.gradient = els.section.querySelector('.highlights-ai__gradient'); els.text = els.section.querySelector('.common-headline span'); els.intelligence = els.section.querySelector('.highlights-ai__intelligence video'); }; const bindEvents = function () { setScene(); window.addEventListener('scroll', scrollHandler); scrollHandler(); }; const setScene = function () { TweenMax.set(els.section, {y: 100}); objs.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }; const scrollHandler = function () { objs.scene.trackAnimation(function () { let activeValue = ANIUTIL.calRange({ targetValue: 70, progress: this.progress, startPoint: 10, endPoint: 30 }); TweenMax.to(els.section, 0, {y: 100 - activeValue}); let _active = function () { if (els.intelligence.readyState < 4) { els.intelligence.addEventListener('canplay', function () { if (!els.section.classList.contains('is-active') && els.intelligence.paused) { els.intelligence.currentTime = 0; els.intelligence.play(); } }); } else { if (!els.section.classList.contains('is-active') && els.intelligence.paused) { els.intelligence.currentTime = 0; els.intelligence.play(); } } if (!els.section.classList.contains('is-active')) { setTimeout(() => { els.section.classList.add('is-active'); }, 700); } }; if (this.wheelDirection == 'down' && this.progress > 40 && this.progress < 70) { _active(); } else if (this.wheelDirection == 'up' && this.progress > 50 && this.progress < 70) { _active(); } if(this.progress == 0 || this.progress == 100) { els.section.classList.remove('is-active'); els.intelligence.pause(); els.intelligence.currentTime = 0; } }); } return { init: init } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.chatAssistTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-chat-assist-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-video__control');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 200);},click: function(){let self = this;for (let i = 0; i < els.tooltipCta.length; i++) {els.tooltipCta[i].addEventListener('click', function(){self.nextVideoPlay(i);});}},endCallback: function () {if (stepInfo[this.video.playIndex].tooltip == 'true') {this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);let nextPlayindex = this.video.playIndex + 1;if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);}},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.videoController();eventList.click();};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.circleToSearchTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-circle-to-search-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');status.isKeydownTime = null;};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-video__control');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 200);},click: function(){els.tooltipCta[0].addEventListener('mousedown', eventList.pressButton);els.tooltipCta[0].addEventListener('mouseup', function(){clearTimeout(status.mousedown);});els.tooltipCta[0].addEventListener('touchstart', eventList.pressButton);els.tooltipCta[0].addEventListener('touchend', function(){clearTimeout(status.mousedown);});els.tooltipCta[0].addEventListener('keydown', eventList.keydownButton);els.tooltipCta[1].addEventListener('click', function(){eventList.nextVideoPlay(2);});},pressButton: function (e) {e.preventDefault();if (els.videos[2].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[2]]);}clearTimeout(status.mousedown);status.mousedown = setTimeout(()=>{eventList.nextVideoPlay(1);}, 1000);},keydownButton: function (e) {if (e.type == 'keydown' && e.keyCode != 13) return;if (status.isKeydownTime == null) {status.isKeydownTime = Date.now();} else {let keyDownDuration = Date.now() - status.isKeydownTime;if (keyDownDuration >= 1000) {if (els.videos[2].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[2]]);}eventList.nextVideoPlay(1);status.isKeydownTime = null;}}},endCallback: function () {let autoplay = this.video.playIndex == 0 ||this.video.playIndex == 3;if (stepInfo[this.video.playIndex].tooltip == 'true') {this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (autoplay) {eventList.nextVideoPlay(this.video.playIndex);}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);switch (this.video.playIndex) {case 2:videoLoader.setResponsiveMedia([els.videos[3], els.videos[4]]);break;default:break;}},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.videoController();eventList.click();};return {init: init,}})();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.color = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}, status = {}, objs = {}; let activeClass = 'is-active'; let oldIndex = null; let currDevice = resize.checkResolution(); let prevDevice = null; const init = function () { els.section = document.querySelector('.highlights-color'); if (!!els.section) { setElements(); setStatus(); bindEvents(); } }; const setElements = function () { // topSwiper els.topSwiperWrap = els.section.querySelector('.highlights-color__carousel'); if (!!els.topSwiperWrap) { els.topSwiperSlides = els.topSwiperWrap.querySelectorAll('.highlights-color__carousel-slide'); if (els.topSwiperSlides.length > 1) { els.topSwiperContainer = els.section.querySelector('.highlights-color__carousel-container'); els.topSwiperNextArrow = els.topSwiperContainer.querySelector('.highlights-color__arrow--next'); els.topSwiperPrevArrow = els.topSwiperContainer.querySelector('.highlights-color__arrow--prev'); els.topSwiperPagination = els.section.querySelector('.highlights-color__pagination'); } } // colorchipSwiper els.colorchipWrap = els.section.querySelector('.highlights-color__tab-colors'); els.colorchipSwiperContainer = els.colorchipWrap.querySelector('.swiper-container'); els.colorchipSwiperArrowWrap = els.colorchipWrap.querySelector('.highlights-color__tab-navigation'); els.colorchipSwiperNextArrow = els.colorchipWrap.querySelector('.highlights-color__navigation-arrow--next'); els.colorchipSwiperPrevArrow = els.colorchipWrap.querySelector('.highlights-color__navigation-arrow--prev'); // colorchipItem els.colorchipItemWrap = els.section.querySelector('.highlights-color__tab'); els.colorchipItems = els.colorchipItemWrap.querySelectorAll('.highlights-color__tab-item'); els.colorchipBtns = els.colorchipItemWrap.querySelectorAll('.highlights-color__tab-button'); for (let i = 0; i < els.colorchipBtns.length; i++) { els.colorchipBtns[i].setAttribute('data-js-index', i); } // colorName els.colorNameWrap = els.section.querySelector('.highlights-color__tab-names'); els.colorNames = els.colorNameWrap.querySelectorAll('.highlights-color__tab-name'); // colorPanel els.panelWrap = els.section.querySelector('.highlights-color__tab-panel-group'); els.panels = els.panelWrap.querySelectorAll('.highlights-color__tab-panel'); // 360 Popup Btn els.popupBtn = els.section.querySelector('.common-cta-area button'); }; const setStatus = function () { status.isClick = false; // index status.targetIndex = null; status.oldColorIndex = null; }; const bindEvents = function () { resize.add(handlerList.onResize); setColorchipEvent(); if (!els.topSwiperWrap || (!!els.topSwiperWrap && (!!els.topSwiperSlides && els.topSwiperSlides.length < 2))) return; setTimeout(function () { window.addEventListener('scroll', handlerList.scroll); }, 1000); objList.setScene(); setSwiper.top(); els.topSwiperNextArrow.addEventListener('click', handlerList.onClickArrow); els.topSwiperNextArrow.addEventListener('keydown', handlerList.onClickArrow); els.topSwiperPrevArrow.addEventListener('click', handlerList.onClickArrow); els.topSwiperPrevArrow.addEventListener('keydown', handlerList.onClickArrow); }; const setColorchipEvent = function () { let colorchipSwiperLength = currDevice.indexOf('mobile') > -1 ? 5 : 7; if (els.colorchipBtns.length >= colorchipSwiperLength) { status.isLoop = true; oldIndex = els.colorchipBtns.length; if (els.colorchipSwiperArrowWrap.style.display == 'none') { els.colorchipSwiperArrowWrap.style.display = ''; } if (els.colorchipWrap.classList.contains('js-colorchip-static')) { els.colorchipWrap.classList.remove('js-colorchip-static'); } setSwiper.colorchip(); } else { status.isLoop = false; if (els.colorchipSwiperArrowWrap.style.display != 'none') { els.colorchipSwiperArrowWrap.style.display = 'none'; } if (!els.colorchipWrap.classList.contains('js-colorchip-static')) { els.colorchipWrap.classList.add('js-colorchip-static'); } if (objs.colorchipSwiper != null) { let realIndex = objs.colorchipSwiper.realIndex; if (!els.colorchipBtns[realIndex].classList.contains(activeClass)) { els.colorchipBtns[realIndex].classList.add(activeClass); els.colorchipBtns[realIndex].setAttribute('aria-selected', true); } swiperEvents.colorchip.destroy(); } let currentColorchip = els.colorchipItemWrap.querySelector(`.${activeClass}`); status.oldColorIndex = currentColorchip.getAttribute('data-js-index'); for (let i = 0; i < els.colorchipBtns.length; i++) { els.colorchipBtns[i].addEventListener('click', handlerList.onClickColorchip); els.colorchipItems[i].removeAttribute('tabindex'); els.colorchipItems[i].removeAttribute('aria-hidden'); } } }; const objList = { topSwiper: function () { if (objs.topSwiper == null) { objs.topSwiper = new Swiper(els.topSwiperContainer, { init: false, speed: 800, navigation: { nextEl: els.topSwiperNextArrow, prevEl: els.topSwiperPrevArrow, }, pagination: { el: els.topSwiperPagination, type: 'bullets', clickable: true, renderBullet: function () { return '

      • '; } }, slidesPerView: 'auto', centeredSlides: true, }); } }, colorchipSwiper: function () { if (objs.colorchipSwiper == null) { objs.colorchipSwiper = new Swiper(els.colorchipSwiperContainer, { init: false, navigation: { nextEl: els.colorchipSwiperNextArrow, prevEl: els.colorchipSwiperPrevArrow, }, slidesPerView: 'auto', centeredSlides: true, loop: true, speed: 300, touchRatio: 0, }); } }, setScene: function () { objs.topScene = SCROLLER({ trackElement: els.topSwiperContainer, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; const setSwiper = { top: function () { objList.topSwiper(); objs.topSwiper.on('init', swiperEvents.top.init); objs.topSwiper.on('slideChange', swiperEvents.top.slideChange); objs.topSwiper.init(); }, colorchip: function () { objList.colorchipSwiper(); objs.colorchipSwiper.on('init', swiperEvents.colorchip.init); objs.colorchipSwiper.on('slideChange', swiperEvents.colorchip.slideChange); objs.colorchipSwiper.on('transitionEnd', swiperEvents.colorchip.transitionEnd); objs.colorchipSwiper.init(); els.loopColorchipBtns = els.section.querySelectorAll('.highlights-color__tab-button'); for (let i = 0; i < els.loopColorchipBtns.length; i++) { els.loopColorchipBtns[i].index = i; els.loopColorchipBtns[i].addEventListener('click', handlerList.onClickColorchip); } if (status.targetIndex != 0) status.targetIndex = 0; eventList.colorchip(); eventList.colorName(); eventList.panel(); } }; const swiperEvents = { top: { init: function () { let notification = this.el.querySelector('.swiper-notification'); let bullets = this.pagination.bullets; this.slides[this.activeIndex].style.transitionDuration = '0s'; setTimeout(() => { this.slides[this.activeIndex].style.transitionDuration = ''; }, 100); if (!!notification) this.el.removeChild(notification); accessibility.slide.top(objs.topSwiper); accessibility.pagination.tagging(bullets); accessibility.pagination.label(bullets); els.topSwiperPrevArrow.removeAttribute('aria-label'); els.topSwiperNextArrow.removeAttribute('aria-label'); setTimeout(function () { handlerList.scroll(); }, 900); status.isTest = false; for (let i = 0; i < bullets.length; i++) { bullets[i].removeAttribute('role'); bullets[i].addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); objs.topSwiper.slideTo(i); }); } }, slideChange: function () { accessibility.slide.top(objs.topSwiper); accessibility.pagination.label(objs.topSwiper.pagination.bullets); } }, colorchip: { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); accessibility.slide.colorchip(objs.colorchipSwiper); els.colorchipSwiperPrevArrow.removeAttribute('aria-label'); els.colorchipSwiperNextArrow.removeAttribute('aria-label'); let cloneSlide = this.el.querySelectorAll('.swiper-slide-duplicate'); for (let i = 0; i < cloneSlide.length; i++) { let activeClone = cloneSlide[i].querySelector('.highlights-color__tab-button.is-active'); if (!!activeClone) activeClone.classList.remove('is-active'); } }, slideChange: function () { let activeIndex = this.activeIndex; let oldColor = els.loopColorchipBtns[oldIndex]; status.oldColorIndex = oldColor.getAttribute('data-js-index'); status.targetIndex = els.loopColorchipBtns[activeIndex].getAttribute('data-js-index'); eventList.colorchip(); eventList.colorName(); eventList.panel(); accessibility.slide.colorchip(objs.colorchipSwiper); eventList.setPopupBtnColor(els.panels[status.targetIndex]); oldIndex = activeIndex; }, transitionEnd: function () { if (status.isClick) status.isClick = false; }, destroy: function () { objs.colorchipSwiper.destroy(true); objs.colorchipSwiper = null; }, }, }; const handlerList = { scroll: function () { objs.topScene.trackAnimation(function () { if (this.wheelDirection == 'down' && this.progress > 45 && this.progress < 70) { if (objs.topSwiper != null) { objs.topSwiper.slideNext(); objs.topScene.destroy(); window.removeEventListener('scroll', handlerList.scroll); } } else if (this.wheelDirection == 'up' && this.progress < 50) { if (objs.topSwiper != null) { objs.topSwiper.slideNext(); objs.topScene.destroy(); window.removeEventListener('scroll', handlerList.scroll); } } }); }, onResize: function (currRes) { currDevice = currRes; if (currDevice !== prevDevice) { setColorchipEvent(); if (objs.colorchipSwiper != null) { accessibility.slide.colorchip(objs.colorchipSwiper); } prevDevice = currDevice; } }, onClickArrow: function (e) { status.isArrowClick = true; status.arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (objs.topSwiper.isBeginning && !objs.topSwiper.isEnd) { els.topSwiperPrevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.topSwiperNextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.topSwiperPrevArrow.style.display = ''; }, 400); } else if (!objs.topSwiper.isBeginning && objs.topSwiper.isEnd) { els.topSwiperNextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.topSwiperPrevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.topSwiperNextArrow.style.display = ''; }, 400); } } }, onClickColorchip: function () { status.isClick = true; let targetColor = this; if (status.isLoop) { if (targetColor.classList.contains('is-active')) return; eventList.slideTo(targetColor); } else { status.targetIndex = targetColor.getAttribute('data-js-index'); eventList.colorchip(); eventList.colorName(); eventList.panel(); status.oldColorIndex = status.targetIndex; } } }; const eventList = { colorchip: function () { let oldColor = els.colorchipItemWrap.querySelectorAll(`.${activeClass}`); let activeIndex = status.isLoop ? objs.colorchipSwiper.activeIndex : status.targetIndex; let targetColorchipBtns = status.isLoop ? els.loopColorchipBtns[activeIndex] : els.colorchipBtns[activeIndex]; if (!targetColorchipBtns.classList.contains(activeClass)) { for (let i = 0; i < oldColor.length; i++) { oldColor[i].classList.remove(activeClass); oldColor[i].setAttribute('aria-selected', false); } targetColorchipBtns.classList.add(activeClass); targetColorchipBtns.setAttribute('aria-selected', true); } }, colorName: function () { for (let i = 0; i < els.colorNames.length; i++) { if (els.colorNames[i].classList.contains(activeClass)) { els.colorNames[i].classList.remove(activeClass); } } if (!els.colorNames[status.targetIndex].classList.contains(activeClass)) { els.colorNames[status.targetIndex].classList.add(activeClass); } }, panel: function () { for (let i = 0; i < els.panels.length; i++) { if (els.panels[i].classList.contains(activeClass)) { els.panels[i].classList.remove(activeClass); els.panels[i].setAttribute('aria-hidden', true); } } if (!els.panels[status.targetIndex].classList.contains(activeClass)) { els.panels[status.targetIndex].classList.add(activeClass); els.panels[status.targetIndex].setAttribute('aria-hidden', false); els.popupBtn.setAttribute('data-model-color', els.panels[status.targetIndex].getAttribute('id')); } if (status.targetIndex != 0) { let targetPanelImgs = els.panels[status.targetIndex].querySelectorAll('img'); if (!targetPanelImgs[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([targetPanelImgs[0]]); } if (!targetPanelImgs[1].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([targetPanelImgs[1]]); } } }, slideTo: function (targetColor) { let self = objs.colorchipSwiper; let activeIndex = targetColor.index; objs.slideChangeTime = null; if (status.isClick) { let moveSize = oldIndex - activeIndex; if (moveSize > 0) { if (moveSize == 1) { objs.colorchipSwiper.slidePrev(); } else if (moveSize == 3) { objs.colorchipSwiper.slidePrev(0); objs.colorchipSwiper.slidePrev(0); self.slidePrev(); } else { objs.colorchipSwiper.slidePrev(0); self.slidePrev(); } } else { if (moveSize == -1) { objs.colorchipSwiper.slideNext(); } else if (moveSize == -3) { objs.colorchipSwiper.slideNext(0); objs.colorchipSwiper.slideNext(0); self.slideNext(); } else { objs.colorchipSwiper.slideNext(0); self.slideNext(); } } self.slides[self.activeIndex].querySelector('button').focus(); clearTimeout(objs.slideChangeTime); objs.slideChangeTime = setTimeout(function () { self.slides[self.activeIndex].querySelector('button').focus(); }, 200); status.isClick = false; } }, setPopupBtnColor: function (target) { els.popupBtn.setAttribute('data-model-color', target.getAttribute('id')); } }; const accessibility = { slide: { top: function (swiperObjs) { for (let i = 0; i < swiperObjs.slides.length; i++) { if (i != swiperObjs.activeIndex) { utils.onAccessibility(swiperObjs.slides[i]); } else { utils.offAccessibility(swiperObjs.slides[i]); } } }, colorchip: function (swiperObjs) { let isNotActivedColorchips = null; for (let i = 0; i < swiperObjs.slides.length; i++) { if (currDevice.indexOf('mobile') > -1) { isNotActivedColorchips = (i != swiperObjs.activeIndex) && (i > swiperObjs.activeIndex + 2) || (i < swiperObjs.activeIndex - 2) } else { isNotActivedColorchips = (i != swiperObjs.activeIndex) && (i > swiperObjs.activeIndex + 3) || (i < swiperObjs.activeIndex - 3) } if (isNotActivedColorchips) { utils.onAccessibility(swiperObjs.slides[i]); } else { utils.offAccessibility(swiperObjs.slides[i]); } } } }, pagination: { tagging: function (pagination) { const tagging = { 'data-omni-type': 'microsite_gallery', 'data-omni': 'galaxy-s24-ultra:highlights:design^colors:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24-ultra:highlights:design^colors:index:' }; if (!!pagination) { for (let i = 0; i < pagination.length; i++) { Object.keys(tagging).forEach(key => { if (key == 'data-omni' || key == 'ga-la') { pagination[i].setAttribute(key, tagging[key] + (i + 1)); } else { pagination[i].setAttribute(key, tagging[key]); } }); } } }, label: function (bullets) { for (let i = 0; i < bullets.length; i++) { let isExclusive = objs.topSwiper.slides[i].getAttribute('data-colortype') == 'true' ? true : false; let slideName; if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { slideName = !!isExclusive ? LOCAL_VARI.exclusive : LOCAL_VARI.default; if (i === objs.topSwiper.realIndex) { bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName} ${LOCAL_VARI.selected.toLowerCase()}`); } else { bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName}`); } } else { slideName = !!isExclusive ? 'online exclusive color' : 'default color'; if (i === objs.topSwiper.realIndex) { bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName} selected`); } else { bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName}`); } } } }, } }; return { init: init, } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.display = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let status = {}; let currDevice = resize.checkResolution(); let prevDevice = null; const init = function () { els.section = document.querySelector('.highlights-display'); if (!!els.section) { setElements(); setStatus(); bindEvents(); } }; const setElements = function () { els.resizeTimeout = null; els.displayBarWrap = els.section.querySelector('.highlights-display__bar'); els.displayBar = els.displayBarWrap.querySelector('.bar'); els.displayImage = els.section.querySelector('.highlights-display__image'); els.displayCoverImage = els.section.querySelector('.highlights-display__cover'); els.isGrab = false; els.isAction = false; els.displayCoverLeftWrap = els.section.querySelector('.highlights-display__tap-left'); els.displayCoverLeftBtn = els.section.querySelector('.highlights-display__tap-left button'); els.displayCoverRightBtn = els.section.querySelector('.highlights-display__tap-right button'); els.controller = els.section.querySelector('.highlights-display__bar-controller'); els.imgWrap = els.section.querySelector('.highlights-display__image-inner'); els.tabWrap = els.section.querySelector('.highlights-display__tap-wrap'); maxPercent = currDevice.indexOf('mobile') > -1 ? 0.675 : 0.75; minPercent = currDevice.indexOf('mobile') > -1 ? 0.325 : 0.25; }; const setStatus = function () { status.isTabMove = false; }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once: true}); window.addEventListener('scroll', onScrollHandler); els.section.addEventListener('keydown', grabEventHandler.onMoveEvent); els.section.addEventListener('click', grabEventHandler.onMoveEvent); els.section.addEventListener('mousedown', grabEventHandler.onStart); els.section.addEventListener('mousemove', grabEventHandler.onMove); els.section.addEventListener('mouseup', grabEventHandler.onEnd); els.section.addEventListener('mouseleave', grabEventHandler.onEnd); els.section.addEventListener('touchstart', grabEventHandler.onStart); els.section.addEventListener('touchmove', grabEventHandler.onMove); els.section.addEventListener('touchend', grabEventHandler.onEnd); els.section.addEventListener('touchcancel', grabEventHandler.onEnd); resize.add(onResizeHandler); }; const setAnimations = function () { let minValue = currDevice.indexOf('mobile') > -1 ? 32.5 : 25; let maxValue = currDevice.indexOf('mobile') > -1 ? 67.5 : 75; TweenMax.set(els.displayBar, {left: `${minValue}%`, ease: Power2.easeOut}); TweenMax.set(els.displayCoverImage, {width: `${minValue}%`, ease: Power2.easeOut}); objs.barAnim = new TimelineLite(); objs.barAnim .to(els.displayBar, 1, { left: `${maxValue}%`, ease: Power2.easeOut }) .to(els.displayBar, 1, { left: 50 + '%', ease: Power2.easeOut }); objs.imgAnim = new TimelineLite(); objs.imgAnim .to(els.displayCoverImage, 1, { width: `${maxValue}%`, ease: Power2.easeOut }) .to(els.displayCoverImage, 1, { width: 50 + '%', ease: Power2.easeOut }); TweenMax.set(els.displayCoverLeftWrap, {width: `${minValue}%`, ease: Power2.easeOut}); objs.imgAnim = new TimelineLite(); objs.imgAnim .to(els.displayCoverLeftWrap, 1, { width: `${maxValue}%`, ease: Power2.easeOut }) .to(els.displayCoverLeftWrap, 1, { width: 50 + '%', ease: Power2.easeOut }); }; const onLoadHandler = function () { onScrollHandler(); }; const onResizeHandler = function (currRes) { currDevice = currRes; clearTimeout(els.resizeTimeout); els.resizeTimeout = setTimeout(function () { onScrollHandler(); }, 150); if (currDevice != prevDevice) { onResponsiveHandler(); prevDevice = currDevice; } }; const onResponsiveHandler = function () { maxPercent = currDevice.indexOf('mobile') > -1 ? 0.675 : 0.75; minPercent = currDevice.indexOf('mobile') > -1 ? 0.325 : 0.25; TweenMax.set(els.displayBar, {left: 50 + '%'}); TweenMax.set(els.displayCoverImage, {width: 50 + '%'}); TweenMax.set(els.displayCoverLeftWrap, {width: 50 + '%'}); }; const onScrollHandler = function () { let winOffsetTop = window.pageYOffset + utils.getNavHeight(); let winOffsetBottom = window.pageYOffset + window.innerHeight; let targetRect = els.displayImage.getBoundingClientRect(); let targetOffsetTop = window.pageYOffset + targetRect.top; let targetOffsetBottom = window.pageYOffset + targetRect.bottom; if ((winOffsetBottom - (window.innerHeight * 0.25) > targetOffsetTop && winOffsetTop + (window.innerHeight * 0.25) < targetOffsetBottom) && !els.isAction) { setAnimations(); els.isAction = true; } }; const grabEventHandler = { onStart: function (e) { e.target.matches('.highlights-display__bar-controller') && (els.isGrab = true); }, onEnd: function () { els.isGrab = false; }, onMove: function (e) { if (els.isGrab) { e && e.preventDefault(); let wrapRect = els.displayBarWrap.getBoundingClientRect(); let wrapMaxWidth = wrapRect.width * maxPercent; let wrapMinWidth = wrapRect.width * minPercent; let xPosition = !e.touches ? e.pageX : e.touches[0].pageX; let barPosition = xPosition - wrapRect.left; if (barPosition > wrapMaxWidth) barPosition = wrapMaxWidth; else if (barPosition < wrapMinWidth) barPosition = wrapMinWidth; let barPercent = ((barPosition / wrapRect.width) * 100); els.displayBar.style.left = barPercent + '%'; els.displayCoverImage.style.width = barPercent + '%'; grabEventHandler.setArrowSize(barPercent); } }, onMoveEvent: function (e) { let wrapRect = els.displayBarWrap.getBoundingClientRect(); let wrapMaxWidth = wrapRect.width * maxPercent; let wrapMinWidth = wrapRect.width * minPercent; let barRect = els.displayBar.getBoundingClientRect(); let barPosition = barRect.left - wrapRect.left; let moveValue = Math.ceil(wrapMaxWidth / ((currDevice.indexOf('desktop') > -1) ? 8 : 5.5)); let isMove = e.target.classList.contains('highlights-display__tap-button') || e.target.classList.contains('highlights-display__bar-controller'); if (isMove) { status.isTabMove = true; if (e.type == 'click' && e.target.classList.contains('highlights-display__tap-button')) { let leftBtn = 'highlights-display__tap-left'; let rightBtn = 'highlights-display__tap-right'; if (e.target.parentElement.classList.contains(leftBtn)) { barPosition -= moveValue; } else if (e.target.parentElement.classList.contains(rightBtn)) { barPosition += moveValue; } } if (e.target.classList.contains('highlights-display__bar-controller') && (e.keyCode == 39 || e.keyCode == 37)) { e && e.preventDefault(); if (e.keyCode == 39) barPosition += moveValue; else if (e.keyCode == 37) barPosition -= moveValue; } if (barPosition < wrapMinWidth) barPosition = wrapMinWidth; else if (barPosition > wrapMaxWidth) barPosition = wrapMaxWidth; let barPercent = ((barPosition / wrapRect.width) * 100); TweenMax.to(els.displayBar, 0.3, { left: barPercent + '%', ease: Power2.easeOut }); TweenMax.to(els.displayCoverImage, 0.3, { width: barPercent + '%', ease: Power2.easeOut }); grabEventHandler.setArrowSize(barPercent); } }, setArrowSize: function (barPercent) { let imgWidth = els.imgWrap.getBoundingClientRect().width; let tabWidth = els.tabWrap.getBoundingClientRect().width; let imgValue = imgWidth * (barPercent * (1 / 100)); let tabValue = (imgWidth - tabWidth) / 2; let moveTabBtnValue = Math.floor(imgValue - tabValue); if (status.isTabMove) { TweenMax.to(els.displayCoverLeftWrap, 0.3, { width: moveTabBtnValue + 'px', ease: Power2.easeOut }); status.isTabMove = false; } else { els.displayCoverLeftWrap.style.width = moveTabBtnValue + 'px'; } } }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.experiences = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}, objs = {}, status = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.highlights-galaxy-offers'); if(!!els.section) { els.offersItems = els.section.querySelectorAll('.highlights-galaxy-offers__card-item'); if(!!els.offersItems && (els.offersItems.length > 1)) { setElements(); bindEvents(); } } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.highlights-galaxy-offers__card-container'); els.nextArrow = els.section.querySelector('.highlights-galaxy-offers__arrow--next'); els.prevArrow = els.section.querySelector('.highlights-galaxy-offers__arrow--prev'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', handlerList.onLoad, {once:true}); resize.add(handlerList.onResize); els.nextArrow.addEventListener('click', swiperEvents.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvents.onClickArrow); els.prevArrow.addEventListener('click', swiperEvents.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvents.onClickArrow); }; const objList = { swiper: function () { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, loop: false, slidesPerView: 'auto', centeredSlides: false, }); } } }; const handlerList = { onLoad: function () { if (currDevice.indexOf('mobile') > -1) { setSwiper(); } }, onResize: function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { handlerList.onResponsive(); prevDevice = currDevice; } }, onResponsive: function () { if (currDevice.indexOf('mobile') > -1) { setSwiper(); } else { swiperEvents.destroy(); } } }; const setSwiper = function () { objList.swiper(); objs.swiper.on('init', swiperEvents.init); objs.swiper.on('slideChange', swiperEvents.slideChange); objs.swiper.init(); }; const swiperEvents = { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); accessibility.slide(); }, slideChange: function () { accessibility.slide(); }, destroy: function () { if (objs.swiper != null) { objs.swiper.navigation.destroy(true); objs.swiper.destroy(true); objs.swiper = null; } }, onClickArrow: function (e) { status.arrowTimeout = null; status.arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.nextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.prevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.nextArrow.style.display = ''; }, 400); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.prevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.nextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.prevArrow.style.display = ''; }, 400); } } } }; const accessibility = { slide: function () { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } } }; return { init: init, } })();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.faq = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let prevDevice = null; let currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.highlights-faq'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.faqList = els.section.querySelector('.highlights-faq__list'); }; const bindEvents = function () { resize.add(onResizeHandler); setAccordion(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveHandler(); prevDevice = currDevice; } }; const onResponsiveHandler = function () { let isOpenedItems = els.faqList.querySelectorAll('.highlights-faq__item.is-open'); if (isOpenedItems.length > 0) { for (let i = 0; i < isOpenedItems.length; i++) { let isOpenedItemContent = isOpenedItems[i].querySelector('.highlights-faq__answer'); let clientHeight = isOpenedItemContent.children[0].clientHeight; isOpenedItemContent.style.height = `${clientHeight}px`; } } }; const setAccordion = function () { objs.accordion = new window.flagship.common.accordion({ wrap: els.faqList, classList: { item: 'highlights-faq__item', button: 'highlights-faq__question-arrow', contents: 'highlights-faq__answer', activeClass: 'is-open' }, open: { start: function (target) { let targetInnerCta = target.querySelector('.highlights-faq__cta'); if (targetInnerCta) targetInnerCta.addEventListener('click', onClickFaqCta); } } }); objs.accordion.init(); }; const onClickFaqCta = function (e) { if (this.getAttribute('href').indexOf('#') == 0) { e.preventDefault(); let sectionId = this.getAttribute('href'); let section = document.querySelector(sectionId); let sectionTop = section.getBoundingClientRect().top; let movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(); let clickable = section.querySelectorAll('a, button'); let title = (sectionId == '#galaxy-ai') ? section.querySelector('.common-headline') : section.querySelector('h2'); if(title.classList.contains('common-display-mo')) { if(resize.checkResolution().indexOf('mobile') > -1) { title = section.querySelector('h2.common-display-mo'); } else { title = section.querySelector('h2.common-display-pc'); } } if (!!title) { let _focusOut = function () { title.removeAttribute('tabindex'); title.removeEventListener('focusout', _focusOut); }; title.addEventListener('focusout', _focusOut); title.setAttribute('tabindex', 0); title.focus(); } else { clickable[0].focus(); } window.scrollTo(0, movePosition); } }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.gaming = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let currDevice = resize.checkResolution(); let prevDevice = null; let maxPercent = 0.975; let minPercent = 0.018; const init = function () { els.section = document.querySelector('.highlights-gaming'); isRemaster = els.section.querySelector('.js-remaster'); if (!!els.section && !!isRemaster) { setElements(); bindEvents(); } }; const setElements = function () { els.resizeTimeout = null; els.gamingBarWrap = els.section.querySelector('.highlights-gaming__bar'); els.gamingBar = els.gamingBarWrap.querySelector('.bar'); els.gamingImage = els.section.querySelector('.highlights-gaming__image'); els.gamingCoverImage = els.section.querySelector('.highlights-gaming__cover'); els.isGrab = false; els.isAction = false; els.gamingCoverLeftWrap = els.section.querySelector('.highlights-gaming__tap-left'); els.gamingCoverLeftBtn = els.section.querySelector('.highlights-gaming__tap-left button'); els.gamingCoverRightBtn = els.section.querySelector('.highlights-gaming__tap-right button'); els.controller = els.section.querySelector('button.highlights-gaming__bar-controller'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once:true}); window.addEventListener('scroll', onScrollHandler); els.section.addEventListener('keydown', grabEventHandler.onMoveEvent); els.section.addEventListener('click', grabEventHandler.onMoveEvent); els.section.addEventListener('mousedown', grabEventHandler.onStart); els.section.addEventListener('mousemove', grabEventHandler.onMove); els.section.addEventListener('mouseup', grabEventHandler.onEnd); els.section.addEventListener('mouseleave', grabEventHandler.onEnd); els.section.addEventListener('touchstart', grabEventHandler.onStart); els.section.addEventListener('touchmove', grabEventHandler.onMove); els.section.addEventListener('touchend', grabEventHandler.onEnd); els.section.addEventListener('touchcancel', grabEventHandler.onEnd); resize.add(onResizeHandler); }; const setAnimations = function () { let minValue = 1.8; let maxValue = 97.5; TweenMax.set(els.gamingBar, {left: `${minValue}%`, ease: Power2.easeOut}); TweenMax.set(els.gamingCoverImage, {width: `${minValue}%`, ease: Power2.easeOut}); objs.barAnim = new TimelineLite(); objs.barAnim .to(els.gamingBar, 1, { left: `${maxValue}%`, ease: Power2.easeOut }) .to(els.gamingBar, 1, { left: 50 + '%', ease: Power2.easeOut }); objs.imgAnim = new TimelineLite(); objs.imgAnim .to(els.gamingCoverImage, 1, { width: `${maxValue}%`, ease: Power2.easeOut }) .to(els.gamingCoverImage, 1, { width: 50 + '%', ease: Power2.easeOut }); TweenMax.set(els.gamingCoverLeftWrap, {width: `${minValue}%`, ease: Power2.easeOut}); objs.imgAnim = new TimelineLite(); objs.imgAnim .to(els.gamingCoverLeftWrap, 1, { width: `${maxValue}%`, ease: Power2.easeOut }) .to(els.gamingCoverLeftWrap, 1, { width: 50 + '%', ease: Power2.easeOut }); }; const onLoadHandler = function () { onScrollHandler(); }; const onResizeHandler = function (currRes) { currDevice = currRes; clearTimeout(els.resizeTimeout); els.resizeTimeout = setTimeout(function () { onScrollHandler(); }, 150); if (currDevice != prevDevice) { prevDevice = currDevice; } }; const onScrollHandler = function () { let winOffsetTop = window.pageYOffset + utils.getNavHeight(); let winOffsetBottom = window.pageYOffset + window.innerHeight; let targetRect = els.gamingImage.getBoundingClientRect(); let targetOffsetTop = window.pageYOffset + targetRect.top; let targetOffsetBottom = window.pageYOffset + targetRect.bottom; if ((winOffsetBottom - (window.innerHeight * 0.25) > targetOffsetTop && winOffsetTop + (window.innerHeight * 0.25) < targetOffsetBottom) && !els.isAction) { setAnimations(); els.isAction = true; } }; const grabEventHandler = { onStart: function (e) { e.target.matches('.highlights-gaming__bar-controller') && (els.isGrab = true); }, onEnd: function () { els.isGrab = false; }, onMove: function (e) { if (els.isGrab) { e && e.preventDefault(); let wrapRect = els.gamingBarWrap.getBoundingClientRect(); let wrapMaxWidth = wrapRect.width * maxPercent; let wrapMinWidth = wrapRect.width * minPercent; let xPosition = !e.touches ? e.pageX : e.touches[0].pageX; let barPosition = xPosition - wrapRect.left; if (barPosition > wrapMaxWidth) barPosition = wrapMaxWidth; else if (barPosition < wrapMinWidth) barPosition = wrapMinWidth; let barPercent = ((barPosition / wrapRect.width) * 100); els.gamingBar.style.left = barPercent + '%'; els.gamingCoverImage.style.width = barPercent + '%'; els.gamingCoverLeftWrap.style.width = barPercent + '%'; } }, onMoveEvent: function (e) { let wrapRect = els.gamingBarWrap.getBoundingClientRect(); let wrapMaxWidth = wrapRect.width * maxPercent; let wrapMinWidth = wrapRect.width * minPercent; let barRect = els.gamingBar.getBoundingClientRect(); let barPosition = barRect.left - wrapRect.left; let moveValue = Math.ceil(wrapMaxWidth / ((currDevice.indexOf('desktop') > -1) ? 8 : 4)); let isMove = e.target.classList.contains('highlights-gaming__tap-button') || e.target.classList.contains('highlights-gaming__bar-controller'); if (isMove) { if (e.type == 'click' && e.target.classList.contains('highlights-gaming__tap-button')) { let leftBtn = 'highlights-gaming__tap-left'; let rightBtn = 'highlights-gaming__tap-right'; if (e.target.parentElement.classList.contains(leftBtn)) { barPosition -= moveValue; } else if (e.target.parentElement.classList.contains(rightBtn)) { barPosition += moveValue; } } if (e.target.classList.contains('highlights-gaming__bar-controller') && (e.keyCode == 39 || e.keyCode == 37)) { e && e.preventDefault(); if (e.keyCode == 39) barPosition += moveValue; else if (e.keyCode == 37) barPosition -= moveValue; } if (barPosition < wrapMinWidth) barPosition = wrapMinWidth; else if (barPosition > wrapMaxWidth) barPosition = wrapMaxWidth; let barPercent = ((barPosition / wrapRect.width) * 100); TweenMax.to(els.gamingBar, 0.3, { left: barPercent + '%', ease: Power2.easeOut }); TweenMax.to(els.gamingCoverImage, 0.3, { width: barPercent + '%', ease: Power2.easeOut }); TweenMax.to(els.gamingCoverLeftWrap, 0.3, { width: barPercent + '%', ease: Power2.easeOut }); } } }; return { init: init } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.liveTranslateTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-live-translate-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');els.muteCtas = els.section.querySelectorAll('.common-mute-button');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-play-button');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.videoMuteCta = el.querySelector('.common-mute-button');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.videoMuteCta.focus();}, 200);},click: function(){let self = this;els.tooltipCta[0].addEventListener('click', function(){self.nextVideoPlay(0);});},endCallback: function () {if (stepInfo[this.video.playIndex].tooltip == 'true') {if (!this.wrap.tooltipCta.classList.contains('is-bg-load-complete')) {this.wrap.tooltipCta.classList.add('is-bg-load-complete');}this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}},onClickMute: function () {for (let i = 0; i < els.muteCtas.length; i++) {els.muteCtas[i].video = els.muteCtas[i].parentElement.parentElement.video;els.muteCtas[i].addEventListener('click', function () {let isMute = this.video.muted;if (!!isMute) {this.classList.add('is-unmuted');this.video.muted = false;this.blind.innerText = this.getAttribute('data-mute');setTagging.mute(this);} else {this.classList.remove('is-unmuted');this.video.muted = true;this.blind.innerText = this.getAttribute('data-unmute');setTagging.unmute(this);}});}},setMuteBlindText: function () {for (let i = 0; i < els.muteCtas.length; i++) {els.muteCtas[i].blind = els.muteCtas[i].querySelector('.blind');els.muteCtas[i].blind.innerText = els.muteCtas[i].getAttribute('data-unmute');}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');utils.offAccessibility(this.wrap.videoMuteCta);if (this.video.playIndex == 0) {let self = this;clearTimeout(status.videoFocusTimeout);status.videoFocusTimeout = setTimeout(function () {self.wrap.videoMuteCta.focus();status.videoFocusTimeout = null;}, 400);}if (!this.video.muted) {this.wrap.videoMuteCta.classList.remove('is-unmuted');this.wrap.videoMuteCta.video.muted = true;this.wrap.videoMuteCta.blind.innerText = this.wrap.videoMuteCta.getAttribute('data-unmute');setTagging.unmute(this.wrap.videoMuteCta);}this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } },mute: function (targetCta) { if (targetCta.hasAttribute('data-omni')) { let dataOmni = targetCta.getAttribute('data-omni').toLowerCase(); targetCta.setAttribute('data-omni', dataOmni.replace('unmute', 'mute')); } if (targetCta.hasAttribute('ga-la')) { let gaLa = targetCta.getAttribute('ga-la').toLowerCase(); targetCta.setAttribute('ga-la', gaLa.replace('unmute', 'mute')); } },unmute: function (targetCta) { if (targetCta.hasAttribute('data-omni')) { let dataOmni = targetCta.getAttribute('data-omni').toLowerCase(); targetCta.setAttribute('data-omni', dataOmni.replace('mute', 'unmute')); } if (targetCta.hasAttribute('ga-la')) { let gaLa = targetCta.getAttribute('ga-la').toLowerCase(); targetCta.setAttribute('ga-la', gaLa.replace('mute', 'unmute')); } }, };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.setMuteBlindText();eventList.videoController();eventList.click();eventList.onClickMute();};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.lowLightPopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-low-light-popup-img-src',responsiveClass: '.js-low-light-popup-res-img',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: 'data-src-pc'}, {resolution: 1023,attribute: 'data-src-tb'}, {resolution: 767,attribute: 'data-src-mo'}, {resolution: 360,attribute: 'data-src-mo-s'}],visiblePoint: 2});window.popupBgLoader = ANIUTIL.mediaLoader({type: 'bgImage',lazyClass: '.js-low-light-popup-bg-img',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: '',bgOpts: ''}],visiblePoint: 1});},video: function () {objs.videoLoader = ANIUTIL.mediaLoader({type: 'video',lazyClass: '.js-low-light-popup-video-src',responsiveClass: '.js-low-light-popup-res-video',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: 'data-video-src-pc'}, {resolution: 1023,attribute: 'data-video-src-tb'}, {resolution: 767,attribute: 'data-video-src-mo'}, {resolution: 360,attribute: 'data-video-src-mo-s'}],visiblePoint: 1,endCallback: function (video) {if (video.videoWrap && !video.videoWrap.classList.contains('is-loaded')) {video.videoWrap.classList.add('is-loaded');}}});}};const init = function () {els.section = document.querySelector('.highlights-low-light');els.layerPopup = document.querySelector('.highlights-low-light-popup');if (!!els.layerPopup) {setElements();setStatus();objList.setPopup();bindEvents();}};const setElements = function () {status.isGlobal = document.documentElement.classList.contains('global');els.contents = document.querySelector('#contents');els.openCta = els.section.querySelector('.js-layer-popup');els.innerWrap = els.layerPopup.querySelector('.common-popup__inner-wrapper');els.closeCtas = els.layerPopup.querySelectorAll('.common-popup__close-cta');els.dimmed = els.layerPopup.querySelector('.common-popup__dimmed');els.supClicker = els.layerPopup.querySelectorAll('a.click_sup');els.videoWrap = els.layerPopup.querySelector('.common-video');els.videoWrap.video = els.videoWrap.querySelector('.common-video__video');els.videoWrap.controller = els.videoWrap.querySelector('.common-video__control');els.videoWrap.controller.video = els.videoWrap.video;els.hashPopupOpener = null;};const setStatus = function () {status.isHash = false;};const bindEvents = function () {els.videoWrap.controller.addEventListener('click', handlerList.videoCta);for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', handlerList.onClickSup);}};const objList = {setPopup: function () {utils.layerPopup({layerPopup: els.layerPopup,layerPopupClass: '.highlights-low-light-popup',openerEvent: {element: els.openCta,},closeCtas: [els.closeCtas[0], els.closeCtas[1]],dimmed: els.dimmed,moveTarget: document.documentElement,contents: els.contents,show: {start: function (target) {els.innerWrap.scrollTop = 0;els.layerPopup.classList.add('is-init');target.openerCta.blur();setPopupLazyLoader.image();setPopupLazyLoader.video();objList.setVideo();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {status.isHash = true;els.hashPopupOpener = els.openCta;}},end: function () {if (utils.detector.isIosDevice) els.layerPopup.style.display = 'block';els.layerPopup.classList.add('is-open');}},hide: {start: function (target) {target.openerCta.focus();els.layerPopup.classList.remove('is-open');},end: function () {setTimeout(function () {els.layerPopup.classList.remove('is-init');}, 300);els.videoWrap.video.pause();els.videoWrap.video.currentTime = 0;if (status.isHash && els.hashPopupOpener) {els.hashPopupOpener.focus();setTimeout(function () {els.hashPopupOpener.focus();status.isHash = false;els.hashPopupOpener = null;}, 300);}}}});},setVideo: function () {objs.video = ANIUTIL.videoHandler({wrap: els.videoWrap,video: els.videoWrap.video,controller: els.videoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');}},playCallback: function () {setTagging.pause(this.controller);},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');}}});}};const handlerList = {videoCta: function (e) {if (e.target == e.currentTarget) {if (e.currentTarget.video.paused) {e.currentTarget.video.play();} else {e.currentTarget.video.pause();}}},onClickSup: function (e) {e.preventDefault();e.stopPropagation();els.layerPopup.hide();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);}};const setTagging = {play: function (targetController) {if (targetController.hasAttribute('data-omni')) {let dataOmni = targetController.getAttribute('data-omni').toLowerCase();targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));}if (targetController.hasAttribute('ga-la')) {let gaLa = targetController.getAttribute('ga-la').toLowerCase();targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));}},pause: function (targetController) {if (targetController.hasAttribute('data-omni')) {let dataOmni = targetController.getAttribute('data-omni').toLowerCase();targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));}if (targetController.hasAttribute('ga-la')) {let gaLa = targetController.getAttribute('ga-la').toLowerCase();targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));}}};return {init: init,}})();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.lowLight = (function () { let els = {}; let objs = {}; let status = {}; const utils = window.flagship.common.utils; const init = function () { els.section = document.querySelector('.highlights-low-light'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.highlights-low-light__carousel'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.pagination = els.section.querySelector('.highlights-low-light__carousel-pagination'); }; const bindEvents = function () { setSwiper(); els.nextArrow.addEventListener('click', swiperEvents.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvents.onClickArrow); els.prevArrow.addEventListener('click', swiperEvents.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvents.onClickArrow); }; const setSwiper = function () { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, slidesPerView: 'auto', speed: 800, navigation: { prevEl: els.prevArrow, nextEl: els.nextArrow, }, pagination: { el: els.pagination, type: 'bullets', clickable: true, renderBullet: function () { return '

      • '; } } }); }; objs.swiper.on('init', swiperEvents.init); objs.swiper.on('slideChange', swiperEvents.slideChange); objs.swiper.init(); }; const swiperEvents = { init: function () { let notification = this.el.querySelector('.swiper-notification'); els.bullets = this.pagination.bullets; if (!!notification) this.el.removeChild(notification); accessibility.slide(); accessibility.pagination.tagging(); accessibility.pagination.label(); els.nextArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('aria-label'); for (let i = 0; i < els.bullets.length; i++) { els.bullets[i].removeAttribute('role'); els.bullets[i].addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); objs.swiper.slideTo(i); }); } }, slideChange: function () { accessibility.slide(); accessibility.pagination.label(); }, onClickArrow: function (e) { status.arrowTimeout = null; status.arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.prevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.nextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.prevArrow.style.display = ''; }, 400); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.nextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.prevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.nextArrow.style.display = ''; }, 400); } } } }; const accessibility = { slide: function () { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } }, pagination: { tagging: function () { const tagging = { 'data-omni-type': 'microsite_gallery', 'data-omni': 'galaxy-s24-ultra:highlights:camera^zoom:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24-ultra:highlights:camera^zoom:index:', }; for (let i = 0; i < els.bullets.length; i++) { Object.keys(tagging).forEach(key => { if (key == 'data-omni' || key == 'ga-la') { els.bullets[i].setAttribute(key, tagging[key] + (i + 1)); } else { els.bullets[i].setAttribute(key, tagging[key]); } }); } }, label: function () { for (let i = 0; i < els.bullets.length; i++) { let slideName = objs.swiper.slides[i].getAttribute('data-slide-name'); if (i === objs.swiper.realIndex) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { els.bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName} ${LOCAL_VARI.selected.toLowerCase()}`); } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName} selected`); } } else { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { els.bullets[i].setAttribute('aria-label', `${LOCAL_VARI.slide}${i+1}: ${slideName}`); } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideName}`); } } } }, } }; return { init: init, } })();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.overview = (() => { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let eventFnc = {}; let statusClass = { progress: { active: 'js-progress-active', pause: 'js-progress-pause' }, video: { load: 'is-loaded', complete: 'is-video-load-complete' }, navigation: 'is-active', info: { visible: 'is-visible', active: 'is-active' }, }; let status = { currentDevice: resize.checkResolution(), isAuto: true, isClickControl: false, }; const init = () => { els.section = document.querySelector('.highlights-overview'); if (!!els.section) { setElements(); setProperty(); objList.setScene(); bindEvents(); } }; const setElements = () => { els.sectionInner = els.section.querySelector('.common-inner'); els.overviewContents = els.section.querySelector('.highlights-overview__contents') els.swiperContainer = els.section.querySelector('.js-overview-carousel'); els.slides = els.section.querySelectorAll('.highlights-overview__carousel-slide'); els.videoWrap = els.section.querySelectorAll('.common-video'); els.videos = els.section.querySelectorAll('.common-video__video'); els.videoControlCta = els.section.querySelectorAll('.common-video__control'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.progressWrap = els.section.querySelectorAll('.js-progress-wrap'); els.progressBar = els.section.querySelectorAll('.js-progress-bar'); els.navigationWrap = els.section.querySelector('.highlights-overview__navigation'); els.navigationInner = els.navigationWrap.querySelector('.highlights-overview__navigation-inner'); els.navigationList = els.navigationWrap.querySelectorAll('.highlights-overview__navigation-listitem'); els.navigationBtn = els.navigationWrap.querySelectorAll('.highlights-overview__navigation-button-wrap'); els.infoItem = els.section.querySelectorAll('.highlights-overview__info-item'); els.featureCtas = els.section.querySelectorAll('a.common-cta-encased'); els.sup = els.section.querySelectorAll('a.click_sup'); // tutorial els.tutorialOpenCtas = els.section.querySelectorAll('.js-tutorial-popup'); els.tutorialCloseCtas = document.querySelectorAll('.common-tutorial__close-cta'); }; const setProperty = () => { status.navSlideWrapWidth = els.navigationWrap.clientWidth; status.isRtl = document.documentElement.classList.contains('rtl'); for (let i = 0; i < els.videos.length; i++) { els.videos[i].controlCta = els.videoControlCta[i]; els.videos[i].wrap = els.videoWrap[i]; els.videoControlCta[i].video = els.videos[i]; } for (let j = 0; j < els.navigationBtn.length; j++) { els.navigationBtn[j].index = j; els.navigationBtn[j].img = els.navigationBtn[j].querySelectorAll('.highlights-overview__navigation-button-image img'); els.navigationBtn[j].img[0].parentWrap = els.navigationBtn[j]; els.navigationBtn[j].img[1].parentWrap = els.navigationBtn[j]; els.navigationBtn[j].text = els.navigationBtn[j].querySelector('.highlights-overview__navigation-button-text'); els.navigationBtn[j].text.parentWrap = els.navigationBtn[j]; els.navigationBtn[j].addEventListener('keydown', eventList.onClickNavigation); } }; const objList = { setSwiper: () => { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, init: false, speed: 500, }); objs.swiper.currentIndex = 0; objs.swiper.on('init', function () { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); els.nextArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('aria-label'); objList.setVideo(); eventList.setVideoController(); eventList.scroll(); eventList.animationEnd(); accessibility.slide(); accessibility.setTitle(); }); objs.swiper.on('slideChange', swiperEvent.slideChange); objs.swiper.on('transitionEnd', swiperEvent.transitionEnd); objs.swiper.on('touchMove', swiperEvent.touchMove); objs.swiper.on('touchEnd', swiperEvent.touchEnd); objs.swiper.init(); } }, setVideo: () => { for (let i = 0; i < els.slides.length; i++) { let isSlide = els.slides[i]; let isVideoWrap = isSlide.querySelector('.common-video'); let isVideo = isSlide.querySelector('.common-video__video'); objs[`video_${i}`] = ANIUTIL.videoHandler({ playType: 'scrollPlay', wrap: isVideoWrap, video: isVideo, controller: isVideo.controlCta, startPoint: resize.checkResolution().indexOf('mobile') > -1 ? 25 : 35, reversePoint: resize.checkResolution().indexOf('mobile') > -1 ? 75 : 80, playCallback: function () { status.isAuto = true; if (!!!els.progressBar[i].style['animation-duration']) els.progressBar[i].style['animation-duration'] = `${isVideo.duration}s`; els.progressWrap[i].classList.remove(statusClass.progress.pause); if (isVideo.currentTime == 0) els.progressWrap[i].classList.remove(statusClass.progress.active); setTimeout(() => { els.progressWrap[i].classList.add(statusClass.progress.active); }, 20); accessibility.setTagging.pause(isVideo.controlCta); }, pauseCallback: function () { status.isAuto = false; setTimeout(() => { els.progressWrap[i].classList.add(statusClass.progress.pause); }, 100); accessibility.setTagging.play(isVideo.controlCta); }, endCallback: function () { if (!isVideoWrap.classList.contains('is-completed')) isVideoWrap.classList.add('is-completed'); status.isAuto = true; }, resetCallback: function () { setTimeout(() => { els.progressWrap[i].classList.remove(statusClass.progress.pause); els.progressWrap[i].classList.remove(statusClass.progress.active); }, 100); } }); } }, setScene: () => { objs.scene = SCROLLER({ trackElement: els.overviewContents, useFixed: false }); }, setNavSwiper: () => { if (objs.navSwiper == null) { objs.navSwiper = new Swiper(els.navigationWrap, { init: false, slidesPerView: 'auto', }); objs.navSwiper.on('init', function () { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); }); objs.navSwiper.on('touchMove', swiperEvent.checkScrollEnd); objs.navSwiper.init(); } } }; const bindEvents = () => { objList.setSwiper(); window.addEventListener('scroll', eventList.scroll); els.navigationWrap.addEventListener('click', eventList.onClickNavigation); els.nextArrow.addEventListener('click', swiperEvent.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvent.onClickArrow); els.prevArrow.addEventListener('click', swiperEvent.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvent.onClickArrow); swiperEvent.navInitCheck(); for (let i = 0; i < els.featureCtas.length; i++) { els.featureCtas[i].addEventListener('click', eventList.clickFeatureCta); } // tutorial for (let j = 0; j < els.tutorialOpenCtas.length; j++) { els.tutorialOpenCtas[j].addEventListener('click', eventList.clickTutorialOpenCta); } // tutorial close for (let i=0; i < els.tutorialCloseCtas.length; i++) { els.tutorialCloseCtas[i].addEventListener('click', function () { if(!status.activeVideoPaused) status.activeVideo.play(); }) } for(let i=0; i

        { let activeIndex = objs.swiper.activeIndex; let currentIndex = objs.swiper.currentIndex; let slideLength = objs.swiper.slides.length; let loadIndex = activeIndex == slideLength - 1 ? 0 : activeIndex; let loadVideoLength = els.section.querySelectorAll(`.${statusClass.video.load}`).length; let allSlideloadComplete = els.videos.length == loadVideoLength; let nextIndex = (objs.swiper.activeIndex < objs.swiper.slides.length - 1) ? (objs.swiper.activeIndex + 1) : 0; if (!allSlideloadComplete && els.videos.length > loadIndex) { if (!els.videos[activeIndex].classList.contains(statusClass.video.complete)) { videoLoader.setResponsiveMedia([els.videos[activeIndex]]); els.videoWrap[activeIndex].classList.add(statusClass.video.load); } if (!els.videos[nextIndex].classList.contains(statusClass.video.complete)) { videoLoader.setResponsiveMedia([els.videos[nextIndex]]); els.videoWrap[nextIndex].classList.add(statusClass.video.load); } } if (currentIndex != activeIndex) { objs[`video_${currentIndex}`].eventList.reset.call(objs[`video_${currentIndex}`]); objs[`video_${currentIndex}`].video.removeEventListener('canplay', objs[`video_${currentIndex}`].video.play); if(!!utils.isLowNetwork() || !status.isAuto) { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); els.progressWrap[activeIndex].classList.remove(statusClass.progress.pause); } else { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); if (objs[`video_${activeIndex}`] != undefined && objs[`video_${activeIndex}`].video.readyState >= 4) { objs[`video_${activeIndex}`].video.play(); } else { objs[`video_${activeIndex}`].video.addEventListener('canplay', function () { this.play(); }); } } if (!els.navigationBtn[activeIndex].classList.contains(statusClass.navigation)) { els.navigationBtn[currentIndex].classList.remove(statusClass.navigation); els.navigationBtn[activeIndex].classList.add(statusClass.navigation); accessibility.setTitle(); } if (!els.infoItem[activeIndex].classList.contains(statusClass.info.visible)) { els.infoItem[currentIndex].classList.remove(statusClass.info.visible); els.infoItem[activeIndex].classList.add(statusClass.info.visible); } if (!els.infoItem[activeIndex].classList.contains(statusClass.info.active)) { els.infoItem[currentIndex].classList.remove(statusClass.info.active); els.infoItem[activeIndex].classList.add(statusClass.info.active); } } if (objs.navSwiper != null) swiperEvent.setNavSwiperXvalue(activeIndex); accessibility.slide(); objs.swiper.currentIndex = activeIndex; }, transitionEnd: function () { if(!!status.isClickControl) return; objs[`video_${objs.swiper.activeIndex}`].video.controlCta.focus(); }, touchMove: function () { objs.swiper.off('transitionEnd', swiperEvent.transitionEnd); }, touchEnd: function () { objs.swiper.on('transitionEnd', swiperEvent.transitionEnd); }, onClickArrow: (e) => { status.arrowTimeout = null; status.arrowStyleTimeout = null; status.accessibilityTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); status.isClickControl = true; if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.prevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.nextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.prevArrow.style.display = ''; }, 400); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.nextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.prevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.nextArrow.style.display = ''; }, 400); } else if(!objs.swiper.isBeginning && !objs.swiper.isEnd) { let target = e.target.classList.contains('swiper-button-next') ? els.nextArrow : els.prevArrow; let noTarget = target.classList.contains('swiper-button-next') ? els.prevArrow : els.nextArrow; objs.swiper.slides[objs.swiper.activeIndex].setAttribute('tabindex', -1); objs.swiper.slides[objs.swiper.activeIndex].setAttribute('aria-hidden', true); noTarget.setAttribute('tabindex', -1); noTarget.setAttribute('aria-hidden', true); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { target.focus(); }, 300); clearTimeout(status.accessibilityTimeout); status.accessibilityTimeout = setTimeout(function () { objs.swiper.slides[objs.swiper.activeIndex].removeAttribute('tabindex'); objs.swiper.slides[objs.swiper.activeIndex].removeAttribute('aria-hidden'); noTarget.removeAttribute('tabindex'); noTarget.removeAttribute('aria-hidden'); }, 400); } eventList.animationEndDestroy(); } }, navInitCheck: () => { let wrapPadding = parseInt(window.getComputedStyle(els.sectionInner).paddingLeft) * 2; let getComputedStyle = window.getComputedStyle(els.navigationList[0]); let navMargin = !!status.isRtl ? parseInt(getComputedStyle.marginLeft) : parseInt(getComputedStyle.marginRight); let navSlideWidth = els.navigationList[0].clientWidth; let slideWrapWidth = (navSlideWidth * els.navigationList.length) + (navMargin * (els.navigationList.length - 1)); status.navSwiperPadding = (status.navSlideWrapWidth - slideWrapWidth) / 2; let contentsWidth = els.sectionInner.clientWidth - wrapPadding - status.navSwiperPadding; status.isNavInit = (status.currentDevice.indexOf('mobile') > -1 && contentsWidth <= slideWrapWidth) || els.navigationList.length > 4; if(!!status.isNavInit) { objList.setNavSwiper(); } else { swiperEvent.destroy(); } }, setNavSwiperXvalue: (activeIndex) => { if (activeIndex === 0 || activeIndex === 1) { status.xValue = 0; } else if (activeIndex > 1) { if((status.navSwiperPadding * 2) < 0) { status.xValue = (status.navSlideWrapWidth - els.navigationInner.clientWidth) + Math.abs((status.navSwiperPadding * 2)); } else { status.xValue = status.navSlideWrapWidth - els.navigationInner.clientWidth; } } if(!status.isRtl) els.navigationInner.style.transform = `translate3d(-${status.xValue}px, 0px, 0px)`; else els.navigationInner.style.transform = `translate3d(${status.xValue}px, 0px, 0px)`; swiperEvent.checkScrollEnd(); }, checkScrollEnd: () => { if(!status.isRtl) { if(objs.navSwiper.getTranslate() < 0) els.navigationWrap.classList.add('is-scroll-end'); else els.navigationWrap.classList.remove('is-scroll-end'); } else { if(objs.navSwiper.getTranslate() < 0) els.navigationWrap.classList.remove('is-scroll-end'); else els.navigationWrap.classList.add('is-scroll-end'); } }, destroy: () => { if(objs.navSwiper != null) { objs.navSwiper.destroy(true); objs.navSwiper = null; } } } const eventList = { setVideoController: () => { for (let i = 0; i < els.videoControlCta.length; i++) { els.videoControlCta[i].addEventListener('click', function () { let isVideo = this.video; if (isVideo.paused) { isVideo.play(); } else { isVideo.pause(); } }); } }, scroll: () => { objs.scene.trackAnimation(function () { objs[`video_${objs.swiper.activeIndex}`].scrollActive(this.progress); }); }, animationEnd: () => { eventFnc.animationEnd = {}; if(!!utils.isLowNetwork()) return; for (let i = 0; i < els.progressBar.length; i++) { eventFnc.animationEnd[i] = function () { if (objs.swiper.activeIndex == (objs.swiper.slides.length - 1)) { status.isAuto = false; els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); } else { setTimeout(() => { if(!status.isAuto) return; objs.swiper.slideNext(500); els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); }, 800); } }; els.progressBar[i].addEventListener('animationend', eventFnc.animationEnd[i]); } }, animationEndDestroy: () => { for (let i = 0; i < els.progressBar.length; i++) { els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); } }, onClickNavigation: (e) => { if (e.target.classList.contains('swiper-wrapper') || (e.type == 'keydown' && e.keyCode != 13)) return; let oldTarget = els.navigationWrap.querySelector(`.${statusClass.navigation}`); let targetMatches = e.target.matches('.highlights-overview__navigation-button-image img') || e.target.matches('.highlights-overview__navigation-button-text'); if (targetMatches) { currentTarget = e.target.parentWrap; } else if (e.target.classList.contains('highlights-overview__navigation-button')) { currentTarget = e.target.parentElement; } if (!currentTarget.classList.contains(statusClass.navigation)) { oldTarget.classList.remove(statusClass.navigation); currentTarget.classList.add(statusClass.navigation); objs.swiper.slideTo(currentTarget.index, 500, false); accessibility.setTitle(); } status.isClickControl = true; eventList.animationEndDestroy(); }, clickFeatureCta: (e) => { e.preventDefault(); status.isAuto = false; let target = e.target.matches('.common-cta-encased__text') ? e.target.parentElement : e.target; let sectionId = target.getAttribute('href'); let section = document.querySelector(sectionId); let sectionTop = section.getBoundingClientRect().top; let movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(); let clickable = section.querySelectorAll('a, button'); let title = section.querySelector('h2.common-sub-headline'); if(title.classList.contains('common-display-mo')) { if(resize.checkResolution().indexOf('mobile') > -1) { title = section.querySelector('h2.common-sub-headline.common-display-mo'); } else { title = section.querySelector('h2.common-sub-headline.common-display-pc'); } } if (!!title) { let _focusOut = function () { title.removeAttribute('tabindex'); title.removeEventListener('focusout', _focusOut); }; title.addEventListener('focusout', _focusOut); title.setAttribute('tabindex', 0); title.focus(); } else { clickable[0].focus(); } window.scrollTo(0, movePosition); }, onResize: function (currRes) { status.currentDevice = currRes; status.navSlideWrapWidth = els.navigationWrap.clientWidth; swiperEvent.navInitCheck(); }, clickTutorialOpenCta: function () { let hash = this.getAttribute('data-hash'); let tutorialPopup = document.querySelector(`#${hash}`); let tutorialPopupList = document.querySelectorAll('.common-tutorial'); if (tutorialPopup) { status.isAuto = false; status.activeVideo = objs[`video_${objs.swiper.activeIndex}`].video; status.activeVideoPaused = status.activeVideo.paused; tutorialPopup.show(); if (utils.detector.isIosDevice || utils.detector.isTouchDevice) this.blur();else this.focus(); for (let i = 0; i < tutorialPopupList.length; i++) { tutorialPopupList[i].isOverview = true; tutorialPopupList[i].overviewCta = this; } } }, }; const accessibility = { slide: () => { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } }, setTitle: () => { for (let i = 0; i < els.navigationBtn.length; i++) { let button = els.navigationBtn[i].querySelector('button'); button.removeAttribute('title'); if (i == objs.swiper.activeIndex) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { button.setAttribute('title', LOCAL_VARI.selected); } else { button.setAttribute('title', 'Selected'); } } } }, setTagging: { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } } }; return { init: init } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.quadTelPopup = (function () {const utils = window.flagship.common.utils;const resize = window.flagship.common.resize;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};let currDevice = resize.checkResolution();let prevDevice = null;const setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-quad-telephoto-popup-img-src',responsiveClass: '.js-quad-telephoto-popup-res-img',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: 'data-src-pc'}, {resolution: 1023,attribute: 'data-src-tb'}, {resolution: 767,attribute: 'data-src-mo'}, {resolution: 360,attribute: 'data-src-mo-s'}],visiblePoint: 2});window.popupBgLoader = ANIUTIL.mediaLoader({type: 'bgImage',lazyClass: '.js-quad-telephoto-popup-bg-img',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: '',bgOpts: ''}],visiblePoint: 1});},video: function () {objs.videoLoader = ANIUTIL.mediaLoader({type: 'video',lazyClass: '.js-quad-telephoto-popup-video-src',responsiveClass: '.js-quad-telephoto-popup-res-video',preset: status.isGlobal ? '' : '?imbypass=true',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: 'data-video-src-pc'}, {resolution: 1023,attribute: 'data-video-src-tb'}, {resolution: 767,attribute: 'data-video-src-mo'}, {resolution: 360,attribute: 'data-video-src-mo-s'}],visiblePoint: 1,endCallback: function (video) {if (video.videoWrap && !video.videoWrap.classList.contains('is-loaded')) {video.videoWrap.classList.add('is-loaded');}}});}};const init = function () {els.section = document.querySelector('.highlights-quad-telephoto');els.layerPopup = document.querySelector('.highlights-quad-telephoto-popup');if (!!els.layerPopup) {setElements();setStatus();objList.setPopup();bindEvents();}};const setElements = function () {status.isGlobal = document.documentElement.classList.contains('global');els.innerWrap = els.layerPopup.querySelector('.common-popup__inner-wrapper');els.contents = document.querySelector('#contents');els.openCta = els.section.querySelector('.js-layer-popup');els.closeCtas = els.layerPopup.querySelectorAll('.common-popup__close-cta');els.dimmed = els.layerPopup.querySelector('.common-popup__dimmed');els.supClicker = els.layerPopup.querySelectorAll('a.click_sup');els.scrollVideoWrap = els.layerPopup.querySelector('.common-video.js-scroll-video');els.scrollVideoWrap.video = els.scrollVideoWrap.querySelector('.common-video__video');els.scrollVideoWrap.controller = els.scrollVideoWrap.querySelector('.common-video__control');els.scrollVideoWrap.controller.video = els.scrollVideoWrap.video;els.hashPopupOpener = null;};const setStatus = function () {status.isHash = false;};const bindEvents = function () {resize.add(handlerList.onResize);els.innerWrap.addEventListener('scroll', handlerList.scroll);els.scrollVideoWrap.controller.addEventListener('click', handlerList.videoCta);for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', handlerList.onClickSup);}};const objList = {setPopup: function () {utils.layerPopup({layerPopup: els.layerPopup,layerPopupClass: '.highlights-quad-telephoto-popup',openerEvent: {element: els.openCta,},closeCtas: [els.closeCtas[0], els.closeCtas[1]],dimmed: els.dimmed,moveTarget: document.documentElement,contents: els.contents,show: {start: function (target) {els.innerWrap.scrollTop = 0;els.layerPopup.classList.add('is-init');target.openerCta.blur();setPopupLazyLoader.image();setPopupLazyLoader.video();objList.setVideo();objList.setScene();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {status.isHash = true;els.hashPopupOpener = els.openCta;}setTimeout(function () {handlerList.scroll();}, 300);},end: function () {if (utils.detector.isIosDevice) els.layerPopup.style.display = 'block';els.layerPopup.classList.add('is-open');}},hide: {start: function (target) {target.openerCta.focus();els.layerPopup.classList.remove('is-open');},end: function () {setTimeout(function () {els.layerPopup.classList.remove('is-init');}, 300);els.scrollVideoWrap.video.pause();els.scrollVideoWrap.video.currentTime = 0;if (status.isHash && els.hashPopupOpener) {els.hashPopupOpener.focus();setTimeout(function () {els.hashPopupOpener.focus();status.isHash = false;els.hashPopupOpener = null;}, 300);}}}});},setVideo: function () {objs.scrollVideo = ANIUTIL.videoHandler({playType: 'scrollPlay',startPoint: (currDevice.indexOf('mobile') > -1) ? 15 : 30,reversePoint: (currDevice.indexOf('mobile') > -1) ? 40 : 55,wrap: els.scrollVideoWrap,video: els.scrollVideoWrap.video,controller: els.scrollVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');}},playCallback: function () {setTagging.pause(this.controller);},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');}}});},setScene: function () {objs.scene = SCROLLER({trackElement: els.scrollVideoWrap.video,innerScroll: {use: true,wrap: els.layerPopup},useFixed: false,resize: utils.detector.isTouchDevice ? false : true});}};const handlerList = {scroll: function () {objs.scene.trackAnimation(function () {objs.scrollVideo.scrollActive(this.progress);});},onResize: function (currRes) {currDevice = currRes;if(currDevice != prevDevice) {els.scrollVideoWrap.video.pause();els.scrollVideoWrap.video.currentTime = 0;setTimeout(() => {objList.setVideo();}, 300);prevDevice = currDevice;}},videoCta: function (e) {if (e.target == e.currentTarget) {if (e.currentTarget.video.paused) {e.currentTarget.video.play();} else {e.currentTarget.video.pause();}}},onClickSup: function (e) {e.preventDefault();e.stopPropagation();els.layerPopup.hide();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);}};const setTagging = {play: function (targetController) {if (targetController.hasAttribute('data-omni')) {let dataOmni = targetController.getAttribute('data-omni').toLowerCase();targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));}if (targetController.hasAttribute('ga-la')) {let gaLa = targetController.getAttribute('ga-la').toLowerCase();targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));}},pause: function (targetController) {if (targetController.hasAttribute('data-omni')) {let dataOmni = targetController.getAttribute('data-omni').toLowerCase();targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));}if (targetController.hasAttribute('ga-la')) {let gaLa = targetController.getAttribute('ga-la').toLowerCase();targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));}}};return {init: init,}})();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.quadTelephoto = (function () { let els = {}; let objs = {}; const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let activeClass = 'is-active'; const init = function () { els.section = document.querySelector('.highlights-quad-telephoto'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.highlights-quad-telephoto__zoom-image-wrap'); els.zoomCtaList = els.section.querySelector('.highlights-quad-telephoto__zoom-button-list'); els.zoomCta = els.section.querySelectorAll('.highlights-quad-telephoto__zoom-button'); els.tooltip = els.section.querySelector('.highlights-quad-telephoto__zoom-tooltip'); }; const objList = { setScene: function () { objs.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }, setSwiper: function () { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, }); objs.swiper.on('init', swiperEvents.init); objs.swiper.on('slideChange', swiperEvents.slideChange); objs.swiper.init(); } } }; const bindEvents = function () { objList.setSwiper(); els.zoomCtaList.addEventListener('click', handlerList.onClickZoomCta); els.section.addEventListener('keydown', handlerList.onClickZoomCta); objList.setScene(); window.addEventListener('scroll', handlerList.scroll); handlerList.scroll(); }; const handlerList = { scroll: function () { objs.scene.trackAnimation(function () { let startProgress = resize.checkResolution() == 'desktop' ? 50 : 35; if (this.progress > startProgress && this.progress < 70) { let speed = 1000; objs.swiper.slideTo(1, 800); setTimeout(() => { objs.swiper.slideTo(2, 800); }, speed); setTimeout(() => { objs.swiper.slideTo(3, 800); }, speed * 2); setTimeout(() => { objs.swiper.slideTo(4, 800); }, speed * 3); setTimeout(() => { objs.swiper.slideTo(5, 800); }, speed * 4); setTimeout(() => { objs.swiper.slideTo(1, false); }, 5500); setTimeout(() => { els.tooltip.removeAttribute('aria-hidden'); TweenMax.to(els.tooltip, 0.4, {opacity: 1}); }, 6000); window.removeEventListener('scroll', handlerList.scroll); } }); }, onClickZoomCta: function (e) { if(e.type == 'keydown' && e.keyCode != 13) return; let isZoomCta = e.target.classList.contains('highlights-quad-telephoto__zoom-button-title') ? e.target.parentElement : e.target; let isIndex = isZoomCta.getAttribute('data-index'); if (!els.tooltip.classList.contains('is-hide')) { TweenMax.to(els.tooltip, 0.4, {opacity: 0, ease: 'linear', onComplete: function () { els.tooltip.style.display = 'none'; els.tooltip.setAttribute('aria-hidden', 'true'); }}); els.tooltip.classList.add('is-hide'); } if (!isZoomCta.parentElement.classList.contains(activeClass)) { isZoomCta.parentElement.classList.add(activeClass); objs.swiper.slideTo(isIndex, 800); accessibility.setTitle(isZoomCta); accessibility.slide(); } } }; const swiperEvents = { init: function () { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); accessibility.setTitle(els.zoomCta[objs.swiper.activeIndex]); accessibility.slide(); }, slideChange: function () { for (let i = 0; i < els.zoomCta.length; i++) { els.zoomCta[i].removeAttribute('title'); els.zoomCta[i].parentElement.classList.remove(activeClass); } els.zoomCta[objs.swiper.activeIndex].parentElement.classList.add(activeClass); accessibility.setTitle(els.zoomCta[objs.swiper.activeIndex]); accessibility.slide(); } }; const accessibility = { slide: function () { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } }, setTitle: function (cta) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { cta.setAttribute('title', LOCAL_VARI.selected); } else { cta.setAttribute('title', 'selected'); } }, }; return { init: init } })();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.quote = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.highlights-media-quote'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.swiper = null; els.itemArray = []; els.quoteWrap = els.section.querySelector('.highlights-media-quote__inner'); els.quoteContainer = els.section.querySelector('.highlights-media-quote__list-wrap'); els.quoteList = els.section.querySelector('.highlights-media-quote__list'); els.quoteListItems = els.quoteList.querySelectorAll('.highlights-media-quote__item'); els.arrowWrap = els.section.querySelector('.highlights-media-quote__arrow'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.quotePagination = els.section.querySelector('.highlights-media-quote__pagination'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLodeHandler, {once : true}); resize.add(onResizeHandler); els.nextArrow.addEventListener('click', swiperEvents.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvents.onClickArrow); els.prevArrow.addEventListener('click', swiperEvents.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvents.onClickArrow); }; const onLodeHandler = function () { onResponsiveChange(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveChange(); prevDevice = currDevice; } }; const onResponsiveChange = function () { if (currDevice.indexOf('mobile') > -1) { setSwiper(); } else { swiperEvents.destroy(); } }; const setSwiper = function () { if (els.swiper === null) { els.quoteWrap.classList.add('js-swiper-initialized'); els.swiper = new Swiper(els.quoteContainer, { init: false, slidesPerView: 'auto', centeredSlides: true, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, pagination: { el: els.quotePagination, type: 'bullets', renderBullet: function () { return '
      • '; } } }); els.swiper.on('init', swiperEvents.init); els.swiper.on('slideChange', swiperEvents.slideChange); els.swiper.init(); } }; const swiperEvents = { init: function () { let self = this, notification = self.el.querySelector('.swiper-notification'); if (!!notification) self.el.removeChild(notification); setAccessibility.slide(); setAccessibility.arrow(); setPaginationTagging.call(self); setPaginationLabel.call(self); for (let i = 0; i < self.pagination.bullets.length; i++) { (function (idx) { self.pagination.bullets[i].addEventListener('click', function () { self.slideTo(idx); }); })(i); } }, slideChange : function () { setAccessibility.slide(); setAccessibility.arrow(); setPaginationLabel.call(this); }, onClickArrow: function (e) { if ((e.type == 'keydown' && e.keyCode == 13) || (e.type == 'click' && document.documentElement.classList.contains('isTouchDevice'))) { e.preventDefault(); clearTimeout(els.arrowTimeout); els.arrowTimeout = setTimeout(function () { if (els.swiper.isBeginning && !els.swiper.isEnd) { els.nextArrow.focus(); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { els.prevArrow.focus(); } }, 300); } }, destroy : function () { if (els.swiper != null) { els.quoteWrap.classList.remove('js-swiper-initialized'); els.swiper.pagination.destroy(true); els.swiper.navigation.destroy(true); els.swiper.destroy(true); els.swiper = null; } }, }; const setPaginationTagging = function () { let bullets = Array.prototype.slice.call(this.pagination.bullets), paginationTagging = { 'data-omni-type': 'microsite_contentinter', 'data-omni': 'galaxy-s24-ultra:highlights:overview:media-quote:index:', 'ga-ca': 'indication', 'ga-ac': 'carousel', 'ga-la': 'galaxy-s24-ultra:highlights:overview:media-quote:index:', }; bullets.forEach(function (ele, idx) { Object.keys(paginationTagging).forEach(function (key) { if (key == 'data-omni' || key == 'ga-la') { ele.setAttribute(key, paginationTagging[key] + (idx + 1)); } else { ele.setAttribute(key, paginationTagging[key]); } }); }); }; const setPaginationLabel = function () { let self = this, slides = Array.prototype.slice.call(this.slides), bullets = Array.prototype.slice.call(this.pagination.bullets); bullets.forEach(function (bullet, bulletIndex) { let ariaLabelText = slides[bulletIndex].querySelector('.highlights-media-quote__media').innerText; if (self.realIndex == bulletIndex) { bullet.setAttribute('aria-label', ariaLabelText + ' Selected'); } else { bullet.setAttribute('aria-label', ariaLabelText); } }); }; const setAccessibility = { slide: function () { for (let i = 0; i < els.swiper.slides.length; i++) { if (i != els.swiper.snapIndex) { utils.onAccessibility(els.swiper.slides[i]); } else { utils.offAccessibility(els.swiper.slides[i]); } } }, arrow: function () { if (els.swiper.isBeginning && !els.swiper.isEnd) { utils.offAccessibility(els.nextArrow); utils.onAccessibility(els.prevArrow); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { utils.offAccessibility(els.prevArrow); utils.onAccessibility(els.nextArrow); } else { utils.offAccessibility(els.nextArrow); utils.offAccessibility(els.prevArrow); } } }; return { init: init, } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.samsungNoteTutorial = (function () {const utils = window.flagship.common.utils;const resize = window.flagship.common.resize;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];const init = function () {els.section = document.querySelector('.highlights-samsung-note-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-video__control');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 200);},click: function(){let self = this;for (let i = 0; i < els.tooltipCta.length; i++) {els.tooltipCta[i].addEventListener('click', function(){self.nextVideoPlay(i);});}},endCallback: function () {if (stepInfo[this.video.playIndex].tooltip == 'true') {this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);let nextPlayindex = this.video.playIndex + 1;if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);}},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex'); els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.videoController();eventList.click();};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.suggestionAiTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-generative-edit-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.coverImages = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__cover-image');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.generativeCta = els.tutorialVideoContainer.querySelector('.js-tutorial-generative-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-video__control');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 200);},click: function(){let self = this;els.tooltipCta[0].addEventListener('click', function(){if (els.videos[2].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[2], els.coverImages[3], els.coverImages[4]]);videoLoader.setResponsiveMedia([els.videos[2], els.videos[3], els.videos[4]]);}self.nextVideoPlay(0);})els.tooltipCta[1].addEventListener('click', function(){self.nextVideoPlay(1);}),els.generativeCta.addEventListener('click', function(){this.setAttribute('disabled', '');utils.onAccessibility(els.generativeCta);this.parentElement.classList.remove('is-visible');self.nextVideoPlay(5);})},endCallback: function () {let autoplay = this.video.playIndex == 2 ||this.video.playIndex == 6;if (stepInfo[this.video.playIndex].tooltip == 'true') {if (this.video.playIndex != 5) this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (autoplay) {eventList.nextVideoPlay(this.video.playIndex);}let self = this;switch (this.video.playIndex) {case 2:if (!els.generativeCta.classList.contains('is-bg-load-complete')) {els.generativeCta.classList.add('is-bg-load-complete');}els.generativeCta.parentElement.classList.add('is-visible');break;case 3:if (els.videos[5].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[5]]);videoLoader.setResponsiveMedia([els.videos[5]]);}(function(wrap, video){setTimeout(()=>{self.wrap.alert.classList.remove('is-visible');eventList.nextVideoPlay(video.playIndex);}, 3000)})(this.wrap, this.video);break;case 4:if (els.videos[6].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[6], els.coverImages[7]]);videoLoader.setResponsiveMedia([els.videos[6], els.videos[7]]);}(function(wrap, video){setTimeout(()=>{self.wrap.alert.classList.remove('is-visible');eventList.nextVideoPlay(video.playIndex);}, 3000)})(this.wrap, this.video);break;case 5:els.generativeCta.removeAttribute('disabled');utils.offAccessibility(els.generativeCta);break;case 7:els.generativeCta.parentElement.classList.add('is-visible');els.generativeCta.classList.add('is-tutorial-end');break;default:break;}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex');els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;if (this.video.playIndex != 5) {utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}}if (this.video.playIndex == (els.videos.length - 3)) {setTimeout(function () {els.generativeCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this)}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.videoController();eventList.click();};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.tutorial = (function () {const utils = window.flagship.common.utils;const resize = window.flagship.common.resize;const common = window.flagship.highlights.common;const tutorialPopup = window.flagship.highlights.tutorialPopup;let objs = {};let status = {};let commonEls = {};let isDevice = resize.checkResolution();status.isGlobal = document.documentElement.classList.contains('global'); let sectionList = document.querySelectorAll('#generative-edit, #circle-to-search, #live-translate, #chat-assist, #note-assist'); let layerPopup = document.querySelectorAll('#generative-edit-experience, #circle-to-search-experience, #live-translate-experience, #chat-assist-experience, #note-assist-experience'); let popupClassList = [ '.highlights-generative-edit-tutorial', '.highlights-circle-to-search-tutorial','.highlights-live-translate-tutorial','.highlights-chat-assist-tutorial','.highlights-samsung-note-tutorial' ]let statusClass = {isVisible: 'is-visible',isTutorialOpend: 'is-tutorial-opened',isTutorialOpenedMo: 'is-tutorial-opened-mo',isInfoOpen: 'is-info-open',isInfoVisible: 'is-info-visible',isTutorialEnd: 'is-tutorial-end',isActive: 'is-active',isBgLoadComplete: 'is-bg-load-complete',isCompleted: 'is-completed',isOpen: 'is-open',}const init = function () {status.isHash = false;status.isIos = utils.detector.isIosDevice;status.overview = {};commonEls.globalSubNav = document.querySelector('#subnav');commonEls.globalContents = document.querySelector('#contents');commonEls.dotcomContents = document.querySelector('.pd-g-floating-nav');commonEls.overview = document.querySelector('.highlights-overview');commonEls.gnb = document.querySelector('.nv00-gnb');commonEls.tooltipWrap = document.querySelectorAll('.js-tutorial-tooltip');if (status.isGlobal) {commonEls.contentsChildren = document.querySelector('#contents').children;commonEls.commonUi = document.querySelectorAll('#accessibility-navigation, #header, #footer');} else {commonEls.wrapChildren = document.querySelector('#wrap').children;commonEls.contentChildren = document.querySelector('#content').children;commonEls.rootChildren = document.querySelector('#content .root .responsivegrid .aem-Grid--12').children;commonEls.flotingNavi = document.querySelector('.pd-g-floating-nav');commonEls.flotingNaviFixedWrap = document.querySelector('.floating-navigation__wrap');}for (let i = 0; i < sectionList.length; i++) {let opts = {section: sectionList[i],layerPopup: layerPopup[i],popupClass: popupClassList[i],openCta: sectionList[i].querySelector('.js-tutorial-popup'),closeCta: layerPopup[i].querySelector('.common-tutorial__close-cta--popup'),moCloseCta: layerPopup[i].querySelector('.common-tutorial__close-cta--video'),}els = getElements(opts);tooltipAccessibility();setPopup(opts, els);bindEvents(els, i);}};const getElements = function (opts) {let els = {};els.openCta = opts.section.querySelector('.js-tutorial-popup');els.layerPopup = opts.layerPopup;els.innerWrapper = opts.layerPopup.querySelector('.common-tutorial__inner-wrapper');els.innerWrap = opts.layerPopup.querySelector('.common-tutorial__inner-wrap');els.textWrap = opts.layerPopup.querySelector('.common-tutorial__text');els.closeCta = opts.layerPopup.querySelector('.common-tutorial__close-cta--popup');els.moCloseCta = opts.moCloseCta;els.infoPopup = opts.layerPopup.querySelector('.common-tutorial__info-area');els.videoContent = opts.layerPopup.querySelector('.common-tutorial__video-content');els.introVideoSection = opts.layerPopup.querySelector('.common-tutorial__intro-video');els.introVideoWrap = opts.layerPopup.querySelector('.common-tutorial__intro-video .common-video'); els.introVideo = opts.layerPopup.querySelector('.common-tutorial__intro-video video');els.introCoverImage = opts.layerPopup.querySelector('.common-tutorial__intro-video .common-video__cover-image');if (opts.layerPopup.classList.contains('highlights-live-translate-tutorial')) {els.introCta = opts.layerPopup.querySelector('.common-tutorial__intro-video .js-tutorial-tooltip-cta');}els.tutorialContents = opts.layerPopup.querySelector('.common-tutorial__video-content');els.tutorialVideoContainer = opts.layerPopup.querySelector('.common-tutorial__main-video');els.tutorialVideoWrap = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-tutorial__video');els.tutorialVideos = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-tutorial__video video');els.tutorialCoverImages = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-video__cover-image');els.tutorialActiveCta = opts.layerPopup.querySelector('.common-tutorial__cta--play button');els.tutorialDeactiveCta = opts.layerPopup.querySelector('.common-tutorial__cta--pause button');els.tutorialTooltip = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .js-tutorial-tooltip');els.tutorialAlert = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .js-tutorial-alert');els.generativeCta = opts.layerPopup.querySelector('.js-tutorial-generative-cta');els.tutorialFrame = opts.layerPopup.querySelector('.common-tutorial__main-video.common-video__frame');els.tutorialReplay = opts.layerPopup.querySelector('.common-tutorial__replay-cta');els.tutorialNavigation = opts.layerPopup.querySelector('.common-tutorial__navigation');els.navPrev = els.tutorialNavigation.querySelector('.common-tutorial__navigation-button--prev');els.navNext = els.tutorialNavigation.querySelector('.common-tutorial__navigation-button--next');els.tutorialPagination = opts.layerPopup.querySelector('.common-tutorial__pagination-area');els.supClicker = opts.layerPopup.querySelectorAll('a.click_sup');els.layerPopup.opener = els.openCta;els.layerPopup.targetOpener = opts.openCta;return els;};const setProperty = function(els){els.introVideoWrap.video = els.introVideo;els.introVideoWrap.controller = els.introVideoWrap.querySelector('.common-video__control');els.introVideoWrap.controller.video = els.introVideo;};const tooltipAccessibility = function() {for (let i = 0; i < commonEls.tooltipWrap.length; i++) {utils.onAccessibility(commonEls.tooltipWrap[i]);}};const eventList = {common: {setMobileVideoWidth: function(els){if (els.layerPopup.classList.contains('is-open') && resize.checkResolution().indexOf('mobile') > -1) {let containerWidth = window.innerWidth;let containerHeight = window.innerHeight;if (!status.isIos) {let videoHeight = Math.floor(containerWidth * 2.1666);if (videoHeight > containerHeight) {els.tutorialVideoContainer.style.width = `${Math.floor(containerHeight * 0.4615)}px`;els.tutorialVideoContainer.style.height = `${containerHeight}px`;} else {els.tutorialVideoContainer.style.width = '';els.tutorialVideoContainer.style.height = `${videoHeight}px`;}} else {els.tutorialVideoContainer.style.width = `${Math.floor(containerHeight * 0.4615)}px`;}} else if (resize.checkResolution() != 'mobile' && els.tutorialVideoContainer.style.height) {if (!status.isIos) {els.tutorialVideoContainer.style.width = '';els.tutorialVideoContainer.style.height = '';} else {els.tutorialVideoContainer.style.width = '';}}},},resize: {position: function(els) {if (els.layerPopup.classList.contains('is-open')) {if (isDevice.indexOf('desktop') > -1 && resize.checkResolution().indexOf('desktop') > -1) {let isHash = location.hash;if (!status.isGlobal && window.pageYOffset == 0 && !!isHash) {eventList.popup.setPopupPosition(els.layerPopup);}}if (isDevice != resize.checkResolution()) {eventList.popup.setPopupPosition(els.layerPopup);if (els.layerPopup.querySelector('.is-info-open, .is-tutorial-opened')) {eventList.tutorial.deactive(els);eventList.tutorial.reset(els);};isDevice = resize.checkResolution();}}},},tutorial: {videoContentReset: function(els){els.videoContent.classList.remove(statusClass.isInfoOpen);els.videoContent.classList.remove(statusClass.isInfoVisible);els.videoContent.classList.add(statusClass.isTutorialOpend);},reset: function(els) {if (els.generativeCta) {els.generativeCta.classList.remove(statusClass.isVisible, statusClass.isTutorialEnd);els.generativeCta.parentElement.classList.remove(statusClass.isVisible);}els.tutorialActiveCta.parentElement.classList.add(statusClass.isActive);els.tutorialDeactiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialContents.classList.remove(statusClass.isInfoOpen);els.videoContent.classList.remove(statusClass.isInfoVisible);els.tutorialContents.classList.remove(statusClass.isTutorialOpend);if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.remove(statusClass.isTutorialOpenedMo);}for (let i = 0; i < els.tutorialVideoWrap.length; i++) {if (els.tutorialVideoWrap[i]) els.tutorialVideoWrap[i].classList.remove(statusClass.isVisible);if (els.tutorialVideos[i]) {if (!els.tutorialVideos[i].paused) {els.tutorialVideos[i].pause();}els.tutorialVideos[i].currentTime = 0;}let isComplete = els.tutorialVideoWrap[i].querySelector(`.${statusClass.isCompleted}`);if (isComplete) els.tutorialVideos[i].videoHandler.resetCallback();if (els.tutorialTooltip[i]) els.tutorialTooltip[i].classList.remove(statusClass.isVisible);if (els.tutorialAlert[i]) els.tutorialAlert[i].classList.remove(statusClass.isVisible);clearTimeout(status.infoRemoveTiming);}if (!!els.introCta) {els.introCta.parentElement.classList.remove(statusClass.isVisible);utils.onAccessibility(els.introCta.parentElement);}els.tutorialReplay.style.display = '';if (!els.tutorialReplay.hasAttribute('tabindex')) els.tutorialReplay.setAttribute('tabindex', -1);if (!els.tutorialReplay.hasAttribute('aria-hidden')) els.tutorialReplay.setAttribute('aria-hidden', true);els.introVideoWrap.controller.removeAttribute('tabindex');els.introVideoWrap.controller.removeAttribute('aria-hidden');},videoVisible: function(els) {if (!els.introVideo.paused) {els.introVideo.pause();}els.videoContent.classList.add(statusClass.isInfoOpen);setTimeout(() => {els.videoContent.classList.add(statusClass.isInfoVisible);}, 0);els.tutorialVideoWrap[0].classList.add(statusClass.isVisible);},imageLoad: function(els){if (!els.tutorialFrame.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialFrame.classList.add(statusClass.isBgLoadComplete);}if (!els.tutorialDeactiveCta.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialDeactiveCta.classList.add(statusClass.isBgLoadComplete);}},setActiveCta: function(els) {els.tutorialActiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialDeactiveCta.parentElement.classList.add(statusClass.isActive);if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}},activeInfo: function(els) {let self = this;clearTimeout(status.infoRemoveTiming);status.infoRemoveTiming = setTimeout(() => {self.videoContentReset(els);els.tutorialVideos[0].play();utils.offAccessibility(els.tutorialVideoWrap[0]);let tutorialVideoController = els.tutorialVideoWrap[0].querySelector('.common-video__control.common-play-button');tutorialVideoController.focus();if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}if (els.tutorialVideos[1].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[1]]);videoLoader.setResponsiveMedia([els.tutorialVideos[1]]);}els.tutorialVideos[0].focus();status.infoRemoveTiming = null;}, 3000);},active: function (els) {this.onAccessibility(els);if (resize.checkResolution().indexOf('mobile') > -1 && !status.isIos) {document.documentElement.requestFullscreen();}if (resize.checkResolution().indexOf('mobile') > -1) {setTimeout(function () {els.moCloseCta.focus();}, 300);} else {setTimeout(function () {els.tutorialDeactiveCta.focus();}, 300);}status.infoRemoveTiming = null;this.videoVisible(els);this.imageLoad(els);this.setActiveCta(els);this.activeInfo(els);},videoReset: function(els) {els.introVideo.currentTime = 0;if (isDevice == resize.checkResolution()) {els.introVideo.play();} for (let i = 0; i < els.tutorialVideoWrap.length; i++) {els.tutorialVideoWrap[i].classList.remove(statusClass.isVisible);if (!els.tutorialVideos[i].paused) {els.tutorialVideos[i].pause();els.tutorialVideos[i].currentTime = 0;}}},ctaReset: function(els) {els.tutorialDeactiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialActiveCta.parentElement.classList.add(statusClass.isActive);if (resize.checkResolution().indexOf('mobile') == -1) {els.layerPopup.classList.remove(statusClass.isTutorialOpenedMo);}if (!!els.introCta) {els.introCta.parentElement.classList.remove(statusClass.isVisible);utils.onAccessibility(els.introCta.parentElement);}},deactive: function(els) {els.videoContent.classList.remove(statusClass.isInfoOpen, statusClass.isInfoVisible, statusClass.isTutorialOpend);this.offAccessibility(els);if (resize.checkResolution().indexOf('mobile') > -1 && !status.isIos) {if (document.fullscreenElement != null) document.exitFullscreen();}setTimeout(function () {els.tutorialActiveCta.focus();}, 300);this.videoReset(els)this.ctaReset(els);for (let i = 0; i < els.tutorialVideoWrap.length; i++) {utils.onAccessibility(els.tutorialVideoWrap[i]);}},onAccessibility: function(els) {if (resize.checkResolution().indexOf('mobile') > -1) {utils.onPopupAccessibility(els.textWrap);if (!status.isGlobal) {utils.onPopupAccessibility(commonEls.flotingNaviFixedWrap);} else {utils.onPopupAccessibility(commonEls.globalSubNav);}}utils.onPopupAccessibility(els.introVideoSection);},offAccessibility: function(els) {if (resize.checkResolution().indexOf('mobile') > -1) {utils.offPopupAccessibility(els.textWrap);if (!status.isGlobal) {utils.offPopupAccessibility(commonEls.flotingNaviFixedWrap);} else {utils.offPopupAccessibility(commonEls.globalSubNav);}}utils.offPopupAccessibility(els.introVideoSection);}},popup: {setOverviewStatus: function(opts) {if (opts.openCta.parentElement.getAttribute('class').indexOf('__tutorial-cta') > -1) {let isOverviewVideo = commonEls.overview.querySelector('.swiper-slide-active video');if (!isOverviewVideo.paused) {status.overview = {video: isOverviewVideo,paused: true}isOverviewVideo.pause();}}},mediaLoad: function(els) {if (!els.tutorialActiveCta.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialActiveCta.classList.add(statusClass.isBgLoadComplete);}if (els.introVideo.readyState < 4) {imageLoader.setResponsiveMedia([els.introCoverImage]);videoLoader.setResponsiveMedia([els.introVideo]);}if (!els.navPrev.classList.contains(statusClass.isBgLoadComplete)) {els.navPrev.classList.add(statusClass.isBgLoadComplete);}if (!els.navNext.classList.contains(statusClass.isBgLoadComplete)) {els.navNext.classList.add(statusClass.isBgLoadComplete);}},playIntroVideo: function(els) {if (els.introVideo.readyState >= 4) {els.introVideo.currentTime = 0;els.introVideo.play();} else {els.introVideo.addEventListener('canplay', function(){if (this.paused) this.play();});}},tutorialIntroImgLoad: function(els) {if (!!els.introCoverImage && !els.introCoverImage.classList.contains('is-img-load-complete')) {imageLoader.setResponsiveMedia([els.introCoverImage]);}},tutorialMediaLoad: function(els) {if (els.tutorialVideos[0].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[0]]);videoLoader.setResponsiveMedia([els.tutorialVideos[0]]);}if (!els.tutorialReplay.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialReplay.classList.add(statusClass.isBgLoadComplete)}},setPopupPosition: function(layerPopup) {let isHash = location.hash;let dotcomGnbHeight = 0;if (!status.isGlobal && window.pageYOffset == 0 && !!isHash) {dotcomGnbHeight = document.querySelector('.nv00-gnb').clientHeight;layerPopup.style.top = `${utils.getNavHeight() + dotcomGnbHeight}px`;} else {layerPopup.style.top = `${utils.getNavHeight()}px`;}},setUiEls: function(opts, els, target) {if (commonEls.globalSubNav) commonEls.globalSubNav.style.opacity = 1;opts.layerPopup.classList.add('is-init');target.openerCta.blur();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {let oldOpenPopup = document.querySelector('.common-tutorial.is-open');if (!!oldOpenPopup) {let oldOpenPopupId = oldOpenPopup.getAttribute('id');if (`#${oldOpenPopupId}` != window.location.hash) {document.querySelector(`#${oldOpenPopupId}`).hide();}}status.isHash = true;if (!status.isGlobal) commonEls.gnb.style.display = 'none';}if (!!els.introCta) {els.introVideo.addEventListener('ended', function () {utils.offAccessibility(els.introCta.parentElement);setTimeout(function () {els.introCta.parentElement.classList.add(statusClass.isVisible);}, 100);});}},setSubnavi: function(opts) {if (commonEls.globalSubNav) commonEls.globalSubNav.style.opacity = .9;opts.layerPopup.classList.remove('is-init');},focusHandler: function(opts, els) {let isHash = status.isHash && els.layerPopup.targetOpener;let isOverview = els.layerPopup.isOverview;let isController = els.layerPopup.isController;if (isHash || !!isController && !!!isOverview) {els.layerPopup.targetOpener.blur();if (!status.isIos) els.layerPopup.targetOpener.focus();setTimeout(function () {els.layerPopup.targetOpener.focus();if (isHash) {status.isHash = false;history.pushState('', document.title, window.location.pathname);if (!status.isGlobal) commonEls.gnb.style.display = '';}if (!!isController) isController = false; }, 300);}if (!!isOverview) {opts.layerPopup.overviewCta.blur();if (!status.isIos) opts.layerPopup.overviewCta.focus();setTimeout(function () {if (!document.querySelector('.common-tutorial.is-open')) {opts.layerPopup.overviewCta.focus();for (let i = 0; i < layerPopup.length; i++) {layerPopup[i].isOverview = false;layerPopup[i].overviewCta = null;}}}, 300);}},onAccessibilityGlobal: function(els) {for (let i = 0; i < commonEls.contentsChildren.length; i++) {let isId = commonEls.contentsChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('experience') == -1 && isId.indexOf('subnav') == -1) || isId == null) {utils.onPopupAccessibility(commonEls.contentsChildren[i]);}}for (let i = 0; i < commonEls.commonUi.length; i++) {utils.onPopupAccessibility(commonEls.commonUi[i]);}},offAccessibilityGlobal: function(els) {for (let i = 0; i < commonEls.contentsChildren.length; i++) {let isId = commonEls.contentsChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('experience') == -1 && isId.indexOf('subnav') == -1) || isId == null) {utils.offPopupAccessibility(commonEls.contentsChildren[i]);}}for (let i = 0; i < commonEls.commonUi.length; i++) {utils.offPopupAccessibility(commonEls.commonUi[i]);}},onAccessibilityDotom: function(els) {let staticContent = document.querySelector('.static-content');staticContent.style.zIndex = -1;staticContent.style.position = 'relative';for (let i = 0; i < commonEls.wrapChildren.length; i++) {let isId = commonEls.wrapChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('content') == -1) || isId == null) {utils.onPopupAccessibility(commonEls.wrapChildren[i]);}}for (let i = 0; i < commonEls.contentChildren.length; i++) {let isClass = commonEls.contentChildren[i].getAttribute('class');if ((isClass != null && isClass.indexOf('root') == -1) || isClass == null) {utils.onPopupAccessibility(commonEls.contentChildren[i]);}}for (let i = 0; i < commonEls.rootChildren.length; i++) {let isClass = commonEls.rootChildren[i].getAttribute('class');if ((isClass != null && isClass.indexOf('pd-g-floating-nav') == -1) || isClass == null) {utils.onPopupAccessibility(commonEls.rootChildren[i]);}}},offAccessibilityDotcom: function(els) {for (let i = 0; i < commonEls.wrapChildren.length; i++) {utils.offPopupAccessibility(commonEls.wrapChildren[i]);}if (!status.isIos) {for (let i = 0; i < commonEls.contentChildren.length; i++) {commonEls.contentChildren[i].removeAttribute('tabindex');commonEls.contentChildren[i].removeAttribute('aria-hidden');}for (let i = 0; i < commonEls.rootChildren.length; i++) {commonEls.rootChildren[i].removeAttribute('tabindex');commonEls.rootChildren[i].removeAttribute('aria-hidden');}} else {for (let i = 0; i < commonEls.contentChildren.length; i++) {utils.offPopupAccessibility(commonEls.contentChildren[i]);}for (let i = 0; i < commonEls.rootChildren.length; i++) {utils.offPopupAccessibility(commonEls.rootChildren[i]);}}setTimeout(function () {let staticContent = document.querySelector('.static-content');staticContent.style.zIndex = '';staticContent.style.position = '';}, 200);},onAccessibility: function(els) {els.closeCta.removeAttribute('tabindex');els.closeCta.removeAttribute('aria-hidden');if (status.isGlobal) {this.onAccessibilityGlobal(els);} else {this.onAccessibilityDotom(els);}},offAccessibility: function(els) {els.closeCta.setAttribute('tabindex', '-1');els.closeCta.setAttribute('aria-hidden', true);if (status.isGlobal) {this.offAccessibilityGlobal(els);} else {this.offAccessibilityDotcom(els);}}}}const eventHandler = {resize: function(els){window.addEventListener('resize', function() {eventList.resize.position(els);eventList.common.setMobileVideoWidth(els);});},infoPopupDeactive: function(els) {els.infoPopup.addEventListener('click', function(){eventList.tutorial.videoContentReset(els);clearTimeout(status.infoRemoveTiming);els.tutorialVideos[0].play();let tutorialVideoController = els.tutorialVideoWrap[0].querySelector('.common-video__control.common-play-button');tutorialVideoController.focus();if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}if (els.tutorialVideos[1].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[1]]);videoLoader.setResponsiveMedia([els.tutorialVideos[1]]);}status.infoRemoveTiming = null;});},tutorialActiveEvent: function (els) {if (!!els.introCta) {els.introCta.addEventListener('click', function(){eventList.tutorial.active(els);});}els.tutorialActiveCta.addEventListener('click', function(){this.parentElement.classList.remove(statusClass.isActive);eventList.tutorial.active(els);});},tutorialDeactiveEvent: function(els) {els.tutorialDeactiveCta.addEventListener('click', function(){eventList.tutorial.deactive(els);eventList.tutorial.reset(els);});},reStartTutorial: function(els) {els.tutorialReplay.addEventListener('click', function(){this.style.display = '';eventList.tutorial.reset(els);eventList.tutorial.active(els);utils.onAccessibility(els.tutorialVideoWrap[els.tutorialVideoWrap.length - 1]);});},videoController: function (index) {objs[`introVideo_${index}`].controller.addEventListener('click', function () {if (this.video.paused) {this.video.play();} else {this.video.pause();}});},onClickMoCloseCta: function (els) {els.moCloseCta.addEventListener('click', function () {eventList.tutorial.deactive(els);eventList.tutorial.reset(els);});},onClickController: function (els) {els.tutorialNavigation.addEventListener('click', function (e) {let isNaviBtn = e.target.classList.contains('common-tutorial__navigation-button');if (isNaviBtn) {_controllEvent(e.target);}});els.tutorialPagination.addEventListener('click', function (e) {let isPaginationBtn = e.target.classList.contains('common-tutorial__pagination');if (isPaginationBtn) {let currOpenPopupId = document.querySelector('.common-tutorial.is-open').getAttribute('id');let targetId = e.target.getAttribute('data-hash');if (targetId != currOpenPopupId) {_controllEvent(e.target);}}});const _controllEvent = function (target) {let targetPopupId = target.getAttribute('data-hash');document.querySelector('.common-tutorial.is-open').hide();document.querySelector(`#${targetPopupId}`).show();eventList.tutorial.reset(els);document.querySelector(`#${targetPopupId}`).isController = true;};},tutorialintroImgLoad: function (els) {window.addEventListener('scroll', function () {if (this.pageYOffset > 0) {eventList.popup.tutorialIntroImgLoad(els);}})},moveToTutorialPopup: function (els) {window.addEventListener('DOMContentLoaded', function () {if (!status.isGlobal) {commonEls.flotingNaviFixedWrap.after(els.layerPopup);} else {document.querySelector('#contents').prepend(els.layerPopup);if (status.isIos) commonEls.globalSubNav.after(els.layerPopup);}});},onClickSup: function (els) {for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', function (e) {e.preventDefault();e.stopPropagation();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';els.layerPopup.hide();setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);});}}}const setIntroVideo = function (el, index) {objs[`introVideo_${index}`] = ANIUTIL.videoHandler({wrap: el,video: el.video,controller: el.controller,playCallback: function () {if (el.classList.contains(statusClass.isCompleted)) el.classList.remove(statusClass.isCompleted);setTagging.pause(el.controller);},pauseCallback: function () {setTagging.play(el.controller);},endCallback: function () {if (!el.classList.contains(statusClass.isCompleted)) el.classList.add(statusClass.isCompleted);}});};const setPopup = function (opts, els) {tutorialPopup({tutorialPopup: opts.layerPopup,tutorialPopupClass: opts.popupClass,openerEvent: {element: opts.openCta,},closeCtas: [opts.closeCta],show: {start: function (target) {eventList.popup.setOverviewStatus(opts);eventList.popup.mediaLoad(els);eventList.popup.playIntroVideo(els);eventList.popup.tutorialMediaLoad(els);eventList.popup.setPopupPosition(opts.layerPopup);eventList.popup.setUiEls(opts, els, target);eventList.popup.onAccessibility(els);},end: function () {if (status.isIos) opts.layerPopup.style.display = 'block';opts.layerPopup.classList.add('is-open');eventList.common.setMobileVideoWidth(els);}},hide: {start: function (target) {eventList.popup.offAccessibility(els);target.openerCta.focus();opts.layerPopup.classList.remove('is-open');},end: function () {eventList.tutorial.reset(els);els.introVideo.pause();eventList.popup.setSubnavi(opts);eventList.popup.focusHandler(opts, els);els.innerWrapper.scrollTop = 0;}}});};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function (els, index) {eventHandler.moveToTutorialPopup(els);eventHandler.resize(els);eventHandler.infoPopupDeactive(els);eventHandler.tutorialActiveEvent(els);eventHandler.tutorialDeactiveEvent(els);eventHandler.reStartTutorial(els);eventHandler.onClickMoCloseCta(els);eventHandler.onClickController(els);eventHandler.tutorialintroImgLoad(els);eventHandler.onClickSup(els);// introVideosetProperty(els);setIntroVideo(els.introVideoWrap, index);eventHandler.videoController(index);};return {init: init,}})();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.viewer = (function () { const utils = window.flagship.common.utils; const resize =window.flagship.common.resize; let els = {}, status = {}, currDevice = resize.checkResolution(); const init = function () { els.viewerBtn = document.querySelector('.viewer-btn'); if(!!els.viewerBtn) { setElements(); setStatus(); setPopup(); bindEvents(); } }; const setElements = function(){ els.wrapEl = document.querySelector('#wrap'); els.contents = document.querySelector('#contents'); // popup els.popup = document.querySelector('.highlights-viewer'); els.popupContents = els.popup.querySelector('.highlights-viewer__contents'); els.popupInner = els.popup.querySelector('.highlights-viewer__inner'); els.popupWrap = els.popup.querySelector('.highlights-viewer__wrap'); els.closeCta = els.popup.querySelector('.highlights-viewer__close-cta'); els.viewerWrap = els.popup.querySelector('.highlights-viewer__contents-wrap'); els.viewerContainer = els.popup.querySelector('.highlights-viewer__container'); els.viewerIframe = els.popup.querySelector('.highlights-viewer__container-viewer'); // popup-scroll els.popupScroll = els.popup.querySelector('.highlights-viewer__scroll'); els.popupScrollUpBtn = els.popup.querySelector('.highlights-viewer__scroll-btn--up'); els.popupScrollDownBtn = els.popup.querySelector('.highlights-viewer__scroll-btn--down'); // infoPopup els.infoBtn = els.popup.querySelector('.highlights-viewer__title-cta'); els.infoCloseBtn = els.popup.querySelector('.highlights-viewer__header-close-cta'); els.infoDimmed = els.popup.querySelector('.highlights-viewer__dimmed'); // timeout els.resizeTimeout = null; els.resizeInnerTimeout = null; // viewer els.viewerOpener = null; els.viewerModel = ''; els.viewerColor = ''; }; const setStatus = function () { status.viewerBaseUrl = '//www.samsung.com/global/galaxy/3d-360/viewer/?'; status.defaultParams = '&gesture_guide=0'; status.defaultParams += '&bgcolor=transparent'; status.defaultParams += '&skin=colorlayer'; status.defaultParams += '&theme=roundlayer'; status.defaultParams += '&intro=1'; status.defaultParams += '&ruler=1'; status.defaultParams += '&breakpoint_criteria=outer'; status.defaultParams += '&breakpoint_desktop_width=1024'; status.defaultParams += '&intro_pose=2'; status.defaultParams += '&intro_pose_once=1'; status.defaultParams += '&intro_pose_hold=1'; status.moPoseReady = false; status.isHash = false; }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once : true}); window.addEventListener('message', onReceiveV3DMessage, false); //els.popupContents.addEventListener('scroll', onScrollPopupContents); els.viewerIframe.addEventListener('DOMContentLoaded', viewerEvents.onLoadLayerPopupIframe); els.popupScroll.addEventListener('click', layerPopupScrollHandler.onClickLayerScroll); resize.add(onResizeHandler); }; const onLoadHandler = function () { setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (utils.detector.isTouchDevice && !utils.detector.isIosDevice) setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; const setViewerWrap = { innerWrapHeight: function () { clearTimeout(els.resizeInnerTimeout); els.resizeInnerTimeout = setTimeout(function () { if (els.popupInner) { els.popupInner.style.height = parseInt(window.innerHeight * 0.9) + 'px'; } }, 0); }, layerScroll: function () { clearTimeout(els.resizeTimeout); els.resizeTimeout = setTimeout(function () { layerPopupScrollHandler.setLayerScroll(); }, 300); } }; const setPopup = function(){ utils.layerPopup({ layerPopup: els.popup, layerPopupClass: '.highlights-viewer', openerEvent: { element: els.viewerBtn, }, closeCtas: [els.closeCta], moveTarget: document.documentElement, contents: els.contents, show: { start: function (target) { els.popup.classList.add('is-init'); viewerEvents.show(target.openerCta); }, end: function () { if (utils.detector.isIosDevice) els.popup.style.display = 'block'; els.popup.classList.add('is-open'); if (els.popup.classList.contains('is-info-open')) { setTimeout(function () { els.infoCloseBtn.focus(); }, 500); } } }, hide: { start: function () { els.popup.classList.remove('is-open'); }, end: function () { setTimeout(function () { els.popup.classList.remove('is-init'); }, 300); viewerEvents.hide(); } } }); }; const viewerEvents = { show: function (viewerOpener) { if (viewerOpener.classList.contains('viewer-btn')) { status.isHash = false; els.viewerOpener = viewerOpener; } else { status.isHash = true; els.viewerOpener = els.viewerBtn; } els.viewerModel = els.viewerOpener.getAttribute('data-model-name'); els.viewerColor = els.viewerOpener.getAttribute('data-model-color'); els.viewerIframe.setAttribute('src', getViewerUrl()); if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { viewerEvents.infoPopupShow(); } els.infoBtn.addEventListener('click', function () { viewerEvents.infoPopupShow(); setTimeout(function () { els.infoCloseBtn.focus(); }, 400); }); els.popupWrap.addEventListener('click', viewerEvents.onclickViewerDimmed); }, hide: function () { els.viewerModel = ''; els.viewerIframe.setAttribute('src', 'about:blank'); if (status.isHash) { setTimeout(function () { els.viewerOpener.focus(); }, 300); } }, infoPopupShow: function () { if (!els.popup.classList.contains('is-info-open')) { els.popup.classList.add('is-info-open'); els.infoCloseBtn.addEventListener('click', viewerEvents.infoPopupHide); els.infoDimmed.addEventListener('click', viewerEvents.infoPopupHide); setTimeout(function () { els.closeCta.setAttribute('tabindex', -1); els.closeCta.setAttribute('aria-hidden', true); els.infoBtn.setAttribute('tabindex', -1); els.infoBtn.setAttribute('aria-hidden', true); els.viewerContainer.setAttribute('tabindex', -1); els.viewerContainer.setAttribute('aria-hidden', true); }, 400); } }, infoPopupHide: function () { if (els.popup.classList.contains('is-info-open')) { els.popup.classList.remove('is-info-open'); setTimeout(function () { els.infoBtn.focus(); }, 300); setTimeout(function () { els.closeCta.removeAttribute('tabindex'); els.closeCta.removeAttribute('aria-hidden'); els.infoBtn.removeAttribute('tabindex'); els.infoBtn.removeAttribute('aria-hidden'); els.viewerContainer.removeAttribute('tabindex'); els.viewerContainer.removeAttribute('aria-hidden'); }, 100); } }, onclickViewerDimmed: function (e) { if (e.currentTarget == e.target) { if(utils.detector.isIosDevice) els.viewerOpener.style.display = 'block'; els.popup.classList.remove('is-open'); document.documentElement.classList.remove('is-layer-open'); document.documentElement.style.overflow = ''; utils.visibleScroll(); utils.onAccessibility(els.popup); utils.offAccessibility(document.querySelector('#wrap')); setTimeout(function () { els.viewerOpener.focus(); }, 300); els.viewerModel = ''; els.viewerIframe.setAttribute('src', 'about:blank'); setTimeout(function () { els.popup.classList.remove('is-init'); }, 300); } }, onLoadLayerPopupIframe: function () { if (document.documentElement.classList.contains('color_yb') || (utils.getCookie('highContrastMode') != null && utils.getCookie('highContrastMode') == 1)) { els.viewerIframe.contentWindow.postMessage('V3D.highContrast.on', '*'); setTimeout(function () { els.viewerIframe.contentWindow.postMessage('V3D.highContrast.on', '*'); }, 300); } } }; const layerPopupScrollHandler = { setLayerScroll: function () { if (!els.popupContents) return; if (els.popupContents.scrollHeight > els.popupContents.clientHeight) { utils.offAccessibility(els.popupScroll); els.popupScroll && els.popupScroll.classList.add('is-scroll-btn'); } else { utils.onAccessibility(els.popupScroll); els.popupScroll && els.popupScroll.classList.remove('is-scroll-btn'); } }, onScrollPopupContents: function () { onUpdateLayerScroll(false); }, onClickLayerScroll: function (e) { e && e.preventDefault(); if (e.target.matches('.highlights-viewer__scroll-btn')) { let scrollDown = e.target.classList.contains('highlights-viewer__scroll-btn--down'), $popupContents = $(els.popupContents); if (scrollDown) { $popupContents.stop().animate({ scrollTop: $popupContents.scrollTop() + 100 }, { duration: 300, complete: function () { layerPopupScrollHandler.onUpdateLayerScroll(true); } }); } else { $popupContents.stop().animate({ scrollTop: $popupContents.scrollTop() - 100 }, { duration: 300, complete: function () { layerPopupScrollHandler.onUpdateLayerScroll(true); } }); } } }, onUpdateLayerScroll: function (isClicked) { const offsetTop = els.popupContents.scrollTop, layerBottom = els.popupContents.scrollHeight - els.popupContents.clientHeight; els.popupScrollUpBtn.removeAttribute('tabindex'); els.popupScrollUpBtn.removeAttribute('aria-hidden'); els.popupScrollUpBtn.removeAttribute('disabled'); els.popupScrollDownBtn.removeAttribute('tabindex'); els.popupScrollDownBtn.removeAttribute('aria-hidden'); els.popupScrollDownBtn.removeAttribute('disabled'); if (offsetTop == 0) { isClicked && els.popupScrollDownBtn && els.popupScrollDownBtn.focus(); els.popupScrollUpBtn.setAttribute('tabindex', '-1'); els.popupScrollUpBtn.setAttribute('aria-hidden', 'true'); els.popupScrollUpBtn.setAttribute('disabled', 'disabled'); } else if (offsetTop >= layerBottom - 1) { isClicked && els.popupScrollUpBtn && els.popupScrollUpBtn.focus(); els.popupScrollDownBtn.setAttribute('tabindex', '-1'); els.popupScrollDownBtn.setAttribute('aria-hidden', 'true'); els.popupScrollDownBtn.setAttribute('disabled', 'disabled'); } } }; const onReceiveV3DMessage = function (e) { if (e.data == 'V3D.state.popOpen') { if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { if (els.closeCta) { if (!els.popupWrap.classList.contains('is-popup-opened')) els.popupWrap.classList.add('is-popup-opened'); els.closeCta.setAttribute('tabindex', '-1'); els.closeCta.setAttribute('aria-hidden', 'true'); els.closeCta.setAttribute('disabled', 'disabled'); } if (els.infoBtn) { els.infoBtn.setAttribute('tabindex', '-1'); els.infoBtn.setAttribute('aria-hidden', 'true'); } } } else if (e.data == 'V3D.state.popClose') { if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { if (els.closeCta) { if (els.popupWrap.classList.contains('is-popup-opened')) els.popupWrap.classList.remove('is-popup-opened'); els.closeCta.removeAttribute('tabindex'); els.closeCta.removeAttribute('aria-hidden'); els.closeCta.removeAttribute('disabled'); } if (els.infoBtn) { els.infoBtn.removeAttribute('tabindex'); els.infoBtn.removeAttribute('aria-hidden'); } } } else if (e.data == 'V3D.state.introPose.ready') { if (currDevice.indexOf('desktop') > -1) { els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*'); } status.moPoseReady = true; setTimeout(function () { status.moPoseReady = false; }, 2000); } else if (e.data == 'V3D.state.localData.ready') { els.viewerIframe && els.viewerIframe.contentWindow.postMessage(JSON.stringify(V3DLOCALDATA), '*'); } }; const getViewerUrl = function () { let viewerUrl = status.viewerBaseUrl; // model_name viewerUrl += 'model_name=' + els.viewerModel; if (document.documentElement.classList.contains('color_yb') || (utils.getCookie('highContrastMode') != null && utils.getCookie('highContrastMode') == 1)) { viewerUrl += '&highcontrast=1'; } else { viewerUrl += '&highcontrast=0'; } // RTL utils.isRTL() && (viewerUrl += '&rtl=1'); viewerUrl += status.defaultParams; viewerUrl += '#color=' + (els.viewerColor ? els.viewerColor : 'null'); return viewerUrl; }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.ytPopup = (function () { let els = {}; const utils = window.flagship.common.utils; const init = function () { els.layerPopup = document.querySelector('.common-youtube-popup'); if(!!els.layerPopup) { setElements(); setPopup(); } }; const setElements = function () { els.contents = document.querySelector('#contents'); els.openCtas = document.querySelectorAll('.js-youtube-popup'); els.closeCta = document.querySelector('.common-youtube-popup__close-cta'); els.ytIframe = els.layerPopup.querySelector('.common-youtube-popup__iframe > iframe'); els.ytDesc = els.layerPopup.querySelector('.youtube-player__desc'); els.dimmed = els.layerPopup.querySelector('.common-youtube-popup__close-area'); }; const setPopup = function () { for (let i = 0; i < els.openCtas.length; i++) { utils.layerPopup({ layerPopup: els.layerPopup, layerPopupClass: '.common-youtube-popup', openerEvent: { element: els.openCtas[i], }, closeCtas: [els.closeCta], dimmed: els.dimmed, moveTarget: document.documentElement, contents: els.contents, show: { start: function () { els.layerPopup.classList.add('is-yt-open'); }, end: function (target) { eventList.setYoutube(target); } }, hide: { start: function () { els.layerPopup.classList.remove('is-yt-open'); }, end: function (target) { eventList.clearYoutube(); } } }); } }; const eventList = { setYoutube: function (target) { let opener = target.openerCta, ytSrc = 'htt' + 'ps://www.youtube.com/embed/' + opener.getAttribute('data-youtube-id') + '?wmode=opaque&rel=0&enablejsapi=1&version=3&autoplay=1', ytTitle = opener.getAttribute('data-youtube-title'), ytBlind = opener.querySelector('.blind').innerHTML; els.ytIframe.setAttribute('src', ytSrc); els.ytIframe.setAttribute('title', ytTitle); els.ytDesc.innerHTML = ytBlind; els.OpenerTarget = opener; }, clearYoutube: function () { els.ytIframe.removeAttribute('src'); els.ytDesc.innerHTML = ''; } }; return { init: init, } })();})();(function () { window.flagship.common.resize.bindEvent(); var initComponents = function () { flagship.highlights.accordion.init(); flagship.highlights.scrollVideo.init(); flagship.highlights.clickToVideo.init(); flagship.highlights.overview.init(); flagship.highlights.quote.init(); flagship.highlights.color.init(); flagship.highlights.viewer.init(); flagship.highlights.cameraAi.init(); flagship.highlights.camera.init(); flagship.highlights.lowLight.init(); flagship.highlights.lowLightPopup.init(); flagship.highlights.quadTelephoto.init(); flagship.highlights.quadTelPopup.init(); flagship.highlights.tutorial.init(); flagship.highlights.suggestionAiTutorial.init(); flagship.highlights.circleToSearchTutorial.init(); flagship.highlights.liveTranslateTutorial.init(); flagship.highlights.chatAssistTutorial.init(); flagship.highlights.samsungNoteTutorial.init(); flagship.highlights.gaming.init(); flagship.highlights.display.init(); flagship.highlights.experiences.init(); flagship.highlights.faq.init(); flagship.highlights.ytPopup.init(); }; initComponents();})();});
      • Galaxy S24 Ultra | Galaxy AI | Samsung NL (2024)
        Top Articles
        Latest Posts
        Article information

        Author: Kelle Weber

        Last Updated:

        Views: 6226

        Rating: 4.2 / 5 (73 voted)

        Reviews: 88% of readers found this page helpful

        Author information

        Name: Kelle Weber

        Birthday: 2000-08-05

        Address: 6796 Juan Square, Markfort, MN 58988

        Phone: +8215934114615

        Job: Hospitality Director

        Hobby: tabletop games, Foreign language learning, Leather crafting, Horseback riding, Swimming, Knapping, Handball

        Introduction: My name is Kelle Weber, I am a magnificent, enchanting, fair, joyous, light, determined, joyous person who loves writing and wants to share my knowledge and understanding with you.