Galaxy S24 Ultra
- SPEZIFIKATIONEN
- SUPPORT
- REZENSIONEN
Jetzt kaufen
- Highlights
- Vergleichen
- Zubehör
- SPEZIFIKATIONEN
- SUPPORT
- REZENSIONEN
Jetzt kaufen Jetzt reservieren Jetzt kaufen Händlersuche
Galaxy AI is here
Galaxy AI ist da. Mit dem neuen Galaxy S24 Ultra kannst du dein Leben kreativ, produktiv und unkompliziert gestalten. Mach dich bereit für eine Welt, in der dir alles offensteht. Alles in einem Gerät. Alles in deiner Hand.
Circle to Search mit Google
Weiter zu Circle to Search mit Google
Live-Übersetzung
Weiter zur Live-Übersetzung
Notizen-Assistent
Weiter zum Notizen-Assistent
Foto-Assistent
Weiter zum Foto-Assistent
Chat-Assistent
Weiter zu Chat Assist
-
Circle to Search mit Google
-
Live-Übersetzung
-
Notizen-Assistent
-
Foto-Assistent
-
Chat-Assistent
Try Galaxy auf deinem Smartphone Scanne diesen QR Code oder besuche trygalaxy.com
Schlank. Stark. Sensationell.
Entdecke das Galaxy S24 Ultra mit dem neuen Rahmen mit Titan und einem 17,25 cm / 6,8 Zoll großen, flachen Display., Das ist Ultra in seiner schönsten Form.
Gut geschützt mit Titan
Gut geschützt mit Titan
Freue dich auf ein starkes Upgrade: Widerstandsfähiges Titan ist direkt in den Rahmen integriert und schützt dein Smartphone.
Besserer Schutz vor Kratzern mit Corning® Gorilla® Armor.
Corning® Gorilla® Armor hilft dabei, dein Display vor Kratzern zu schützen, sodass dein Smartphone länger wie neu aussieht.
Vor Wasser und Staub geschützt
Lass dich vom Regen nicht aufhalten: Das Galaxy S24 Ultra ist mit IP68 gegen Wasser und Staub geschützt, damit du immer neue Abenteuer erleben kannst.
Farben, inspiriert von Mineralien aus der Natur
Farben exklusiv erhältlich im Samsung Online Shop
Titanium Gray Titanium Black Titanium Violet Titanium Yellow Titanium Blue Titanium Green Titanium Orange
Drei Galaxy S24 Ultra Smartphones in Titanium Gray. Zwei sind zusammen von vorne und von hinten mit einem S Pen an der Seite zu sehen. Das dritte Smartphone wird von der Seite gezeigt, sodass die Kanten des Rahmens sichtbar sind.
Drei Galaxy S24 Ultra Smartphones in Titanium Black. Zwei sind zusammen von vorne und von hinten mit einem S Pen an der Seite zu sehen. Das dritte Smartphone wird von der Seite gezeigt, sodass die Kanten des Rahmens sichtbar sind.
Drei Galaxy S24 Ultra Smartphones in Titanium Violet. Zwei sind zusammen von vorne und von hinten mit einem S Pen an der Seite zu sehen. Das dritte Smartphone wird von der Seite gezeigt, sodass die Kanten des Rahmens sichtbar sind.
Drei Galaxy S24 Ultra Smartphones in Titanium Yellow. Zwei sind zusammen von vorne und von hinten mit einem S Pen an der Seite zu sehen. Das dritte Smartphone wird von der Seite gezeigt, sodass die Kanten des Rahmens sichtbar sind.
Drei Galaxy S24 Ultra Smartphones in Titanium Blue. Zwei sind zusammen von vorne und von hinten mit einem S Pen an der Seite zu sehen. Das dritte Smartphone wird von der Seite gezeigt, sodass die Kanten des Rahmens sichtbar sind.
Online Exklusiv
Nur im Samsung Online Shop erhältlich
Drei Galaxy S24 Ultra Smartphones in Titanium Green. Zwei sind zusammen von vorne und von hinten mit einem S Pen an der Seite zu sehen. Das dritte Smartphone wird von der Seite gezeigt, sodass die Kanten des Rahmens sichtbar snd.
Online Exklusiv
Nur im Samsung Online Shop erhältlich
Drei Galaxy S24 Ultra Smartphones in Titanium Orange. Zwei sind zusammen von vorne und von hinten mit einem S Pen an der Seite zu sehen. Das dritte Smartphone wird von der Seite gezeigt, sodass die Kanten des Rahmens sichtbar sind.
Online Exklusiv
Nur im Samsung Online Shop erhältlich
Von Mineralien inspiriert
Von der Schönheit der mineralischen Elemente unserer Erde inspiriert, begeistert jede Titanium-Farbe mit einer matten, geschmeidigen Oberfläche, die an polierte Edelsteine erinnert.
Schlag mit dem SPen ein neues Kapitel auf
Schlag mit dem SPen ein neues Kapitel auf
Entdecke, wie einfach und präzise du auf dem neuen, flachen Display schreiben, tippen und navigieren kannst. Das Erbe des Galaxy Note lebt weiter.
Starke Kamera. Jetzt mit AI.
Weitwinkelkamera
200 MP
Weitwinkel und2x Optische Zoom Qualität
12 MP
Ultra-Weitwinkelkamera
50 MP
5x optischer Zoom und10x Optische Zoom Qualität
10 MP
3x optischer Zoom
Selfie-Kamera
12 MP
Selfie-Kamera
200 MP Fast so detailreich wie die Wirklichkeit
200 MP Fast so detailreich wie die Wirklichkeit
Mit 200 Megapixeln und AI-Unterstützung beeindruckt das Galaxy S24 Ultra in Sachen Bildqualität – jedes Mal, wenn du auf den Auslöser drückst. Außerdem erkennt die neue ProVisual-Engine Bildobjekte und kann den Farbton verbessern, Rauschen reduzieren und Details zur Geltung bringen.
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
Unser bisher bestes Quad-Teleobjektiv
Lass dich von großen Entfernungen nicht abschrecken. Jetzt kannst du mit 2-fachem, 3-fachem, 5-fachem und sogar 10-fachem optischem Zoom oder Optical Quality Zoom immer ganz nah rankommen.,, Außerdem stabilisiert unser neuer, verbesserter Tele-OIS deine Aufnahmen, sodass sie schärfer bleiben, wenn du hereinzoomst.
Tippe, um weiter zu zoomen
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
5-facher optischer Zoom
mit 50 MP
Der hochauflösende Kamerasensor und das Teleobjektiv sorgen zusammen dafür, dass du dich über unglaublich scharfe Fotos mit 50 MP freuen kannst, selbst wenn du nah heranzoomst. Halte deine Motive mit 5-fachem Zoom fest und entdecke erstaunlich klare Details aus nächster Nähe.
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
1x, 5x
5-facher Zoom trifft auf 8K-Video
Erstmalig mit einem Galaxy Smartphone lassen sich jetzt erstaunliche 8K-Videos mit optischem 5-fach-Zoom aufnehmen und so außergewöhnliche Szenen unglaublich detailreich festhalten.
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
Digitaler Zoom bringt dich nah ran, die AI holt viel raus
Digitaler Zoom bringt dich nah ran, die AI holt viel raus
Vom großen Überblick bis zum kleinen Detail: Mit dem AI Zoom kannst du von 1-fach bis 100-fach nahtlos näher zoomen, während die AI die Details in jeder Zoomstufe optimal zur Geltung bringt.,
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
Nightography Zoom fängt auch nachts klare Details ein
Nightography Zoom fängt auch nachts klare Details ein
Mit dem Nightography Zoom bist du ganz nah dran – selbst mitten in der Nacht. Dank 1,6-mal größeren Pixeln und einem verbesserten Tele-OIS werden deine Aufnahmen hell und klar und auch entfernte Objekte erscheinen atemberaubend deutlich. ,,
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
Klare Portraits auch bei wenig Licht dank AI-Unterstützung
Ein neuer 5x-Sensor und größere Pixel sorgen dafür, dass Fotos detailreich und klar werden – von Sonnenaufgang bis Sonnenuntergang und selbst in der Nacht.,, Zusätzlich verbessern die AI-Stereo-Tiefenkarte und der ganz neue 5x-Portrait-Modus die Bildqualität, sodass du dich auf atemberaubende Portraits freuen kannst.
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
5x Nightography Zoom für Videos macht die Nacht zum Tag
Mit dem 5x-Sensor und dem verbesserten 5-fachen Nightography Zoom für Videos kannst du die Action mit unglaublichen Details einfangen. Der spezielle Image-Signal-Prozessor sorgt dafür, dass auch Videoaufnahmen bei wenig Licht klar und in ganzer Pracht erstrahlen können.
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
Einfach Größe und Position optimieren
Einfach Größe und Position optimieren
In deinem Foto ist nicht alles an der richtigen Stelle? Dann kannst du es im Nachhinein zurechtrücken. Mit den neuen AI-Bildbearbeitungsfunktionen kannst du einzelne Objekte einfach verschieben und die leeren Bereiche, die sie hinterlassen, werden automatisch aufgefüllt.
Foto-Assistant
Fotos anpassen und retuschieren mit dem Foto-Assistant
Hier drücken
Hier drücken
Zum Auswählen antippen oder zeichnen
Auswahl verschieben
Hier drücken
Foto-Assistant
Denk deine Bilder neu, indem du Personen oder Objekte neu positionierst oder Hintergründe ausfüllst.
Beherrsche die Zeit mit der Zeitlupenfunktion
Beherrsche die Zeit mit der Zeitlupenfunktion
Verwandle normale Videos in filmische Wunderwerke mit der Zeitlupenfunktion. Bei den AI-generierten Bildern zwischen den Frames kannst du durch einfaches Berühren und Halten steuern, wann der Zeitlupeneffekt gestartet und gestoppt werden soll, sogar bei Downloads.
Super HDR mit AI – von der Vorschau bis zum Posting
Super HDR mit AI – von der Vorschau bis zum Posting
Mit der neuen Super HDR-Funktion siehst du schon in der Kamera-Vorschau, wie brillant deine Fotos und Videos mit Super HDR werden, noch bevor du auf den Auslöser tippst. Und das gilt sogar für die Kamera-Apps von Social Media-Seiten.
Aufgenommen mit dem Galaxy S24 Ultra #withGalaxy
Einkreisen, suchen, finden. Es kann so einfach sein.
Circle to Search mit Google ist eine moderne Art zu finden, was du suchst. Kreise ein Objekt einfach mit dem S Pen oder dem Finger ein und erhalte sofort die passenden Google Suchergebnisse.
Hast du etwas in deiner Lieblingsserie entdeckt, das du unbedingt haben musst? Dank Circle to Search mit Google kein Problem: Einfach einkreisen und du erhältst sofort alle Informationen, die du brauchst – und das ohne eine weitere App zu öffnen.
Circle to Search mit Google
Einkreisen. Suchen. Finden
HomeTaste lange gedrückt halten
Zum Suchen umkreisen oder antippen.
Circle to Search mit Google
Alles suchen, ohne die App wechseln zu müssen.
Einfach verständigen mit der Live-Übersetzung
Dank der Live-Übersetzung kannst du dir deine Telefongespräche und Chats jetzt in Echtzeit übersetzen lassen – zum Beispiel, wenn du im Urlaub bist und die Sprache nicht verstehst. Du kannst sogar in deiner Sprache antworten, denn auch dies wird automatisch übersetzt.
Live-Übersetzung
Ohne Vorbereitung in einer Fremdsprache kommunizieren
Zum Anrufen tippen
Tippen zum Übersetzen
Live-Übersetzung
Du hast deine Geldbörse im Urlaub im Taxi liegen lassen! Wie unterhältst du dich mit einem Taxifahrer, der deine Sprache nicht spricht?
Immer der richtige Ton mit dem Chat-Assistent
Lasse dich von der AI unterstützen, wenn du Textnachrichten mit dem Chat-Assistent schreibst und finde immer den richtigen Tonfall für jede Gelegenheit – von professionell höflich bis freundschaftlich lässig.
Chat-Assistent
Textübersetzungen in Echtzeit auf Knopfdruck
Hier drücken
Hier drücken
Hier drücken
Hier drücken
Chat-Assistent
Optimiere die Kommunikation, indem du Chats und Textnachrichten übersetzen lässt.
Mit AI deine Notizen im Handumdrehen zusammenfassen
Wenn du einen längeren Text geschrieben hast, kann dir der Notizen-Assistent dabei helfen, schnell zum Punkt zu kommen. Die AI fasst Textinhalte übersichtlich zusammen, sodass jeder schnell versteht, worauf es ankommt.
Und wenn du nach einer alten Notiz suchst, helfen dir die neuen Deckblätter, auf denen automatisch eine kurze Zusammenfassung der Inhalte abgebildet wird. So bleibst du immer gut organisiert und behältst die Übersicht.
Notizen-Assistent
Intelligenter Notizen erstellen
Hier drücken
Hier drücken
Hier drücken
Hier drücken
Notizen-Assistent
Automatisch formatieren hilft dir, aus Notizen übersichtliche Stichpunkte zu machen.
Realitätsnahes Gameplay in deiner Hand
Arena Breakout-Logo. Raytracing eingeschaltet. Raytracing ausgeschaltet. Ein Vorher-Nachher-Vergleich auf dem Display des Galaxy S24 Ultra zeigt Raytracing-Effekte in einem Gameplay-Snapshot von Arena Breakout. Raytracing verstärkt die Reflexionen auf Oberflächen.
Sichere dir den Sieg mit dem neuen Snapdragon® 8 Gen 3 for Galaxy Prozessor, der dir die Leistung bietet, die du für dein Gameplay brauchst. Erlebe atemberaubende Grafik-Effekte in Echtzeit – mit Raytracing für hyperrealistische Schatten und Reflexionen.
Damit du cool bleiben kannst, wenn es heiß hergeht, haben wir beim Galaxy S24 Ultra die Größe der Vapor Chamber verdoppelt. So wird die Hitze besser abgeführt und du kannst mit flüssiger Grafik weiterspielen.
- NPU
41 % mehr Leistung mit AI
- GPU
30 % stärkere Grafik-Performance
- CPU
20 % schnellere und energieeffizientere Rechenleistung
Ausdauernder Akku zum Spielen und Weiterspielen
Mit einer großen Kapazität und höherer Energieeffizienz gibt dir der Akku des Galaxy S24 Ultra zusätzliche Lebensdauer, wenn es darauf ankommt – zum Beispiel beim anstehenden Boss Battle, auf das du dich vorbereitet hast.,
- Videos anschauen bis zu
30 Stunden
- Musik hören bis zu
95 Stunden
Unser hellstes adaptives Smartphone-Display mit 2.600 Nits punktueller Spitzenhelligkeit
Das immersive Display hat zwei neue Vorteile: Das Corning® Gorilla® Armor Glass kann Reflexionen reduzieren, sodass deine Inhalte auch bei direkter Sonneneinstrahlung klar zu erkennen sind. Und der optimierte Vision Booster verstärkt Kontraste und lässt Farben erstrahlen – für ein außergewöhnliches Erlebnis.
Ein Video mit klar zu erkennenden Inhalten wird in einem Vorher-Nachher-Vergleich auf dem Display eines Galaxy S24 Ultra angezeigt. Das Smartphone ist draußen bei Tageslicht zu sehen und auf dem Display wird ein Video abgespielt.
Warum von iOS zu Samsung Galaxy wechseln?
Problemlos von iOS wechseln
Mit Smart Switch kannst du auch beim Wechsel von iOS deine Fotos, Videos, Kontakte, Kalender und Apps behalten.,,
Gehe zu Smart Switch
Mit AI ganz vorne dabei
Wechsele zu Samsung Galaxy und entdecke, wie du mit Galaxy AI deinen Alltag einfacher gestalten kannst. Alles in einem Gerät, alles in deiner Hand.
Geräte ohne Grenzen
Wechsele zu Samsung Galaxy und erlebe, wie nahtlos du mit vielen verbundenen Geräten arbeiten, spielen und fit bleiben kannst.
Gehe zu Samsung Ecosystem
Try Galaxy auf deinem Smartphone
Hast du bereits das neueste Galaxy Programm entdeckt? Möchtest du das jetzt machen? Auf deinem Smartphone! Starte dein Erlebnis mit diesem Download.
Hast du bereits das neueste Galaxy Programm ausprobiert? Möchtest du das jetzt machen? Auf deinem Smartphone! Scanne einfach den QR Code und lade es herunter, um zu starten.
Gesichert durch Samsung Knox
Mit unserem unübertroffenen mobilen Schutz, verstärkt durch die unüberwindbar sicheren Knox Vault und Knox Matrix – Samsungs Vision für geräteübergreifende Sicherheit – muss man sich keine Sorgen machen.
Veränderung beginnt mit kleinen Schritten
Wir gehen Schritt für Schritt auf eine nachhaltige Zukunft zu. Auch mit kleinen Veränderungen können wir einen großen Unterschied machen. Denn es fühlt sich gut an, Gutes zu tun.
Eintauschen und sparen
Wenn du ein Galaxy S24 Ultra kaufst und dabei dein altes Smartphone eintauschst, kannst du bares Geld sparen.
Bis zu 1 TB Speicher
Finde die richtige Speichergröße für dich, um all deine Fotos und Erinnerungen jederzeit bei dir zu behalten.
Zubehör für eine neue Ära
Mehr entdecken
Häufig gestellte Fragen
-
Das Galaxy S24 Ultra ist in den Farben Titanium Gray, Titanium Black, Titanium Violet und Titanium Yellow verfügbar. Zusätzlich sind die Farben Titanium Blue, Titanium Green und Titanium Orange exklusiv im Samsung Online Store erhältlich.
Gehe zu den Farben
-
Von Rahmen aus Titan bis hin zu vielen AI-Funktionen übertrifft das Galaxy S24 Ultra das Vorgängermodell. Das Galaxy S24 Ultra verfügt über ein Quad-Teleobjektiv, das klarere Fotos mit höherer Auflösung aufnehmen kann als das Galaxy S23 Ultra. Die 50-Megapixel-Weitwinkelkamera ist jetzt mit optischem 5fach-Zoom ausgestattet. Selbst bei 5-fachem Zoom kannst du mit Nightography brillante Fotos bei schlechten Lichtverhältnissen aufnehmen. Die neue ProVisual-Engine unterstützt und verbessert Fotos mit hoher Auflösung, Super HDR, AI Zoom, Nightography und die Bildbearbeitung mit Photo Assist. Das Display des Galaxy S24 Ultra stellt deine Inhalte aufgrund der höheren Spitzenhelligkeit von 2.600 Nits und der neuen Corning® Gorilla® Armor klarer und besser sichtbar das als das Galaxy S23 Ultra.
-
Das Galaxy S24 Ultra ist das erste Galaxy Smartphone mit einem Quad-Teleobjektiv. Damit kannst du klarere und schärfere Fotos in den optischen Zoombereichen aufnehmen., Selbst bei Aufnahmen mit digitalem Zoom kannst du dank AI Zoom, das auf der neuen ProVisual-Engine basiert, detailreichere Fotos und Videos als zuvor aufnehmen. Zusätzlich verbessert die leistungsstarke ProVisual-Engine deine Fotos mit hoher Auflösung, Nightography und Super HDR.,
Gehe zur Kamera
-
Mit 17,25 cm / 6,8 Zoll ist die Bildschirmdiagonale des Galaxy S24 Ultra 1,52 cm / 0,6 Zoll größer als die des Galaxy S24 (15,64 cm / 6,2 Zoll) und 0,25 cm / 0,1 Zoll größer als die des Galaxy S24+ (16,91 cm / 6,7 Zoll).
Gehe zum Design
-
Ja, das Galaxy S24 Ultra ist mit einem integrierten S Pen ausgestattet.
Gehe zum S Pen
-
Der Akku des Galaxy S24 Ultra hat mit 5.000 mAh (typisch) eine große Kapazität, mit der du bis zu 30 Stunden lang Videos ansehen oder bis zu 95 Stunden lang Musik abspielen kannst.,,
Gehe zum Akku
-
Das Galaxy S24 Ultra verfügt über einen leistungsstarken Prozessor, ein effizientes System zur Wärmeableitung, ein beeindruckendes Display und einen ausdauernden Akku, mit dem du lange spielen kannst. Außerdem kannst du dich auf fortschrittliche Gaming-Tools wie Raytracing freuen, das realistische Schatten und Reflexionen in deine Games bringt.
Gehe zu Leistung
-
Das Galaxy S24 Ultra verwendet Galaxy AI in vielen Anwendungen. Zum Beispiel kann die Kamera mit AI Zoom bessere Zoom-Fotos aufnehmen. Mit Foto-Assistent kannst du einzelne Objekte in Fotos vergrößern, verkleinern, löschen oder verschieben, wobei die AI die Hintergründe auffüllt. Und dank der Live-Übersetzung kannst du dir Telefongespräche in Echtzeit in andere Sprachen übersetzen lassen.
Gehe zu Galaxy AI
-
Ja, du kannst deine Daten mit Smart Switch ganz einfach von iOS oder einem anderen Android-Gerät auf dein neues Galaxy Gerät übertragen.,,
Gehe zu Smart Switch
-
Das Galaxy S24 Ultra verfügt über einen leistungsstärkeren Prozessor, wobei die NPU-Leistung um 41 %, die GPU um 30 % und die CPU um 20 % im Vergleich zum Galaxy S23 Ultra verbessert wurde. Die Vapor Chamber des Galaxy S24 Ultra ist 92 % größer als beim Vorgänger und sorgt so für eine bessere Wärmeableitung. Mit 2.600 Nits punktueller Helligkeit hat das Galaxy S24 Ultra das bisher hellste adaptive Display eines Galaxy Smartphones. Außerdem ist das Display mit Corning® Gorilla® Armor weniger reflektierend als beim Galaxy S23 Ultra. Schließlich hat das Galaxy S24 Ultra als erstes Galaxy Smartphone eine 200-Megapixel-Weitwinkelkamera mit ProVisual-Engine zur AI-Unterstützung.
Galaxy S24 | S24+
Mehr erfahren
Finde heraus, wie du dein Galaxy Ultra noch smarter erhalten kannst
Jetzt kaufen Jetzt reservieren Jetzt kaufen Händlersuche
Die Welt steht dir offen mit Samsung Galaxy
Mehr entdecken
In 360° ansehen
Drehe eine Runde
* Exklusive Farben sind nur im Samsung Online Shop erhältlich.
Entdecke faszinierende Technik für Unternehmen
Weiter zu Samsung Business
* Alle Spezifikationen und Beschreibungen auf dieser Seite können von den tatsächlichen Spezifikationen und Beschreibungen für das Produkt abweichen. Samsung behält sich das Recht vor, dieses Dokument und die darin beschriebenen Produkte jederzeit und ohne Angabe von Gründen zu ändern. Alle Funktionalitäten, Eigenschaften, Spezifikationen, Benutzeroberflächen und andere Produktinformationen in diesem Dokument, eingeschlossen aber nicht beschränkt auf Produktvorteile, Design, Preis, Komponenten, Leistung, Verfügbarkeit und Produkteigenschaften können jederzeit ohne Angabe von Gründen geändert werden. Die Bildschirminhalte sind simuliert und nur zu Demonstrationszwecken erstellt.
* Bestimmte AI-Funktionen setzen die Anmeldung in einem Samsung oder Google Account voraus.
* Samsung gibt keine Versprechungen, Zusicherungen oder Garantien in Bezug auf die Genauigkeit, Vollständigkeit oder Zuverlässigkeit der von den AI-Funktionen bereitgestellten Ergebnisse ab.
* Galaxy AI Funktionen werden auf unterstützenden Samsung Galaxy Geräten bis mindestens Ende 2025 kostenlos zur Verfügung gestellt.
* Bilder zu illustrativen Zwecken simuliert. Sequenz simuliert und gekürzt. Die tatsächliche Benutzeroberfläche kann abweichen.
- Die Sequenzen sind simuliert und gekürzt. Die Ergebnisse dienen nur zur Veranschaulichung und können je nach visuellen Übereinstimmungen variieren. Erfordert eine Internetverbindung. Benutzer*innen müssen möglicherweise Android auf die neueste Version aktualisieren. Die Produktfunktionalität kann von deinen App- und Geräteeinstellungen abhängen. Einige Funktionen sind möglicherweise nicht mit bestimmten Apps kompatibel. Die Verfügbarkeit des Dienstes variiert je nach Land und Sprache. Die Genauigkeit der Ergebnisse ist nicht garantiert.
- Die Live-Übersetzung erfordert die Anmeldung im Samsung Account. Live-Übersetzung ist nur in der vorinstallierten Samsung Telefon App verfügbar. Für bestimmte Sprachen kann der Download von Sprachpaketen erforderlich sein. Die Verfügbarkeit des Dienstes kann je nach Sprache variieren. Die Genauigkeit der Ergebnisse ist nicht garantiert.
- Der Notizen-Assistent erfordert eine Internetverbindung und die Anmeldung im Samsung Account. Es gilt eine Zeichenbeschränkung. Die Verfügbarkeit des Dienstes kann je nach Sprache variieren. Die Genauigkeit der Ergebnisse ist nicht garantiert.
- Die generative Bearbeitung erfordert eine Internetverbindung und die Anmeldung im Samsung Account. Die Bearbeitung führt zu einem verkleinerten Foto mit bis zu 12 MP. Beim Speichern wird ein sichtbares Wasserzeichen über das Bild gelegt, um anzuzeigen, dass das Bild mit AI generiert wurde. Die Genauigkeit der Ergebnisse ist nicht garantiert.
- Die Bildschirmdiagonale des Galaxy S24 Ultra beträgt 17,25 cm / 6,8 Zoll im vollen Rechteck und 17,22 cm / 6,8 Zoll unter Berücksichtigung der abgerundeten Ecken. Der tatsächlich nutzbare Bildschirmbereich ist durch die abgerundeten Ecken sowie den Bereich der Frontkamera verringert.
- Titan wird nur im Rahmen des Gerätes verwendet. Der Rahmen schließt nicht die Lautstärke- und Seitentasten ein.
- Im Vergleich zum Galaxy S23 Ultra.
- Die Verfügbarkeit der Farben kann je nach Land oder Mobilfunkanbieter variieren.
- Der optische Qualitätszoom wird durch den Adaptive Pixel Sensor ermöglicht.
- AI Zoom wird bei den Entfernungen zwischen den digitalen Zoomstufen angewendet. Die Genauigkeit der Ergebnisse ist nicht garantiert.
- Die Ergebnisse können je nach Lichtverhältnissen und/oder Aufnahmebedingungen variieren, einschließlich mehrerer Motive, unscharfer oder sich bewegender Motive.
- 3-facher Zoom und 5-facher Zoom sind optischer Zoom. 2-facher Zoom und 10-facher Zoom sind Crop Zoom.
- 2-facher Zoom muss in den Einstellungen der Camera Assistant-App aktiviert werden. Die Camera Assistant-App kann aus dem Galaxy Store heruntergeladen werden.
- 8K-Videos können nur auf Geräten abgespielt werden, die eine 8K-Videoauflösung unterstützen.
- 100-facher Space Zoom beinhaltet 10-fachen Crop Zoom und 100-fachen digitalen Zoom mit Super Resolution-Technologie. Bei mehr als 10-fachem Zoom verringert sich die Bildquälität.
- Einige Anwendungen unterstützen Super HDR möglicherweise nicht.
- Die Funktion zum Vorschlagen von Tonfällen mit Chat-Assistent erfordert eine Netzwerkverbindung und eine Anmeldung im Samsung Account. Der Text muss eine Mindestlänge erfüllen, damit die Funktion aktiviert wird. Die Verfügbarkeit des Dienstes kann je nach Sprache variieren. Die Genauigkeit der Ergebnisse ist nicht garantiert.
- Arena Breakout © Proxima Beta Pte. Limitiert. Alle Rechte vorbehalten. Alle anderen Marken, Logos und Urheberrechte sind Eigentum ihrer jeweiligen Inhaber. In ausgewählten Ländern im Samsung Galaxy Store und anderen App-Stores erhältlich.
- Snapdragon ist ein Produkt von Qualcomm Technologies, Inc. und/oder seinen Tochtergesellschaften.
- Die auf dem Galaxy S24 Ultra installierte Vapor Chamber ist 92 % größer als die des Galaxy S23 Ultra.
- Die Angaben zu den Leistungssteigerungen der Prozessoren beziehen sich auf einen Vergleich mit dem Galaxy S23 Ultra. Die tatsächliche Leistung kann je nach Nutzungsumgebung, Bedingungen, vorinstallierter Software und Anwendungen variieren.
- Die tatsächliche Akkulaufzeit hängt von der Netzwerkumgebung, den verwendeten Funktionen und Apps, der Häufigkeit von Anrufen und Nachrichten, der Anzahl der Ladevorgänge und vielen anderen Faktoren ab. Geschätzt anhand des durchschnittlichen Nutzungsprofils, das von UX Connect Research erstellt wurde. Unabhängig bewertet von UX Connect Research im Zeitraum 25.11.2023 bis 15.12.2023 in den USA und Großbritannien mit Vorabversionen von SM-S921, SM-S926 und SM-S928 unter Standardeinstellung und unter Verwendung von LTE- und 5G-Sub6-Netzwerken. NICHT im 5G-mmWave-Netzwerk getestet.
- Basierend auf internen Labortestbedingungen von Samsung mit einer Vorabversion des angegebenen Modells, das über Bluetooth mit dem Kopfhörer verbunden ist, unter Standardeinstellungen mit LTE. Geschätzt anhand der Akkukapazität und des gemessenen Stromverbrauchs gegenüber dem Akkuverbrauch bei Videowiedergabe (Videodateiauflösung 720p, auf dem Gerät gespeichert) und Audiowiedergabe (MP3-Datei, 192 kbit/s, gespeichert auf dem Gerät, mit ausgeschaltetem LCD-Display). Die tatsächlichen Video- und Audiowiedergabezeiten variieren je nach Netzwerkverbindung, Einstellungen, Dateiformat, Bildschirmhelligkeit, Batteriezustand und vielen anderen Faktoren.
- Das Dynamic AMOLED-Display auf dem Galaxy S24 Ultra wurde vom VDE Deutschland für 100 % mobiles Farbvolumen im DCI-P3-Farbbereich zertifiziert, was bedeutet, dass deine Bilder nicht verwaschen werden und du unabhängig von den unterschiedlichen Helligkeitsstufen unglaublich lebendige Farben erhältst. Das Display kann eine Spitzenhelligkeit von bis zu 2.600 Nits erreichen und so den Kontrast zwischen dunklen und hellen Aspekten digitaler Inhalte für eine brillantere Bildqualität verbessern, mit einem Kontrastverhältnis von 5.000.000:1, um dein mobiles Erlebnis noch intensiver zu gestalten.
- Kabelgebundene Übertragungen von Android™ -Geräten erfordern, dass auf dem Empfangsgerät Android™ 4.3 oder höher und auf dem sendenden Gerät Android 4.3™ oder höher installiert ist. Übertragungen können ohne Kabel über eine drahtlose Verbindung abgeschlossen werden. Für drahtlose Verbindungen muss das Empfangsgerät über Android™ 4.0 oder höher und das sendende Gerät über Android™ 4.0 oder höher verfügen. Öffne Smart Switch Mobile in den „Einstellungen“ auf dem empfangenden Galaxy-Gerät oder lade die Smart Switch-App aus dem Galaxy Store herunter. Die für die Übertragung verfügbaren Daten und Inhalte können je nach Übertragungsmethode variieren.
- Kabelgebundene Übertragungen von iOS erfordern, dass auf dem Empfangsgerät Android™ 4.3 oder höher und auf dem sendenden Gerät iOS 5 oder höher installiert ist. Übertragungen können ohne Kabel über eine drahtlose Verbindung oder iCloud abgeschlossen werden. Für drahtlose Verbindungen muss das Empfangsgerät über Android™ 4.0 oder höher verfügen und auf dem sendenden Gerät muss iOS 12 oder höher installiert sein. Für iCloud-Übertragungen muss das Empfangsgerät über Android™ 4.0 oder höher und das sendende über Gerät iOS 5 oder höher. Öffne Smart Switch Mobile in den „Einstellungen“ auf dem empfangenden Galaxy Gerät oder lade die Smart Switch-App aus dem Galaxy Store herunter. Für drahtlose Übertragungen lade Smart Switch für iOS aus dem App Store auf dein iPhone oder iPad herunter. Die für die Übertragung verfügbaren Daten und Inhalte können je nach Übertragungsmethode variieren.
- Es wird empfohlen, eine Kabelverbindung zu nutzen, wenn verschiedenen Datensätze gleichzeitig übertragen werden.
- Die Galaxy Buds2 Pro, die Galaxy Watch6 Classic und das Galaxy Tab S9 sind separat erhältlich.
- Verfügbar auf Geräten mit Android OS 10 (Q OS) oder höher und One UI 2.1 oder höher. Zu den unterstützten PCs gehören Samsung Notebooks und Galaxy Books, einschließlich Qualcomm-basierter PCs, die 2020 oder später veröffentlicht wurden, und Windows-PCs anderer Hersteller mit Windows 10 Version 2004 oder höher, die über Intel-Bluetooth-Treiber der Version 22.50.02 oder höher und Intel-Wi-Fi-Treiber der Version 22.50.07 oder höher verfügen.
- Das Galaxy Tab S9 ist separat erhältlich.
- Wenn beim Teilen von Dateien QR-Codes oder Kontakte verwendet werden, können bis zu 1.000 Dateien gleichzeitig übertragen werden. Einzelne Dateien dürfen nicht größer als 3 GB groß sein, und insgesamt können bis zu 5 GB Daten pro Tag übertragen werden. Links laufen nach zwei Tagen ab. Für das Gerät des Absenders ist ein Samsung Account erforderlich, und sowohl das Sender- als auch das Empfängergerät benötigen eine Internetverbindung.
- Das Galaxy Tab S9 und das Galaxy Book4 sind separat erhältlich.
- Knox Matrix wird von Galaxy Smartphones und Galaxy Tablets mit One UI 6.0 oder höher unterstützt. Die Verfügbarkeit kann je nach Region variieren.
- Die Teilnahmebedingungen gelten. Die Verfügbarkeit kann je nach Mobilfunkanbieter, Land oder Region variieren. Informationen zu teilnehmenden Geräten findest auf der Trade-in-Seite.
- Speicheroptionen und Verfügbarkeit können je nach Mobilfunkanbieter, Land oder Region variieren. Die tatsächliche Speicherverfügbarkeit kann je nach vorinstallierter Software variieren.
- Zubehör ist separat erhältlich.
- Angabe der Bildschirmdiagonalen im vollen Rechteck und ohne Berücksichtigung der abgerundeten Ecken. Der tatsächlich nutzbare Bildschirmbereich ist durch die abgerundeten Ecken sowie den Bereich der Frontkamera verringert.
- Die mAh-Angaben beziehen sich auf den typischen Wert der Akkukapazität, der unter Laborbedingungen ermittelt wurde. Die nach der einschlägigen Norm IEC 61960 ermittelte (Mindest-) Kapazität beläuft sich auf einen geringeren Wert. Die tatsächliche Akkulaufzeit kann je nach Netzwerkumgebung, Nutzerverhalten und anderen Faktoren variieren.
- Das Galaxy S24, S24+ und S24 Ultra sind als IP68 eingestuft. Basierend auf den Testbedingungen für das bis zu 30-minütige Eintauchen in Süßwasser bis zu 1,50m tief. Nicht empfohlen für den Gebrauch am Strand oder am Pool. Die Wasser- und Staubfestigkeit des Geräts ist nicht dauerhaft und kann mit der Zeit durch normale Abnutzung abnehmen.
- Die Zeitlupenfunktion ist nur auf dem vorinstallierten Samsung Video Player und der Samsung Gallery-App verfügbar. Die Verfügbarkeit des Dienstes kann je nach Videospezifikation variieren.
- Für die Übersetzungsfunktion in Chat Assist sind Netzwerkverbindung, eine Anmeldung auf deinem Samsung Account und das Herunterladen des jeweiligen Sprachpakets aus dem Galaxy store erforderlich. Muss der erforderlichen Länge entsprechen, damit die Funktion aktiviert werden kann. Verfügbarkeit kann je nach Land, Region oder Sprache variieren. Einige Chat-Anwendungen unterstützen diese Funktion möglicherweise nicht. Die Genauigkeit der Ergebnisse wird nicht garantiert.
')); } } }; 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(); }, 300); 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('loadeddata', function(){this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videoList[index + 1].setAttribute('tabindex', 0);els.videoList[index + 1].focus();els.videoList[index + 1].addEventListener('focusout', function () {let isTabindex = els.videoList[index + 1].getAttribute('tabindex');if (!!isTabindex && isTabindex == 0) {els.videoList[index + 1].removeAttribute('tabindex');}});}, 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');if (this.video.duration > 3) {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 () {if (this.video.duration > 3) {setTagging.play(this.controller);}},endCallback: function () {if (!!this.wrap.tooltip) {utils.offAccessibility(this.wrap.tooltip);}if (this.video.duration > 3) {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');}}}));}};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('loadeddata', function(){this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videoList[index + 1].setAttribute('tabindex', 0);els.videoList[index + 1].focus();els.videoList[index + 1].addEventListener('focusout', function () {let isTabindex = els.videoList[index + 1].getAttribute('tabindex');if (!!isTabindex && isTabindex == 0) {els.videoList[index + 1].removeAttribute('tabindex');}});}, 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');if (this.video.duration > 3) {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 () {if (this.video.duration > 3) {setTagging.play(this.controller);}},endCallback: function () {if (!!this.wrap.tooltip) {utils.offAccessibility(this.wrap.tooltip);}if (this.video.duration > 3) {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');}}}));}};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');};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('loadeddata', function(){this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videoList[index + 1].setAttribute('tabindex', 0);els.videoList[index + 1].focus();els.videoList[index + 1].addEventListener('focusout', function () {let isTabindex = els.videoList[index + 1].getAttribute('tabindex');if (!!isTabindex && isTabindex == 0) {els.videoList[index + 1].removeAttribute('tabindex');}});}, 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';}}}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');if (this.video.duration > 3) {if (this.video.muted) {this.video.muted = false;}this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);}},pauseCallback: function () {if (this.video.duration > 3) {setTagging.play(this.controller);}},endCallback: function () {if (!!this.wrap.tooltip) {utils.offAccessibility(this.wrap.tooltip);}if (this.video.duration > 3) {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');}}}));}};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.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(), isPaused: 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'); // tutorial els.tutorialOpenCtas = els.section.querySelectorAll('.js-tutorial-popup'); }; 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].querySelector('.highlights-overview__navigation-button-image img'); els.navigationBtn[j].img.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.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'); if (isSlide.querySelector('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 () { 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 () { 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'); }, resetCallback: function () { setTimeout(() => { els.progressWrap[i].classList.remove(statusClass.progress.pause); els.progressWrap[i].classList.remove(statusClass.progress.active); }, 100); } }); } else { status.imageSlideIndex = i; els.progressBar[i].style['animation-duration'] = '3s'; } } }, 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); } resize.add(eventList.onResize); }; const swiperEvent = { slideChange: () => { 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) { if ((currentIndex != status.imageSlideIndex)) { objs[`video_${currentIndex}`].video.pause(); objs[`video_${currentIndex}`].video.currentTime = 0; } objs[`video_${currentIndex}`].video.removeEventListener('canplay', objs[`video_${currentIndex}`].video.play); if(!!utils.isLowNetwork() || !!status.isPaused) { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); els.progressWrap[activeIndex].classList.remove(statusClass.progress.pause); } else { if (activeIndex != status.imageSlideIndex) { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); if(!!utils.isLowNetwork()) return; 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(); }); } } else { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); els.progressWrap[activeIndex].classList.remove(statusClass.progress.pause); els.progressWrap[activeIndex].classList.add(statusClass.progress.active); } } 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; }, onClickArrow: (e) => { status.arrowTimeout = null; status.arrowStyleTimeout = null; status.accessibilityTimeout = 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); } 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) { status.isPaused = false; isVideo.play(); } else { status.isPaused = true; 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)) { els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); } else { setTimeout(() => { 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) } eventList.animationEndDestroy(); accessibility.setTitle(); }, clickFeatureCta: (e) => { e.preventDefault(); 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) { tutorialPopup.show(); 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.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('loadeddata', function(){this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videoList[index + 1].setAttribute('tabindex', 0);els.videoList[index + 1].focus();els.videoList[index + 1].addEventListener('focusout', function () {let isTabindex = els.videoList[index + 1].getAttribute('tabindex');if (!!isTabindex && isTabindex == 0) {els.videoList[index + 1].removeAttribute('tabindex');}});}, 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');if (this.video.duration > 3) {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 () {if (this.video.duration > 3) {setTagging.play(this.controller);}},endCallback: function () {if (!!this.wrap.tooltip) {utils.offAccessibility(this.wrap.tooltip);}if (this.video.duration > 3) {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');}}}));}};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('loadeddata', function(){this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videoList[index + 1].setAttribute('tabindex', 0);els.videoList[index + 1].focus();els.videoList[index + 1].addEventListener('focusout', function () {let isTabindex = els.videoList[index + 1].getAttribute('tabindex');if (!!isTabindex && isTabindex == 0) {els.videoList[index + 1].removeAttribute('tabindex');}});}, 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') {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');}}}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');if (this.video.duration > 3) {this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);}},pauseCallback: function () {if (this.video.duration > 3) {setTagging.play(this.controller);}},endCallback: function () {if (!!this.wrap.tooltip) {utils.offAccessibility(this.wrap.tooltip);}if (this.video.duration > 3) {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');}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.innerWrap = opts.layerPopup.querySelector('.common-tutorial__inner-wrap');els.textWrap = opts.layerPopup.querySelector('.common-tutorial__text');els.closeCtas = opts.layerPopup.querySelectorAll('.common-tutorial__close-cta');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);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);}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);},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]);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;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);}},deactive: function(els) {els.videoContent.classList.remove(statusClass.isInfoOpen, statusClass.isInfoVisible, statusClass.isTutorialOpend);this.offAccessibility(els);if (resize.checkResolution().indexOf('mobile') > -1 && !status.isIos) {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);}utils.onPopupAccessibility(els.introVideoSection);if (!status.isGlobal) {utils.onPopupAccessibility(commonEls.flotingNavi);} else {utils.onPopupAccessibility(commonEls.globalSubNav);}},offAccessibility: function(els) {if (resize.checkResolution().indexOf('mobile') > -1) {utils.offPopupAccessibility(els.textWrap);}utils.offPopupAccessibility(els.introVideoSection);if (!status.isGlobal) {utils.offPopupAccessibility(commonEls.flotingNavi);} else {utils.offPopupAccessibility(commonEls.globalSubNav);}}},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('loadeddata', function(){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 () {els.introCta.parentElement.classList.add(statusClass.isVisible);});}},playOverview: function() {if (status.overview.paused) {status.overview.video.play();status.overview.paused = false;}},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.focus();els.layerPopup.targetOpener.blur();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.focus();opts.layerPopup.overviewCta.blur();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) {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]);}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]);}},onAccessibility: function(els) {if (status.isGlobal) {this.onAccessibilityGlobal(els);} else {this.onAccessibilityDotom(els);}},offAccessibility: function(els) {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();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) {document.body.prepend(els.layerPopup);} else {document.querySelector('#contents').prepend(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.popup.playOverview();eventList.tutorial.reset(els);els.introVideo.pause();eventList.popup.setSubnavi(opts);eventList.popup.focusHandler(opts, els);}}});};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); }, 100); } }, 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.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();})();});