Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (2024)

Galaxy S24 | S24+

  • SPECS
  • SUPPORT
  • REVIEWS

Buy now

  • Highlights
  • Compare
  • Accessories
  • SPECS
  • SUPPORT
  • REVIEWS
Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (1)

Buy now Reserve now Pre-order now Where to buy

Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (2)

Galaxy AI is here

Welcome to the era of mobile AI. With Galaxy S24|S24+ in your hands, you can unleash whole new levels of creativity, productivity and possibility — starting with the most important device in your life. Your smartphone.

Epic, just like that.

Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (3)

A blog page is open in a web browser app. Text on the blog page is circled: Tornado Potato. Search results for tornado potato appear in a popup over the app. The popup is dragged upward into a full screen of Google search results.

Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (4)

A phone call is translated in real time. The dialogue is shown on screen as a text conversation in two languages.

Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (5)

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

Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (6)

A transcript of a voice recording is shown with dialogue separated by speaker. When the clip is played, the words are highlighted in sync with the audio. Next, an outlined summary of the voice recording is produced.

Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (7)

A photo is being edited. The subject is selected, then resized and moved to another location in the picture. Then, missing areas are filled in.

Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (8)

A text message conversation is shown in a foreign language. A popup bubble says, “tap to translate.” When tapped, the bubble turns into a bar with drop-down input and output language menu. Each message bubble now shows both the original message and its translation.

Circle to Search

Jump to Circle to Search

Live Translate

Jump to Live Translate

Interpreter

Jump to Interpreter

Transcript Assist

Jump to Transcript Assist

Photo Assist

Jump to Photo Assist

Chat Assist

Jump to Chat Assist

  • Circle to Search

  • Live Translate

  • Interpreter

  • Transcript Assist

  • Photo Assist

  • Chat Assist

Try Galaxy on your phone Scan this QR code or visit trygalaxy.com

Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (9)

Overall

"Bigger batteries, brighter screens, and smarter AI"

CNET

Galaxy AI

"The new era of AI-enhanced smartphones"

GQ

Galaxy AI

"Galaxy AI actually feels like the future of phones"

Inverse

    Embrace every curve

    Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (10)

    Extreme close-ups of the corners of Galaxy S24 Plus. The device turns slowly. Next, a close up shot starts with the side keys and rotates to the rear panel. Next, the device seen in full from the rear.

    Easy to grip. Satisfying to hold. With their unified design and satin finish, Galaxy S24 and S24+ feel as smooth as they look.

    Big, bigger and faster

    They're the upgrades you've waited for. More screen. More battery. More processing power. There's so much more to love about Galaxy S24 and S24+. Especially now that Galaxy S24+ comes with the highest screen resolution on a Galaxy device: QHD+.

    Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (11)

    Pick your epic

    Both of these devices stepped up their game. Now see how Galaxy S24 and S24+ stack up to one another.

    Galaxy S24 Galaxy S24+

    Size Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (12) 6.2" Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (13) 6.7"

    Resolution Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (14) FHD+ Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (15) QHD+

    Battery (typical) Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (16) 4000mAh Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (17) 4900mAh

    Memory Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (18) 8GB Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (19) 12GB

    Ultra Wide Band - not available Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (20) UWB

    Mineral-inspired colors

    Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (21)

    Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (22)

    Available only on Samsung.com

      Cobalt Violet Amber Yellow Onyx Black Marble Gray Jade Green Sapphire Blue Sandstone Orange

      Two Galaxy S24 Series devices in Cobalt Violet. One stands upright and is seen from the rear. The other phone is seen from the side to show the frame's edges.

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (23)

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (24)

      Two Galaxy S24 Series devices in Amber Yellow. One stands upright and is seen from the rear. The other phone is seen from the side to show the frame's edges.

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (25)

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (26)

      Two Galaxy S24 Series devices in Onyx Black. One stands upright and is seen from the rear. The other phone is seen from the side to show the frame's edges.

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (27)

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (28)

      Two Galaxy S24 Series devices in Jade Green. One stands upright and is seen from the rear. The other phone is seen from the side to show the frame's edges.

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (31)

      Online Exclusive

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (32)

      Available only on Samsung.com

      Two Galaxy S24 Series devices in Sapphire Blue. One stands upright and is seen from the rear. The other phone is seen from the side to show the frame's edges.

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (33)

      Online Exclusive

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (34)

      Available only on Samsung.com

      Two Galaxy S24 Series devices in Sandstone Orange. One stands upright and is seen from the rear. The other phone is seen from the side to show the frame's edges.

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (35)

      Online Exclusive

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (36)

      Available only on Samsung.com

      Fortified with Armor Aluminum

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (37)

      This space-grade aluminum ensures your device isn't just durable, but ready for adventure. Lighter than stainless steel, the new and improved Armor Aluminum keeps you protected. And with IP68 dust and water resistance, you're not sweating anything.

      Dig into our mineral-inspired story

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (38)

      Inspired by Earth's most precious minerals, these striking colors reveal the power of nature. Each elemental color — Cobalt Violet, Amber Yellow, Onyx Black and Marble Gray — makes a rock-solid statement.

      Galaxy AI

      Power the detail with ProVisual engine

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (39)

      Captured by Galaxy S24+ #withGalaxy

      50MP. Mega Mega Pixels

      A true pixel powerhouse that will not disappoint. Ever. Snap high-res pics for that will no doubt withstand the test of time for years to come.

      Get the details on Camera

      Whether you're taking a super sweet selfie, shooting wide angle pics or zooming in, these cameras will help ensure you leave with a pixel-perfect shot.

      rear camera

      10MP 3x Optical Zoom

      50MP Wide-angle & 2x Optical Quality Zoom

      12MP Ultra Wide

      front camera

      12MP Selfie Camera

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (40)

      Shoot far. Even in the dark

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (41)

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (42)

      Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (43)

      Captured by Galaxy S24+ #withGalaxy

        Capture bright, colorful, clear photos, even in the dark with AI ISP. Finally, the portraits you've been dreaming of. Zoom in 2x, or even 3x —it doesn't really matter., Each distance can be as clear as day even though it's technically night.

        Get closer with every pinch

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (44) Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (45) Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (46)

        Tap to zoom

        Captured by Galaxy S24+ #withGalaxy

        Just keep pinching. Go from 1x to 2x or even 3x., AI keeps pictures high-quality: crisp, clear and super sharp — without losing much detail.,

        Make room for epic AI Zoom

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (47)

        The view finder of the Camera app shows a woman posing in front of a scenic background. The camera zooms in from 1x to 2x and then 3x. Next, a clear photo of a subject with a scenic background at 2.5x zoom appears.

        Captured by Galaxy S24+ #withGalaxy

        Capture stunning shots with vivid detail at more zoom distances than before. Zoom in on the action and capture enhanced details thanks to the new AI Zoom solution.,

        Resize it, retouch it. Just like that

        Unlock the magic of AI-powered photo editing. Now you can effortlessly perfect your photos, ensuring every image shines. But that's not all, even if you couldn't capture the shot you wanted, Generative Edit can fill in backgrounds and make unwanted objects *poof* disappear.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (48)

        A photo is edited in the Gallery app. To straighten it, the photo is rotated and empty corners appear in the frame. Then, missing areas and background are filled in.

        Rotate your photo and let background fill complete the missing corners to fit the frame.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (49)

        A photo is edited in the Gallery app. An edit button is tapped and the subject is selected. They are resized and moved to another location in the picture. Then, missing areas are filled in.

        Select and move an object in your photo and AI will fill in the space it leaves behind like it was never there.

        Photo Assist

        Resize and retouch photo with Photo Assist

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (50)

        A photo of a skateboarder performing at a skateboard park is shown on the display of Galaxy S24. The edit button is selected. Then, the Galaxy AI stars button. The skateboarder is traced then moved higher. The “Generate” button is tapped. The photo is processed and the missing area where the subject used to be is completed. A before and after is shown.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (51)

        In the Gallery app, a photo of a skateboarder performing at a skateboard park is open.

        Tap Here

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (52)

        The photo is now in the Gallery app’s edit mode.

        Tap Here

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (53)
        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (54)

        Tap or draw for selection

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (55)

        Move the selection

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (56)

        In edit mode. A bluish wave of color momentarily passes over the photo. The skateboarder is traced. The skateboarder is then moved higher in the photo.

        Tap Here

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (57)
        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (58)

        The photo is processed. The missing area where the subject used to be is completed.

        Photo Assist

        Reimagine images by repositioning people or objects and filling backgrounds.

        Touch and hold for Slow-mo

        Touch and hold for Slow-mo

        Capture the action, add epic slow-motion effects later. Instant Slow-mo puts AI-generated images between the frames of regular videos from your Gallery or your downloads. All it takes is a simple touch and hold.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (59)

        A video of a runner plays at normal speed on the display of Galaxy S24 plus. As the camera approaches the runner from behind, the video drops into slow motion.

        Super HDR previews. AI-enhanced before you even snap

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (60)

        In the Camera app's preview window, a photo is taken. Then, the Gallery button is tapped to open the most recent photo in the Gallery. The share button is tapped. A photo is selected to be shared. Then, a social media app is selected. The photo appears in the social media app to be uploaded as a new post. The photo is then seen as an uploaded post in the app's feed.

        Captured by Galaxy S24+ #withGalaxy

        With our latest Super HDR upgrade, you can capture vivid shots the way you see them, from preview to posting. And it even works when you shoot with Instagram.

        See a Super HDR preview before you even hit the shutter. Keep it in your Gallery, or upload it to your feed — either way you'll see the same show-stopping HDR quality.

        Circle it, find it. Just like that

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (61)

        A blog page is open in a web browser app. The home button is long pressed. A Google overlay appears over the app. Text on the blog page is circled: Tornado Potato. Search results for tornado potato appear in a popup over the app. The popup is dragged upward into a full screen of Google search results.

        Search like never before with Circle to Search. Simply trace an object to get Google Search results. It's a new visual way to find what you're looking for.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (62)

        Circle to Search

        Circle it, Find it

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (63)

        A video posted to a social media app plays on the display of Galaxy S24. It shows a panning view of a freshly decorated living room. The shot zooms in to a framed poster on the wall. The home button is long-pressed. A Google Search bar appears at the bottom of the screen. A circle is traced around the poster. The poster is identified and similar Google Results appear in a pop-up window over the social media app. Circle to Search with Google.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (64)
        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (65)

        A social media app plays a video post. The social media post shows a panning view of a freshly decorated living room.

        Long press the home button

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (66)

        A dotted circle is drawn around a framed poster on the wall. Google is written at the top of the frame and a Google search bar appears at the bottom. A circle is traced around the poster.

        Circle or tap to search.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (67)
        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (68)

        The poster is identified and similar Google Results appear in a pop-up window over the social media app.

        Circle to Search

        Search anything without switching apps.

        Live Translate. The easiest way to communicate

        Get quick language translation on your next phone call. That's right, AI helps you communicate outside your own language while you talk on the phone. And get this, it even works on messaging.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (69)

        A phone call is interpreted in real time. The dialogue is shown on screen as a text conversation in two languages.

        Live Translate

        Communicate in a foreign language

        Tap to call

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (70)

        A phone call is in progress on the display of Galaxy S24.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (71)

        A phone call is in progress on the display of Galaxy S24. A drop-down language menu is at the top of the conversation.

        Tap to translate

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (72)

        The spoken dialogue from the phone call is transcribed on the screen in the original spoken language, then the translated language appears below the original transcription.

        Live Translate

        You left your wallet in a taxi while traveling! How should you talk to a foreign taxi driver?

        AI can summarize your voice recordings

        Ready for your own personal assistant? Record your voice and AI will jot it down — convert it into text, then intelligently summarize it. It even does language translations.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (73)

        A transcript of dialogue is generated. The full script is shown with text separated by speaker. When the voice recording is played, the sentences are highlighted in sync with the audio. When the summary tab is tapped, an outlined summary of the voice recording is produced.

        An Interpreter in your pocket

        Want to ask a local for a recommendation? Don't worry! There's an interpreter in your pocket. Enjoy it even in airplane mode with no Wi-Fi.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (74)

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

        Your must-haves are at your fingertips

        Customize your daily experience with widgets on your lock screen and Always On Display. From important reminders to your local air quality, get the info you need at a glance.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (75)

        A lock screen dims to an Always On Display with weather, time and alarm widgets with a music player control panel.

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (76)

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (77)

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (78)

        Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (79)

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (80)

          Pick the right tone for your text with Chat Assist

          Add a whole new layer of expression to your messages through Chat Assist. It works across email and on social media to make chatting quick and easy!

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (81)

          Chat Assist

          Real-time text translations

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (82)

          A text message conversation is open on the display of Galaxy S24. The messages are in a foreign language. A popup bubble says, “tap to translate.” When tapped, the bubble turns into a bar with drop-down input and output language menu. Each message bubble now shows both the original message and its translation.

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (83)

          A list of conversations.

          Tap Here

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (84)

          The conversation opens to show a dialogue in a foreign language. A popup bubble that says “tap to translate” appears.

          Tap Here

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (85)

          The drop-down input and output language menu shows Auto and English respectively. Each message bubble now shows both the original message and its English translation.

          Tap Here

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (86)

          English is changed to French on the output menu.

          Tap Here

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (87)

          Now the messages are translated into French.

          Chat Assist

          Enhance your communication by translating chats and text messages.

          Stronger Vapor Chamber. Game on

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (88)

          Gameplay scene from Gameloft is depicted on the display of Galaxy S24 Plus. The details are clear and the content is smooth.

          This new and improved heat dissipation system helps you keep gaming at optimal performance. Our latest Vapor Chamber is bigger than before, with an integrated liquid-type thermal interface material.

          Vapor Chamber

          over 1.5x bigger

          Our brightest adaptive mobile display under the sun

          Level up your game with these two massive screens. Thanks to their increased display size and ultra-slim bezels, Galaxy S24's 6.2" FHD+ display and Galaxy S24+'s 6.7" QHD+ display offer more screen real estate than ever before, delivering the most immersive viewing experience., Plus, you can enjoy optimal color and contrast with Vision Booster on both displays.

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (89)

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (90)

          The all-day battery is smarter for longer,

          Power on. And on. And on. Galaxy S24 and S24+ have an intelligent battery that gives you more game time, watch time and you time.,,,

          • Watch videos up to

            29 hrs Galaxy S24

            31 hrs Galaxy S24+

          • Listen to music up to

            78 hrs Galaxy S24

            92 hrs Galaxy S24+

          Why switch from iOS to Galaxy?

          Switch effortlessly from iOS

          Keep your photos, videos, contacts, calendar and apps with Smart Switch — even if you switch from iOS.,,

          Go to Smart Switch

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (91)

          Trailblaze the AI frontier

          Switch to Galaxy to make your entire day effortless through the new era of mobile AI.

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (92)

          Forget barriers between devices

          Switch to Galaxy to open up seamless ways to work, play and stay healthy across your devices.

          Go to Connected Experience

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (93)

          Try Galaxy on your phone

          Experienced the newest Galaxy device yet? How about trying it out now? On your phone! Start the experience with this download.

          Experienced the newest Galaxy device yet? How about trying it out now? On your phone! Simply scan the QR code and download to begin.

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (94)

          Your privacy. Secured.

          User privacy continues to be our priority in the AI era. With the launch of Galaxy AI on the Galaxy S24 Series, you can rest assured that we will not store or use your personal data for any purpose without your consent.

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (95)

          Samsung Knox

          Changes start from small steps

          We're moving toward a sustainable future, step by step. We believe in building a sustainable journey through small changes that could make a big difference. It feels good to do good.

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (96)

          Trade in and save

          Trade in your old phone to save on your new Galaxy S24 or Galaxy S24+.

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (97)

          Up to 512GB storage

          Store it all with 256GB and 512GB options. Or go for 128GB on Galaxy S24.

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (98)

          Accessories for the next era

          Explore more

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (99)

          Frequently Asked Questions

          Galaxy S24Ultra

          Learn more

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (100)

          Check out smart ways to get your Galaxy S24|S24+

          Buy now Reserve now Pre-order now Where to buy

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (101)

          See Galaxy S24|S24+ in AR Open in AR

          Life opens up with Galaxy

          Explore more

          Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (105)

          See in 360°

          Take it for a spin

          *Online exclusive colors only available on Samsung.com.

          Epic new ways to do business

          Go to Samsung Business

          *All specifications and descriptions provided herein may be different from the actual specifications and descriptions for the product. Samsung reserves the right to make changes to this document and the product described herein, at anytime, without obligation on Samsung to provide notification of such change. All functionality, features, specifications, GUI and other product information provided in this document including, but not limited to, the benefits, design, pricing, components, performance, availability and capabilities of the product are subject to change without notice or obligation. The contents within the screen are simulated images and are for demonstration purposes only.

          *Samsung Account login may be required to use certain Samsung AI features.

          *Samsung does not make any promises, assurances or guarantees as to the accuracy, completeness or reliability of the output provided by AI features.

          *Galaxy AI features will be provided for free until the end of 2025 on supported Samsung Galaxy devices. Different terms may apply for AI features provided by third parties.

          *Images simulated for illustrative purposes. Sequences shortened and simulated. Actual UI may be different.

          1. Sequences shortened and simulated. Results for illustrative purposes only. Results may vary depending on visual matches. Requires internet connection. Users may need to update Android to the latest version. Product functionality may be dependent on your app and device settings. Some functions may not be compatible with certain apps. Availability of the service varies by country and language. Accuracy of results is not guaranteed.
          2. Live Translate requires a network connection and Samsung Account login. Live Translate is only available on the pre-installed Samsung Phone app. Certain languages may require language pack download. Service availability may vary by language. Accuracy of results is not guaranteed.
          3. Interpreter requires Samsung Account login. Certain languages may require language pack download. Service availability may vary by language. Accuracy of results is not guaranteed. Availability and supported features may vary by country, region or carrier. Availability of supported languages may vary.
          4. Transcript Assist requires a network connection and Samsung Account login. Transcript Assist is only available on the pre-installed Samsung Voice Recorder app or files recorded using the pre-installed Samsung Phone app. Voice recording feature in the pre-installed Samsung Phone app may not be supported in some countries. Audio files must be under 3 hours in duration to be processed. Summarizing feature in Transcript Assist can be activated when a certain number of characters is met. Service availability may vary by language. Accuracy of results is not guaranteed.
          5. Generative Edit requires a network connection and Samsung Account login. Editing with Generative Edit results in a resized photo up to 12MP. A visible watermark is overlaid on the image output upon saving in order to indicate that the image is generated by AI. The accuracy and reliability of the generated output is not guaranteed.
          6. Galaxy S24+ compared to Galaxy S24.
          7. Compared to Galaxy S23 and S23+.
          8. Measured diagonally, Galaxy S24's screen size is 6.2 inches in the full rectangle and 6 inches accounting for the rounded corners and Galaxy S24+'s screen size is 6.7 inches in the full rectangle and 6.5 inches accounting for the rounded corners; actual viewable area is less due to the rounded corners and camera hole.
          9. Typical value tested under third-party laboratory condition. Typical value is the estimated average value considering the deviation in battery capacity among the battery samples tested under IEC 61960 standard. Rated capacity is 3880mAh for Galaxy S24, 4755mAh for Galaxy S24+ and 4855mAh for Galaxy S24Ultra. Actual battery life may vary depending on network environment, usage patterns and other factors.
          10. Color availability may vary depending on country or carrier.
          11. Frame does not include volume and side keys or SIM tray.
          12. Optical quality zoom is enabled by the Adaptive Pixel sensor.
          13. 2x zoom must be enabled in the Camera Assistant app settings. Camera Assistant can be downloaded from the Galaxy Store.
          14. Results may vary depending on light condition and/or shooting conditions including multiple subjects, being out of focus or moving subjects.
          15. 30X Space Zoom includes 3x optical zoom and 30x digital zoom with Super Resolution technology. Zoom distances past 3x zoom may express some image deterioration.
          16. AI Zoom is applied to distances between digital zoom lengths. Accuracy of results is not guaranteed.
          17. Some social media apps may not support Super HDR. Accuracy of results is not guaranteed.
          18. HDR quality is supported on photos uploaded as Instagram feed posts and videos uploaded as reels.
          19. Translating feature in Chat Assist may require Samsung Account login. Some chat applications may not support this feature. Certain languages may require language pack download. Service availability may vary by language. This feature is activated when a translatable language is detected. Accuracy of results is not guaranteed.
          20. Some functional widgets may require a network connection and/or Samsung Account login. Availability of functions supported within the apps may vary by country.
          21. Tone suggesting feature in Chat Assist requires a network connection and Samsung Account login. Must meet length requirements to activate feature. Service availability may vary by language. Accuracy of results is not guaranteed.
          22. ©2024 Gameloft. All Rights Reserved. Gameloft, the Gameloft logo and Asphalt are trademarks of Gameloft in the US and/or other countries. All manufacturers, cars, names, brands and associated imagery are trademarks and/or copyrighted materials of their respective owners.
          23. The Dynamic AMOLED 2X display on Galaxy S24 and S24+ received a certification from VDE Germany for 100 percent Mobile Color Volume in the DCI-P3 color range, which means your images aren't washed out and you'll get unbelievably vivid colors regardless of differing levels of brightness. The display can achieve peak brightness of up to 2600 nits, improving the contrast between dark and light aspects of digital content for a more brilliant picture quality, with a 5,000,000:1 contrast ratio to make your mobile experience more immersive.
          24. Actual battery life varies by network environment, features and apps used, frequency of calls and messages, the number of times charged, and many other factors. Estimated against the average usage profile compiled by UX Connect Research. Independently assessed by UX Connect research between 2023.11.25-2023.12.15 in US and UK with pre-release versions of SM-S921, SM-S926 and SM-S928 under default setting using LTE and 5G Sub6 networks. NOT tested under 5G mmWave network.
          25. Based on Samsung internal lab test conditions with pre-release version of given model connected to earphone via Bluetooth under default settings over LTE. Estimated against battery capacity and measured current over battery power consumption during video playback (video file resolution 720p, saved on device) and audio playback (mp3 file, 192kbps, saved on device with LCD display turned off), respectively. Actual video and audio playback times vary by network connection, settings, file format, screen brightness, battery condition and many other factors.
          26. Wired transfers from Android™ devices require the receiving device to have Android™ 4.3 or later and the sending device to have Android 4.3™ or later. Transfers can be completed without a cable through a wireless connection. For wireless connections, the receiving device must have Android™ 4.0 or later and the sending device must have Android™ 4.0 or later. Open Smart Switch Mobile in “Settings” on the receiving Galaxy device or download the Smart Switch Mobile app from the Galaxy Store. Data and content available for transfer may vary by transmission method.
          27. Wired transfers from iOS require the receiving device to have Android™ 4.3 or later and the sending device to have iOS 5 or later. Transfers can be completed without a cable through a wireless connection or iCloud. For wireless connections, the receiving device must have Android™ 4.0 or later and the sending device must have iOS 12 or later. iCloud transfers require the receiving device to have Android™ 4.0 or later and the sending device to have iOS 5 or later. Open Smart Switch Mobile in “Settings” on the receiving Galaxy device or download the Smart Switch Mobile app from the Galaxy Store. For wireless transfers, download Smart Switch for iOS from the App Store on your iPhone or iPad. Data and content available for transfer may vary by transmission method.
          28. It is recommended to use a wired connection when transferring diverse sets of data at once.
          29. Galaxy Buds2 Pro, Galaxy Watch6 and Galaxy Tab S9 sold separately.
          30. Available on devices with Android OS 10 (Q OS) or later and One UI 2.1 or later. Supported PCs include Samsung Notebooks and Galaxy Books including Qualcomm-based PCs released in 2020 or later and Windows PCs from other manufacturers running Windows 10 2004 version or later that have Intel version 22.50.02 Bluetooth drivers or later and Intel version 22.50.07 Wi-Fi drivers or later.
          31. Galaxy Tab S9 sold separately.
          32. When file sharing using QR codes and contacts, up to 1,000 files can be transferred at a time. Individual files must be less than 3GB, and up to 5GB of data in total can be transferred per day. Links expire after two days. Sender's device requires a Samsung Account, and both sender and receiver devices require an internet connection.
          33. Knox Matrix is supported on Galaxy smartphones and tablets One UI 6.0 or above. Availability may vary by country or region.
          34. Terms and conditions apply. Availability may vary by carrier, country or region. Check device trade-in eligibility on the Trade-in page.
          35. Storage options and availability may vary by carrier, country or region. Actual storage availability may vary depending on pre-installed software.
          36. All accessories sold separately.
          37. Galaxy S24, S24+ and S24 Ultra are rated as IP68. Based on lab test conditions for submersion in up to 1.5 meters of freshwater for up to 30 minutes. Not advised for beach or pool use. Water and dust resistance of device is not permanent and may diminish over time because of normal wear and tear.
          38. Instant Slow-mo is only available on the pre-installed Samsung Video Player and Samsung Gallery app. Service availability may differ by the video spec.
          39. Translating feature in Chat Assist requires a network connection, Samsung Account login and language pack download from the Galaxy store. Must meet length requirements to activate feature. Service availability may vary by country, region or language. Some chat applications may not support this feature. Accuracy of results is not guaranteed.

          ')); } } }; 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.designSpecPopup = document.querySelector('.highlights-design-spec-popup'); els.cameraSpecPopup = document.querySelector('.highlights-resolution-popup'); els.dayVideoPopup = document.querySelector('.highlights-day-popup'); els.transcriptAssistPopup = document.querySelector('.highlights-live-translate-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'); // 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 '#s24-vs-s24-plus': if (els.designSpecPopup) els.designSpecPopup.show(); break; case '#see-in-360': if (els.viewerPopup) els.viewerPopup.show(); break; case '#camera-spec': if (els.cameraSpecPopup) els.cameraSpecPopup.show(); break; case '#day-video': if (els.dayVideoPopup) els.dayVideoPopup.show(); break; case '#transcript-assist': if (els.transcriptAssistPopup) els.transcriptAssistPopup.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; default: let hash = location.hash.split('#')[1], hashSection = document.querySelector('#contents #' + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { if (hashSection) { 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: currDevice.indexOf('mobile') > -1 ? 'single' : 'multiple', 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') ? els.pageScrollVideoWraps[i].getAttribute('data-start-point') : undefined; els.pageScrollVideoWraps[i].reversePoint = !!els.pageScrollVideoWraps[i].getAttribute('data-reverse-point') ? els.pageScrollVideoWraps[i].getAttribute('data-reverse-point') : undefined; els.pageScrollVideoWraps[i].moStartPoint = !!els.pageScrollVideoWraps[i].getAttribute('data-mo-start-point') ? els.pageScrollVideoWraps[i].getAttribute('data-mo-start-point') : undefined; els.pageScrollVideoWraps[i].moReversePoint = !!els.pageScrollVideoWraps[i].getAttribute('data-mo-reverse-point') ? els.pageScrollVideoWraps[i].getAttribute('data-mo-reverse-point') : undefined; els.pageScrollVideoWraps[i].controller.addEventListener('click', handlerList.videoCta); } }; const bindEvents = function () { window.addEventListener('scroll', handlerList.scroll); handlerList.scroll(); resize.add(onResizeHandler); }; const onResizeHandler = function (currRes) { currDevice = currRes; }; const objList = { setVideo: function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { objs.scrollVideo[i] = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: (currDevice.indexOf('mobile') > -1) ? els.pageScrollVideoWraps[i].moStartPoint : els.pageScrollVideoWraps[i].startPoint, reversePoint: (currDevice.indexOf('mobile') > -1) ? els.pageScrollVideoWraps[i].moReversePoint : els.pageScrollVideoWraps[i].reversePoint, wrap: els.pageScrollVideoWraps[i], video: els.pageScrollVideoWraps[i].video, controller: els.pageScrollVideoWraps[i].controller, resetCallback: function () { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } }, playCallback: function () { setTagging.pause(this.controller); }, pauseCallback: function () { setTagging.play(this.controller); }, endCallback: function () { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } } }); } }, setScene: function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { objs.scene[i] = SCROLLER({ trackElement: els.pageScrollVideoWraps[i].video, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } } }; const handlerList = { scroll: function () { for (let i = 0; i < els.pageScrollVideoWraps.length; i++) { objs.scene[i].trackAnimation(function () { objs.scrollVideo[i].scrollActive(this.progress); }); } }, videoCta: function (e) { if (e.target == e.currentTarget) { if (e.currentTarget.video.paused) { e.currentTarget.video.play(); } else { e.currentTarget.video.pause(); } } } }; const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.tutorialPopup = function (opts) { const utils = window.flagship.common.utils; let els = {}; let status = {}; let show = {}, hide = {}; status.isGlobal = document.documentElement.classList.contains('global'); const init = function () { setElements(); setOpts(); bindEvent(); }; const setElements = function () { els.html = document.documentElement; els.tutorialPopup = opts.tutorialPopup; els.closeCtas = opts.closeCtas; els.dimmed = !!!opts.dimmed ? '' : opts.dimmed; els.tutorialPopupClass = opts.tutorialPopupClass; }; const setOpts = function () { show.start = (!!!opts.show) ? undefined : opts.show.start; show.end = (!!!opts.show) ? undefined : opts.show.end; hide.start = (!!!opts.hide) ? undefined : opts.hide.start; hide.end = (!!!opts.hide) ? undefined : opts.hide.end; } const bindEvent = function () { opts.openerEvent.element.addEventListener('click', showLayer); els.tutorialPopup.show = showLayer; els.tutorialPopup.hide = hideLayer; }; const showLayer = function (e) { if (opts.openerEvent.proxy) { if (opts.openerEvent.parent) { if (e.target.parentElement.classList.contains(opts.openerEvent.class)) { els.openerCta = e.target.parentElement; } } else { if (e.target.classList.contains(opts.openerEvent.class)) { els.openerCta = e.target; } } } else { els.openerCta = this; } els.tutorialPopup.opener = els.openerCta; if (show.start) show.start(els); els.html.classList.add('is-layer-open'); utils.hiddenScroll(els.tutorialPopup); if (utils.detector.isIosDevice) { els.tutorialPopup.opener.blur(); els.openerCta.style.display = 'none'; } els.closeCtas[0].focus(); setTimeout(function () { els.closeCtas[0].focus(); }, 400); for (let i = 0; i < els.closeCtas.length; i++) { els.closeCtas[i].addEventListener('click', hideLayer); } if (els.dimmed) els.dimmed.addEventListener('click', onClickDimmed); if (show.end) show.end(els); }; const hideLayer = function () { if (utils.detector.isIosDevice) els.openerCta.style.display = ''; if (hide.start) hide.start(els); for (let i = 0; i < els.closeCtas.length; i++) { els.closeCtas[i].removeEventListener('click', hideLayer); } if (els.dimmed) els.dimmed.removeEventListener('click', onClickDimmed); els.html.classList.remove('is-layer-open'); utils.visibleScroll(); if (!!!els.openerCta) { els.tutorialPopup.opener.focus(); } else { els.openerCta.focus(); } setTimeout(function () { if (!!!els.openerCta) { els.tutorialPopup.opener.focus(); } else { els.openerCta.focus(); } }, 300); if (hide.end) hide.end(els); }; const onClickDimmed = function (e) { if (e.currentTarget == e.target) { hideLayer(); } }; return init(); };})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.aod = (function () { let els = {}; let status = {}; let objs = { videos: [], }; const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; const init = function () { els.section = document.querySelector('.highlights-aod'); if (!!els.section) { setElements(); objList.setScene(); bindEvents(); } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.highlights-aod__content-container'); els.nextArrow = els.section.querySelector('.highlights-aod__content-arrow--next'); els.prevArrow = els.section.querySelector('.highlights-aod__content-arrow--prev'); els.pagination = els.section.querySelector('.highlights-aod__content-pagination'); }; const bindEvents = function () { objList.swiper(); objs.swiper.on('init', swiperEvents.init); objs.swiper.on('slideChange', swiperEvents.slideChange); objs.swiper.on('transitionEnd', swiperEvents.transitionEnd); objs.swiper.init(); window.addEventListener('scroll', eventList.scrollHandler); }; const objList = { swiper: function () { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, pagination: { el: els.pagination, type: 'bullets', clickable: true, renderBullet: function () { return '

        • '; } }, loop: true, slidesPerView: 'auto', centeredSlides: true, speed: 800, }); } }, setVideo: function () { for (let i = 0; i < els.videoWrap.length; i++) { objs.videos[i] = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: resize.checkResolution().indexOf('mobile') > -1 ? 37 : 45, reversePoint: resize.checkResolution().indexOf('mobile') > -1 ? 70 : 100, wrap: els.videoWrap[i], video: els.videos[i], controller: els.videoController[i], endCallback: function () { if (!els.videoWrap[i].classList.contains('is-completed')) { els.videoWrap[i].classList.add('is-completed'); } }, resetCallback: function () { if (els.videoWrap[i].classList.contains('is-completed')) { els.videoWrap[i].classList.remove('is-completed'); } }, }); }; }, setScene: function () { objs.scene = SCROLLER({ trackElement: els.section, useFixed: false }); }, }; const swiperEvents = { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); els.bullets = this.pagination.bullets; els.videoWrap = els.section.querySelectorAll('.common-video'); els.videos = els.section.querySelectorAll('.common-video__video'); els.videoController = els.section.querySelectorAll('.common-video__control'); for(let i=0;i

          0)) { let isVideoSlide = (objs.swiper.activeIndex == 0) || (objs.swiper.activeIndex == 5) || (objs.swiper.activeIndex == 10); let isPaused = objs.videos[0].video.paused || objs.videos[1].video.paused || objs.videos[2].video.paused; clearTimeout(playStatus); if (isVideoSlide) { if (isPaused) { playStatus = setTimeout(() => { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].video.currentTime = 0; objs.videos[i].video.play(); } }, 600); } } else { if (!objs.videos[0].video.paused && !objs.videos[1].video.paused && !objs.videos[2].video.paused) { for (let i = 0; i < objs.videos.length; i++) { objs.videos[i].video.pause(); if (resize.checkResolution().indexOf('desktop') > -1) objs.videos[i].video.currentTime = 0; } } } } } }; const eventList = { scrollHandler: function () { objs.scene.trackAnimation(function () { let isVideoSlide = (objs.swiper.activeIndex == 0) || (objs.swiper.activeIndex == 5) || (objs.swiper.activeIndex == 10); if (!isVideoSlide) return; objs.videos[0].scrollActive(this.progress); objs.videos[1].scrollActive(this.progress); objs.videos[2].scrollActive(this.progress); }); }, clickVideoCta: function () { if(this.video.paused) { this.video.play(); } else { this.video.pause(); } } }; 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:highlights:galaxy-ai^aod-lockscreen:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24:highlights:galaxy-ai^aod-lockscreen: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.cameraAi = (function () { let els = {}; let objs = {}; const init = function () { els.section = document.querySelector('.highlights-camera-ai'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.bgBlue = els.section.querySelector('.highlights-camera-ai__gradient--blue'); els.bgGreen = els.section.querySelector('.highlights-camera-ai__gradient--green'); }; const bindEvents = function () { setScene(); window.addEventListener('scroll', scrollHandler); scrollHandler(); }; const setScene = function () { objs.scene = SCROLLER({ trackElement: els.section, useFixed: false, }); }; const scrollHandler = function () { objs.scene.trackAnimation(function () { if (this.progress > 30 && this.progress < 70) { els.bgBlue.classList.add('is-active'); els.bgGreen.classList.add('is-active'); } else if (this.progress == 0) { els.bgBlue.classList.remove('is-active'); els.bgGreen.classList.remove('is-active'); } // TweenMax.to(els.bgBlue, 0, {opacity: BlueValue, ease: 'linear'}); // TweenMax.to(els.bgGreen, 0, {opacity: greenValue, ease: 'linear'}); }); } return { init: init } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.chatAssistTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-chat-assist-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-video__control');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 200);},click: function(){let self = this;for (let i = 0; i < els.tooltipCta.length; i++) {els.tooltipCta[i].addEventListener('click', function(){self.nextVideoPlay(i);});}},endCallback: function () {if (stepInfo[this.video.playIndex].tooltip == 'true') {this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);let nextPlayindex = this.video.playIndex + 1;if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);}},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex');els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.videoController();eventList.click();};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.circleToSearchTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-circle-to-search-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');status.isKeydownTime = null;};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-video__control');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 400);},click: function(){els.tooltipCta[0].addEventListener('mousedown', eventList.pressButton);els.tooltipCta[0].addEventListener('mouseup', function(){clearTimeout(status.mousedown);});els.tooltipCta[0].addEventListener('touchstart', eventList.pressButton);els.tooltipCta[0].addEventListener('touchend', function(){clearTimeout(status.mousedown);});els.tooltipCta[0].addEventListener('keydown', eventList.keydownButton);els.tooltipCta[1].addEventListener('click', function(){eventList.nextVideoPlay(2);});},pressButton: function (e) {e.preventDefault();if (els.videos[2].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[2]]);}clearTimeout(status.mousedown);status.mousedown = setTimeout(()=>{eventList.nextVideoPlay(1);}, 1000);},keydownButton: function (e) {if (e.type == 'keydown' && e.keyCode != 13) return;if (status.isKeydownTime == null) {status.isKeydownTime = Date.now();} else {let keyDownDuration = Date.now() - status.isKeydownTime;if (keyDownDuration >= 1000) {if (els.videos[2].readyState < 4) {videoLoader.setResponsiveMedia([els.videos[2]]);}eventList.nextVideoPlay(1);status.isKeydownTime = null;}}},endCallback: function () {let autoplay = this.video.playIndex == 0 ||this.video.playIndex == 3;if (stepInfo[this.video.playIndex].tooltip == 'true') {this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (autoplay) {eventList.nextVideoPlay(this.video.playIndex);}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);switch (this.video.playIndex) {case 2:videoLoader.setResponsiveMedia([els.videos[3], els.videos[4]]);break;default:break;}},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex');els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.videoController();eventList.click();};return {init: init,}})();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.color = (function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}, status = {}, objs = {}; let activeClass = 'is-active'; let oldIndex = null; let currDevice = resize.checkResolution(); let prevDevice = null; const init = function () { els.section = document.querySelector('.highlights-color'); if (!!els.section) { setElements(); setStatus(); bindEvents(); } }; const setElements = function () { // topSwiper els.topSwiperWrap = els.section.querySelector('.highlights-color__carousel'); if (!!els.topSwiperWrap) { els.topSwiperSlides = els.topSwiperWrap.querySelectorAll('.highlights-color__carousel-slide'); if (els.topSwiperSlides.length > 1) { els.topSwiperContainer = els.section.querySelector('.highlights-color__carousel-container'); els.topSwiperNextArrow = els.topSwiperContainer.querySelector('.highlights-color__arrow--next'); els.topSwiperPrevArrow = els.topSwiperContainer.querySelector('.highlights-color__arrow--prev'); els.topSwiperPagination = els.section.querySelector('.highlights-color__pagination'); } } // colorchipSwiper els.colorchipWrap = els.section.querySelector('.highlights-color__tab-colors'); els.colorchipSwiperContainer = els.colorchipWrap.querySelector('.swiper-container'); els.colorchipSwiperArrowWrap = els.colorchipWrap.querySelector('.highlights-color__tab-navigation'); els.colorchipSwiperNextArrow = els.colorchipWrap.querySelector('.highlights-color__navigation-arrow--next'); els.colorchipSwiperPrevArrow = els.colorchipWrap.querySelector('.highlights-color__navigation-arrow--prev'); // colorchipItem els.colorchipItemWrap = els.section.querySelector('.highlights-color__tab'); els.colorchipItems = els.colorchipItemWrap.querySelectorAll('.highlights-color__tab-item'); els.colorchipBtns = els.colorchipItemWrap.querySelectorAll('.highlights-color__tab-button'); for (let i = 0; i < els.colorchipBtns.length; i++) { els.colorchipBtns[i].setAttribute('data-js-index', i); } // colorName els.colorNameWrap = els.section.querySelector('.highlights-color__tab-names'); els.colorNames = els.colorNameWrap.querySelectorAll('.highlights-color__tab-name'); // colorPanel els.panelWrap = els.section.querySelector('.highlights-color__tab-panel-group'); els.panels = els.panelWrap.querySelectorAll('.highlights-color__tab-panel'); // 360 Popup Btn els.popupBtn = els.section.querySelector('.common-cta-area button'); }; const setStatus = function () { status.isClick = false; // index status.targetIndex = null; status.oldColorIndex = null; }; const bindEvents = function () { resize.add(handlerList.onResize); setColorchipEvent(); if (!els.topSwiperWrap || (!!els.topSwiperWrap && (!!els.topSwiperSlides && els.topSwiperSlides.length < 2))) return; setTimeout(function () { window.addEventListener('scroll', handlerList.scroll); }, 1000); objList.setScene(); setSwiper.top(); els.topSwiperNextArrow.addEventListener('click', handlerList.onClickArrow); els.topSwiperNextArrow.addEventListener('keydown', handlerList.onClickArrow); els.topSwiperPrevArrow.addEventListener('click', handlerList.onClickArrow); els.topSwiperPrevArrow.addEventListener('keydown', handlerList.onClickArrow); }; const setColorchipEvent = function () { let colorchipSwiperLength = currDevice.indexOf('mobile') > -1 ? 5 : 7; if (els.colorchipBtns.length >= colorchipSwiperLength) { status.isLoop = true; oldIndex = els.colorchipBtns.length; if (els.colorchipSwiperArrowWrap.style.display == 'none') { els.colorchipSwiperArrowWrap.style.display = ''; } if (els.colorchipWrap.classList.contains('js-colorchip-static')) { els.colorchipWrap.classList.remove('js-colorchip-static'); } setSwiper.colorchip(); } else { status.isLoop = false; if (els.colorchipSwiperArrowWrap.style.display != 'none') { els.colorchipSwiperArrowWrap.style.display = 'none'; } if (!els.colorchipWrap.classList.contains('js-colorchip-static')) { els.colorchipWrap.classList.add('js-colorchip-static'); } if (objs.colorchipSwiper != null) { let realIndex = objs.colorchipSwiper.realIndex; if (!els.colorchipBtns[realIndex].classList.contains(activeClass)) { els.colorchipBtns[realIndex].classList.add(activeClass); els.colorchipBtns[realIndex].setAttribute('aria-selected', true); } swiperEvents.colorchip.destroy(); } let currentColorchip = els.colorchipItemWrap.querySelector(`.${activeClass}`); status.oldColorIndex = currentColorchip.getAttribute('data-js-index'); for (let i = 0; i < els.colorchipBtns.length; i++) { els.colorchipBtns[i].addEventListener('click', handlerList.onClickColorchip); els.colorchipItems[i].removeAttribute('tabindex'); els.colorchipItems[i].removeAttribute('aria-hidden'); } } }; const objList = { topSwiper: function () { if (objs.topSwiper == null) { objs.topSwiper = new Swiper(els.topSwiperContainer, { init: false, speed: 800, navigation: { nextEl: els.topSwiperNextArrow, prevEl: els.topSwiperPrevArrow, }, pagination: { el: els.topSwiperPagination, type: 'bullets', clickable: true, renderBullet: function () { return '
        • '; } }, slidesPerView: 'auto', centeredSlides: true, }); } }, colorchipSwiper: function () { if (objs.colorchipSwiper == null) { objs.colorchipSwiper = new Swiper(els.colorchipSwiperContainer, { init: false, navigation: { nextEl: els.colorchipSwiperNextArrow, prevEl: els.colorchipSwiperPrevArrow, }, slidesPerView: 'auto', centeredSlides: true, loop: true, speed: 300, touchRatio: 0, }); } }, setScene: function () { objs.topScene = SCROLLER({ trackElement: els.topSwiperContainer, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; const setSwiper = { top: function () { objList.topSwiper(); objs.topSwiper.on('init', swiperEvents.top.init); objs.topSwiper.on('slideChange', swiperEvents.top.slideChange); objs.topSwiper.init(); }, colorchip: function () { objList.colorchipSwiper(); objs.colorchipSwiper.on('init', swiperEvents.colorchip.init); objs.colorchipSwiper.on('slideChange', swiperEvents.colorchip.slideChange); objs.colorchipSwiper.on('transitionEnd', swiperEvents.colorchip.transitionEnd); objs.colorchipSwiper.init(); els.loopColorchipBtns = els.section.querySelectorAll('.highlights-color__tab-button'); for (let i = 0; i < els.loopColorchipBtns.length; i++) { els.loopColorchipBtns[i].index = i; els.loopColorchipBtns[i].addEventListener('click', handlerList.onClickColorchip); } if (status.targetIndex != 0) status.targetIndex = 0; eventList.colorchip(); eventList.colorName(); eventList.panel(); } }; const swiperEvents = { top: { init: function () { let notification = this.el.querySelector('.swiper-notification'); let bullets = this.pagination.bullets; this.slides[this.activeIndex].style.transitionDuration = '0s'; setTimeout(() => { this.slides[this.activeIndex].style.transitionDuration = ''; }, 100); if (!!notification) this.el.removeChild(notification); accessibility.slide.top(objs.topSwiper); accessibility.pagination.tagging(bullets); accessibility.pagination.label(bullets); els.topSwiperPrevArrow.removeAttribute('aria-label'); els.topSwiperNextArrow.removeAttribute('aria-label'); setTimeout(function () { handlerList.scroll(); }, 900); status.isTest = false; for (let i = 0; i < bullets.length; i++) { bullets[i].removeAttribute('role'); bullets[i].addEventListener('click', function (e) { e.preventDefault(); e.stopPropagation(); objs.topSwiper.slideTo(i); }); } }, slideChange: function () { accessibility.slide.top(objs.topSwiper); accessibility.pagination.label(objs.topSwiper.pagination.bullets); } }, colorchip: { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); accessibility.slide.colorchip(objs.colorchipSwiper); els.colorchipSwiperPrevArrow.removeAttribute('aria-label'); els.colorchipSwiperNextArrow.removeAttribute('aria-label'); let cloneSlide = this.el.querySelectorAll('.swiper-slide-duplicate'); for (let i = 0; i < cloneSlide.length; i++) { let activeClone = cloneSlide[i].querySelector('.highlights-color__tab-button.is-active'); if (!!activeClone) activeClone.classList.remove('is-active'); } }, slideChange: function () { let activeIndex = this.activeIndex; let oldColor = els.loopColorchipBtns[oldIndex]; status.oldColorIndex = oldColor.getAttribute('data-js-index'); status.targetIndex = els.loopColorchipBtns[activeIndex].getAttribute('data-js-index'); eventList.colorchip(); eventList.colorName(); eventList.panel(); accessibility.slide.colorchip(objs.colorchipSwiper); eventList.setPopupBtnColor(els.panels[status.targetIndex]); oldIndex = activeIndex; }, transitionEnd: function () { if (status.isClick) status.isClick = false; }, destroy: function () { objs.colorchipSwiper.destroy(true); objs.colorchipSwiper = null; }, }, }; const handlerList = { scroll: function () { objs.topScene.trackAnimation(function () { if (this.wheelDirection == 'down' && this.progress > 45 && this.progress < 70) { if (objs.topSwiper != null) { objs.topSwiper.slideNext(); objs.topScene.destroy(); window.removeEventListener('scroll', handlerList.scroll); } } else if (this.wheelDirection == 'up' && this.progress < 50) { if (objs.topSwiper != null) { objs.topSwiper.slideNext(); objs.topScene.destroy(); window.removeEventListener('scroll', handlerList.scroll); } } }); }, onResize: function (currRes) { currDevice = currRes; if (currDevice !== prevDevice) { setColorchipEvent(); if (objs.colorchipSwiper != null) { accessibility.slide.colorchip(objs.colorchipSwiper); } prevDevice = currDevice; } }, onClickArrow: function (e) { status.isArrowClick = true; status.arrowStyleTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); if (objs.topSwiper.isBeginning && !objs.topSwiper.isEnd) { els.topSwiperPrevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.topSwiperNextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.topSwiperPrevArrow.style.display = ''; }, 400); } else if (!objs.topSwiper.isBeginning && objs.topSwiper.isEnd) { els.topSwiperNextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.topSwiperPrevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.topSwiperNextArrow.style.display = ''; }, 400); } } }, onClickColorchip: function () { status.isClick = true; let targetColor = this; if (status.isLoop) { if (targetColor.classList.contains('is-active')) return; eventList.slideTo(targetColor); } else { status.targetIndex = targetColor.getAttribute('data-js-index'); eventList.colorchip(); eventList.colorName(); eventList.panel(); status.oldColorIndex = status.targetIndex; } } }; const eventList = { colorchip: function () { let oldColor = els.colorchipItemWrap.querySelectorAll(`.${activeClass}`); let activeIndex = status.isLoop ? objs.colorchipSwiper.activeIndex : status.targetIndex; let targetColorchipBtns = status.isLoop ? els.loopColorchipBtns[activeIndex] : els.colorchipBtns[activeIndex]; if (!targetColorchipBtns.classList.contains(activeClass)) { for (let i = 0; i < oldColor.length; i++) { oldColor[i].classList.remove(activeClass); oldColor[i].setAttribute('aria-selected', false); } targetColorchipBtns.classList.add(activeClass); targetColorchipBtns.setAttribute('aria-selected', true); } }, colorName: function () { for (let i = 0; i < els.colorNames.length; i++) { if (els.colorNames[i].classList.contains(activeClass)) { els.colorNames[i].classList.remove(activeClass); } } if (!els.colorNames[status.targetIndex].classList.contains(activeClass)) { els.colorNames[status.targetIndex].classList.add(activeClass); } }, panel: function () { for (let i = 0; i < els.panels.length; i++) { if (els.panels[i].classList.contains(activeClass)) { els.panels[i].classList.remove(activeClass); els.panels[i].setAttribute('aria-hidden', true); } } if (!els.panels[status.targetIndex].classList.contains(activeClass)) { els.panels[status.targetIndex].classList.add(activeClass); els.panels[status.targetIndex].setAttribute('aria-hidden', false); els.popupBtn.setAttribute('data-model-color', els.panels[status.targetIndex].getAttribute('id')); } if (status.targetIndex != 0) { let targetPanelImgs = els.panels[status.targetIndex].querySelectorAll('img'); if (!targetPanelImgs[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([targetPanelImgs[0]]); } if (!targetPanelImgs[1].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([targetPanelImgs[1]]); } } }, slideTo: function (targetColor) { let self = objs.colorchipSwiper; let activeIndex = targetColor.index; objs.slideChangeTime = null; if (status.isClick) { let moveSize = oldIndex - activeIndex; if (moveSize > 0) { if (moveSize == 1) { objs.colorchipSwiper.slidePrev(); } else if (moveSize == 3) { objs.colorchipSwiper.slidePrev(0); objs.colorchipSwiper.slidePrev(0); self.slidePrev(); } else { objs.colorchipSwiper.slidePrev(0); self.slidePrev(); } } else { if (moveSize == -1) { objs.colorchipSwiper.slideNext(); } else if (moveSize == -3) { objs.colorchipSwiper.slideNext(0); objs.colorchipSwiper.slideNext(0); self.slideNext(); } else { objs.colorchipSwiper.slideNext(0); self.slideNext(); } } self.slides[self.activeIndex].querySelector('button').focus(); clearTimeout(objs.slideChangeTime); objs.slideChangeTime = setTimeout(function () { self.slides[self.activeIndex].querySelector('button').focus(); }, 200); status.isClick = false; } }, setPopupBtnColor: function (target) { els.popupBtn.setAttribute('data-model-color', target.getAttribute('id')); } }; const accessibility = { slide: { top: function (swiperObjs) { for (let i = 0; i < swiperObjs.slides.length; i++) { if (i != swiperObjs.activeIndex) { utils.onAccessibility(swiperObjs.slides[i]); } else { utils.offAccessibility(swiperObjs.slides[i]); } } }, colorchip: function (swiperObjs) { let isNotActivedColorchips = null; for (let i = 0; i < swiperObjs.slides.length; i++) { if (currDevice.indexOf('mobile') > -1) { isNotActivedColorchips = (i != swiperObjs.activeIndex) && (i > swiperObjs.activeIndex + 2) || (i < swiperObjs.activeIndex - 2) } else { isNotActivedColorchips = (i != swiperObjs.activeIndex) && (i > swiperObjs.activeIndex + 3) || (i < swiperObjs.activeIndex - 3) } if (isNotActivedColorchips) { utils.onAccessibility(swiperObjs.slides[i]); } else { utils.offAccessibility(swiperObjs.slides[i]); } } } }, pagination: { tagging: function (pagination) { const tagging = { 'data-omni-type': 'microsite_gallery', 'data-omni': 'galaxy-s24:highlights:design^colors:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24: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.dayPopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const init = function () {els.section = document.querySelector('.highlights-super-hdr');els.layerPopup = document.querySelector('.highlights-day-popup');if (!!els.layerPopup && !!els.section) {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('.highlights-super-hdr__cta button');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.js-scroll-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-day-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.scrollVideo = 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 setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-day-popup-img-src',responsiveClass: '.js-day-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-day-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-day-popup-video-src',responsiveClass: '.js-day-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 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.designSpecPopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const init = function () {els.section = document.querySelector('.highlights-design-display');els.layerPopup = document.querySelector('.highlights-design-spec-popup');if (!!els.layerPopup) {setElements();setStatus();bindEvents();setPopup();}};const setElements = function () {status.isGlobal = document.documentElement.classList.contains('global');els.contents = document.querySelector('#contents');els.innerWrap = els.layerPopup.querySelector('.common-popup__inner-wrapper');els.openCta = els.section.querySelector('.highlights-design-display__cta button');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.hashPopupOpener = null;};const setStatus = function () {status.isHash = false;};const bindEvents = function () {for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', onClickSup);}};const setPopup = function () {utils.layerPopup({layerPopup: els.layerPopup,layerPopupClass: '.highlights-design-spec-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();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);if (status.isHash && els.hashPopupOpener) {els.hashPopupOpener.focus();setTimeout(function () {els.hashPopupOpener.focus();status.isHash = false;els.hashPopupOpener = null;}, 300);}}}});};const 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 setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-design-spec-popup-img-src',responsiveClass: '.js-design-spec-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-design-spec-popup-bg-img',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: '',bgOpts: ''}],visiblePoint: 1});}};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', handlerList.onClickArrow); els.nextArrow.addEventListener('keydown', handlerList.onClickArrow); els.prevArrow.addEventListener('click', handlerList.onClickArrow); els.prevArrow.addEventListener('keydown', handlerList.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(); } }, 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 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; } }, }; 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.generativeEditTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-generative-edit-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.coverImages = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__cover-image');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.generativeCta = els.tutorialVideoContainer.querySelector('.js-tutorial-generative-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-video__control');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.controller.focus();}, 200);},click: function(){let self = this;els.tooltipCta[0].addEventListener('click', function(){if (els.videos[2].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[2], els.coverImages[3], els.coverImages[4]]);videoLoader.setResponsiveMedia([els.videos[2], els.videos[3], els.videos[4]]);}self.nextVideoPlay(0);})els.tooltipCta[1].addEventListener('click', function(){self.nextVideoPlay(1);}),els.generativeCta.addEventListener('click', function(){this.setAttribute('disabled', '');utils.onAccessibility(els.generativeCta);this.parentElement.classList.remove('is-visible');self.nextVideoPlay(5);})},endCallback: function () {let autoplay = this.video.playIndex == 2 ||this.video.playIndex == 6;if (stepInfo[this.video.playIndex].tooltip == 'true') {if (this.video.playIndex != 5) this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (autoplay) {eventList.nextVideoPlay(this.video.playIndex);}let self = this;switch (this.video.playIndex) {case 2:if (!els.generativeCta.classList.contains('is-bg-load-complete')) {els.generativeCta.classList.add('is-bg-load-complete');}els.generativeCta.parentElement.classList.add('is-visible');break;case 3:if (els.videos[5].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[5]]);videoLoader.setResponsiveMedia([els.videos[5]]);}(function(wrap, video){setTimeout(()=>{self.wrap.alert.classList.remove('is-visible');eventList.nextVideoPlay(video.playIndex);}, 3000)})(this.wrap, this.video);break;case 4:if (els.videos[6].readyState < 4) {imageLoader.setResponsiveMedia([els.coverImages[6], els.coverImages[7]]);videoLoader.setResponsiveMedia([els.videos[6], els.videos[7]]);}(function(wrap, video){setTimeout(()=>{self.wrap.alert.classList.remove('is-visible');eventList.nextVideoPlay(video.playIndex);}, 3000)})(this.wrap, this.video);break;case 5:els.generativeCta.removeAttribute('disabled');utils.offAccessibility(els.generativeCta);break;case 7:els.generativeCta.parentElement.classList.add('is-visible');els.generativeCta.classList.add('is-tutorial-end');break;default:break;}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex');els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;if (this.video.playIndex != 5) {utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}}if (this.video.playIndex == (els.videos.length - 3)) {setTimeout(function () {els.generativeCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this)}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.videoController();eventList.click();};return {init: init,}})();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.innerPopup = (function () { let els = {}; const utils = window.flagship.common.utils; const innerPopup = function (opts) {let els = {};let show = {},hide = {};const init = function () {setElements();setOpts();bindEvent();};const setElements = function () {els.outPopup = opts.openerEvent.element.closest('.common-popup');els.innerPopup = opts.layerPopup;els.closeCtas = opts.closeCtas;els.moveTarget = opts.moveTarget;els.dimmed = !!!opts.dimmed ? '' : opts.dimmed;els.contents = opts.contents;els.innerPopupClass = opts.layerPopupClass;};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.innerPopup.show = showLayer;els.innerPopup.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.innerPopup.opener = els.openerCta;if (show.start) show.start(els);els.outPopup.classList.add('is-layer-open');if (utils.detector.isIosDevice) {els.innerPopup.opener.blur();els.openerCta.style.display = 'none';}els.closeCtas[0].focus();setTimeout(function () {els.closeCtas[0].focus();accessibility.on();}, 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);accessibility.off();els.outPopup.classList.remove('is-layer-open');if (!!!els.openerCta) {els.innerPopup.opener.focus();} else {els.openerCta.focus();}setTimeout(function () {if (!!!els.openerCta) {els.innerPopup.opener.focus();} else {els.openerCta.focus();}}, 300);if (hide.end) hide.end(els);};const onClickDimmed = function (e) {if (e.currentTarget == e.target) {hideLayer();}};const accessibility = {on: function () {utils.onPopupAccessibility(els.outPopup);utils.offAccessibility(els.innerPopup);},off: function () {utils.offPopupAccessibility(els.outPopup);utils.onAccessibility(els.innerPopup);}};return init();}; const init = function () { els.layerPopup = document.querySelector('.common-youtube-popup'); if(!!els.layerPopup) { setElements(); setPopup(); } }; const setElements = function () {els.contents = document.querySelector('#contents'); els.openCta = document.querySelector('.js-inner-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 () { innerPopup({ layerPopup: els.layerPopup, layerPopupClass: '.common-yotube-popup', openerEvent: { element: els.openCta, }, 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 = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.liveTranslateTutorial = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let stepInfo = [];let status = {};const init = function () {els.section = document.querySelector('.highlights-live-translate-tutorial');if (!!els.section) {setElements();bindEvents();}};const setElements = function () {els.tutorialVideoContainer = els.section.querySelector('.common-tutorial__main-video');els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video');els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video');els.videos = els.tutorialVideoContainer.querySelectorAll('.common-tutorial__video .common-video__video');els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');els.tutorialReplay = els.tutorialVideoContainer.querySelector('.common-tutorial__replay-cta');els.muteCtas = els.section.querySelectorAll('.common-mute-button');};const setProperty = function(el, index){el.video = el.querySelector('video');el.controller = el.querySelector('.common-play-button');el.controller.video = el.querySelector('video');el.alert = el.parentElement.querySelector('.common-tutorial__alert');el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');el.videoMuteCta = el.querySelector('.common-mute-button');el.video.playIndex = index;}const setStepStatus = function(el){stepInfo.push({alert: el.getAttribute('data-alert'),tooltip: el.getAttribute('data-tooltip')});}const eventList = {videoController: function(){for (let i = 0; i < objs.videos.length; i++) {objs.videos[i].controller.addEventListener('click', function(){if (this.video.paused) {this.video.play();} else {this.video.pause();}});}},nextVideoPlay: function(index){if (!!els.videoList[index].tooltip) {utils.onAccessibility(els.videoList[index].tooltip);}els.videoList[index + 1].classList.add('is-visible');utils.onAccessibility(els.videoList[index]);if (els.videos[index + 1].readyState > 3) {els.videos[index + 1].play();} else {els.videos[index + 1].addEventListener('canplay', function(){if (this.paused) this.play();});}setTimeout(()=>{els.videoList[index].classList.remove('is-visible');if (!!els.videoList[index].tooltipCta) {els.videoList[index].tooltipCta.blur();}els.videos[index + 1].videoWrap.videoMuteCta.focus();}, 200);},click: function(){let self = this;els.tooltipCta[0].addEventListener('click', function(){self.nextVideoPlay(0);});},endCallback: function () {if (stepInfo[this.video.playIndex].tooltip == 'true') {if (!this.wrap.tooltipCta.classList.contains('is-bg-load-complete')) {this.wrap.tooltipCta.classList.add('is-bg-load-complete');}this.wrap.tooltipCta.removeAttribute('disabled');this.wrap.tooltip.classList.add('is-visible');}if (stepInfo[this.video.playIndex].alert == 'true') {this.wrap.alert.classList.add('is-visible');}if (!this.wrap.classList.contains('is-completed')) {this.wrap.classList.add('is-completed');this.controller.style.display = 'none';}},onClickMute: function () {for (let i = 0; i < els.muteCtas.length; i++) {els.muteCtas[i].video = els.muteCtas[i].parentElement.parentElement.video;els.muteCtas[i].addEventListener('click', function () {let isMute = this.video.muted;if (!!isMute) {this.classList.add('is-unmuted');this.video.muted = false;this.blind.innerText = this.getAttribute('data-mute');setTagging.mute(this);} else {this.classList.remove('is-unmuted');this.video.muted = true;this.blind.innerText = this.getAttribute('data-unmute');setTagging.unmute(this);}});}},setMuteBlindText: function () {for (let i = 0; i < els.muteCtas.length; i++) {els.muteCtas[i].blind = els.muteCtas[i].querySelector('.blind');els.muteCtas[i].blind.innerText = els.muteCtas[i].getAttribute('data-unmute');}}}const setVideos = function(){objs.videos = [];for (let i = 0; i < els.videoWrap.length; i++) {let isVideoWrap = els.videoWrap[i];objs.videos.push(ANIUTIL.videoHandler({wrap: isVideoWrap,video: isVideoWrap.video,controller: isVideoWrap.controller,resetCallback: function () {if (this.wrap.classList.contains('is-completed')) {this.wrap.classList.remove('is-completed');if (this.controller.style.display = 'none') this.controller.style.display = '';}},playCallback: function () {els.videoList[this.video.playIndex].removeAttribute('tabindex');els.videoList[this.video.playIndex].removeAttribute('aria-hidden');utils.offAccessibility(this.wrap.videoMuteCta);if (this.video.playIndex == 0) {let self = this;clearTimeout(status.videoFocusTimeout);status.videoFocusTimeout = setTimeout(function () {self.wrap.videoMuteCta.focus();status.videoFocusTimeout = null;}, 400);}if (!this.video.muted) {this.wrap.videoMuteCta.classList.remove('is-unmuted');this.wrap.videoMuteCta.video.muted = true;this.wrap.videoMuteCta.blind.innerText = this.wrap.videoMuteCta.getAttribute('data-unmute');setTagging.unmute(this.wrap.videoMuteCta);}this.controller.style.display = 'block';utils.offAccessibility(this.controller);setTagging.pause(this.controller);},pauseCallback: function () {setTagging.play(this.controller);},endCallback: function () {if (!!this.wrap.tooltip) {let self = this;utils.offAccessibility(this.wrap.tooltip);setTimeout(function () {self.wrap.tooltipCta.focus();}, 200);}this.controller.style.display = 'none !important';eventList.endCallback.call(this);if ((els.videos.length -1) == this.video.playIndex) {els.tutorialReplay.style.display = 'block';els.tutorialReplay.removeAttribute('tabindex');els.tutorialReplay.removeAttribute('aria-hidden');els.tutorialReplay.focus();}}}));}};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } },mute: function (targetCta) { if (targetCta.hasAttribute('data-omni')) { let dataOmni = targetCta.getAttribute('data-omni').toLowerCase(); targetCta.setAttribute('data-omni', dataOmni.replace('unmute', 'mute')); } if (targetCta.hasAttribute('ga-la')) { let gaLa = targetCta.getAttribute('ga-la').toLowerCase(); targetCta.setAttribute('ga-la', gaLa.replace('unmute', 'mute')); } },unmute: function (targetCta) { if (targetCta.hasAttribute('data-omni')) { let dataOmni = targetCta.getAttribute('data-omni').toLowerCase(); targetCta.setAttribute('data-omni', dataOmni.replace('mute', 'unmute')); } if (targetCta.hasAttribute('ga-la')) { let gaLa = targetCta.getAttribute('ga-la').toLowerCase(); targetCta.setAttribute('ga-la', gaLa.replace('mute', 'unmute')); } }, };const bindEvents = function () {for (let i = 0; i < els.videoWrap.length; i++) {setProperty(els.videoWrap[i], i);setStepStatus(els.videoList[i])}setVideos();eventList.setMuteBlindText();eventList.videoController();eventList.click();eventList.onClickMute();};return {init: init,}})();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.liveTranslatePopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const init = function () {els.layerPopup = document.querySelector('.highlights-live-translate-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 = document.querySelector('.highlights-live-translate__cta button');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.js-scroll-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-live-translate-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');if(els.contents.querySelector('.common-youtube-popup')) {document.documentElement.appendChild(els.contents.querySelector('.common-youtube-popup'));}}},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);}els.openCta.focus();setTimeout(() => {els.openCta.focus();}, 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 setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-live-translate-popup-img-src',responsiveClass: '.js-live-translate-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-live-translate-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-live-translate-popup-video-src',responsiveClass: '.js-live-translate-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 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.nightography = (function () { let els = {}; let status = {}; let objs = {}; const utils = window.flagship.common.utils; const init = function () { els.section = document.querySelector('.highlights-nightography'); if (!!els.section) { setElements(); objList.swiper(); bindEvents(); } }; const setElements = function () { els.swiperContainer = els.section.querySelector('.swiper-container'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.pagination = els.section.querySelector('.swiper-pagination'); }; const bindEvents = function () { objs.swiper.on('init', swiperEvents.init); objs.swiper.on('slideChange', swiperEvents.slideChange); objs.swiper.init(); 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, }, pagination: { el: els.pagination, type: 'bullets', clickable: true, renderBullet: function () { return '
        • '; } }, slidesPerView: 'auto', centeredSlides: true, spaceBetween: 10, breakpoints: { 768: { spaceBetween: 100, } }, }); } } }; const swiperEvents = { init: function () { let notification = this.el.querySelector('.swiper-notification'); els.bullets = this.pagination.bullets; 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); }); } if (!!notification) this.el.removeChild(notification); accessibility.slide(); accessibility.pagination.tagging(); accessibility.pagination.label(); els.nextArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('aria-label'); }, 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:highlights:camera^nightography:index:', 'ga-ca': 'gallery', 'ga-ac': 'feature gallery', 'ga-la': 'galaxy-s24:highlights:camera^nightography: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.opticalZoom = (function () {const resize = window.flagship.common.resize;let els = {}; let objs = {};let classList = {isZoom: 'is-zoom',isHide: 'is-hide',active: 'is-active',zoomOutReady: 'is-zoom-out-ready'};let index = {}; let clickActive = false;const init = function () {els.section = document.querySelector('.highlights-optical-zoom');if (!!els.section) {setElements();setProperty();setScene();bindEvents();}};const setElements = function () {els.zoomCtaList = els.section.querySelector('.highlights-optical-zoom__zoom-button-list');els.zoomCta = els.section.querySelectorAll('.highlights-optical-zoom__zoom-button');els.zoomTarget = els.section.querySelector('.js-img-zoom');els.zoomImages = els.zoomTarget.querySelectorAll('img');els.tooltip = els.section.querySelector('.highlights-optical-zoom__zoom-tooltip');};const setProperty = function () {for (let i = 0; i < els.zoomImages.length; i++) {els.zoomImages[i].setAttribute('aria-hidden', true);}els.isActiveCtaWrap = els.zoomCta[0].parentElement;els.oldVisibleImage = els.zoomImages[0];accessibility.setTitle(els.zoomCta[0]);els.zoomImages[0].setAttribute('aria-hidden', false);els.zoomImages[0].style.transition = 'none';els.zoomImages[0].classList.add(classList.active);els.zoomImages[0].style.transition = '';els.oldVisibleImage = els.zoomImages[0];};const setScene = function () {objs.scene = SCROLLER({trackElement: els.section,useFixed: false});};const resetImages = function(){ setTimeout(() => { els.oldVisibleImage.classList.remove(classList.isZoom);els.oldVisibleImage.classList.remove('is-zoom-out-ready');els.isvisibleTargetImage.removeEventListener('transitionend', resetImages); els.oldVisibleImage.removeEventListener('transitionend', resetImages);els.oldVisibleImage = els.isvisibleTargetImage; clickActive = false; }, 200); };const bindEvents = function () {els.zoomCtaList.addEventListener('click', zoomClickEvent);els.section.addEventListener('keydown', zoomClickEvent);window.addEventListener('scroll', scrollHandler);scrollHandler();};const scrollHandler = function () {objs.scene.trackAnimation(function () {let startProgress = resize.checkResolution() == 'desktop' ? 40 : 35;if (this.progress > startProgress && this.progress < 70) {let speed = 1000; zoomClickEvent(undefined, els.zoomCta[1]); setTimeout(() => { zoomClickEvent(undefined, els.zoomCta[2]); }, speed); setTimeout(() => { zoomClickEvent(undefined, els.zoomCta[1]);TweenMax.to(els.tooltip, 0.4, {opacity: 1, ease: 'linear', delay: 1}); }, speed * 2);window.removeEventListener('scroll', scrollHandler);}});}; const zoomClickEvent = function (e, trigger) { if (clickActive) return; let actionableEventStatus;if (e != undefined) {if (e.type == 'click' && e.target.classList.contains('highlights-optical-zoom__zoom-tooltip-text')) return;let typeCheck = (e.type == 'click' || e.type == 'keydown');let commonClassCheck = e.target.classList.contains('highlights-optical-zoom__zoom-button-title');let clickClassCheck = e.type == 'click' && e.target.classList.contains('highlights-optical-zoom__zoom-button');let keyCodeCheck = e.keyCode == 13;actionableEventStatus = typeCheck && (commonClassCheck || clickClassCheck || keyCodeCheck);} else if (e == undefined && trigger != undefined) {actionableEventStatus = true;} if (actionableEventStatus) { els.isZoomCta = trigger ? trigger : e.target.classList.contains('highlights-optical-zoom__zoom-button-title') ? e.target.parentElement : e.target; els.isZoomCtaWrap = els.isZoomCta.parentElement; index.click = els.isZoomCta.getAttribute('data-index'); if (index.click == index.active) return; clickActive = true; els.isvisibleTargetImage = els.zoomImages[index.click]; if (!!!trigger && !els.tooltip.classList.contains(classList.isHide)) { 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(classList.isHide); }accessibility.removeTitle();accessibility.setTitle(els.isZoomCta);els.isActiveCtaWrap.classList.remove(classList.active);els.isZoomCtaWrap.classList.add(classList.active);if (!!!index.active || (index.active < index.click)) {els.isZoomImage = els.oldVisibleImage;els.oldVisibleImage.addEventListener('transitionend', resetImages);els.oldVisibleImage.classList.add(classList.isZoom);els.oldVisibleImage.classList.remove(classList.active, classList.zoomOutReady);els.isvisibleTargetImage.classList.add(classList.active);} else {els.isZoomImage = els.oldVisibleImage;els.isvisibleTargetImage.classList.add(classList.zoomOutReady);els.isvisibleTargetImage.addEventListener('transitionend', resetImages);setTimeout(() => {els.isvisibleTargetImage.classList.add(classList.active);}, 100);setTimeout(() => {els.oldVisibleImage.classList.remove(classList.active);}, 600);}els.oldVisibleImage.setAttribute('aria-hidden', true);els.isvisibleTargetImage.setAttribute('aria-hidden', false); els.isActiveCtaWrap = els.isZoomCtaWrap; index.active = index.click; } };const accessibility = {removeTitle: function () {for (let i = 0; i < els.zoomCta.length; i++) {els.zoomCta[i].removeAttribute('title');}},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.overview = (() => { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}; let objs = {}; let eventFnc = {}; let statusClass = { progress: { active: 'js-progress-active', pause: 'js-progress-pause' }, video: { load: 'is-loaded', complete: 'is-video-load-complete' }, navigation: 'is-active', info: { visible: 'is-visible', active: 'is-active' }, }; let status = { currentDevice: resize.checkResolution(), isAuto: true, isClickControl: false, }; const init = () => { els.section = document.querySelector('.highlights-overview'); if (!!els.section) { setElements(); setProperty(); objList.setScene(); bindEvents(); } }; const setElements = () => { els.sectionInner = els.section.querySelector('.common-inner'); els.overviewContents = els.section.querySelector('.highlights-overview__contents') els.swiperContainer = els.section.querySelector('.js-overview-carousel'); els.slides = els.section.querySelectorAll('.highlights-overview__carousel-slide'); els.videoWrap = els.section.querySelectorAll('.common-video'); els.videos = els.section.querySelectorAll('.common-video__video'); els.videoControlCta = els.section.querySelectorAll('.common-video__control'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.progressWrap = els.section.querySelectorAll('.js-progress-wrap'); els.progressBar = els.section.querySelectorAll('.js-progress-bar'); els.navigationWrap = els.section.querySelector('.highlights-overview__navigation'); els.navigationInner = els.navigationWrap.querySelector('.highlights-overview__navigation-inner'); els.navigationList = els.navigationWrap.querySelectorAll('.highlights-overview__navigation-listitem'); els.navigationBtn = els.navigationWrap.querySelectorAll('.highlights-overview__navigation-button-wrap'); els.infoItem = els.section.querySelectorAll('.highlights-overview__info-item'); els.featureCtas = els.section.querySelectorAll('a.common-cta-encased'); els.sup = els.section.querySelectorAll('a.click_sup'); // tutorial els.tutorialOpenCtas = els.section.querySelectorAll('.js-tutorial-popup'); els.tutorialCloseCtas = document.querySelectorAll('.common-tutorial__close-cta'); }; const setProperty = () => { status.navSlideWrapWidth = els.navigationWrap.clientWidth; status.isRtl = document.documentElement.classList.contains('rtl'); for (let i = 0; i < els.videos.length; i++) { els.videos[i].controlCta = els.videoControlCta[i]; els.videos[i].wrap = els.videoWrap[i]; els.videoControlCta[i].video = els.videos[i]; } for (let j = 0; j < els.navigationBtn.length; j++) { els.navigationBtn[j].index = j; els.navigationBtn[j].img = els.navigationBtn[j].querySelectorAll('.highlights-overview__navigation-button-image img'); els.navigationBtn[j].img[0].parentWrap = els.navigationBtn[j]; els.navigationBtn[j].img[1].parentWrap = els.navigationBtn[j]; els.navigationBtn[j].text = els.navigationBtn[j].querySelector('.highlights-overview__navigation-button-text'); els.navigationBtn[j].text.parentWrap = els.navigationBtn[j]; els.navigationBtn[j].addEventListener('keydown', eventList.onClickNavigation); } }; const objList = { setSwiper: () => { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, init: false, speed: 500, }); objs.swiper.currentIndex = 0; objs.swiper.on('init', function () { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); els.nextArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('aria-label'); objList.setVideo(); eventList.setVideoController(); eventList.scroll(); eventList.animationEnd(); accessibility.slide(); accessibility.setTitle(); }); objs.swiper.on('slideChange', swiperEvent.slideChange); objs.swiper.on('transitionEnd', swiperEvent.transitionEnd); objs.swiper.on('touchMove', swiperEvent.touchMove); objs.swiper.on('touchEnd', swiperEvent.touchEnd); objs.swiper.init(); } }, setVideo: () => { for (let i = 0; i < els.slides.length; i++) { let isSlide = els.slides[i]; let isVideoWrap = isSlide.querySelector('.common-video'); let isVideo = isSlide.querySelector('.common-video__video'); objs[`video_${i}`] = ANIUTIL.videoHandler({ playType: 'scrollPlay', wrap: isVideoWrap, video: isVideo, controller: isVideo.controlCta, startPoint: resize.checkResolution().indexOf('mobile') > -1 ? 25 : 35, reversePoint: resize.checkResolution().indexOf('mobile') > -1 ? 75 : 80, playCallback: function () { status.isAuto = true; if (!!!els.progressBar[i].style['animation-duration']) els.progressBar[i].style['animation-duration'] = `${isVideo.duration}s`; els.progressWrap[i].classList.remove(statusClass.progress.pause); if(isVideo.currentTime == 0) els.progressWrap[i].classList.remove(statusClass.progress.active); setTimeout(() => { els.progressWrap[i].classList.add(statusClass.progress.active); }, 20); accessibility.setTagging.pause(isVideo.controlCta); }, pauseCallback: function () { status.isAuto = false; setTimeout(() => { els.progressWrap[i].classList.add(statusClass.progress.pause); }, 100); accessibility.setTagging.play(isVideo.controlCta); }, endCallback: function () { if (!isVideoWrap.classList.contains('is-completed')) isVideoWrap.classList.add('is-completed'); status.isAuto = true; }, resetCallback: function () { setTimeout(() => { els.progressWrap[i].classList.remove(statusClass.progress.pause); els.progressWrap[i].classList.remove(statusClass.progress.active); }, 100); } }); } }, setScene: () => { objs.scene = SCROLLER({ trackElement: els.overviewContents, useFixed: false }); }, setNavSwiper: () => { if (objs.navSwiper == null) { objs.navSwiper = new Swiper(els.navigationWrap, { init: false, slidesPerView: 'auto', }); objs.navSwiper.on('init', function () { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); }); objs.navSwiper.on('touchMove', swiperEvent.checkScrollEnd); objs.navSwiper.init(); } } }; const bindEvents = () => { objList.setSwiper(); window.addEventListener('scroll', eventList.scroll); els.navigationWrap.addEventListener('click', eventList.onClickNavigation); els.nextArrow.addEventListener('click', swiperEvent.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvent.onClickArrow); els.prevArrow.addEventListener('click', swiperEvent.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvent.onClickArrow); swiperEvent.navInitCheck(); for (let i = 0; i < els.featureCtas.length; i++) { els.featureCtas[i].addEventListener('click', eventList.clickFeatureCta); } // tutorial for (let j = 0; j < els.tutorialOpenCtas.length; j++) { els.tutorialOpenCtas[j].addEventListener('click', eventList.clickTutorialOpenCta); } // tutorial close for (let i=0; i < els.tutorialCloseCtas.length; i++) { els.tutorialCloseCtas[i].addEventListener('click', function () { if(!status.activeVideoPaused) status.activeVideo.play(); }) } for(let i=0; i { let activeIndex = objs.swiper.activeIndex; let currentIndex = objs.swiper.currentIndex; let slideLength = objs.swiper.slides.length; let loadIndex = activeIndex == slideLength - 1 ? 0 : activeIndex; let loadVideoLength = els.section.querySelectorAll(`.${statusClass.video.load}`).length; let allSlideloadComplete = els.videos.length == loadVideoLength; let nextIndex = (objs.swiper.activeIndex < objs.swiper.slides.length - 1) ? (objs.swiper.activeIndex + 1) : 0; if (!allSlideloadComplete && els.videos.length > loadIndex) { if (!els.videos[activeIndex].classList.contains(statusClass.video.complete)) { videoLoader.setResponsiveMedia([els.videos[activeIndex]]); els.videoWrap[activeIndex].classList.add(statusClass.video.load); } if (!els.videos[nextIndex].classList.contains(statusClass.video.complete)) { videoLoader.setResponsiveMedia([els.videos[nextIndex]]); els.videoWrap[nextIndex].classList.add(statusClass.video.load); } } if (currentIndex != activeIndex) { objs[`video_${currentIndex}`].eventList.reset.call(objs[`video_${currentIndex}`]); objs[`video_${currentIndex}`].video.removeEventListener('canplay', objs[`video_${currentIndex}`].video.play); if(!!utils.isLowNetwork() || !status.isAuto) { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); els.progressWrap[activeIndex].classList.remove(statusClass.progress.pause); } else { els.progressWrap[currentIndex].classList.remove(statusClass.progress.active); if (objs[`video_${activeIndex}`] != undefined && objs[`video_${activeIndex}`].video.readyState >= 4) { objs[`video_${activeIndex}`].video.play(); } else { objs[`video_${activeIndex}`].video.addEventListener('canplay', function () { this.play(); }); } } if (!els.navigationBtn[activeIndex].classList.contains(statusClass.navigation)) { els.navigationBtn[currentIndex].classList.remove(statusClass.navigation); els.navigationBtn[activeIndex].classList.add(statusClass.navigation); accessibility.setTitle(); } if (!els.infoItem[activeIndex].classList.contains(statusClass.info.visible)) { els.infoItem[currentIndex].classList.remove(statusClass.info.visible); els.infoItem[activeIndex].classList.add(statusClass.info.visible); } if (!els.infoItem[activeIndex].classList.contains(statusClass.info.active)) { els.infoItem[currentIndex].classList.remove(statusClass.info.active); els.infoItem[activeIndex].classList.add(statusClass.info.active); } } if (objs.navSwiper != null) swiperEvent.setNavSwiperXvalue(activeIndex); accessibility.slide(); objs.swiper.currentIndex = activeIndex; }, transitionEnd: function () { if(!!status.isClickControl) return; objs[`video_${objs.swiper.activeIndex}`].video.controlCta.focus(); }, touchMove: function () { objs.swiper.off('transitionEnd', swiperEvent.transitionEnd); }, touchEnd: function () { objs.swiper.on('transitionEnd', swiperEvent.transitionEnd); }, onClickArrow: function (e) { status.arrowTimeout = null; status.arrowStyleTimeout = null; status.accessibilityTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); status.isClickControl = true; if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.prevArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.nextArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.prevArrow.style.display = ''; }, 400); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.nextArrow.style.setProperty('display', 'block', 'important'); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { els.prevArrow.focus(); }, 300); clearTimeout(status.arrowStyleTimeout); status.arrowStyleTimeout = setTimeout(function () { els.nextArrow.style.display = ''; }, 400); } else if(!objs.swiper.isBeginning && !objs.swiper.isEnd) { let target = e.target.classList.contains('swiper-button-next') ? els.nextArrow : els.prevArrow; let noTarget = target.classList.contains('swiper-button-next') ? els.prevArrow : els.nextArrow; objs.swiper.slides[objs.swiper.activeIndex].setAttribute('tabindex', -1); objs.swiper.slides[objs.swiper.activeIndex].setAttribute('aria-hidden', true); noTarget.setAttribute('tabindex', -1); noTarget.setAttribute('aria-hidden', true); clearTimeout(status.arrowTimeout); status.arrowTimeout = setTimeout(function () { target.focus(); }, 300); clearTimeout(status.accessibilityTimeout); status.accessibilityTimeout = setTimeout(function () { objs.swiper.slides[objs.swiper.activeIndex].removeAttribute('tabindex'); objs.swiper.slides[objs.swiper.activeIndex].removeAttribute('aria-hidden'); noTarget.removeAttribute('tabindex'); noTarget.removeAttribute('aria-hidden'); }, 400); } eventList.animationEndDestroy(); } }, navInitCheck: () => { let wrapPadding = parseInt(window.getComputedStyle(els.sectionInner).paddingLeft) * 2; let getComputedStyle = window.getComputedStyle(els.navigationList[0]); let navMargin = !!status.isRtl ? parseInt(getComputedStyle.marginLeft) : parseInt(getComputedStyle.marginRight); let navSlideWidth = els.navigationList[0].clientWidth; let slideWrapWidth = (navSlideWidth * els.navigationList.length) + (navMargin * (els.navigationList.length - 1)); status.navSwiperPadding = (status.navSlideWrapWidth - slideWrapWidth) / 2; let contentsWidth = els.sectionInner.clientWidth - wrapPadding - status.navSwiperPadding; status.isNavInit = (status.currentDevice.indexOf('mobile') > -1 && contentsWidth <= slideWrapWidth) || els.navigationList.length > 4; if(!!status.isNavInit) { objList.setNavSwiper(); } else { swiperEvent.destroy(); } }, setNavSwiperXvalue: (activeIndex) => { if (activeIndex === 0 || activeIndex === 1) { status.xValue = 0; } else if (activeIndex > 1) { if((status.navSwiperPadding * 2) < 0) { status.xValue = (status.navSlideWrapWidth - els.navigationInner.clientWidth) + Math.abs((status.navSwiperPadding * 2)); } else { status.xValue = status.navSlideWrapWidth - els.navigationInner.clientWidth; } } if(!status.isRtl) els.navigationInner.style.transform = `translate3d(-${status.xValue}px, 0px, 0px)`; else els.navigationInner.style.transform = `translate3d(${status.xValue}px, 0px, 0px)`; swiperEvent.checkScrollEnd(); }, checkScrollEnd: () => { if(!status.isRtl) { if(objs.navSwiper.getTranslate() < 0) els.navigationWrap.classList.add('is-scroll-end'); else els.navigationWrap.classList.remove('is-scroll-end'); } else { if(objs.navSwiper.getTranslate() < 0) els.navigationWrap.classList.remove('is-scroll-end'); else els.navigationWrap.classList.add('is-scroll-end'); } }, destroy: () => { if(objs.navSwiper != null) { objs.navSwiper.destroy(true); objs.navSwiper = null; } } } const eventList = { setVideoController: () => { for (let i = 0; i < els.videoControlCta.length; i++) { els.videoControlCta[i].addEventListener('click', function () { let isVideo = this.video; if (isVideo.paused) { isVideo.play(); } else { isVideo.pause(); } }); } }, scroll: () => { objs.scene.trackAnimation(function () { objs[`video_${objs.swiper.activeIndex}`].scrollActive(this.progress); }); }, animationEnd: () => { eventFnc.animationEnd = {}; if(!!utils.isLowNetwork()) return; for (let i = 0; i < els.progressBar.length; i++) { eventFnc.animationEnd[i] = function () { if (objs.swiper.activeIndex == (objs.swiper.slides.length - 1)) { status.isAuto = false; els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); } else { setTimeout(() => { if(!status.isAuto) return; objs.swiper.slideNext(500); els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); }, 800); } }; els.progressBar[i].addEventListener('animationend', eventFnc.animationEnd[i]); } }, animationEndDestroy: () => { for (let i = 0; i < els.progressBar.length; i++) { els.progressBar[i].removeEventListener('animationend', eventFnc.animationEnd[i]); } }, onClickNavigation: (e) => { if (e.target.classList.contains('swiper-wrapper') || (e.type == 'keydown' && e.keyCode != 13)) return; let oldTarget = els.navigationWrap.querySelector(`.${statusClass.navigation}`); let targetMatches = e.target.matches('.highlights-overview__navigation-button-image img') || e.target.matches('.highlights-overview__navigation-button-text'); if (targetMatches) { currentTarget = e.target.parentWrap; } else if (e.target.classList.contains('highlights-overview__navigation-button')) { currentTarget = e.target.parentElement; } if (!currentTarget.classList.contains(statusClass.navigation)) { oldTarget.classList.remove(statusClass.navigation); currentTarget.classList.add(statusClass.navigation); objs.swiper.slideTo(currentTarget.index, 500, false); accessibility.setTitle(); } status.isClickControl = true; eventList.animationEndDestroy(); }, clickFeatureCta: (e) => { e.preventDefault(); status.isAuto = false; let target = e.target.matches('.common-cta-encased__text') ? e.target.parentElement : e.target; let sectionId = target.getAttribute('href'); let section; if (sectionId == '#transcript-assist') { section = document.querySelector('.highlights-live-translate'); let layerPopup = document.querySelector(sectionId); let sectionTop = section.getBoundingClientRect().top; let movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(); window.scrollTo(0, movePosition); setTimeout(() => { layerPopup.show(); }, 300); } else { section = document.querySelector(sectionId); let sectionTop = section.getBoundingClientRect().top; let movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(); let title = section.querySelector('h2.common-sub-headline'); let clickable = section.querySelectorAll('a, button'); if (!!title) { let _focusOut = function () { title.removeAttribute('tabindex'); title.removeEventListener('focusout', _focusOut); }; title.addEventListener('focusout', _focusOut); title.setAttribute('tabindex', 0); title.focus(); } else { clickable[0].focus(); } window.scrollTo(0, movePosition); } }, onResize: function (currRes) { status.currentDevice = currRes; status.navSlideWrapWidth = els.navigationWrap.clientWidth; swiperEvent.navInitCheck(); }, clickTutorialOpenCta: function () { let hash = this.getAttribute('data-hash'); let tutorialPopup = document.querySelector(`#${hash}`); let tutorialPopupList = document.querySelectorAll('.common-tutorial'); if (tutorialPopup) { status.isAuto = false; status.activeVideo = objs[`video_${objs.swiper.activeIndex}`].video; status.activeVideoPaused = status.activeVideo.paused; tutorialPopup.show(); if (utils.detector.isIosDevice || utils.detector.isTouchDevice) this.blur();else this.focus(); for (let i = 0; i < tutorialPopupList.length; i++) { tutorialPopupList[i].isOverview = true; tutorialPopupList[i].overviewCta = this; } } }, }; const accessibility = { slide: () => { for (let i = 0; i < objs.swiper.slides.length; i++) { if (i != objs.swiper.activeIndex) { utils.onAccessibility(objs.swiper.slides[i]); } else { utils.offAccessibility(objs.swiper.slides[i]); } } }, setTitle: () => { for (let i = 0; i < els.navigationBtn.length; i++) { let button = els.navigationBtn[i].querySelector('button'); button.removeAttribute('title'); if (i == objs.swiper.activeIndex) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { button.setAttribute('title', LOCAL_VARI.selected); } else { button.setAttribute('title', 'Selected'); } } } }, setTagging: { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } } }; return { init: init } })();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.quote = (function () { const utils = window.flagship.common.utils, resize = window.flagship.common.resize; let els = {}, prevDevice = null, currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('.highlights-media-quote'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.swiper = null; els.itemArray = []; els.quoteWrap = els.section.querySelector('.highlights-media-quote__inner'); els.quoteContainer = els.section.querySelector('.highlights-media-quote__list-wrap'); els.quoteList = els.section.querySelector('.highlights-media-quote__list'); els.quoteListItems = els.quoteList.querySelectorAll('.highlights-media-quote__item'); els.arrowWrap = els.section.querySelector('.highlights-media-quote__arrow'); els.prevArrow = els.section.querySelector('.swiper-button-prev'); els.nextArrow = els.section.querySelector('.swiper-button-next'); els.quotePagination = els.section.querySelector('.highlights-media-quote__pagination'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLodeHandler, {once : true}); resize.add(onResizeHandler); els.nextArrow.addEventListener('click', swiperEvents.onClickArrow); els.nextArrow.addEventListener('keydown', swiperEvents.onClickArrow); els.prevArrow.addEventListener('click', swiperEvents.onClickArrow); els.prevArrow.addEventListener('keydown', swiperEvents.onClickArrow); }; const onLodeHandler = function () { onResponsiveChange(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveChange(); prevDevice = currDevice; } }; const onResponsiveChange = function () { if (currDevice.indexOf('mobile') > -1) { setSwiper(); } else { swiperEvents.destroy(); } }; const setSwiper = function () { if (els.swiper === null) { els.quoteWrap.classList.add('js-swiper-initialized'); els.swiper = new Swiper(els.quoteContainer, { init: false, slidesPerView: 'auto', centeredSlides: true, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, pagination: { el: els.quotePagination, type: 'bullets', renderBullet: function () { return '
        • '; } } }); els.swiper.on('init', swiperEvents.init); els.swiper.on('slideChange', swiperEvents.slideChange); els.swiper.init(); } }; const swiperEvents = { init: function () { let self = this, notification = self.el.querySelector('.swiper-notification'); if (!!notification) self.el.removeChild(notification); setAccessibility.slide(); setAccessibility.arrow(); setPaginationTagging.call(self); setPaginationLabel.call(self); for (let i = 0; i < self.pagination.bullets.length; i++) { (function (idx) { self.pagination.bullets[i].addEventListener('click', function () { self.slideTo(idx); }); })(i); } }, slideChange : function () { setAccessibility.slide(); setAccessibility.arrow(); setPaginationLabel.call(this); }, onClickArrow: function (e) { if ((e.type == 'keydown' && e.keyCode == 13) || (e.type == 'click' && document.documentElement.classList.contains('isTouchDevice'))) { e.preventDefault(); clearTimeout(els.arrowTimeout); els.arrowTimeout = setTimeout(function () { if (els.swiper.isBeginning && !els.swiper.isEnd) { els.nextArrow.focus(); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { els.prevArrow.focus(); } }, 300); } }, destroy : function () { if (els.swiper != null) { els.quoteWrap.classList.remove('js-swiper-initialized'); els.swiper.pagination.destroy(true); els.swiper.navigation.destroy(true); els.swiper.destroy(true); els.swiper = null; } }, }; const setPaginationTagging = function () { let bullets = Array.prototype.slice.call(this.pagination.bullets), paginationTagging = { 'data-omni-type': 'microsite_contentinter', 'data-omni': 'galaxy-s24:highlights:overview:media-quote:index:', 'ga-ca': 'indication', 'ga-ac': 'carousel', 'ga-la': 'galaxy-s24:highlights:overview:media-quote:index:', }; bullets.forEach(function (ele, idx) { Object.keys(paginationTagging).forEach(function (key) { if (key == 'data-omni' || key == 'ga-la') { ele.setAttribute(key, paginationTagging[key] + (idx + 1)); } else { ele.setAttribute(key, paginationTagging[key]); } }); }); }; const setPaginationLabel = function () { let self = this, slides = Array.prototype.slice.call(this.slides), bullets = Array.prototype.slice.call(this.pagination.bullets); bullets.forEach(function (bullet, bulletIndex) { let ariaLabelText = slides[bulletIndex].querySelector('.highlights-media-quote__media').innerText; if (self.realIndex == bulletIndex) { bullet.setAttribute('aria-label', ariaLabelText + ' Selected'); } else { bullet.setAttribute('aria-label', ariaLabelText); } }); }; const setAccessibility = { slide: function () { for (let i = 0; i < els.swiper.slides.length; i++) { if (i != els.swiper.snapIndex) { utils.onAccessibility(els.swiper.slides[i]); } else { utils.offAccessibility(els.swiper.slides[i]); } } }, arrow: function () { if (els.swiper.isBeginning && !els.swiper.isEnd) { utils.offAccessibility(els.nextArrow); utils.onAccessibility(els.prevArrow); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { utils.offAccessibility(els.prevArrow); utils.onAccessibility(els.nextArrow); } else { utils.offAccessibility(els.nextArrow); utils.offAccessibility(els.prevArrow); } } }; return { init: init, } })();})();(function () {window.flagship = window.flagship || {};window.flagship.highlights = window.flagship.highlights || {};window.flagship.highlights.resolutionPopup = (function () {const utils = window.flagship.common.utils;const common = window.flagship.highlights.common;let els = {};let objs = {};let status = {};const init = function () {els.section = document.querySelector('.highlights-resolution');els.layerPopup = document.querySelector('.highlights-resolution-popup');if (!!els.layerPopup) {setElements();setStatus();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.hashPopupOpener = null;};const setStatus = function () {status.isHash = false;};const bindEvents = function () {for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', onClickSup);}};const setPopup = function () {utils.layerPopup({layerPopup: els.layerPopup,layerPopupClass: '.highlights-resolution-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();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);if (status.isHash && els.hashPopupOpener) {els.hashPopupOpener.focus();setTimeout(function () {els.hashPopupOpener.focus();status.isHash = false;els.hashPopupOpener = null;}, 300);}}}});};const setPopupLazyLoader = {image: function () {objs.imageLoader = ANIUTIL.mediaLoader({lazyClass: '.js-resolution-popup-img-src',responsiveClass: '.js-resolution-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-resolution-popup-bg-img',innerScroll: {use: true,wrap: els.layerPopup,},loadOption: [{resolution: 1920,attribute: '',bgOpts: ''}],visiblePoint: 1});},};const 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);};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'); let layerPopup = document.querySelectorAll('#generative-edit-experience, #circle-to-search-experience, #live-translate-experience, #chat-assist-experience'); let popupClassList = [ '.highlights-generative-edit-tutorial', '.highlights-circle-to-search-tutorial','.highlights-live-translate-tutorial','.highlights-chat-assist-tutorial' ]let statusClass = {isVisible: 'is-visible',isTutorialOpend: 'is-tutorial-opened',isTutorialOpenedMo: 'is-tutorial-opened-mo',isInfoOpen: 'is-info-open',isInfoVisible: 'is-info-visible',isTutorialEnd: 'is-tutorial-end',isActive: 'is-active',isBgLoadComplete: 'is-bg-load-complete',isCompleted: 'is-completed',isOpen: 'is-open',}const init = function () {status.isHash = false;status.isIos = utils.detector.isIosDevice;status.overview = {};commonEls.globalSubNav = document.querySelector('#subnav');commonEls.globalContents = document.querySelector('#contents');commonEls.dotcomContents = document.querySelector('.pd-g-floating-nav');commonEls.overview = document.querySelector('.highlights-overview');commonEls.gnb = document.querySelector('.nv00-gnb');commonEls.tooltipWrap = document.querySelectorAll('.js-tutorial-tooltip');if (status.isGlobal) {commonEls.contentsChildren = document.querySelector('#contents').children;commonEls.commonUi = document.querySelectorAll('#accessibility-navigation, #header, #footer');} else {commonEls.wrapChildren = document.querySelector('#wrap').children;commonEls.contentChildren = document.querySelector('#content').children;commonEls.rootChildren = document.querySelector('#content .root .responsivegrid .aem-Grid--12').children;commonEls.flotingNavi = document.querySelector('.pd-g-floating-nav');commonEls.flotingNaviFixedWrap = document.querySelector('.floating-navigation__wrap');}for (let i = 0; i < sectionList.length; i++) {let opts = {section: sectionList[i],layerPopup: layerPopup[i],popupClass: popupClassList[i],openCta: sectionList[i].querySelector('.js-tutorial-popup'),closeCta: layerPopup[i].querySelector('.common-tutorial__close-cta--popup'),moCloseCta: layerPopup[i].querySelector('.common-tutorial__close-cta--video'),}els = getElements(opts);tooltipAccessibility();setPopup(opts, els);bindEvents(els, i);}};const getElements = function (opts) {let els = {};els.openCta = opts.section.querySelector('.js-tutorial-popup');els.layerPopup = opts.layerPopup;els.innerWrapper = opts.layerPopup.querySelector('.common-tutorial__inner-wrapper');els.innerWrap = opts.layerPopup.querySelector('.common-tutorial__inner-wrap');els.textWrap = opts.layerPopup.querySelector('.common-tutorial__text');els.closeCta = opts.layerPopup.querySelector('.common-tutorial__close-cta--popup');els.moCloseCta = opts.moCloseCta;els.infoPopup = opts.layerPopup.querySelector('.common-tutorial__info-area');els.videoContent = opts.layerPopup.querySelector('.common-tutorial__video-content');els.introVideoSection = opts.layerPopup.querySelector('.common-tutorial__intro-video');els.introVideoWrap = opts.layerPopup.querySelector('.common-tutorial__intro-video .common-video'); els.introVideo = opts.layerPopup.querySelector('.common-tutorial__intro-video video');els.introCoverImage = opts.layerPopup.querySelector('.common-tutorial__intro-video .common-video__cover-image');if (opts.layerPopup.classList.contains('highlights-live-translate-tutorial')) {els.introCta = opts.layerPopup.querySelector('.common-tutorial__intro-video .js-tutorial-tooltip-cta');}els.tutorialContents = opts.layerPopup.querySelector('.common-tutorial__video-content');els.tutorialVideoContainer = opts.layerPopup.querySelector('.common-tutorial__main-video');els.tutorialVideoWrap = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-tutorial__video');els.tutorialVideos = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-tutorial__video video');els.tutorialCoverImages = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .common-video__cover-image');els.tutorialActiveCta = opts.layerPopup.querySelector('.common-tutorial__cta--play button');els.tutorialDeactiveCta = opts.layerPopup.querySelector('.common-tutorial__cta--pause button');els.tutorialTooltip = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .js-tutorial-tooltip');els.tutorialAlert = opts.layerPopup.querySelectorAll('.common-tutorial__main-video .js-tutorial-alert');els.generativeCta = opts.layerPopup.querySelector('.js-tutorial-generative-cta');els.tutorialFrame = opts.layerPopup.querySelector('.common-tutorial__main-video.common-video__frame');els.tutorialReplay = opts.layerPopup.querySelector('.common-tutorial__replay-cta');els.tutorialNavigation = opts.layerPopup.querySelector('.common-tutorial__navigation');els.navPrev = els.tutorialNavigation.querySelector('.common-tutorial__navigation-button--prev');els.navNext = els.tutorialNavigation.querySelector('.common-tutorial__navigation-button--next');els.tutorialPagination = opts.layerPopup.querySelector('.common-tutorial__pagination-area');els.supClicker = opts.layerPopup.querySelectorAll('a.click_sup');els.layerPopup.opener = els.openCta;els.layerPopup.targetOpener = opts.openCta;return els;};const setProperty = function(els){els.introVideoWrap.video = els.introVideo;els.introVideoWrap.controller = els.introVideoWrap.querySelector('.common-video__control');els.introVideoWrap.controller.video = els.introVideo;};const tooltipAccessibility = function() {for (let i = 0; i < commonEls.tooltipWrap.length; i++) {utils.onAccessibility(commonEls.tooltipWrap[i]);}};const eventList = {common: {setMobileVideoWidth: function(els){if (els.layerPopup.classList.contains('is-open') && resize.checkResolution().indexOf('mobile') > -1) {let containerWidth = window.innerWidth;let containerHeight = window.innerHeight;if (!status.isIos) {let videoHeight = Math.floor(containerWidth * 2.1666);if (videoHeight > containerHeight) {els.tutorialVideoContainer.style.width = `${Math.floor(containerHeight * 0.4615)}px`;els.tutorialVideoContainer.style.height = `${containerHeight}px`;} else {els.tutorialVideoContainer.style.width = '';els.tutorialVideoContainer.style.height = `${videoHeight}px`;}} else {els.tutorialVideoContainer.style.width = `${Math.floor(containerHeight * 0.4615)}px`;}} else if (resize.checkResolution() != 'mobile' && els.tutorialVideoContainer.style.height) {if (!status.isIos) {els.tutorialVideoContainer.style.width = '';els.tutorialVideoContainer.style.height = '';} else {els.tutorialVideoContainer.style.width = '';}}},},resize: {position: function(els) {if (els.layerPopup.classList.contains('is-open')) {if (isDevice.indexOf('desktop') > -1 && resize.checkResolution().indexOf('desktop') > -1) {let isHash = location.hash;if (!status.isGlobal && window.pageYOffset == 0 && !!isHash) {eventList.popup.setPopupPosition(els.layerPopup);}}if (isDevice != resize.checkResolution()) {eventList.popup.setPopupPosition(els.layerPopup);if (els.layerPopup.querySelector('.is-info-open, .is-tutorial-opened')) {eventList.tutorial.deactive(els);eventList.tutorial.reset(els);};isDevice = resize.checkResolution();}}},},tutorial: {videoContentReset: function(els){els.videoContent.classList.remove(statusClass.isInfoOpen);els.videoContent.classList.remove(statusClass.isInfoVisible);els.videoContent.classList.add(statusClass.isTutorialOpend);},reset: function(els) {if (els.generativeCta) {els.generativeCta.classList.remove(statusClass.isVisible, statusClass.isTutorialEnd);els.generativeCta.parentElement.classList.remove(statusClass.isVisible);}els.tutorialActiveCta.parentElement.classList.add(statusClass.isActive);els.tutorialDeactiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialContents.classList.remove(statusClass.isInfoOpen);els.videoContent.classList.remove(statusClass.isInfoVisible);els.tutorialContents.classList.remove(statusClass.isTutorialOpend);if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.remove(statusClass.isTutorialOpenedMo);}for (let i = 0; i < els.tutorialVideoWrap.length; i++) {if (els.tutorialVideoWrap[i]) els.tutorialVideoWrap[i].classList.remove(statusClass.isVisible);if (els.tutorialVideos[i]) {if (!els.tutorialVideos[i].paused) {els.tutorialVideos[i].pause();}els.tutorialVideos[i].currentTime = 0;}let isComplete = els.tutorialVideoWrap[i].querySelector(`.${statusClass.isCompleted}`);if (isComplete) els.tutorialVideos[i].videoHandler.resetCallback();if (els.tutorialTooltip[i]) els.tutorialTooltip[i].classList.remove(statusClass.isVisible);if (els.tutorialAlert[i]) els.tutorialAlert[i].classList.remove(statusClass.isVisible);clearTimeout(status.infoRemoveTiming);}if (!!els.introCta) {els.introCta.parentElement.classList.remove(statusClass.isVisible);utils.onAccessibility(els.introCta.parentElement);}els.tutorialReplay.style.display = '';if (!els.tutorialReplay.hasAttribute('tabindex')) els.tutorialReplay.setAttribute('tabindex', -1);if (!els.tutorialReplay.hasAttribute('aria-hidden')) els.tutorialReplay.setAttribute('aria-hidden', true);els.introVideoWrap.controller.removeAttribute('tabindex');els.introVideoWrap.controller.removeAttribute('aria-hidden');},videoVisible: function(els) {if (!els.introVideo.paused) {els.introVideo.pause();}els.videoContent.classList.add(statusClass.isInfoOpen);setTimeout(() => {els.videoContent.classList.add(statusClass.isInfoVisible);}, 0);els.tutorialVideoWrap[0].classList.add(statusClass.isVisible);},imageLoad: function(els){if (!els.tutorialFrame.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialFrame.classList.add(statusClass.isBgLoadComplete);}if (!els.tutorialDeactiveCta.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialDeactiveCta.classList.add(statusClass.isBgLoadComplete);}},setActiveCta: function(els) {els.tutorialActiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialDeactiveCta.parentElement.classList.add(statusClass.isActive);if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}},activeInfo: function(els) {let self = this;clearTimeout(status.infoRemoveTiming);status.infoRemoveTiming = setTimeout(() => {self.videoContentReset(els);els.tutorialVideos[0].play();utils.offAccessibility(els.tutorialVideoWrap[0]);let tutorialVideoController = els.tutorialVideoWrap[0].querySelector('.common-video__control.common-play-button');tutorialVideoController.focus();if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}if (els.tutorialVideos[1].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[1]]);videoLoader.setResponsiveMedia([els.tutorialVideos[1]]);}els.tutorialVideos[0].focus();status.infoRemoveTiming = null;}, 3000);},active: function (els) {this.onAccessibility(els);if (resize.checkResolution().indexOf('mobile') > -1 && !status.isIos) {document.documentElement.requestFullscreen();}if (resize.checkResolution().indexOf('mobile') > -1) {setTimeout(function () {els.moCloseCta.focus();}, 300);} else {setTimeout(function () {els.tutorialDeactiveCta.focus();}, 300);}status.infoRemoveTiming = null;this.videoVisible(els);this.imageLoad(els);this.setActiveCta(els);this.activeInfo(els);},videoReset: function(els) {els.introVideo.currentTime = 0;if (isDevice == resize.checkResolution()) {els.introVideo.play();} for (let i = 0; i < els.tutorialVideoWrap.length; i++) {els.tutorialVideoWrap[i].classList.remove(statusClass.isVisible);if (!els.tutorialVideos[i].paused) {els.tutorialVideos[i].pause();els.tutorialVideos[i].currentTime = 0;}}},ctaReset: function(els) {els.tutorialDeactiveCta.parentElement.classList.remove(statusClass.isActive);els.tutorialActiveCta.parentElement.classList.add(statusClass.isActive);if (resize.checkResolution().indexOf('mobile') == -1) {els.layerPopup.classList.remove(statusClass.isTutorialOpenedMo);}if (!!els.introCta) {els.introCta.parentElement.classList.remove(statusClass.isVisible);utils.onAccessibility(els.introCta.parentElement);}},deactive: function(els) {els.videoContent.classList.remove(statusClass.isInfoOpen, statusClass.isInfoVisible, statusClass.isTutorialOpend);this.offAccessibility(els);if (resize.checkResolution().indexOf('mobile') > -1 && !status.isIos) {if (document.fullscreenElement != null) document.exitFullscreen();}setTimeout(function () {els.tutorialActiveCta.focus();}, 300);this.videoReset(els)this.ctaReset(els);for (let i = 0; i < els.tutorialVideoWrap.length; i++) {utils.onAccessibility(els.tutorialVideoWrap[i]);}},onAccessibility: function(els) {if (resize.checkResolution().indexOf('mobile') > -1) {utils.onPopupAccessibility(els.textWrap);if (!status.isGlobal) {utils.onPopupAccessibility(commonEls.flotingNaviFixedWrap);} else {utils.onPopupAccessibility(commonEls.globalSubNav);}}utils.onPopupAccessibility(els.introVideoSection);},offAccessibility: function(els) {if (resize.checkResolution().indexOf('mobile') > -1) {utils.offPopupAccessibility(els.textWrap);if (!status.isGlobal) {utils.offPopupAccessibility(commonEls.flotingNaviFixedWrap);} else {utils.offPopupAccessibility(commonEls.globalSubNav);}}utils.offPopupAccessibility(els.introVideoSection);}},popup: {setOverviewStatus: function(opts) {if (opts.openCta.parentElement.getAttribute('class').indexOf('__tutorial-cta') > -1) {let isOverviewVideo = commonEls.overview.querySelector('.swiper-slide-active video');if (!isOverviewVideo.paused) {status.overview = {video: isOverviewVideo,paused: true}isOverviewVideo.pause();}}},mediaLoad: function(els) {if (!els.tutorialActiveCta.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialActiveCta.classList.add(statusClass.isBgLoadComplete);}if (els.introVideo.readyState < 4) {imageLoader.setResponsiveMedia([els.introCoverImage]);videoLoader.setResponsiveMedia([els.introVideo]);}if (!els.navPrev.classList.contains(statusClass.isBgLoadComplete)) {els.navPrev.classList.add(statusClass.isBgLoadComplete);}if (!els.navNext.classList.contains(statusClass.isBgLoadComplete)) {els.navNext.classList.add(statusClass.isBgLoadComplete);}},playIntroVideo: function(els) {if (els.introVideo.readyState >= 4) {els.introVideo.currentTime = 0;els.introVideo.play();} else {els.introVideo.addEventListener('canplay', function(){if (this.paused) this.play();});}},tutorialIntroImgLoad: function(els) {if (!!els.introCoverImage && !els.introCoverImage.classList.contains('is-img-load-complete')) {imageLoader.setResponsiveMedia([els.introCoverImage]);}},tutorialMediaLoad: function(els) {if (els.tutorialVideos[0].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[0]]);videoLoader.setResponsiveMedia([els.tutorialVideos[0]]);}if (!els.tutorialReplay.classList.contains(statusClass.isBgLoadComplete)) {els.tutorialReplay.classList.add(statusClass.isBgLoadComplete)}},setPopupPosition: function(layerPopup) {let isHash = location.hash;let dotcomGnbHeight = 0;if (!status.isGlobal && window.pageYOffset == 0 && !!isHash) {dotcomGnbHeight = document.querySelector('.nv00-gnb').clientHeight;layerPopup.style.top = `${utils.getNavHeight() + dotcomGnbHeight}px`;} else {layerPopup.style.top = `${utils.getNavHeight()}px`;}},setUiEls: function(opts, els, target) {if (commonEls.globalSubNav) commonEls.globalSubNav.style.opacity = 1;opts.layerPopup.classList.add('is-init');target.openerCta.blur();if (`#${els.openCta.getAttribute('data-hash')}` == window.location.hash) {let oldOpenPopup = document.querySelector('.common-tutorial.is-open');if (!!oldOpenPopup) {let oldOpenPopupId = oldOpenPopup.getAttribute('id');if (`#${oldOpenPopupId}` != window.location.hash) {document.querySelector(`#${oldOpenPopupId}`).hide();}}status.isHash = true;if (!status.isGlobal) commonEls.gnb.style.display = 'none';}if (!!els.introCta) {els.introVideo.addEventListener('ended', function () {utils.offAccessibility(els.introCta.parentElement);setTimeout(function () {els.introCta.parentElement.classList.add(statusClass.isVisible);}, 100);});}},setSubnavi: function(opts) {if (commonEls.globalSubNav) commonEls.globalSubNav.style.opacity = .9;opts.layerPopup.classList.remove('is-init');},focusHandler: function(opts, els) {let isHash = status.isHash && els.layerPopup.targetOpener;let isOverview = els.layerPopup.isOverview;let isController = els.layerPopup.isController;if (isHash || !!isController && !!!isOverview) {els.layerPopup.targetOpener.blur(); if (!status.isIos) els.layerPopup.targetOpener.focus();setTimeout(function () {els.layerPopup.targetOpener.focus();if (isHash) {status.isHash = false;history.pushState('', document.title, window.location.pathname);if (!status.isGlobal) commonEls.gnb.style.display = '';}if (!!isController) isController = false; }, 300);}if (!!isOverview) {opts.layerPopup.overviewCta.blur();if (!status.isIos) opts.layerPopup.overviewCta.focus();setTimeout(function () {if (!document.querySelector('.common-tutorial.is-open')) {opts.layerPopup.overviewCta.focus();for (let i = 0; i < layerPopup.length; i++) {layerPopup[i].isOverview = false;layerPopup[i].overviewCta = null;}}}, 300);}},onAccessibilityGlobal: function(els) {for (let i = 0; i < commonEls.contentsChildren.length; i++) {let isId = commonEls.contentsChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('experience') == -1 && isId.indexOf('subnav') == -1) || isId == null) {utils.onPopupAccessibility(commonEls.contentsChildren[i]);}}for (let i = 0; i < commonEls.commonUi.length; i++) {utils.onPopupAccessibility(commonEls.commonUi[i]);}},offAccessibilityGlobal: function(els) {for (let i = 0; i < commonEls.contentsChildren.length; i++) {let isId = commonEls.contentsChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('experience') == -1 && isId.indexOf('subnav') == -1) || isId == null) {utils.offPopupAccessibility(commonEls.contentsChildren[i]);}}for (let i = 0; i < commonEls.commonUi.length; i++) {utils.offPopupAccessibility(commonEls.commonUi[i]);}},onAccessibilityDotom: function(els) {let staticContent = document.querySelector('.static-content');staticContent.style.zIndex = -1;staticContent.style.position = 'relative';for (let i = 0; i < commonEls.wrapChildren.length; i++) {let isId = commonEls.wrapChildren[i].getAttribute('id');if ((isId != null && isId.indexOf('content') == -1) || isId == null) {utils.onPopupAccessibility(commonEls.wrapChildren[i]);}}for (let i = 0; i < commonEls.contentChildren.length; i++) {let isClass = commonEls.contentChildren[i].getAttribute('class');if ((isClass != null && isClass.indexOf('root') == -1) || isClass == null) {utils.onPopupAccessibility(commonEls.contentChildren[i]);}}for (let i = 0; i < commonEls.rootChildren.length; i++) {let isClass = commonEls.rootChildren[i].getAttribute('class');if ((isClass != null && isClass.indexOf('pd-g-floating-nav') == -1) || isClass == null) {utils.onPopupAccessibility(commonEls.rootChildren[i]);}}},offAccessibilityDotcom: function(els) {for (let i = 0; i < commonEls.wrapChildren.length; i++) {utils.offPopupAccessibility(commonEls.wrapChildren[i]);}if (!status.isIos) {for (let i = 0; i < commonEls.contentChildren.length; i++) {commonEls.contentChildren[i].removeAttribute('tabindex');commonEls.contentChildren[i].removeAttribute('aria-hidden');}for (let i = 0; i < commonEls.rootChildren.length; i++) {commonEls.rootChildren[i].removeAttribute('tabindex');commonEls.rootChildren[i].removeAttribute('aria-hidden');}} else {for (let i = 0; i < commonEls.contentChildren.length; i++) {utils.offPopupAccessibility(commonEls.contentChildren[i]);}for (let i = 0; i < commonEls.rootChildren.length; i++) {utils.offPopupAccessibility(commonEls.rootChildren[i]);}}setTimeout(function () {let staticContent = document.querySelector('.static-content');staticContent.style.zIndex = '';staticContent.style.position = '';}, 200);},onAccessibility: function(els) {els.closeCta.removeAttribute('tabindex');els.closeCta.removeAttribute('aria-hidden');if (status.isGlobal) {this.onAccessibilityGlobal(els);} else {this.onAccessibilityDotom(els);}},offAccessibility: function(els) {els.closeCta.setAttribute('tabindex', '-1');els.closeCta.setAttribute('aria-hidden', true);if (status.isGlobal) {this.offAccessibilityGlobal(els);} else {this.offAccessibilityDotcom(els);}}}}const eventHandler = {resize: function(els){window.addEventListener('resize', function() {eventList.resize.position(els);eventList.common.setMobileVideoWidth(els);});},infoPopupDeactive: function(els) {els.infoPopup.addEventListener('click', function(){eventList.tutorial.videoContentReset(els);clearTimeout(status.infoRemoveTiming);els.tutorialVideos[0].play();let tutorialVideoController = els.tutorialVideoWrap[0].querySelector('.common-video__control.common-play-button');tutorialVideoController.focus();if (resize.checkResolution().indexOf('mobile') > -1) {els.layerPopup.classList.add(statusClass.isTutorialOpenedMo);}if (els.tutorialVideos[1].readyState < 4) {imageLoader.setResponsiveMedia([els.tutorialCoverImages[1]]);videoLoader.setResponsiveMedia([els.tutorialVideos[1]]);}status.infoRemoveTiming = null;});},tutorialActiveEvent: function (els) {if (!!els.introCta) {els.introCta.addEventListener('click', function(){eventList.tutorial.active(els);});}els.tutorialActiveCta.addEventListener('click', function(){this.parentElement.classList.remove(statusClass.isActive);eventList.tutorial.active(els);});},tutorialDeactiveEvent: function(els) {els.tutorialDeactiveCta.addEventListener('click', function(){eventList.tutorial.deactive(els);eventList.tutorial.reset(els);});},reStartTutorial: function(els) {els.tutorialReplay.addEventListener('click', function(){this.style.display = '';eventList.tutorial.reset(els);eventList.tutorial.active(els);utils.onAccessibility(els.tutorialVideoWrap[els.tutorialVideoWrap.length - 1]);});},videoController: function (index) {objs[`introVideo_${index}`].controller.addEventListener('click', function () {if (this.video.paused) {this.video.play();} else {this.video.pause();}});},onClickMoCloseCta: function (els) {els.moCloseCta.addEventListener('click', function () {eventList.tutorial.deactive(els);eventList.tutorial.reset(els);});},onClickController: function (els) {els.tutorialNavigation.addEventListener('click', function (e) {let isNaviBtn = e.target.classList.contains('common-tutorial__navigation-button');if (isNaviBtn) {_controllEvent(e.target);}});els.tutorialPagination.addEventListener('click', function (e) {let isPaginationBtn = e.target.classList.contains('common-tutorial__pagination');if (isPaginationBtn) {let currOpenPopupId = document.querySelector('.common-tutorial.is-open').getAttribute('id');let targetId = e.target.getAttribute('data-hash');if (targetId != currOpenPopupId) {_controllEvent(e.target);}}});const _controllEvent = function (target) {let targetPopupId = target.getAttribute('data-hash');document.querySelector('.common-tutorial.is-open').hide();document.querySelector(`#${targetPopupId}`).show();eventList.tutorial.reset(els);document.querySelector(`#${targetPopupId}`).isController = true;};},tutorialintroImgLoad: function (els) {window.addEventListener('scroll', function () {if (this.pageYOffset > 0) {eventList.popup.tutorialIntroImgLoad(els);}})},moveToTutorialPopup: function (els) {window.addEventListener('DOMContentLoaded', function () {if (!status.isGlobal) {commonEls.flotingNaviFixedWrap.after(els.layerPopup);} else {document.querySelector('#contents').prepend(els.layerPopup);if (status.isIos) commonEls.globalSubNav.after(els.layerPopup);}});},onClickSup: function (els) {for (let i = 0; i < els.supClicker.length; i++) {els.supClicker[i].addEventListener('click', function (e) {e.preventDefault();e.stopPropagation();let targetIndex = parseFloat(e.target.innerText),disclaimer = document.querySelectorAll('#desc-section li')[targetIndex - 1],disclaimerText = disclaimer.innerText,activeBlock = '' + disclaimerText + '';els.layerPopup.hide();setTimeout(() => {disclaimer.innerHTML = activeBlock;disclaimer.querySelector('a').focus();}, 500);const eventList = {focusIn: function () {common.centeredFocus.call(disclaimer.querySelector('a'));disclaimer.removeEventListener('focusin', eventList.focusIn);},focusOut: function () {disclaimer.innerHTML = disclaimerText;disclaimer.removeAttribute('tabindex');disclaimer.removeEventListener('focusout', eventList.focusOut);},};disclaimer.addEventListener('focusin', eventList.focusIn);disclaimer.addEventListener('focusout', eventList.focusOut);});}}}const setIntroVideo = function (el, index) {objs[`introVideo_${index}`] = ANIUTIL.videoHandler({wrap: el,video: el.video,controller: el.controller,playCallback: function () {if (el.classList.contains(statusClass.isCompleted)) el.classList.remove(statusClass.isCompleted);setTagging.pause(el.controller);},pauseCallback: function () {setTagging.play(el.controller);},endCallback: function () {if (!el.classList.contains(statusClass.isCompleted)) el.classList.add(statusClass.isCompleted);}});};const setPopup = function (opts, els) {tutorialPopup({tutorialPopup: opts.layerPopup,tutorialPopupClass: opts.popupClass,openerEvent: {element: opts.openCta,},closeCtas: [opts.closeCta],show: {start: function (target) {eventList.popup.setOverviewStatus(opts);eventList.popup.mediaLoad(els);eventList.popup.playIntroVideo(els);eventList.popup.tutorialMediaLoad(els);eventList.popup.setPopupPosition(opts.layerPopup);eventList.popup.setUiEls(opts, els, target);eventList.popup.onAccessibility(els);},end: function () {if (status.isIos) opts.layerPopup.style.display = 'block';opts.layerPopup.classList.add('is-open');eventList.common.setMobileVideoWidth(els);}},hide: {start: function (target) {eventList.popup.offAccessibility(els);target.openerCta.focus();opts.layerPopup.classList.remove('is-open');},end: function () {eventList.tutorial.reset(els);els.introVideo.pause();eventList.popup.setSubnavi(opts);eventList.popup.focusHandler(opts, els);els.innerWrapper.scrollTop = 0;}}});};const setTagging = { play: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function (targetController) { if (targetController.hasAttribute('data-omni')) { let dataOmni = targetController.getAttribute('data-omni').toLowerCase(); targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (targetController.hasAttribute('ga-la')) { let gaLa = targetController.getAttribute('ga-la').toLowerCase(); targetController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } };const bindEvents = function (els, index) {eventHandler.moveToTutorialPopup(els);eventHandler.resize(els);eventHandler.infoPopupDeactive(els);eventHandler.tutorialActiveEvent(els);eventHandler.tutorialDeactiveEvent(els);eventHandler.reStartTutorial(els);eventHandler.onClickMoCloseCta(els);eventHandler.onClickController(els);eventHandler.tutorialintroImgLoad(els);eventHandler.onClickSup(els);// introVideosetProperty(els);setIntroVideo(els.introVideoWrap, index);eventHandler.videoController(index);};return {init: init,}})();})();;(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.viewer = (function () { const utils = window.flagship.common.utils; const resize =window.flagship.common.resize; let els = {}, status = {}, currDevice = resize.checkResolution(); const init = function () { els.viewerBtn = document.querySelector('.viewer-btn'); if(!!els.viewerBtn) { setElements(); setStatus(); setPopup(); bindEvents(); } }; const setElements = function(){ els.wrapEl = document.querySelector('#wrap'); els.contents = document.querySelector('#contents'); // popup els.popup = document.querySelector('.highlights-viewer'); els.popupContents = els.popup.querySelector('.highlights-viewer__contents'); els.popupInner = els.popup.querySelector('.highlights-viewer__inner'); els.popupWrap = els.popup.querySelector('.highlights-viewer__wrap'); els.closeCta = els.popup.querySelector('.highlights-viewer__close-cta'); els.viewerWrap = els.popup.querySelector('.highlights-viewer__contents-wrap'); els.viewerContainer = els.popup.querySelector('.highlights-viewer__container'); els.viewerIframe = els.popup.querySelector('.highlights-viewer__container-viewer'); // popup-scroll els.popupScroll = els.popup.querySelector('.highlights-viewer__scroll'); els.popupScrollUpBtn = els.popup.querySelector('.highlights-viewer__scroll-btn--up'); els.popupScrollDownBtn = els.popup.querySelector('.highlights-viewer__scroll-btn--down'); // infoPopup els.infoBtn = els.popup.querySelector('.highlights-viewer__title-cta'); els.infoCloseBtn = els.popup.querySelector('.highlights-viewer__header-close-cta'); els.infoDimmed = els.popup.querySelector('.highlights-viewer__dimmed'); // timeout els.resizeTimeout = null; els.resizeInnerTimeout = null; // viewer els.viewerOpener = null; els.viewerModel = ''; els.viewerColor = ''; }; const setStatus = function () { status.viewerBaseUrl = '//www.samsung.com/global/galaxy/3d-360/viewer/?'; status.defaultParams = '&gesture_guide=0'; status.defaultParams += '&bgcolor=transparent'; status.defaultParams += '&skin=colorlayer'; status.defaultParams += '&theme=roundlayer'; status.defaultParams += '&intro=1'; status.defaultParams += '&ruler=1'; status.defaultParams += '&breakpoint_criteria=outer'; status.defaultParams += '&breakpoint_desktop_width=1024'; status.defaultParams += '&intro_pose=2'; status.defaultParams += '&intro_pose_once=1'; status.defaultParams += '&intro_pose_hold=1'; status.moPoseReady = false; status.isHash = false; }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once : true}); window.addEventListener('message', onReceiveV3DMessage, false); //els.popupContents.addEventListener('scroll', onScrollPopupContents); els.viewerIframe.addEventListener('DOMContentLoaded', viewerEvents.onLoadLayerPopupIframe); els.popupScroll.addEventListener('click', layerPopupScrollHandler.onClickLayerScroll); resize.add(onResizeHandler); }; const onLoadHandler = function () { setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (utils.detector.isTouchDevice && !utils.detector.isIosDevice) setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; const setViewerWrap = { innerWrapHeight: function () { clearTimeout(els.resizeInnerTimeout); els.resizeInnerTimeout = setTimeout(function () { if (els.popupInner) { els.popupInner.style.height = parseInt(window.innerHeight * 0.9) + 'px'; } }, 0); }, layerScroll: function () { clearTimeout(els.resizeTimeout); els.resizeTimeout = setTimeout(function () { layerPopupScrollHandler.setLayerScroll(); }, 300); } }; const setPopup = function(){ utils.layerPopup({ layerPopup: els.popup, layerPopupClass: '.highlights-viewer', openerEvent: { element: els.viewerBtn, }, closeCtas: [els.closeCta], moveTarget: document.documentElement, contents: els.contents, show: { start: function (target) { els.popup.classList.add('is-init'); viewerEvents.show(target.openerCta); }, end: function () { if (utils.detector.isIosDevice) els.popup.style.display = 'block'; els.popup.classList.add('is-open'); if (els.popup.classList.contains('is-info-open')) { setTimeout(function () { els.infoCloseBtn.focus(); }, 500); } } }, hide: { start: function () { els.popup.classList.remove('is-open'); }, end: function () { setTimeout(function () { els.popup.classList.remove('is-init'); }, 300); viewerEvents.hide(); } } }); }; const viewerEvents = { show: function (viewerOpener) { if (viewerOpener.classList.contains('viewer-btn')) { status.isHash = false; els.viewerOpener = viewerOpener; } else { status.isHash = true; els.viewerOpener = els.viewerBtn; } els.viewerModel = els.viewerOpener.getAttribute('data-model-name'); els.viewerColor = els.viewerOpener.getAttribute('data-model-color'); els.viewerIframe.setAttribute('src', getViewerUrl()); if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { viewerEvents.infoPopupShow(); } els.infoBtn.addEventListener('click', function () { viewerEvents.infoPopupShow(); setTimeout(function () { els.infoCloseBtn.focus(); }, 400); }); els.popupWrap.addEventListener('click', viewerEvents.onclickViewerDimmed); }, hide: function () { els.viewerModel = ''; els.viewerIframe.setAttribute('src', 'about:blank'); if (status.isHash) { setTimeout(function () { els.viewerOpener.focus(); }, 300); } }, infoPopupShow: function () { if (!els.popup.classList.contains('is-info-open')) { els.popup.classList.add('is-info-open'); els.infoCloseBtn.addEventListener('click', viewerEvents.infoPopupHide); els.infoDimmed.addEventListener('click', viewerEvents.infoPopupHide); setTimeout(function () { els.closeCta.setAttribute('tabindex', -1); els.closeCta.setAttribute('aria-hidden', true); els.infoBtn.setAttribute('tabindex', -1); els.infoBtn.setAttribute('aria-hidden', true); els.viewerContainer.setAttribute('tabindex', -1); els.viewerContainer.setAttribute('aria-hidden', true); }, 400); } }, infoPopupHide: function () { if (els.popup.classList.contains('is-info-open')) { els.popup.classList.remove('is-info-open'); setTimeout(function () { els.infoBtn.focus(); }, 300); setTimeout(function () { els.closeCta.removeAttribute('tabindex'); els.closeCta.removeAttribute('aria-hidden'); els.infoBtn.removeAttribute('tabindex'); els.infoBtn.removeAttribute('aria-hidden'); els.viewerContainer.removeAttribute('tabindex'); els.viewerContainer.removeAttribute('aria-hidden'); }, 100); } }, onclickViewerDimmed: function (e) { if (e.currentTarget == e.target) { if(utils.detector.isIosDevice) els.viewerOpener.style.display = 'block'; els.popup.classList.remove('is-open'); document.documentElement.classList.remove('is-layer-open'); document.documentElement.style.overflow = ''; utils.visibleScroll(); utils.onAccessibility(els.popup); utils.offAccessibility(document.querySelector('#wrap')); setTimeout(function () { els.viewerOpener.focus(); }, 300); els.viewerModel = ''; els.viewerIframe.setAttribute('src', 'about:blank'); setTimeout(function () { els.popup.classList.remove('is-init'); }, 300); } }, onLoadLayerPopupIframe: function () { if (document.documentElement.classList.contains('color_yb') || (utils.getCookie('highContrastMode') != null && utils.getCookie('highContrastMode') == 1)) { els.viewerIframe.contentWindow.postMessage('V3D.highContrast.on', '*'); setTimeout(function () { els.viewerIframe.contentWindow.postMessage('V3D.highContrast.on', '*'); }, 300); } } }; const layerPopupScrollHandler = { setLayerScroll: function () { if (!els.popupContents) return; if (els.popupContents.scrollHeight > els.popupContents.clientHeight) { utils.offAccessibility(els.popupScroll); els.popupScroll && els.popupScroll.classList.add('is-scroll-btn'); } else { utils.onAccessibility(els.popupScroll); els.popupScroll && els.popupScroll.classList.remove('is-scroll-btn'); } }, onScrollPopupContents: function () { onUpdateLayerScroll(false); }, onClickLayerScroll: function (e) { e && e.preventDefault(); if (e.target.matches('.highlights-viewer__scroll-btn')) { let scrollDown = e.target.classList.contains('highlights-viewer__scroll-btn--down'), $popupContents = $(els.popupContents); if (scrollDown) { $popupContents.stop().animate({ scrollTop: $popupContents.scrollTop() + 100 }, { duration: 300, complete: function () { layerPopupScrollHandler.onUpdateLayerScroll(true); } }); } else { $popupContents.stop().animate({ scrollTop: $popupContents.scrollTop() - 100 }, { duration: 300, complete: function () { layerPopupScrollHandler.onUpdateLayerScroll(true); } }); } } }, onUpdateLayerScroll: function (isClicked) { const offsetTop = els.popupContents.scrollTop, layerBottom = els.popupContents.scrollHeight - els.popupContents.clientHeight; els.popupScrollUpBtn.removeAttribute('tabindex'); els.popupScrollUpBtn.removeAttribute('aria-hidden'); els.popupScrollUpBtn.removeAttribute('disabled'); els.popupScrollDownBtn.removeAttribute('tabindex'); els.popupScrollDownBtn.removeAttribute('aria-hidden'); els.popupScrollDownBtn.removeAttribute('disabled'); if (offsetTop == 0) { isClicked && els.popupScrollDownBtn && els.popupScrollDownBtn.focus(); els.popupScrollUpBtn.setAttribute('tabindex', '-1'); els.popupScrollUpBtn.setAttribute('aria-hidden', 'true'); els.popupScrollUpBtn.setAttribute('disabled', 'disabled'); } else if (offsetTop >= layerBottom - 1) { isClicked && els.popupScrollUpBtn && els.popupScrollUpBtn.focus(); els.popupScrollDownBtn.setAttribute('tabindex', '-1'); els.popupScrollDownBtn.setAttribute('aria-hidden', 'true'); els.popupScrollDownBtn.setAttribute('disabled', 'disabled'); } } }; const onReceiveV3DMessage = function (e) { if (e.data == 'V3D.state.popOpen') { if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { if (els.closeCta) { if (!els.popupWrap.classList.contains('is-popup-opened')) els.popupWrap.classList.add('is-popup-opened'); els.closeCta.setAttribute('tabindex', '-1'); els.closeCta.setAttribute('aria-hidden', 'true'); els.closeCta.setAttribute('disabled', 'disabled'); } if (els.infoBtn) { els.infoBtn.setAttribute('tabindex', '-1'); els.infoBtn.setAttribute('aria-hidden', 'true'); } } } else if (e.data == 'V3D.state.popClose') { if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { if (els.closeCta) { if (els.popupWrap.classList.contains('is-popup-opened')) els.popupWrap.classList.remove('is-popup-opened'); els.closeCta.removeAttribute('tabindex'); els.closeCta.removeAttribute('aria-hidden'); els.closeCta.removeAttribute('disabled'); } if (els.infoBtn) { els.infoBtn.removeAttribute('tabindex'); els.infoBtn.removeAttribute('aria-hidden'); } } } else if (e.data == 'V3D.state.introPose.ready') { if (currDevice.indexOf('desktop') > -1) { els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*'); } status.moPoseReady = true; setTimeout(function () { status.moPoseReady = false; }, 2000); } else if (e.data == 'V3D.state.localData.ready') { els.viewerIframe && els.viewerIframe.contentWindow.postMessage(JSON.stringify(V3DLOCALDATA), '*'); } }; const getViewerUrl = function () { let viewerUrl = status.viewerBaseUrl; let viewerModelList = 'galaxy-s24,galaxy-s24-plus'; let isbasicLineShow = (!V3DLOCALDATA['galaxy-s24-plus']) || (!!V3DLOCALDATA['galaxy-s24-plus'] && V3DLOCALDATA['galaxy-s24-plus'].color.length == 0) let isPlusLineShow = (!V3DLOCALDATA['galaxy-s24']) || (!!V3DLOCALDATA['galaxy-s24'] && V3DLOCALDATA['galaxy-s24'].color.length == 0); if (isbasicLineShow) { viewerModelList = 'galaxy-s24'; } else if (isPlusLineShow) { viewerModelList = 'galaxy-s24-plus'; } // model_name viewerUrl += 'model_name=' + els.viewerModel + '&model_list=' + viewerModelList; if (document.documentElement.classList.contains('color_yb') || (utils.getCookie('highContrastMode') != null && utils.getCookie('highContrastMode') == 1)) { viewerUrl += '&highcontrast=1'; } else { viewerUrl += '&highcontrast=0'; } // RTL utils.isRTL() && (viewerUrl += '&rtl=1'); viewerUrl += status.defaultParams; viewerUrl += '#color=' + (els.viewerColor ? els.viewerColor : 'null'); return viewerUrl; }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.ytPopup = (function () { let els = {}; const utils = window.flagship.common.utils; const init = function () { els.layerPopup = document.querySelector('.common-youtube-popup'); if(!!els.layerPopup) { setElements(); setPopup(); } }; const setElements = function () { els.contents = document.querySelector('#contents'); els.openCtas = document.querySelectorAll('.js-youtube-popup'); els.closeCta = document.querySelector('.common-youtube-popup__close-cta'); els.ytIframe = els.layerPopup.querySelector('.common-youtube-popup__iframe > iframe'); els.ytDesc = els.layerPopup.querySelector('.youtube-player__desc'); els.dimmed = els.layerPopup.querySelector('.common-youtube-popup__close-area'); }; const setPopup = function () { for (let i = 0; i < els.openCtas.length; i++) { utils.layerPopup({ layerPopup: els.layerPopup, layerPopupClass: '.common-youtube-popup', openerEvent: { element: els.openCtas[i], }, closeCtas: [els.closeCta], dimmed: els.dimmed, moveTarget: document.documentElement, contents: els.contents, show: { start: function () { els.layerPopup.classList.add('is-yt-open'); }, end: function (target) { eventList.setYoutube(target); } }, hide: { start: function () { els.layerPopup.classList.remove('is-yt-open'); }, end: function (target) { eventList.clearYoutube(); } } }); } }; const eventList = { setYoutube: function (target) { let opener = target.openerCta, ytSrc = 'htt' + 'ps://www.youtube.com/embed/' + opener.getAttribute('data-youtube-id') + '?wmode=opaque&rel=0&enablejsapi=1&version=3&autoplay=1', ytTitle = opener.getAttribute('data-youtube-title'), ytBlind = opener.querySelector('.blind').innerHTML; els.ytIframe.setAttribute('src', ytSrc); els.ytIframe.setAttribute('title', ytTitle); els.ytDesc.innerHTML = ytBlind; els.OpenerTarget = opener; }, clearYoutube: function () { els.ytIframe.removeAttribute('src'); els.ytDesc.innerHTML = ''; } }; return { init: init, } })();})();(function () { window.flagship.common.resize.bindEvent(); var initComponents = function () { flagship.highlights.accordion.init(); flagship.highlights.scrollVideo.init(); flagship.highlights.clickToVideo.init(); flagship.highlights.overview.init(); flagship.highlights.quote.init(); flagship.highlights.designSpecPopup.init(); flagship.highlights.color.init(); flagship.highlights.viewer.init(); flagship.highlights.cameraAi.init(); flagship.highlights.resolutionPopup.init(); flagship.highlights.nightography.init(); flagship.highlights.opticalZoom.init(); flagship.highlights.dayPopup.init(); flagship.highlights.liveTranslatePopup.init(); flagship.highlights.aod.init(); flagship.highlights.experiences.init(); flagship.highlights.faq.init(); flagship.highlights.ytPopup.init(); flagship.highlights.tutorial.init(); flagship.highlights.generativeEditTutorial.init(); flagship.highlights.circleToSearchTutorial.init(); flagship.highlights.liveTranslateTutorial.init(); flagship.highlights.chatAssistTutorial.init(); flagship.highlights.innerPopup.init(); }; initComponents();})();});
        • Galaxy S24 & S24+ | Galaxy AI | Samsung Indonesia (2024)
          Top Articles
          Latest Posts
          Article information

          Author: Amb. Frankie Simonis

          Last Updated:

          Views: 5628

          Rating: 4.6 / 5 (56 voted)

          Reviews: 95% of readers found this page helpful

          Author information

          Name: Amb. Frankie Simonis

          Birthday: 1998-02-19

          Address: 64841 Delmar Isle, North Wiley, OR 74073

          Phone: +17844167847676

          Job: Forward IT Agent

          Hobby: LARPing, Kitesurfing, Sewing, Digital arts, Sand art, Gardening, Dance

          Introduction: My name is Amb. Frankie Simonis, I am a hilarious, enchanting, energetic, cooperative, innocent, cute, joyous person who loves writing and wants to share my knowledge and understanding with you.