Galaxy Z Flip5
- SPECIFICATIONS
- SUPPORT
- REVIEWS
Buy now
- Highlights
- Compare
- Accessories
- SPECIFICATIONS
- SUPPORT
- REVIEWS
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (1) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (1)](https://i0.wp.com/images.samsung.com/is/image/samsung/assets/ca/smartphones/galaxy-z-flip5/images/galaxy-z-flip5-highlights-kv-ai-text.jpg?imbypass=true)
BUY NOW RESERVE NOW PRE-ORDER NOW WHERE TO BUY
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (2) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (2)](https://i0.wp.com/images.samsung.com/ca/smartphones/galaxy-z-flip5/images/galaxy-z-flip5-highlights-kv-a.jpg?imbypass=true)
- *Image simulated for illustrative purposes. Actual UI may be different.
- DESIGN
- CAMERA
- FLEX WINDOW
- BATTERY
- FLEX MODE
Galaxy AI is here
Welcome to the era of mobile AI. With Galaxy Z Flip5 in your hands, you can unleash whole new levels of creativity, productivity and possibility —starting with your smartphone.
Epic, just like that.
CIRCLE TO SEARCH
Circle it, find it. Just like that
Search with Circle to Search.1 Simply trace an object to get Google Search results. No typing required.
*Image simulated for illustrative purposes. Actual UI may be different.
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (4) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (4)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
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.
LIVE TRANSLATE
An easy way to communicate
AI helps you communicate outside your own language while you talk on the phone.2 And get this, it even works on messaging.3
*Image simulated for illustrative purposes. Actual UI may be different.
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (5) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (5)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
A phone call is translated in real time. The dialogue is shown on screen as a text conversation in two languages.
INTERPRETER
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.4
*Image simulated for illustrative purposes. Actual UI may be different.
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (6) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (6)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
In the Interpreter app, a conversation in two languages is transcribed and translated in real time.
PHOTO ASSIST
Resize it, retouch it. Just like that
Unlock the magic of AI-powered photo editing.5 Generative Edit can fill in backgrounds and make unwanted objects *poof* disappear.
*Image simulated for illustrative purposes. Actual UI may be different.
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (7) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (7)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
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.
Try Galaxy on your phone Scan this QR code or visit trygalaxy.com
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (9) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (9)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (10) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (10)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
An extreme closeup of a folded Galaxy Z Flip5 seen from the Flex Window and bottom frame. Zooming out, the device opens to stand like a tent.
Flex Window. The largest Cover Screen on a Galaxy ZFlip yet
Galaxy Z Flip5 debuts a 3.4-inch Flex Window built for self expression.6 Compact and eye-catching, this foldable is as versatile as it is portable.
*Image simulated for illustrative purposes. Actual UI may be different.
One size fits all pockets
Our most compact Galaxy Z Flip yet folds down tight to slide as easily into your pocket as it does into your hands.9
*Image simulated for illustrative purposes. Actual UI may be different.
Choose from four colours inspired by nature
Find your vibe in a world of futuristic colour schemes inspired by the natural world: Mint, Graphite, Cream, Lavender.10
*Image simulated for illustrative purposes.
Mint Graphite Cream Lavender
Two Galaxy Z Flip5 devices in Mint. One is folded like a tent and seen from the rear panel. The second is folded and partially obscured by the first device. Next, a close up of the Rear Camera. Next, a close up of the Flex Hinge.
Two Galaxy Z Flip5 devices in Graphite. One is folded like a tent and seen from the rear panel. The second is folded and partially obscured by the first device. Next, a close up of the Rear Camera. Next, a close up of the Flex Hinge.
Two Galaxy Z Flip5 devices in Cream. One is folded like a tent and seen from the rear panel. The second is folded and partially obscured by the first device. Next, a close up of the Rear Camera. Next, a close up of the Flex Hinge.
Two Galaxy Z Flip5 devices in Lavender. One is folded like a tent and seen from the rear panel. The second is folded and partially obscured by the first device. Next, a close up of the Rear Camera. Next, a close up of the Flex Hinge.
Online exclusive colours
Add an extra pop of personality to your device with exclusive colours you can only find on Samsung.com: Grey, Blue, Green and Yellow.10
*Image simulated for illustrative purposes.
Online Exclusive
Grey Blue Green Yellow
Better together
Flipsuit Case11,12,13,14
Learn more
Better together
Clear Gadget Case
Learn more
Camera. The best selfie experience on a Galaxy smartphone yet
Captured by Galaxy Z Flip5#withGalaxy
Capture stunning selfies and your best angles with FlexCam. All you have left to do is master the art of the pose.
FlexCam selfies. Even when closed
Launch the camera app with the Flex Window shortcut to capture the moment. Snap photos, tweak the settings and retake, all without ever opening your phone.
*Image simulated for illustrative purposes. Actual UI may be different.
*This photo has been retouched for colour correction.
Captured by Galaxy Z Flip5#withGalaxy
Hands-free selfies. Courtesy of FlexCam
Unfold to Flex Mode and bring your buddies in frame for a wider group selfie.15 Use the Camera Controller on your Galaxy Watch6 and stun the world with zoomed-in selfies.16 It's the ultimate flex.
*Image simulated for illustrative purposes. Actual UI may be different.
Captured by Galaxy Z Flip5#withGalaxy
Capture the night with Nightography17
Galaxy Z Flip5's Wide camera brings even more of the scene into frame. Unfolding is optional — just swipe the Camera icon on the Flex Window and start recording with FlexCam. And keep the camera rolling, because with 4K Nightography video, losing sunlight doesn't mean losing out on quality.18
*Image simulated for illustrative purposes. Actual UI may be different.
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (33) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (33)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (34) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (34)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
A woman records a selfie video at night with two friends behind her. The wide angle fits them all into frame. Details are crisp, colours are warm and the details of the background are clear.
Captured by Galaxy Z Flip5#withGalaxy
Front Camera selfies. Lookin' sharp
Unfolding to the Front Camera gives your selfie skills a major upgrade. Super Clear Lens helps to keep photos crisp and even reduces flare from bright lights behind you.
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (36) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (36)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (37) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (37)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
Three Galaxy Z Flip5 devices each feature different colourfully customized Flex Window interfaces.
Meet the 3.4" Flex Window
*Image simulated for illustrative purposes. Actual UI may be different.
-
Reply to messages with a QWERTY keyboard, make calls, check the weather forecast and even pull out your wallet — all from a big, bright Flex Window.6,19,20 Now featuring more clock faces and crisscross gestures you know from across the Galaxy ecosystem.
*Image simulated for illustrative purposes. Actual UI may be different.
Cross gestures are used to navigate various apps and widgets on the Flex Window. On the home screen, swiping to the right pulls up Notifications. Pulling down reveals the Quick Panel. Returning to the home screen, a swipe to the left toggles through widgets, like Samsung Health Steps and a Calendar with interactive menu features. Finally, swiping up from the home screen opens Samsung Wallet.
-
Don't get lost in the shuffle with Multi Widget View.
*Image simulated for illustrative purposes. Actual UI may be different.
Pinching in diagonally from the home screen opens Multi Widget View, which is a tiled representation of installed widgets. Pinching out returns to the home screen. A swipe left opens the Calendar app. Pinching in diagonally from the app returns to Multi Widget View, which can be scrolled through and used to navigate to another app, like Galaxy Wearable. Finally, a swipe up returns to the home screen.
Customize the Flex Window just the way you like it
Take control of the Flex Window. Customize your device with loads of widgets, video wallpapers, clock faces, styles and more to make your Galaxy Z Flip5 uniquely you.15,17
*Image simulated for illustrative purposes. Actual UI may be different.
Take total control of the Flex Window. Customize your device with loads of widgets, video wallpapers, clock faces, styles and more to make your Galaxy Z Flip5 uniquely you.19,21
*Image simulated for illustrative purposes. Actual UI may be different.
*The information displayed on Finance Watchlist widget is for illustrative purposes only.
All-day battery life22 Listen up to 57 hrs7 Watch up to 20 hrs7
Backed up by a powerful processor, this 3700mAh (typical) battery stretches out the charge so you can keep binging movies or gaming late into the night.23 Need extra juice? Enable low power mode to keep the fun flowing.
The most powerful processor on Galaxy foldables yet
The new Snapdragon® 8 Gen 2 Mobile Platform for Galaxy takes you to a whole new level of power.24 Experience smoother graphics, faster AI and improved battery performance.
*AP performance improvements shown compared to Galaxy Z Flip4. Actual performance will depend on user environment, conditions and pre-installed software and applications.
Snapdragon® 8 Gen 2 Mobile Platform for Galaxy
25 %↑
GPU
20 %↑
NPU
17 %↑
CPU
*AP performance improvements shown compared to Galaxy Z Flip4. Actual performance will depend on user environment, conditions and pre-installed software and applications.
An all-new flex — Flex Mode Panel8
Level up how you use Flex Mode with more controls at your fingertips.15 Hide or expand the panel with the touch of a button. You can even whip out a touchpad and cursor. And an enhanced playback control panel makes navigating through music and media easier and more precise.25
*Image simulated for illustrative purposes. Actual UI may be different.
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (61) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (61)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
![Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (62) Galaxy Z Flip5 Smartphone | Features & Colours | Samsung Canada (62)](https://i0.wp.com/www.samsung.com/samsung/resources/global/galaxy-z-flip5/common/images/blank.gif)
Video plays on Galaxy Z Flip5 in Flex Mode. The Flex Mode Panel is expanded from a launch button and used to navigate the video with a playback timeline and advanced control buttons, like volume and skip.
Durable to keep you flipping
Galaxy Z Flip5 stays tough. And with the added support of Samsung Care+, get even more protection.
-
This foldable is framed in a tough suit of armor – Armor Aluminum.26
-
Introducing a new, durable, dual rail design for our foldable hinges.
-
With Galaxy Z Flip5, a little bit of moisture won’t dampen your day.27
Enroll in Samsung Care+ for extra protection28
Learn more
Watch6. Start your fitness journey
Link Galaxy Z Flip5 up with a Galaxy Watch6 series device to learn more about your workout performance.29,30 Watch yourself improve every day with gym selfies to prove it — no mirrors required when you use Camera Controller.16,31
*Image simulated for illustrative purposes. Actual UI may be different.
Better together
Galaxy Watch6 Series29
Learn more
Designed with the planet in mind
The Galaxy Z Flip5 and Fold5 feature a wider variety of recycled materials than their previous generations, including pre-consumer recycled glass and aluminum and post-consumer recycled plastics, sourced from discarded fishing nets, water barrels and PET bottles.32,33
*Image simulated for illustrative purposes. Actual UI may be different.
Switch, upgrade and trade. It's all easy
Smart Switch
Meet the convenient way to move what you loved on your old device to your new Galaxy Z Flip5.34
*Image simulated for illustrative purposes. Actual UI may be different.
Learn more
Trade in and save
Don't retire your old device to the junk drawer just yet. It may be eligible for a discount towards your new Galaxy Z Flip5.35
*Image simulated for illustrative purposes. Actual UI may be different.
Learn more
Your Privacy. Secured
Samsung Knox allows you to share and secure your files.
*Image simulated for illustrative purposes. Actual UI may be different.
Storage
Store it all with 256GB and 512GB options.36
Get started with 6 months of Microsoft 365 Basic. You'll get 100 GB of cloud storage, plus ad-free, secure email and access to Microsoft support.37
Elevate your day with stylish accessories
LEARN MORE
SEE IN 360°
Take it for a spin
*Online exclusive colours only available on Samsung.com.
Frequently Asked Questions
-
Galaxy Z Flip5 is available in Mint, Graphite, Cream and Lavender.10 Grey, Blue, Green and Yellow are exclusive colours found only on Samsung.com.10
GO TO COLOURS
-
Galaxy Z Flip5 has a 3.4-inch Flex Window that supports more widgets, more customization and the best selfie experience on a Samsung Galaxy smartphone yet.6,17,25 The Flex Mode experience has improved through an all-new Flex Mode Panel.8,15 It also features a new Flex Hinge with a dual rail design.
COMPARE DEVICES
-
Galaxy Z Flip5 is equipped with a 10MP Front Camera with a wider angle than the Galaxy Z Flip4. On the other side, it features a 12MP Ultra Wide Camera and 12MP Wide Camera. Improved hardware — like the Super Clear Lens — and software — like adaptive VDIS — work together to deliver crisp and colourful photos, selfies and videos.25
GO TO CAMERA
-
Galaxy Z Flip5 is 71.9 millimeters wide, 165.1 millimeters long and 6.9 millimeters thick when unfolded.38 Folded, it is 85.1 millimeters long. At 15.1 millimeters thick, the Galaxy Z Flip5 is more compact than the folded Galaxy Z Flip4, which measures 17.1 millimeters thick at the hinge and 15.9 millimeters at the outer edge.
GO TO PORTABILITY
-
Galaxy Z Flip5's intelligent 3700mAh (typical) battery lets you listen to music for up to 57 hours or watch up to 20 hours of video playback.7,22,23
GO TO BATTERY
-
Galaxy Z Flip5 is water resistant and comes with an IPX8 rating.23
GO TO DURABILITY
-
Galaxy Z Flip5 has a new hinge, called the Flex Hinge, which features a durable, dual rail design.
GO TO DURABILITY
-
Galaxy Z Flip5's 6.7-inch FHD+ Main Screen is an adaptive 120Hz Dynamic AMOLED 2X display.39 The 3.4-inch Super AMOLED Cover Screen reaches a peak brightness of 1600 nits.6, 20 It is the first in the Galaxy Z Flip series with a proximity sensor and first Galaxy Z Flip Cover Screen to support HBM.
-
With One UI, you can customize the Flex Window with widgets, clock faces and more.19
GO TO FLEX WINDOW
GO TO GALAXY Z FOLD5
Check out smart ways to get your Galaxy ZFlip5
BUY NOW RESERVE NOW PRE-ORDER NOW WHERE TO BUY
Life opens up with Galaxy
EXPLORE MORE
Unfold a whole new way 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.
- 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.
- Live Translate feature requires a network connection and Samsung Account login. Live Translate feature is only available on the pre-installed Samsung Phone app. Languages require language pack download, language availability will vary. Service availability may vary by language, country, region or carrier. Accuracy of results is not guaranteed.
- Translating feature in Chat Assist may require Samsung Account login. Some chat applications may not support this feature. Live Translate feature is only available on the pre-installed Samsung Phone app. Languages require language pack download, language availability will vary. Service availability may vary by language, country, region or carrier. Accuracy of results is not guaranteed.
- Interpreter requires Samsung Account login. Languages require language pack download, language availability will vary. Service availability may vary by language, country, region or carrier. Accuracy of results is not guaranteed. Availability of supported languages may vary.
- 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.
- Measured diagonally, Galaxy Z Flip5's Cover Screen size is 3.4 inches in the full rectangular form; actual viewable area is approximately 95% of the full rectangular area due to the rounded corners and lower cutout.
- 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.
- Flex Mode Panel must be enabled in device settings in order to be used with installed apps in the apps tray, including third party apps. List of supported apps can be found in the Flex mode panel settings under your device's settings menu.
- This device contains magnets. Keep it away from credit cards, implanted medical devices, and other devices that may be affected by magnets. In the case of medical devices, keep your device more than 15cm apart. Stop using your device if you suspect any interference with your medical device and consult your physician or your medical device manufacturer.
- Availability of colour may vary by country, region or carrier.
- Actual UX/UI may differ.
- Flipsuit Case actual colors, collaboration card options and corresponding content displayed on screen may differ. One piece of content is displayed per card.
- Brand collaboration accessories include one brand collaboration card in box.
- Flipsuit Case collaboration card content should be downloaded separately before use. Network connection required for download.
- Flex Mode supported at angles between 75°and 115°. Some apps may not be supported in Flex Mode.
- Camera Controller is supported on Galaxy Watch4 and later released Galaxy Watch models when paired with Galaxy S9 series and later. Camera Controller zoom feature is available on Samsung Galaxy Watch4 series and later released Galaxy Watch models that are paired with a Galaxy S series, Galaxy Note series and Galaxy Z series smartphone running One UI 5.1 or above with Camera Controller support.
- Snapdragon® 8 Gen 2 Mobile Platform for Galaxy features a dedicated image signal processor (ISP) block for low-light video enhancement.
- Galaxy Z Flip5 supports 4K video recording. To view in 4K resolution, videos must be played on a device with 4K video resolution.
- Certain applications may not support Flex Window widgets.
- Galaxy Z Flip5’s Cover Screen is the first in the Galaxy Z Flip series with a proximity sensor and first Galaxy Z Flip Cover Screen to support HBM. Galaxy Z Flip5’s Cover Screen HBM has a peak brightness of 1600 nits for a brighter and clearer display.
- Availability of features may vary by country or region.
- 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.06.19-2023.06.29 in US with pre-release versions of SM-F946 and SM-F731 under default setting using LTE and 5G Sub6 networks.
- 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 4270mAh for Galaxy Z Fold5, and 3591mAh for Galaxy Z Flip5. Actual battery life may vary depending on network environment, usage patterns and other factors.
- Snapdragon is a product of Qualcomm Technologies, Inc. and/or its subsidiaries. Snapdragon is a trademark or registered trademark of Qualcomm Incorporated.
- Compared to previous models.
- Frame does not include volume and side keys or SIM tray.
- 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 resistance of device is not permanent and may diminish over time because of normal wear and tear. IPX8 rating is not dust-resistant.
- Samsung Care+ coverage may vary by country and deductibles may apply.
- Galaxy Watch6 series devices sold separately.
- Product and feature availability may vary by country or region. Galaxy Watch6 must be paired with a Samsung Galaxy Phone with Android 10.0, minimum 1.5GB RAM and Samsung Health app version 6.24 or later. Bioelectrical impedance analysis (BIA) is intended for general wellness and fitness purposes only. Not intended for use in detection, diagnosis or treatment. The measurements are for your personal reference only. Please consult a medical professional for advice.
- Availability may vary by market, carrier, model and paired smartphone that supports Camera Controller. The update will initially be available on Bluetooth versions and will roll out to LTE versions later.
- Galaxy Z Flip5: 15 device components that feature a minimum of 10% post-consumer recycled material plastic or pre-consumer recycled aluminum, or Corning® Gorilla® Glass Victus® 2 with an average of 22% pre-consumer recycled content. These components include Volume Key Bracket, Speaker Module (Upper & Lower), Rear Top, Display Connector Cap, FPCB RF Cable Bracket, Rear Mid, Case Front (Main), Case Front (Sub), Volume Key, Finger Key Bracket, Receiver Deco, Connector to Connector Holder, SIM Tray, Sub Window, Back Glass. (Galaxy Z Flip4: 6 device components). Galaxy Z Fold5: 15 device components that feature a minimum of 10% post-consumer recycled material plastic or pre-consumer recycled aluminum, or Corning® Gorilla® Glass Victus® 2 with an average of 22% pre-consumer recycled glass. These components include Volume Key FPCB Bracket, Top Speaker Module (Upper & Lower), Bottom Speaker Module (Upper & Lower), Cover Display Connector, Case Front (Main), Case Front (Sub), Antenna (Sub), Antenna (Main), Volume Key, Finger Key Bracket, SIM Tray, Connector to Connector Holder, Camera Deco (Top & Bottom), Sub Window, Back Glass. (Galaxy Z Fold4: 6 device components). The above measurements are based on weight.
- Types of recycled materials include post-consumer recycled PA sourced from discarded fishing nets, post-consumer recycled PBT sourced from discarded PET bottles, post-consumer recycled PC sourced from water barrels and pre-consumer recycled aluminum sourced from discarded scrap material generated as a by-product during manufacturing. The scrap metal is re-melted, filtered for impurities and then recycled to make parts within Samsung’s manufacturing process. There is also pre-consumer recycled content sourced from discarded glass waste generated as a byproduct of glass manufacturing. This glass waste is crushed into cullet and then used as a component in the Corning® Gorilla® Glass Victus® 2 manufacturing process.
- Wired transfers require at least Android™ 4.3. If you do not have the required USB cable/connector for a wired transfer to Galaxy, you can also use wireless transfer options. iOS 5 or older Android OS must use wireless transfer options. Open Smart Switch Mobile in “Settings” on your new Galaxy phone or download Smart Switch Mobile app from Galaxy Store. Data and content available for transfer may vary by OS. The data of the Galaxy device is backed up and restored to the storage device. Use PC backup through Smart Switch PC or SD card backup function of Smart Switch Mobile.
- Terms and conditions apply. Availability may vary by country or region. Check device trade-in eligibility on the Trade-in page.
- Storage options and availability may vary by country or region. Actual storage availability may vary depending on pre-installed software.
- Six month trial of Microsoft 365 Basic available for consumers with OneDrive-Gallery Sync capable Samsung phones (phones on the Verizon network in the U.S. not eligible). After the 6 month trial, your subscription will automatically renew into a monthly paid subscription at the current price, subject to Google Play’s terms and conditions. Cancel any time to stop future charges. Offer not available to existing Microsoft 365 or OneDrive premium subscribers (including trials), customers who previously redeemed an Office, OneDrive or other Microsoft storage bonus or free trial offer, customers with a locked OneDrive account, or former Microsoft 365 or OneDrive/Microsoft Storage premium subscribers who cancelled in the last 90 days. One offer per customer and per device. Offer cannot be transferred or combined with other Microsoft offers, and is available between March 15, 2023 and December 31, 2023. Offer must be redeemed during this period on the Google Play Store and participants must sync their gallery with OneDrive to commence the 6 month trial. Offer requires a Samsung and Microsoft account. Refer to https://www.microsoft.com/onedrive-samsung-offer for details.
- Thickness measured from the top glass panel to the bottom glass panel.
- Measured diagonally, Galaxy Z Flip5's Main Screen size is 6.7" in the full rectangle and 6.6" accounting for the rounded corners; actual viewable area is less due to the rounded corners and camera hole.
')); } } }; var isZoom = function() { var winInnerWidth = window.innerWidth, winOuterWidth = window.outerWidth, 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 { setLownetworkClass: setLownetworkClass, setResolution: setResolution, onClickSup: onClickSup, centeredFocus: centeredFocus, setArBanner: setArBanner, isZoom: isZoom, }})();window.flagship.common.utils.layerPopup = function(opts) { let utils = window.flagship.common.utils; var els = {}; var show = {}, hide = {}; var init = function() { setElements(); setOpts(); bindEvent(); }; var setElements = function() { els.html = document.documentElement; els.layerPopup = opts.layerPopup; els.contents = opts.contents; els.closeCta = opts.closeCta; els.moveTarget = opts.moveTarget; }; var 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; } var bindEvent = function() { opts.openerEvent.element.addEventListener('click', showLayer); els.layerPopup.show = showLayer; els.layerPopup.hide = hideLayer; }; var showLayer = function(e) { if (opts.openerEvent.proxy) { if (opts.openerEvent.parent) { if (e.target.parentElement.classList.contains(opts.openerEvent.class)) { utils.hiddenScroll(els.layerPopup); els.openerCta = e.target.parentElement; els.layerPopup.opener = els.openerCta; if (show.start) show.start(els); if (utils.detector.isIosDevice) e.target.parentElement.style.display = 'none'; els.html.classList.add('is-layer-open'); els.html.style.overflow = 'hidden'; els.moveTarget.appendChild(els.layerPopup); accessibility.on(); setTimeout(function() { els.closeCta.focus(); }, 300); els.closeCta.addEventListener('click', hideLayer); if (show.end) show.end(els); } } else { if (e.target.classList.contains(opts.openerEvent.class)) { utils.hiddenScroll(els.layerPopup); els.openerCta = e.target; els.layerPopup.opener = els.openerCta; if (show.start) show.start(els); if (utils.detector.isIosDevice) e.target.style.display = 'none'; els.html.classList.add('is-layer-open'); els.html.style.overflow = 'hidden'; els.moveTarget.appendChild(els.layerPopup); accessibility.on(); setTimeout(function() { els.closeCta.focus(); }, 300); els.closeCta.addEventListener('click', hideLayer); if (show.end) show.end(els); }; } } else { utils.hiddenScroll(els.layerPopup); els.openerCta = this; els.layerPopup.opener = els.openerCta; if (show.start) show.start(els); if (utils.detector.isIosDevice) this.style.display = 'none'; els.html.classList.add('is-layer-open'); els.html.style.overflow = 'hidden'; els.moveTarget.appendChild(els.layerPopup); accessibility.on(); setTimeout(function() { els.closeCta.focus(); }, 300); els.closeCta.addEventListener('click', hideLayer); if (show.end) show.end(els); } }; var hideLayer = function() { if (utils.detector.isIosDevice) els.openerCta.style.display = ''; if (hide.start) hide.start(els); els.html.classList.remove('is-layer-open'); els.html.style.overflow = ''; utils.visibleScroll(); els.closeCta.removeEventListener('click', hideLayer); accessibility.off(); setTimeout(function() { if (!!!els.openerCta) { els.layerPopup.opener.focus(); } else { els.openerCta.focus(); } }, 300); if (hide.end) hide.end(els); }; var accessibility = { on: function() { accessibility.onPopupAccessibility(document.querySelector('#wrap')); utils.offAccessibility(els.layerPopup); }, off: function() { accessibility.offPopupAccessibility(document.querySelector('#wrap')); utils.onAccessibility(els.layerPopup); }, onPopupAccessibility: function(el) { el.setAttribute('aria-hidden', true); el.setAttribute('tabindex', -1); let clickable = el.querySelectorAll('a, button, input, select, iframe'); for (let i = 0; i < clickable.length; i++) { let currAria = clickable[i].getAttribute('aria-hidden'); let currTab = clickable[i].getAttribute('tabindex'); if (currAria != null) clickable[i].setAttribute('data-prev-aria-hidden', currAria); if (currTab != null) clickable[i].setAttribute('data-prev-tabindex', currTab); clickable[i].setAttribute('tabindex', -1); clickable[i].setAttribute('aria-hidden', true); } }, offPopupAccessibility: function(el) { el.removeAttribute('aria-hidden'); el.removeAttribute('tabindex'); let clickable = el.querySelectorAll('a, button, input, select, iframe'); for (let i = 0; i < clickable.length; i++) { let prevAria = clickable[i].getAttribute('data-prev-aria-hidden'); let prevTab = clickable[i].getAttribute('data-prev-tabindex'); if (prevAria != null) clickable[i].setAttribute('aria-hidden', prevAria); else clickable[i].removeAttribute('aria-hidden'); if (prevTab != null) clickable[i].setAttribute('tabindex', prevTab); else clickable[i].removeAttribute('tabindex'); clickable[i].removeAttribute('data-prev-aria-hidden'); clickable[i].removeAttribute('data-prev-tabindex'); } }, }; return init();}var newVideoHandler = function(opts) { var init = function(opts) { this.video = opts.video; this.wrap = !!!opts.wrap ? video : opts.wrap; this.controller = !!!opts.controller ? '' : opts.controller; this.playType = opts.playType; this.startPoint = !!!opts.startPoint ? 0 : opts.startPoint; this.reversePoint = !!!opts.reversePoint ? 100 : opts.reversePoint; this.playClass = !!!opts.playClass ? 'is-playing' : opts.playClass; this.pauseClass = !!!opts.pauseClass ? 'is-paused' : opts.pauseClass; this.endedClass = !!!opts.endedClass ? 'is-ended' : opts.endedClass; this.resetCallback = opts.resetCallback; this.playCallback = opts.playCallback; this.pauseCallback = opts.pauseCallback; this.endCallback = opts.endCallback; this.tweenObject = null; this.agent = navigator.userAgent; this.isMacintosh = this.agent.indexOf('Macintosh'); this.isChrome = this.agent.indexOf('Chrome'); this.playText = !!!opts.playText ? '' : opts.playText; this.pauseText = !!!opts.pauseText ? '' : opts.pauseText; this.bindEvents(); this.video.videoHandler = this; return this; }; var fn = init.prototype; fn.eventList = { play: function() { if (!!this.playCallback) this.playCallback(); if (!this.wrap.length) { this.wrap.classList.remove(this.endedClass); this.wrap.classList.remove(this.pauseClass); this.wrap.classList.add(this.playClass); } else { for (var i = 0; i < this.wrap.length; i++) { this.wrap[i].classList.remove(this.endedClass); this.wrap[i].classList.remove(this.pauseClass); this.wrap[i].classList.add(this.playClass); } } if (this.controller) { var bilnd = this.controller.querySelector('.blind'), pauseText = this.controller.getAttribute('data-pause-text').toLowerCase(); bilnd.innerText = pauseText; } }, ended: function() { if (!!this.endCallback) this.endCallback(); if (!this.wrap.length) { this.wrap.classList.remove(this.playClass); this.wrap.classList.add(this.pauseClass) this.wrap.classList.add(this.endedClass) } else { for (var i = 0; i < this.wrap.length; i++) { this.wrap[i].classList.remove(this.playClass); this.wrap[i].classList.add(this.pauseClass) this.wrap[i].classList.add(this.endedClass) } } }, pause: function() { if (!!this.pauseCallback) this.pauseCallback(); if (!this.wrap.length) { this.wrap.classList.remove(this.playClass); this.wrap.classList.add(this.pauseClass); } else { for (var i = 0; i < this.wrap.length; i++) { this.wrap[i].classList.remove(this.playClass); this.wrap[i].classList.add(this.pauseClass); } } if (this.controller) { var bilnd = this.controller.querySelector('.blind'), playText = this.controller.getAttribute('data-play-text').toLowerCase(); bilnd.innerText = playText; } }, reset: function() { if (!!this.resetCallback) this.resetCallback(); this.video.pause(); this.video.currentTime = 0; var self = this; var _removeClass = function() { if (!self.wrap.length) { self.wrap.classList.remove(self.playClass); self.wrap.classList.remove(self.pauseClass); self.wrap.classList.remove(self.endedClass); } else { for (var i = 0; i < self.wrap.length; i++) { self.wrap[i].classList.remove(self.playClass); self.wrap[i].classList.remove(self.pauseClass); self.wrap[i].classList.remove(self.endedClass); } } } clearTimeout(_removeClass); setTimeout(_removeClass, 50); } }; fn.activeList = { scrollPlay: function(progress) { if (!document.documentElement.classList.contains('low_network') && progress > this.startPoint && progress < this.reversePoint && this.video.paused && !this.wrap.classList.contains(this.endedClass) && !this.wrap.classList.contains(this.pauseClass)) { if (this.video.readyState == 4 && this.video.paused) { this.video.play(); } else { this.video.addEventListener('canplay', this.video.play); }; }; if (this.video.readyState == 4) { if (progress === 100 || progress === 0) { this.eventList.reset.call(this); } } }, sequencePlay: function(progress, corrProgress, scrollDuration) { this.corrProgress = !!!corrProgress ? 100 : corrProgress; this.scrollDuration = !!!scrollDuration ? 0.6 : scrollDuration; if (this.video.readyState == 4 && this.video.paused) { this.videoDuration = this.video.duration; this.playCurrentTime = this.videoDuration * (progress / this.corrProgress); this.playRange = this.playCurrentTime < this.videoDuration ? this.playCurrentTime : this.videoDuration; // if (this.isMacintosh > 0 && this.isChrome > 0) { // this.video.currentTime = this.playRange; // } else { // if (this.tweenObject === null) { // this.tweenObject = new TweenMax.to(this.video, this.scrollDuration, { // currentTime: this.playRange, // ease: 'Circ.out' // }); // }; // this.tweenObject.updateTo({currentTime: this.playRange}, true); // } if (this.playCurrentTime < this.videoDuration) { this.video.currentTime = this.playRange; }; }; } } fn.bindEvents = function() { var self = this; this.playEvent = function() { self.eventList.play.call(self); } this.pauseEvent = function() { self.eventList.pause.call(self); } this.endedEvent = function() { self.eventList.ended.call(self); } this.video.addEventListener('play', this.playEvent); this.video.addEventListener('pause', this.pauseEvent); this.video.addEventListener('ended', this.endedEvent); }; fn.scrollActive = function(progress, corrProgress, scrollDuration) { switch (this.playType) { case 'scrollPlay': this.activeList.scrollPlay.call(this, progress); break; case 'sequencePlay': this.activeList.sequencePlay.call(this, progress, corrProgress, scrollDuration); break; } }; fn.destroy = function() { this.video.removeEventListener('play', this.playEvent); this.video.removeEventListener('pause', this.pauseEvent); this.video.removeEventListener('ended', this.endedEvent); this.video.videoHandler = null; }; return new init(opts);};(function() { var 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)), els = {}; var init = function() { els.videoWrap = document.querySelectorAll('.common-video'); els.isGlobal = document.documentElement.classList.contains('global'); if (!!els.videoWrap[0]) { setElements(); } for (var i = 0; i < els.videoWrap.length; i++) { if (els.videoWrap[i].childNodes.length > 0) { 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 = els.videoWrap[i].control.getAttribute('data-play-text').toLowerCase(); } } }; var setElements = function() { els.viewerPopup = document.querySelector('.highlights-viewer'); els.scrollVideosWrap = document.querySelectorAll('.js-scroll-video'); els.scrollVideos = document.querySelectorAll('.js-scroll-video video'); for (var i = 0; i < els.scrollVideosWrap.length; i++) { els.scrollVideos[i].videoWrap = els.scrollVideosWrap[i]; } }; var bindEvents = function() { window.addEventListener('load', anchorPosition); window.addEventListener('hashchange', anchorPosition); }; 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); }; var setScrollControl = function() { window.scrollController = ANIUTIL.scrollController(); scrollController.init({ speed: 120, duration: 0.5 }); }; var 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 }); }; var 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'); } } }); }; var setDisclaimer = function() { els.supClicker = document.querySelectorAll('a.click_sup'); for (var i = 0; i < els.supClicker.length; i++) { els.supClicker[i].addEventListener('click', common.onClickSup); } }; var setCenteredfocus = function() { els.contents = document.querySelector('#contents'); els.allClickables = els.contents.querySelectorAll('a, button, input, select'); for (var i = 0; i < els.allClickables.length; i++) { els.allClickables[i].addEventListener('focusin', common.centeredFocus); } }; var anchorPosition = function() { if (window.location.hash != '') { if (window.location.hash == '#colors-see-in-360') { if (els.viewerPopup) els.viewerPopup.show(); } else if (window.location.hash == '#online-exclusive-color-see-in-360') { if (els.viewerPopup) els.viewerPopup.show(); } else if (!!document.querySelector(window.location.hash)) { var hash = location.hash.split('#')[1], hashSection = document.querySelector('#contents #' + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function() { var sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); }, 300); } } }; var setVideoTheme = function() { var videoList = document.querySelectorAll('.common-video'); for (var i = 0; i < videoList.length; i++) { var colorType = videoList[i].getAttribute('data-theme-type'); if (colorType === 'white') { videoList[i].classList.add('common-video__white'); } else if (colorType === 'black') { videoList[i].classList.add('common-video__black'); } } }; var onLoadHandler = function() { common.setLownetworkClass(); common.setArBanner(); init(); bindEvents(); setResize(); if (!maxOs && !touchDevice) { setScrollControl(); } setImageLoader(); setVideoLoader(); setDisclaimer(); setCenteredfocus(); setVideoTheme(); common.isZoom(); resize.add(common.isZoom); }; onLoadHandler();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.ai = (function() { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; let els = {}, objs = {}, status = { prevIndex: 0, isAuto: true, }; const init = function() { els.section = document.querySelector('.highlights-ai'); if (!!els.section) { setElements(); eventList.setScene(); bindEvents(); } }; const setElements = function() { els.carouselWrap = els.section.querySelector('.js-carousel-wrap'); els.yotubeCta = els.section.querySelectorAll('.js-youtube-popup'); // swiper 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'); // video els.videoWrap = els.section.querySelectorAll('.common-video'); els.videoControlCta = Array.prototype.slice.call(els.section.querySelectorAll('.common-video__control')); }; const bindEvents = function() { eventHandler.load(); eventHandler.scroll(); eventHandler.click(); resize.add(eventList.onResize); }; const eventHandler = { load: function() { window.addEventListener('DOMContentLoaded', eventList.onLoad, { once: true }); }, scroll: function() { window.addEventListener('scroll', eventList.scroll); }, click: function() { for (let i = 0; i < els.videoControlCta.length; i++) { els.videoControlCta[i].addEventListener('click', eventList.setVideoStatus); } els.nextArrow.addEventListener('click', eventList.setArrowFocus); els.nextArrow.addEventListener('keydown', eventList.setArrowFocus); els.prevArrow.addEventListener('click', eventList.setArrowFocus); els.prevArrow.addEventListener('keydown', eventList.setArrowFocus); for (let i = 0; i < els.yotubeCta.length; i++) { els.yotubeCta[i].addEventListener('click', eventList.pauseVideo); } }, }; const eventList = { swiper: { set: function() { if (objs.swiper == null) { objs.swiper = new Swiper(els.swiperContainer, { init: false, speed: 500, navigation: { nextEl: els.nextArrow, prevEl: els.prevArrow, }, pagination: { el: els.pagination, type: 'bullets', renderBullet: function() { return '
'; } }, }); } }, init: function() { let notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); els.nextArrow.removeAttribute('aria-label'); els.nextArrow.removeAttribute('role'); els.prevArrow.removeAttribute('aria-label'); els.prevArrow.removeAttribute('role'); objs.swiper.on('slideChange', eventList.swiper.slideChange); objs.swiper.on('transitionEnd', eventList.swiper.transitionEnd); objs.swiper.on('touchMove', eventList.swiper.touchMove); objs.swiper.on('touchEnd', eventList.swiper.touchEnd); els.bullets = objs.swiper.pagination.bullets; for (let i = 0; i < els.bullets.length; i++) { els.bullets[i].addEventListener('click', function() { objs.swiper.slideTo(i); }); } eventList.setVideo(); eventList.scroll(); accessibility.slide(); accessibility.pagination.label(); accessibility.pagination.tagging(); }, slideChange: function() { let activeIndex = objs.swiper.activeIndex; let nextIndex = (activeIndex == (objs.swiper.slides.length - 1)) ? null : activeIndex + 1; if (nextIndex != null) { if (nextIndex == 2) { eventList.lazyLoad(els.videoWrap[nextIndex]); } else if (nextIndex == 3) { eventList.lazyLoad(els.videoWrap[nextIndex]); } } // video objs[`video_${status.prevIndex}`].eventList.reset.call(objs[`video_${status.prevIndex}`]); objs[`video_${status.prevIndex}`].video.removeEventListener('canplay', objs[`video_${status.prevIndex}`].video.play); if (!!status.isAuto) { 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(); }); } } // set autoplay if (objs.swiper.activeIndex == (objs.swiper.slides.length - 1)) status.isLast = true; accessibility.slide(); accessibility.pagination.label(); status.prevIndex = activeIndex; }, transitionEnd: function() { let activeController = objs[`video_${objs.swiper.activeIndex}`].controller; let isArrow = document.activeElement.classList.contains('swiper-button-next') || document.activeElement.classList.contains('swiper-button-prev'); let isBullet = document.activeElement.classList.contains('swiper-pagination-bullet'); if (!!isArrow || !!isBullet) return; activeController.focus(); }, touchMove: function() { objs.swiper.off('transitionEnd', eventList.swiper.transitionEnd); }, touchEnd: function() { objs.swiper.on('transitionEnd', eventList.swiper.transitionEnd); }, }, setVideo: function() { for (let i = 0; i < els.videoWrap.length; i++) { objs[`video_${i}`] = newVideoHandler({ playType: 'scrollPlay', wrap: els.videoWrap[i], video: els.videoWrap[i].querySelector('video'), controller: els.videoControlCta[i], startPoint: status.currentDevice.indexOf('mobile') > -1 ? 25 : 35, reversePoint: status.currentDevice.indexOf('mobile') > -1 ? 65 : 75, resetCallback: function() { if (this.wrap.classList.contains('is-completed')) { this.wrap.classList.remove('is-completed'); } }, playCallback: function() { accessibility.controlTagging.play(objs[`video_${i}`].wrap.control); }, pauseCallback: function() { accessibility.controlTagging.pause(objs[`video_${i}`].wrap.control); }, endCallback: function() { if (!this.wrap.classList.contains('is-completed')) { this.wrap.classList.add('is-completed'); } if (!status.isAuto || !!status.isLast) return; setTimeout(() => { objs.swiper.slideNext(500); }, 300); } }); } }, setScene: function() { objs.scene = SCROLLER({ trackElement: els.carouselWrap, useFixed: false }); }, onLoad: function() { status.currentDevice = resize.checkResolution(); if (!!utils.isLowNetwork()) status.isAuto = false; eventList.swiper.set(); objs.swiper.on('init', eventList.swiper.init); objs.swiper.init(); }, onResize: function(currRes) { status.currentDevice = currRes; }, scroll: function() { objs.scene.trackAnimation(function() { if (!status.isAuto) return; objs[`video_${objs.swiper.activeIndex}`].scrollActive(this.progress); }); }, lazyLoad: function(videoWrap) { videoLoader.setResponsiveMedia([videoWrap.querySelector('video')], function(target) { if (!target.videoHandler.wrap.classList.add('is-loaded')) target.videoHandler.wrap.classList.add('is-loaded'); }); let image = videoWrap.querySelectorAll('img'); imageLoader.setResponsiveMedia(image); }, setVideoStatus: function() { let activeIndex = els.videoControlCta.indexOf(this); if (!objs[`video_${activeIndex}`].video.paused) { objs[`video_${activeIndex}`].video.pause(); if (!utils.isLowNetwork()) status.isAuto = false; } else { objs[`video_${activeIndex}`].video.play(); if (!utils.isLowNetwork()) status.isAuto = true; } }, setArrowFocus: function(e) { status.arrowFocusTimeout = null; if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') { e.preventDefault(); clearTimeout(status.arrowFocusTimeout); status.arrowFocusTimeout = setTimeout(() => { if (objs.swiper.isBeginning && !objs.swiper.isEnd) { els.nextArrow.focus(); } else if (!objs.swiper.isBeginning && objs.swiper.isEnd) { els.prevArrow.focus(); } }, 300); } }, pauseVideo: function() { if (!objs[`video_${objs.swiper.activeIndex}`].video.paused) { objs[`video_${objs.swiper.activeIndex}`].video.pause(); if (!utils.isLowNetwork()) status.isAuto = false; } } }; 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: { label: function() { for (let i = 0; i < els.bullets.length; i++) { let slideTitle = 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', `Slide${i+1}: ${slideTitle} ${LOCAL_VARI.selected.toLowerCase()}`); } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideTitle} selected`); } } else { els.bullets[i].setAttribute('aria-label', `Slide${i+1}: ${slideTitle}`); } } }, tagging: function() { for (let i = 0; i < els.bullets.length; i++) { let tagging = { 'data-omni-type': 'microsite_pcontentinter', 'data-omni': 'galaxy-z-flip5:highlights:overview:index:', 'ga-ca': 'indication', 'ga-ac': 'carousel', 'ga-la': 'galaxy-z-flip5:highlights:overview:index:', }; Object.keys(tagging).forEach(function(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]); } }); } }, }, controlTagging: { pause: function(control) { if (!!control) { let dataOmni = control.getAttribute('data-omni'), gaLa = control.getAttribute('ga-la'); control.setAttribute('data-omni', dataOmni.replace('pause', 'play')); control.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, play: function(control) { if (!!control) { let dataOmni = control.getAttribute('data-omni'), gaLa = control.getAttribute('ga-la'); control.setAttribute('data-omni', dataOmni.replace('play', 'pause')); control.setAttribute('ga-la', gaLa.replace('play', 'pause')); } }, } }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.cameraVideo = (function() { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function() { els.section = document.querySelector('.highlights-video'); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function() { els.scrollVideoWrap = els.section.querySelector('.common-video'); els.scrollVideo = els.section.querySelector('.common-video__figure>video'); els.scrollController = els.section.querySelector('.common-video__control'); els.scrollControllerBlindText = els.scrollController.querySelector('.blind'); }; var bindEvents = function() { window.addEventListener('scroll', handlerList.scroll); els.scrollController.addEventListener('click', handlerList.videoCta); handlerList.scroll(); }; var objList = { setVideo: function() { objs.cameraVideo = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: 8, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function() { if (els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.remove('is-completed'); } }, playCallback: function() { els.scrollControllerBlindText.innerText = 'pause'; setTagging.pause(); }, pauseCallback: function() { els.scrollControllerBlindText.innerText = 'play'; setTagging.play(); }, endCallback: function() { if (!els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.add('is-completed'); } } }); }, setScene: function() { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; var handlerList = { scroll: function() { objs.scene.trackAnimation(function() { objs.cameraVideo.scrollActive(this.progress); }); }, videoCta: function() { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } } }; var setTagging = { play: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.colors = (function() { var els = {}, status = {}; var init = function() { els.section = document.querySelector('.highlights-colors'); if (!!els.section) { setElements(); bindEvents(); } }; var setElements = function() { els.colors = els.section.querySelectorAll('.highlights-colors__tab-button'); els.colorName = els.section.querySelectorAll('.highlights-colors__tab-name'); els.panel = els.section.querySelectorAll('.highlights-colors__tab-panel--side .highlights-colors__image-wrap'); els.popupBtn = els.section.querySelector('.common-cta-encased'); //swiper els.swiper = null; els.swiperContainer = els.section.querySelector('.swiper-container'); status.isClick = false; }; var bindEvents = function() { window.addEventListener('DOMContentLoaded', onLoadHandler, { once: true }); window.addEventListener('scroll', onLoadHandler); for (var i = 0; i < els.colors.length; i++) { els.colors[i].index = i; els.colors[i].addEventListener('click', onClickColorItem); } }; var onLoadHandler = function() { setSwiper(); }; var onClickColorItem = function() { var target = this; status.isClick = true; handlerList.colorchip(target); handlerList.colorName(target); handlerList.panel(target); handlerList.slideTo(target); }; var handlerList = { colorchip: function(target) { var oldColor = els.section.querySelector('.highlights-colors__tab .is-active'); if (!target.classList.contains('is-active')) { oldColor.classList.remove('is-active'); oldColor.setAttribute('aria-selected', false); target.classList.add('is-active'); target.setAttribute('aria-selected', true); } }, colorName: function(target) { var oldColorName = els.section.querySelector('.highlights-colors__tab-names .is-active'), index = target.index; if (!els.colorName[index].classList.contains('is-active')) { oldColorName.classList.remove('is-active'); oldColorName.setAttribute('aria-hidden', true); els.colorName[index].classList.add('is-active'); els.colorName[index].setAttribute('aria-hidden', false); } }, panel: function(target) { var oldPanel = els.section.querySelector('.highlights-colors__tab-panel-group .is-active'), index = target.index; if (!els.panel[index].classList.contains('is-active')) { oldPanel.classList.remove('is-active'); els.panel[index].classList.add('is-active'); els.popupBtn.setAttribute('data-model-color', els.panel[index].getAttribute('id')); } }, slideTo: function(target) { var index = target.index; els.swiper.slideTo((index + 1), 500, false); status.isClick = false; }, setPopupBtnColor: function(target) { els.popupBtn.setAttribute('data-model-color', target.getAttribute('id')); } } var swiperEvents = { init: function() { var notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); var activeIndex = this.activeIndex, activeSlide = this.slides[activeIndex]; activeSlideImg = this.slides[this.activeIndex].querySelectorAll('img'), prevSlideImg = this.slides[this.activeIndex - 1].querySelectorAll('img'), nextIndex = (this.activeIndex < this.slides.length - 1) ? (this.activeIndex + 1) : 0, nextSlide = this.slides[nextIndex], nextSlideImg = nextSlide.querySelectorAll('img'); if (activeSlideImg[0] && !activeSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(activeSlideImg); } if (prevSlideImg[0] && !prevSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(prevSlideImg); } if (nextSlideImg[0] && !nextSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(nextSlideImg); } accessibility.slide(); handlerList.setPopupBtnColor(activeSlide); }, slideChange: function() { var activeIndex = els.swiper.realIndex, activeSlide = this.slides[activeIndex + 1], activeSlideImg = els.swiper.slides[els.swiper.activeIndex].querySelectorAll('img'), nextIndex = (this.activeIndex < this.slides.length - 1) ? (this.activeIndex + 1) : 0, nextSlideImg = this.slides[nextIndex].querySelectorAll('img'); if (!status.isClick) { handlerList.colorchip(els.colors[activeIndex]); handlerList.colorName(els.colors[activeIndex]); handlerList.panel(els.colors[activeIndex]); handlerList.setPopupBtnColor(this.slides[els.swiper.activeIndex]); } if (!activeSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(activeSlideImg); } if (!nextSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(nextSlideImg); } accessibility.slide(); handlerList.setPopupBtnColor(activeSlide); }, slideChangeTransitionEnd: function() { status.isClick = false; } }; var setSwiper = function() { var windowOffsetTop = window.pageYOffset, windowOffsetBottom = windowOffsetTop + window.innerHeight, targetOffsetTop = windowOffsetTop + els.section.getBoundingClientRect().top; if (els.swiper == null && windowOffsetBottom >= targetOffsetTop) { els.swiper = new Swiper(els.swiperContainer, { init: false, slidesPerView: 'auto', loop: true, loopedSlides: 1 }); els.swiper.on('init', swiperEvents.init); els.swiper.on('slideChange', swiperEvents.slideChange); els.swiper.on('slideChangeTransitionEnd', swiperEvents.slideChangeTransitionEnd); els.swiper.init(); } }; var accessibility = { slide: function() { for (var i = 0; i < els.swiper.slides.length; i++) { if (i != els.swiper.activeIndex) { els.swiper.slides[i].setAttribute('aria-hidden', true); } else { els.swiper.slides[i].setAttribute('aria-hidden', false); } } } } return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.customization = (function() { var els = {}, status = {}, 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)), resize = window.flagship.common.resize; var init = function() { els.section = document.querySelector('.highlights-customization'); if (!!els.section) { setElements(); bindEvents(); } }; var setElements = function() { els.uiTabBtns = els.section.querySelectorAll('.highlights-customization__ui-tab-btn'); els.uiContent = els.section.querySelector('.highlights-customization__ui-content-wrap'); els.clockUi = els.section.querySelector('.highlights-customization__ui-content--clock'); els.widgetUi = els.section.querySelector('.highlights-customization__ui-content--widget'); els.widgetUiList = Array.prototype.slice.call(els.widgetUi.querySelectorAll('.highlights-customization__ui-item')); els.clockUiList = Array.prototype.slice.call(els.clockUi.querySelectorAll('.highlights-customization__ui-item')); els.clockDisplay = els.section.querySelector('.highlights-customization__display--clock'); els.widgetDisplay = els.section.querySelector('.highlights-customization__display--widget'); els.clockDisplayItem = els.clockDisplay.querySelectorAll('.highlights-customization__display-item'); els.widgetDisplayItem = els.widgetDisplay.querySelectorAll('.highlights-customization__display-item'); }; var bindEvents = function() { window.addEventListener('DOMContentLoaded', handlerList.load, { once: true }); els.uiTabBtns[0].addEventListener('click', handlerList.clockTab); els.uiTabBtns[1].addEventListener('click', handlerList.widgetTab); if (!maxOs && !touchDevice) { els.uiContent.addEventListener('mouseenter', function() { scrollController.destroy(true); }, { capture: true }); els.uiContent.addEventListener('mouseleave', function() { scrollController.init({ speed: 120, duration: 0.5 }); }, { capture: true }); } resize.add(handlerList.checkMobile); }; var setSwiper = function() { els.scrollbar = els.isUiWrap.querySelector('.highlights-customization__scrollbar'); if (els.swiper == null) { els.swiper = new Swiper(els.isUiWrap, { init: false, slidesPerView: 'auto', observer: true, observeParents: true, observeSlideChildren: true, scrollbar: { el: els.scrollbar, draggable: true, hide: false, } }); els.swiper.on('init', function() { var notification = this.el.querySelector('.swiper-notification'); this.el.removeChild(notification); }); els.swiper.init(); } }; var destroySwiper = function() { if (els.swiper != null) { els.swiper.scrollbar.dragEl.style = ''; els.swiper.scrollbar.destroy(true); els.swiper.destroy(true); els.swiper = null; } }; var handlerList = { load: function() { status.currentTab = 'clock'; status.prevTab = els.uiTabBtns[0]; for (var i = 0; i < els.clockDisplayItem.length; i++) { utils.onAccessibility(els.clockDisplayItem[i]); } for (var i = 0; i < els.widgetDisplayItem.length; i++) { utils.onAccessibility(els.widgetDisplayItem[i]); } tabEvents.initTab(); }, checkMobile: function() { if (resize.checkResolution().indexOf('mobile') > -1) { setSwiper(); } else { destroySwiper(); } }, widgetTab: function() { if (this.classList.contains('is-active')) return; tabEvents.removeActive(); status.currentTab = 'widget'; tabEvents.changeTab(this); imageLoader.setResponsiveMedia(els.widgetUi.querySelectorAll('img')); status.prevTab = this; }, clockTab: function() { if (this.classList.contains('is-active')) return; tabEvents.removeActive(); status.currentTab = 'clock'; tabEvents.changeTab(this); status.prevTab = this; }, clickUi: function() { var self = this, currentIndex = els.isUi.indexOf(self); if (self.classList.contains('is-active')) return; clearTimeout(status.clickTimeout); status.clickTimeout = setTimeout(function() { tabEvents.removeActive(); accessibility.setTitle(self.querySelector('button')); self.classList.add('is-active'); els.isDisplay[currentIndex].classList.add('is-active'); utils.offAccessibility(els.isDisplay[currentIndex]); status.prevIndex = currentIndex; }, 200); }, }; var tabEvents = { initTab: function() { status.prevIndex = 0; status.prevDisplayWrap = els.isDisplayWrap; status.prevUiWrap = els.isUiWrap; destroySwiper(); tabEvents.getElement(); tabEvents.initTabTitle(); tabEvents.firstAddActive(); tabEvents.bindClickUi(); accessibility.uiItem(); handlerList.checkMobile(); }, changeTab: function(currentTab) { if (resize.checkResolution().indexOf('mobile') > -1) els.uiContent.scrollLeft = -1; tabEvents.initTab(currentTab); status.prevTab.classList.remove('is-active'); status.prevDisplayWrap.classList.remove('is-active'); status.prevUiWrap.classList.remove('is-visible'); status.prevUiWrap.classList.remove('is-active'); currentTab.classList.add('is-active'); els.isUiWrap.classList.add('is-visible'); setTimeout(function() { els.isUiWrap.classList.add('is-active'); }, 100); setTimeout(function() { if (resize.checkResolution().indexOf('mobile') > -1) els.uiContent.scrollLeft = 0; }, 200); els.isDisplayWrap.classList.add('is-active'); }, getElement: function() { els.isUiWrap = status.currentTab == 'clock' ? els.clockUi : els.widgetUi; els.isUi = status.currentTab == 'clock' ? els.clockUiList : els.widgetUiList; els.isDisplayWrap = status.currentTab == 'clock' ? els.clockDisplay : els.widgetDisplay; els.isDisplay = status.currentTab == 'clock' ? els.clockDisplayItem : els.widgetDisplayItem; }, removeActive: function() { els.isUi[status.prevIndex].classList.remove('is-active'); els.isUi[status.prevIndex].querySelector('button').removeAttribute('title'); els.isDisplay[status.prevIndex].classList.remove('is-active'); utils.onAccessibility(els.isDisplay[status.prevIndex]); }, firstAddActive: function() { els.isUi[0].classList.add('is-active'); accessibility.setTitle(els.isUi[0].querySelector('button')); els.isDisplay[0].classList.add('is-active'); utils.offAccessibility(els.isDisplay[0]); }, bindClickUi: function() { for (var i = 0; i < els.isUi.length; i++) { els.isUi[i].addEventListener('click', handlerList.clickUi); } }, initTabTitle: function() { if (status.currentTab === 'clock') { els.uiTabBtns[1].removeAttribute('title'); accessibility.setTitle(els.uiTabBtns[0]); } else { els.uiTabBtns[0].removeAttribute('title'); accessibility.setTitle(els.uiTabBtns[1]); } } }; var accessibility = { uiItem: function() { if (status.currentTab === 'clock') { utils.onAccessibility(els.widgetUi); utils.offAccessibility(els.clockUi); } else { utils.onAccessibility(els.clockUi); utils.offAccessibility(els.widgetUi); } }, setTitle: function(button) { if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { button.setAttribute('title', LOCAL_VARI.selected); } else { button.setAttribute('title', 'Selected'); } }, }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.design = (function() { var els = {}, objs = {}, utils = window.flagship.common.utils, resize = window.flagship.common.resize; currDevice = resize.checkResolution(); var init = function() { els.section = document.querySelector('.highlights-design'); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function() { els.scrollVideoWrap = els.section.querySelector('.common-video'); els.scrollVideo = els.section.querySelector('.common-video__figure>video'); els.scrollController = els.section.querySelector('.common-video__control'); els.scrollControllerBlindText = els.scrollController.querySelector('.blind'); }; var bindEvents = function() { window.addEventListener('scroll', handlerList.scroll); els.scrollController.addEventListener('click', handlerList.videoCta); handlerList.scroll(); resize.add(onResizeHandler); }; var onResizeHandler = function(currRes) { currDevice = currRes; }; var objList = { setVideo: function() { objs.designVideo = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: (currDevice.indexOf('mobile') > -1) ? 21 : 24, reversePoint: (currDevice.indexOf('mobile') > -1) ? 82 : 80, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function() { if (els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.remove('is-completed'); } }, playCallback: function() { els.scrollControllerBlindText.innerText = 'pause'; setTagging.pause(); }, pauseCallback: function() { els.scrollControllerBlindText.innerText = 'play'; setTagging.play(); }, endCallback: function() { if (!els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.add('is-completed'); } } }); }, setScene: function() { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; var handlerList = { scroll: function() { objs.scene.trackAnimation(function() { objs.designVideo.scrollActive(this.progress); }); }, videoCta: function() { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } } }; var setTagging = { play: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();;(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.durability = (function() { var els = {}, utils = window.flagship.common.utils; var init = function() { els.section = document.querySelector('.highlights-durability'); if (!!els.section) { setElements(); setProperty(); bindEvents(); } }; var setElements = function() { els.durabilityItemWrap = els.section.querySelector('.highlights-durability__list'); els.durabilityItem = els.section.querySelectorAll('.highlights-durability__item'); }; var setProperty = function() { for (var i = 0; i < els.durabilityItem.length; i++) { els.durabilityItem[i].btn = els.durabilityItem[i].querySelector('.highlights-durability__item-button'); els.durabilityItem[i].desc = els.durabilityItem[i].querySelector('.highlights-durability__item-description'); els.durabilityItem[i].img = els.durabilityItem[i].querySelector('.highlights-durability__item-image'); if (!els.durabilityItem[i].classList.contains('is-open')) utils.onAccessibility(els.durabilityItem[i].img); } }; var bindEvents = function() { window.addEventListener('DOMContentLoaded', onLoadHandler, { once: true }); for (var i = 0; i < els.durabilityItem.length; i++) { els.durabilityItem[i].btn.addEventListener('click', onClickItemBtn); } }; var onLoadHandler = function() { els.durabilityItem[0].desc.style.display = 'block'; }; var onClickItemBtn = function() { var currentItem = this.parentElement.parentElement, oldItem = els.durabilityItemWrap.querySelector('.is-open'), dataOmni = this.getAttribute('data-omni'), gaLa = this.getAttribute('ga-la'); if ((currentItem != oldItem) && !currentItem.classList.contains('is-open')) { oldItem.setAttribute('aria-expanded', false); utils.onAccessibility(oldItem.img); this.setAttribute('aria-expanded', true); utils.offAccessibility(currentItem.img); $(oldItem.desc).slideUp(300); $(currentItem.desc).slideDown(300); setTimeout(function() { oldItem.classList.remove('is-open'); currentItem.classList.add('is-open'); }, 100); this.setAttribute('data-omni', dataOmni.replace('open', 'close')); this.setAttribute('ga-la', gaLa.replace('open', 'close')); } }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.excellence = (function() { var els = {}, objs = {}, resize = window.flagship.common.resize, utils = window.flagship.common.utils, currDevice = null, prevDevice = null; var init = function() { els.section = document.querySelector('.highlights-excellence'); if (!!els.section) { setElements(); setProperty(); bindEvents(); } }; var setElements = function() { els.contentWrap = document.querySelector('#wrap'); els.sceneTrack = els.section.querySelector('.highlights-excellence__fixed-track'); els.sceneFixed = els.section.querySelector('.highlights-excellence__fixed-item'); els.item = els.section.querySelectorAll('.highlights-excellence__item'); els.accBanner = document.querySelector('.highlights-accessories'); // swiper els.swiper = null; els.swiperEl = els.section.querySelector('.highlights-excellence__carousel'); els.swiperSlides = els.swiperEl.querySelectorAll('.highlights-excellence__item'); els.swiperNavArrowNext = els.swiperEl.querySelector('.swiper-button-next'); els.swiperNavArrowPrev = els.swiperEl.querySelector('.swiper-button-prev'); els.arrowTimeout = null; els.orientationTimeout = null; }; var setProperty = function() { for (var i = 0; i < els.item.length; i++) { var clickable = els.item[i].querySelectorAll('a, button'); if (clickable.length > 0) { for (var j = 0; j < clickable.length; j++) { clickable[j].item = els.item[i]; clickable[j].addEventListener('keydown', onFocusClickable); } } } }; var objList = { setScene: function() { if (objs.scene == null) { objs.scene = SCROLLER({ trackElement: els.sceneTrack, fixedElement: els.sceneFixed, useFixed: utils.detector.isIEorEdge < 0 ? false : true, useSticky: utils.detector.isIEorEdge < 0 ? true : false, trackHeight: 1.5, correction: -1, useStrictMode: false }); } } }; var bindEvents = function() { window.addEventListener('DOMContentLoaded', onLoadHandler, { once: true }); window.addEventListener('scroll', scrollerHandlerList.onScroller); window.addEventListener('orientationchange', function() { clearTimeout(els.orientationTimeout); els.orientationTimeout = setTimeout(function() { checkBrokenFixed(); setCard(); }, 1000); }); els.swiperNavArrowNext.addEventListener('click', swiperEvents.onClickArrow); els.swiperNavArrowNext.addEventListener('keydown', swiperEvents.onClickArrow); els.swiperNavArrowPrev.addEventListener('click', swiperEvents.onClickArrow); els.swiperNavArrowPrev.addEventListener('keydown', swiperEvents.onClickArrow); resize.add(onResizeHandler); }; var onLoadHandler = function() { currDevice = resize.checkResolution(); prevDevice = currDevice; setTimeout(function() { checkBrokenFixed(); setCard(); }, 100); }; var onResizeHandler = function(currRes) { currDevice = currRes; if (currDevice != prevDevice) { onResponsiveHandler(); prevDevice = currDevice; } else if (!utils.detector.isTouchDevice) { checkBrokenFixed(); } setCard();};var onResponsiveHandler = function() { if (currDevice.indexOf('mobile') > -1) { els.accBanner.style.marginTop = ''; } checkBrokenFixed();};var setCard = function() { var slideMargin = parseInt(window.getComputedStyle(els.swiperSlides[0]).marginLeft), slideWidth = els.swiperSlides[0].clientWidth + (slideMargin * 2), slideWrapWidth = slideWidth * (els.swiperSlides.length), innerWidth = els.section.querySelector('.common-inner').clientWidth, contentWrapWidth = els.contentWrap.clientWidth, currSize = (contentWrapWidth - innerWidth) / 2, SlideTotalSize = slideWrapWidth + currSize; if (document.documentElement.classList.contains('is-broken-fixed')) { scrollerHandlerList.destroyScroller(); if (els.swiper != null) swiperEvents.destroy(); } else { if (currDevice.indexOf('mobile') == -1) { if (els.swiper != null) swiperEvents.destroy(); if (els.item.length > 3 || contentWrapWidth < SlideTotalSize) { objList.setScene(); scrollerHandlerList.onScroller(); } else { scrollerHandlerList.destroyScroller(); } } else { scrollerHandlerList.destroyScroller(); setSwiper(); } } }; // scroller var scrollerHandlerList = { onScroller: function() { if (objs.scene != null) { if (!document.documentElement.classList.contains('is-broken-fixed')) { var outerHeight = els.sceneFixed.clientHeight, innerHeight = els.sceneFixed.querySelector('.common-inner').clientHeight, accMarginTop = (outerHeight - innerHeight) / 2 - utils.getNavHeight(), accValue = (accMarginTop < 0) ? 0 : accMarginTop; els.accBanner.style.marginTop = -accValue + 'px'; } objs.scene.trackAnimation(function() { if (this.progress > -10 && this.progress < 100) { var slideMargin = parseInt(window.getComputedStyle(els.swiperSlides[0]).marginLeft), slideWidth = els.swiperSlides[0].clientWidth + (slideMargin * 2), slideWrapWidth = slideWidth * (els.swiperSlides.length), innerWidth = els.section.querySelector('.common-inner').clientWidth, contentWrapWidth = els.contentWrap.clientWidth, moveSize = slideWrapWidth - contentWrapWidth, currSize = (contentWrapWidth - innerWidth), slideValue = moveSize + currSize; transValue = ANIUTIL.calRange({ targetValue: slideValue, progress: this.progress, startPoint: 0, endPoint: 20 }); var tweener = new TweenMax(els.swiperEl, 0.2, { x: transValue * (utils.isRTL() ? 1 : -1) + 'px', ease: 'none' }); tweener.updateTo({ x: transValue * (utils.isRTL() ? 1 : -1) + 'px' }, true); } }); } }, destroyScroller: function() { if (objs.scene != null) { objs.scene.destroy(true, true); objs.scene = null; els.swiperEl.style = ''; els.sceneTrack.style = ''; } } }; // swiper var setSwiper = function() { if (els.swiper == null) { els.swiper = new Swiper(els.swiperEl, { init: false, centeredSlides: true, slidesPerView: 'auto', navigation: { nextEl: els.swiperNavArrowNext, prevEl: els.swiperNavArrowPrev, } }); els.swiper.init(); els.swiper.on('init', swiperEvents.init); els.swiper.on('slideChange', swiperEvents.slideChange); } }; var swiperEvents = { init: function() { var notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); setAccessibility.slide(); setAccessibility.arrow(); }, slideChange: function() { setAccessibility.slide(); setAccessibility.arrow(); }, destroy: function() { if (els.swiper != null) { els.swiper.destroy(true); els.swiper = null; } }, 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.swiperNavArrowNext.focus(); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { els.swiperNavArrowPrev.focus(); } }, 300); } } }; var setAccessibility = { slide: function() { for (var 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.swiperNavArrowNext); utils.onAccessibility(els.swiperNavArrowPrev); } else if (!els.swiper.isBeginning && els.swiper.isEnd) { utils.offAccessibility(els.swiperNavArrowPrev); utils.onAccessibility(els.swiperNavArrowNext); } else { utils.offAccessibility(els.swiperNavArrowNext); utils.offAccessibility(els.swiperNavArrowPrev); } } }; var checkBrokenFixed = function() { if (currDevice.indexOf('mobile') == -1) { var widHeight = window.innerHeight - utils.getNavHeight(), headLineHeight = els.sceneFixed.querySelector('.common-sub-headline').clientHeight, carouselMarginTop = parseInt(window.getComputedStyle(els.swiperEl).marginTop), itemHeightArr = [], maxHeight = null, cardHeight = null; for (var i = 0; i < els.swiperSlides.length; i++) { itemHeightArr.push(els.swiperSlides[i].clientHeight); } maxHeight = itemHeightArr.reduce(function(prev, itemArr) { return Math.max(prev, itemArr); }); cardHeight = maxHeight; totalHeight = headLineHeight + carouselMarginTop + cardHeight; if (widHeight <= totalHeight) { document.documentElement.classList.add('is-broken-fixed'); } else { document.documentElement.classList.remove('is-broken-fixed'); } } else { document.documentElement.classList.remove('is-broken-fixed'); } }; var onFocusClickable = function(e) { var targetItem = this.item, targetIndex = [].indexOf.call(els.swiperSlides, targetItem); if (objs.scene != null) { var startScroll = els.sceneTrack.getBoundingClientRect().top + window.pageYOffset, maxScroll = startScroll + (parseInt(window.getComputedStyle(els.sceneTrack).height) / 2); els.sceneFixed.scrollLeft = 0; if (e.type == 'keydown' && targetIndex >= 3) { window.scrollTo(0, maxScroll); } else { window.scrollTo(0, startScroll); } } }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.exclusive = (function() { var els = {}; var init = function() { els.section = document.querySelector('.highlights-exclusive'); if (!!els.section) { setElements(); bindEvents(); } }; var setElements = function() { els.colors = els.section.querySelectorAll('.highlights-exclusive__tab-button'); els.panel = els.section.querySelectorAll('.highlights-exclusive__tab-panel'); els.colorName = els.section.querySelectorAll('.highlights-exclusive__tab-name'); els.popupBtn = els.section.querySelector('.common-cta-encased'); }; var bindEvents = function() { for (var i = 0; i < els.colors.length; i++) { els.colors[i].index = i; els.colors[i].addEventListener('click', onClickColorItem); if (els.colors[i].classList.contains('is-active')) { els.popupBtn.setAttribute('data-model-color', els.panel[els.colors[i].index].getAttribute('id')); } } }; var onClickColorItem = function() { var oldColor = els.section.querySelector('.highlights-exclusive__tab .is-active'), oldPanel = els.section.querySelector('.highlights-exclusive__tab-panel-group .is-active'), oldColorName = els.section.querySelector('.highlights-exclusive__tab-names .is-active'), index = this.index; // colorchip if (!this.classList.contains('is-active')) { oldColor.classList.remove('is-active'); oldColor.setAttribute('aria-selected', false); this.classList.add('is-active'); this.setAttribute('aria-selected', true); } // panel if (!els.panel[index].classList.contains('is-active')) { oldPanel.classList.remove('is-active'); oldPanel.setAttribute('aria-hidden', true); els.panel[index].classList.add('is-active'); els.panel[index].setAttribute('aria-hidden', false); els.popupBtn.setAttribute('data-model-color', els.panel[index].getAttribute('id')); } if (!els.colorName[index].classList.contains('is-active')) { oldColorName.classList.remove('is-active'); oldColorName.setAttribute('aria-hidden', true); els.colorName[index].classList.add('is-active'); els.colorName[index].setAttribute('aria-hidden', false); } }; return { init: init } })();})();;(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.faq = (function() { var els = {}, utils = window.flagship.common.utils; var init = function() { els.section = document.querySelector('.highlights-faq'); if (!!els.section) { setElements(); bindEvents(); } }; var setElements = function() { els.faqItems = els.section.querySelectorAll('.highlights-faq__item'); }; var bindEvents = function() { for (var i = 0; i < els.faqItems.length; i++) { els.faqItems[i].arrowBtn = els.faqItems[i].querySelector('.highlights-faq__item button'); els.faqItems[i].arrowBtn.index = i; els.faqItems[i].answer = els.faqItems[i].querySelector('.highlights-faq__answer'); els.faqItems[i].cta = els.faqItems[i].querySelector('.highlights-faq__cta'); els.faqItems[i].arrowBtn.addEventListener('click', onClickFaqBtn); if (els.faqItems[i].cta) { els.faqItems[i].cta.addEventListener('click', onClickFaqCta); } } }; var onClickFaqBtn = function() { var index = this.index, parentWrap = els.faqItems[index], dataOmni = this.getAttribute('data-omni'), gaLa = this.getAttribute('ga-la'), self = this; if (!parentWrap.classList.contains('is-open')) { parentWrap.classList.add('is-open'); $(parentWrap.answer).stop().slideDown(300); this.setAttribute('aria-expanded', true); setTimeout(function() { self.setAttribute('data-omni', dataOmni.replace('open', 'close')); self.setAttribute('ga-la', gaLa.replace('open', 'close')); }, 50); } else { parentWrap.classList.remove('is-open'); $(parentWrap.answer).stop().slideUp(250); this.setAttribute('aria-expanded', false); setTimeout(function() { self.setAttribute('data-omni', dataOmni.replace('close', 'open')); self.setAttribute('ga-la', gaLa.replace('close', 'open')); }, 50); } }; var onClickFaqCta = function(e) { if (this.getAttribute('href').indexOf('#') == 0) { e.preventDefault(); var faqId = this.getAttribute('href').split('#')[1], section = document.querySelector('#' + faqId), sectionTop = section.getBoundingClientRect().top, navHeight = utils.getNavHeight(), faqScroll = window.pageYOffset + sectionTop - navHeight, sectionTimeout = null; clearTimeout(sectionTimeout); sectionTimeout = setTimeout(function() { if (!!section.querySelectorAll('button, a')[0]) { section.querySelectorAll('button, a')[0].focus(); } else { section.querySelector('.common-eyebrow').setAttribute('tabindex', 0); section.querySelector('.common-eyebrow').focus(); section.querySelector('.common-eyebrow').addEventListener('focusout', function() { section.querySelector('.common-eyebrow').removeAttribute('tabindex'); }); } }, 20); window.scrollTo(0, faqScroll); }; }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.flexpanel = (function() { var els = {}, objs = {}, utils = window.flagship.common.utils, resize = window.flagship.common.resize; currDevice = resize.checkResolution(); var init = function() { els.section = document.querySelector('.highlights-flex-mode'); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function() { els.scrollVideoWrap = els.section.querySelector('.js-scroll-video'); els.scrollVideo = els.section.querySelector('.js-scroll-video .common-video__figure>video'); els.scrollController = els.section.querySelector('.js-scroll-video .common-video__control'); els.scrollControllerBlindText = els.scrollController.querySelector('.blind'); }; var bindEvents = function() { window.addEventListener('scroll', handlerList.scroll); els.scrollController.addEventListener('click', handlerList.videoCta); handlerList.scroll(); resize.add(onResizeHandler); }; var onResizeHandler = function(currRes) { currDevice = currRes; }; var objList = { setVideo: function() { objs.flexpanelVideo = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: 10, reversePoint: (currDevice.indexOf('mobile') > -1) ? 76 : 87, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function() { if (els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.remove('is-completed'); } }, playCallback: function() { els.scrollControllerBlindText.innerText = 'pause'; setTagging.pause(); }, pauseCallback: function() { els.scrollControllerBlindText.innerText = 'play'; setTagging.play(); }, endCallback: function() { if (!els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.add('is-completed'); } } }); }, setScene: function() { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; var handlerList = { scroll: function() { objs.scene.trackAnimation(function() { objs.flexpanelVideo.scrollActive(this.progress); }); }, videoCta: function() { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } } }; var setTagging = { play: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.flexwindowBig = (function() { var els = {}, objs = {}, utils = window.flagship.common.utils, resize = window.flagship.common.resize; currDevice = resize.checkResolution(); var init = function() { els.section = document.querySelector('.highlights-flexwindow__scroll-video'); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function() { els.scrollVideoWrap = els.section.querySelector('.js-scroll-video'); els.scrollVideo = els.section.querySelector('.js-scroll-video .common-video__figure>video'); els.scrollController = els.section.querySelector('.js-scroll-video .common-video__control'); els.scrollControllerBlindText = els.scrollController.querySelector('.blind'); }; var bindEvents = function() { window.addEventListener('scroll', handlerList.scroll); els.scrollController.addEventListener('click', handlerList.videoCta); handlerList.scroll(); resize.add(onResizeHandler); }; var onResizeHandler = function(currRes) { currDevice = currRes; }; var objList = { setVideo: function() { objs.flexwindowBigVideo = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: 26, reversePoint: (currDevice.indexOf('mobile') > -1) ? 54 : 77, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function() { if (els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.remove('is-completed'); } }, playCallback: function() { els.scrollControllerBlindText.innerText = 'pause'; setTagging.pause(); }, pauseCallback: function() { els.scrollControllerBlindText.innerText = 'play'; setTagging.play(); }, endCallback: function() { if (!els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.add('is-completed'); } } }); }, setScene: function() { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; var handlerList = { scroll: function() { objs.scene.trackAnimation(function() { objs.flexwindowBigVideo.scrollActive(this.progress); }); }, videoCta: function() { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } } }; var setTagging = { play: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.flexwindowGesture = (function() { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function() { els.section = document.querySelector('.highlights-flexwindow__item--gesture'); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function() { els.scrollVideoWrap = els.section.querySelector('.js-scroll-video'); els.scrollVideo = els.section.querySelector('.js-scroll-video .common-video__figure>video'); els.scrollController = els.section.querySelector('.js-scroll-video .common-video__control'); els.scrollControllerBlindText = els.scrollController.querySelector('.blind'); }; var bindEvents = function() { window.addEventListener('scroll', handlerList.scroll); els.scrollController.addEventListener('click', handlerList.videoCta); handlerList.scroll(); }; var objList = { setVideo: function() { objs.flexwindowGestureVideo = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: 10, reversePoint: 84, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function() { if (els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.remove('is-completed'); } }, playCallback: function() { els.scrollControllerBlindText.innerText = 'pause'; setTagging.pause(); }, pauseCallback: function() { els.scrollControllerBlindText.innerText = 'play'; setTagging.play(); }, endCallback: function() { if (!els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.add('is-completed'); } } }); }, setScene: function() { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; var handlerList = { scroll: function() { objs.scene.trackAnimation(function() { objs.flexwindowGestureVideo.scrollActive(this.progress); }); }, videoCta: function() { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } } }; var setTagging = { play: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.flexwindowMap = (function() { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function() { els.section = document.querySelector('.highlights-flexwindow__item--map'); if (!!els.section) { setElements(); objList.setVideo(); objList.setScene(); bindEvents(); } }; var setElements = function() { els.scrollVideoWrap = els.section.querySelector('.js-scroll-video'); els.scrollVideo = els.section.querySelector('.js-scroll-video .common-video__figure>video'); els.scrollController = els.section.querySelector('.js-scroll-video .common-video__control'); els.scrollControllerBlindText = els.scrollController.querySelector('.blind'); }; var bindEvents = function() { window.addEventListener('scroll', handlerList.scroll); els.scrollController.addEventListener('click', handlerList.videoCta); handlerList.scroll(); }; var objList = { setVideo: function() { objs.flexwindowMapVideo = ANIUTIL.videoHandler({ playType: 'scrollPlay', startPoint: 10, reversePoint: 84, wrap: els.scrollVideoWrap, video: els.scrollVideo, resetCallback: function() { if (els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.remove('is-completed'); } }, playCallback: function() { els.scrollControllerBlindText.innerText = 'pause'; setTagging.pause(); }, pauseCallback: function() { els.scrollControllerBlindText.innerText = 'play'; setTagging.play(); }, endCallback: function() { if (!els.scrollVideoWrap.classList.contains('is-completed')) { els.scrollVideoWrap.classList.add('is-completed'); } } }); }, setScene: function() { objs.scene = SCROLLER({ trackElement: els.scrollVideo, useFixed: false, resize: utils.detector.isTouchDevice ? false : true }); } }; var handlerList = { scroll: function() { objs.scene.trackAnimation(function() { objs.flexwindowMapVideo.scrollActive(this.progress); }); }, videoCta: function() { if (els.scrollVideo.paused) { els.scrollVideo.play(); } else { els.scrollVideo.pause(); } } }; var setTagging = { play: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('pause', 'play')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('pause', 'play')); } }, pause: function() { if (els.scrollController.hasAttribute('data-omni')) { var dataOmni = els.scrollController.getAttribute('data-omni').toLowerCase(); els.scrollController.setAttribute('data-omni', dataOmni.replace('play', 'pause')); } if (els.scrollController.hasAttribute('ga-la')) { var gaLa = els.scrollController.getAttribute('ga-la').toLowerCase(); els.scrollController.setAttribute('ga-la', gaLa.replace('play', 'pause')); } } }; return { init: init } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.viewer = (function() { var els = {}, status = {}, resize = window.flagship.common.resize, utils = window.flagship.common.utils, currDevice = resize.checkResolution(); var init = function() { els.viewerBtns = document.querySelectorAll('.viewer-btn'); if (els.viewerBtns.length > 0) { setElements(); setStatus(); setPopup(); bindEvents(); } }; var setElements = function() { els.wrapEl = document.querySelector('#wrap'); els.contents = document.querySelector('#contents'); // popup els.popup = document.querySelector('.highlights-viewer'); els.popupContents = els.popup.querySelector('.common-popup__contents'); els.popupInner = els.popup.querySelector('.common-popup__inner'); els.popupWrap = els.popup.querySelector('.common-popup__wrap'); els.closeCta = els.popup.querySelector('.common-popup__close-cta'); els.viewerWrap = els.popup.querySelector('.highlights-viewer__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 = ''; els.customizationList = document.querySelectorAll('.highlights-customization__ui-content'); }; var 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.isExclusive = false; status.isHash = false; }; var 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); }; var onLoadHandler = function() { setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; var onResizeHandler = function(currRes) { currDevice = currRes; if (utils.detector.isTouchDevice && !utils.detector.isIosDevice) setViewerWrap.innerWrapHeight(); setViewerWrap.layerScroll(); }; var 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); } }; var setPopup = function() { for (var i = 0; i < els.viewerBtns.length; i++) { utils.layerPopup({ layerPopup: els.popup, openerEvent: { element: els.viewerBtns[i], }, closeCta: 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(target) { if (utils.detector.isIosDevice) target.openerCta.style.display = ''; target.openerCta.focus(); els.popup.classList.remove('is-open'); }, end: function() { setTimeout(function() { els.popup.classList.remove('is-init'); }, 300); viewerEvents.hide(); // customization accessibility set if (!els.customizationList[0].classList.contains('is-active')) { utils.onAccessibility(els.customizationList[0]); } else { utils.onAccessibility(els.customizationList[1]); } } } }); } }; var viewerEvents = { show: function(viewerOpener) { if (viewerOpener.classList.contains('viewer-btn')) { status.isHash = false; els.viewerOpener = viewerOpener; } else { status.isHash = true; if (window.location.hash == '#colors-see-in-360') { els.viewerOpener = els.viewerBtns[0]; } else { els.viewerOpener = els.viewerBtns[1]; } } status.isExclusive = (els.viewerOpener.getAttribute('data-hash') == 'online-exclusive-color-see-in-360') ? true : false; els.viewerModel = els.viewerOpener.getAttribute('data-model-name'); els.viewerColor = els.viewerOpener.getAttribute('data-model-color'); els.viewerIframe.setAttribute('src', getViewerUrl()); if (currDevice.indexOf('mobile') > -1 || currDevice == 'tablet') { viewerEvents.infoPopupShow(); } els.infoBtn.addEventListener('click', function() { viewerEvents.infoPopupShow(); setTimeout(function() { els.infoCloseBtn.focus(); }, 400); }); els.popupWrap.addEventListener('click', viewerEvents.onclickViewerDimmed); }, hide: function() { els.viewerModel = ''; els.viewerIframe.setAttribute('src', 'about:blank'); if (status.isHash) { setTimeout(function() { els.viewerOpener.focus(); }, 300); } }, infoPopupShow: function() { if (!els.popup.classList.contains('is-info-open')) { els.popup.classList.add('is-info-open'); els.infoCloseBtn.addEventListener('click', viewerEvents.infoPopupHide); els.infoDimmed.addEventListener('click', viewerEvents.infoPopupHide); setTimeout(function() { els.closeCta.setAttribute('tabindex', -1); els.closeCta.setAttribute('aria-hidden', true); els.infoBtn.setAttribute('tabindex', -1); els.infoBtn.setAttribute('aria-hidden', true); els.viewerContainer.setAttribute('tabindex', -1); els.viewerContainer.setAttribute('aria-hidden', true); }, 100); } }, infoPopupHide: function() { if (els.popup.classList.contains('is-info-open')) { els.popup.classList.remove('is-info-open'); setTimeout(function() { els.infoBtn.focus(); }, 300); setTimeout(function() { els.closeCta.removeAttribute('tabindex'); els.closeCta.removeAttribute('aria-hidden'); els.infoBtn.removeAttribute('tabindex'); els.infoBtn.removeAttribute('aria-hidden'); els.viewerContainer.removeAttribute('tabindex'); els.viewerContainer.removeAttribute('aria-hidden'); }, 100); } }, onclickViewerDimmed: function(e) { if (e.currentTarget == e.target) { if (utils.detector.isIosDevice) els.viewerOpener.style.display = ''; 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); // customization accessibility set if (!els.customizationList[0].classList.contains('is-active')) { utils.onAccessibility(els.customizationList[0]); } else { utils.onAccessibility(els.customizationList[1]); } } }, 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); } } }; var 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')) { var 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) { var 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'); } } }; var 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), '*'); } }; var getViewerUrl = function() { var viewerUrl = status.viewerBaseUrl; // model_name viewerUrl += 'model_name=' + els.viewerModel; // only exclusive color status.isExclusive && (viewerUrl += '&exclusive_mode=1'); 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() { var els = {}, utils = window.flagship.common.utils; var init = function() { els.layerPopup = document.querySelector('.youtube-layer-popup'); if (!!els.layerPopup) { setElements(); setPopup(); els.layerPopup.addEventListener('click', eventList.clickDimmed); } }; var setElements = function() { els.contents = document.querySelector('#contents'); els.openCtas = document.querySelectorAll('.js-youtube-popup'); els.closeCta = document.querySelector('.youtube-layer-popup__close-cta'); els.ytIframe = els.layerPopup.querySelector('.youtube-layer-popup__iframe > iframe'); els.ytDesc = els.layerPopup.querySelector('.youtube-player__desc'); } var setPopup = function() { for (var i = 0; i < els.openCtas.length; i++) { utils.layerPopup({ layerPopup: els.layerPopup, openerEvent: { element: els.openCtas[i], }, closeCta: els.closeCta, moveTarget: document.documentElement, contents: els.contents, show: { start: function() { els.layerPopup.removeAttribute('tabindex'); els.layerPopup.removeAttribute('aria-hidden'); els.layerPopup.classList.add('is-yt-open'); }, end: function(target) { eventList.setYoutube(target); target.openerCta.blur(); } }, hide: { start: function(target) { if (utils.detector.isIosDevice) target.openerCta.style.display = ''; els.layerPopup.setAttribute('tabindex', -1); els.layerPopup.setAttribute('aria-hidden', true); els.layerPopup.classList.remove('is-yt-open'); }, end: function(target) { eventList.clearYoutube(); target.openerCta.focus(); // customization accessibility set var uiList = document.querySelectorAll('.highlights-customization__ui-content'); if (!uiList[0].classList.contains('is-active')) { utils.onAccessibility(uiList[0]); } else { utils.onAccessibility(uiList[1]); } } } }); } }; var eventList = { setYoutube: function(target) { var 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 = ''; }, clickDimmed: function(e) { if (e.target.classList.contains('youtube-layer-popup__inner') || e.target.classList.contains('youtube-layer-popup__close-area')) { if (utils.detector.isIosDevice) els.OpenerTarget.style.display = ''; els.layerPopup.classList.remove('is-yt-open'); document.documentElement.classList.remove('is-layer-open'); document.documentElement.style.overflow = ''; utils.visibleScroll(); utils.onAccessibility(els.layerPopup); utils.offAccessibility(document.querySelector('#wrap')); setTimeout(function() { els.OpenerTarget.focus(); }, 300); eventList.clearYoutube(); } } }; return { init: init, } })();})();(function() { window.flagship = window.flagship || {}; window.flagship.highlights = window.flagship.highlights || {}; window.flagship.highlights.sidebar = (function() { var els = {}, objs = {}, utils = window.flagship.common.utils; var init = function() { els.contents = document.querySelector('#contents'); if (!!els.contents) { setElements(); setScene(); bindEvents(); } }; var setElements = function() { els.kv = els.contents.querySelector('.highlights-kv'); els.sidebar = els.contents.querySelector('.highlights-sidebar'); els.sidebarBtn = els.sidebar.querySelector('.highlights-sidebar__cta'); els.sidebarBtnBlindText = els.sidebar.querySelector('.highlights-sidebar__cta .blind'); els.sidebarList = els.sidebar.querySelector('.highlights-sidebar__list'); els.sidebarListItem = els.sidebarList.querySelectorAll('.highlights-sidebar__item'); els.durability = els.contents.querySelector('.highlights-durability'); els.footer = document.querySelector('.common-bottom-disclaimer'); // settimeout els.scrollTimeout = null; }; var bindEvents = function() { window.addEventListener('scroll', scrollHandler); els.sidebarBtn.addEventListener('click', sidebarEvents.sidebarOnClick); for (var i = 0; i < els.sidebarListItem.length; i++) { els.sidebarListItem[i].addEventListener('click', sidebarEvents.itemOnClick); } }; var setScene = function() { objs.scene = SCROLLER({ trackElement: els.contents, useFixed: false, useStrictMode: false }); }; var scrollHandler = function() { objs.scene.trackAnimation(function() { var kvBottom = this.winScrollTop + els.kv.getBoundingClientRect().bottom - utils.getNavHeight(), footerTop = this.winScrollTop + els.footer.getBoundingClientRect().top + (window.innerHeight / 2), self = this; var _highlighting = function() { for (var i = 0; i < els.sidebarListItem.length; i++) { var targetId = els.sidebarListItem[i].querySelector('a').getAttribute('href').split('#')[1], target = els.contents.querySelector('#' + targetId), targetOffetTop = self.winScrollTop + target.getBoundingClientRect().top, targetOffetBottom = self.winScrollTop + target.getBoundingClientRect().bottom - (window.innerHeight / 2), durabilityTop = self.winScrollTop + els.durability.getBoundingClientRect().top + (window.innerHeight / 2), oldActiveItem = els.sidebarList.querySelector('.is-active'); if (self.winScrollBottom >= targetOffetTop && self.winScrollTop <= targetOffetBottom) { if (!els.sidebarListItem[i].classList.contains('is-active')) { if (oldActiveItem) oldActiveItem.classList.remove('is-active'); els.sidebarListItem[i].classList.add('is-active'); } } if (self.winScrollBottom >= durabilityTop) { if (els.sidebarListItem[i].classList.contains('is-active')) { els.sidebarListItem[i].classList.remove('is-active'); } } } } if (self.wheelDirection == 'up') { if (self.winScrollTop >= kvBottom) { els.sidebar.classList.add('is-active'); els.sidebarBtn.removeAttribute('tabindex'); els.sidebarBtn.removeAttribute('aria-hidden'); } else { hideSidebar(); } } else { hideSidebar(); } _highlighting(); }); }; var hideSidebar = function() { if (els.sidebar.classList.contains('is-active')) { els.sidebar.classList.remove('is-active'); els.sidebarBtn.setAttribute('tabindex', -1); els.sidebarBtn.setAttribute('aria-hidden', true); sidebarEvents.sidebarClose(); } }; var sidebarEvents = { sidebarOnClick: function() { if (!els.sidebar.classList.contains('is-open')) { sidebarEvents.sidebarOpen(); } else { sidebarEvents.sidebarClose(); } }, sidebarOpen: function() { els.sidebar.classList.add('is-open'); accessibility.off(); setTimeout(function() { window.addEventListener('click', sidebarEvents.outsideOnClick); }, 50); }, sidebarClose: function() { els.sidebar.classList.remove('is-open'); accessibility.on(); window.removeEventListener('click', sidebarEvents.outsideOnClick); }, outsideOnClick: function(e) { var sidebar = e.target.matches('.highlights-sidebar__button>button'); if (!sidebar) { sidebarEvents.sidebarClose(); } }, itemOnClick: function(e) { e.preventDefault(); var oldItem = els.sidebarList.querySelector('.is-active'), self = this; var _moveSection = function() { var navHeight = utils.getNavHeight(), sectionId = self.querySelector('a').getAttribute('href').split('#')[1], section = document.querySelector('#' + sectionId), sectionTop = section.getBoundingClientRect().top, sectionScroll = window.pageYOffset + sectionTop - navHeight, sectionTimeout = null; clearTimeout(sectionTimeout); sectionTimeout = setTimeout(function() { var eyeBrow = section.querySelector('.common-text'); clickAble = section.querySelectorAll('a, button')[0]; if (!!eyeBrow) { var focusOutEvent = function() { eyeBrow.removeAttribute('tabindex'); eyeBrow.removeEventListener('focusout', focusOutEvent); }; eyeBrow.addEventListener('focusout', focusOutEvent); eyeBrow.setAttribute('tabindex', 0); eyeBrow.focus(); } else { clickAble.focus(); } window.scrollTo(0, sectionScroll); }, 30); setTimeout(function() { hideSidebar(); }, 60); }; if (!this.classList.contains('is-active')) { if (oldItem && oldItem.classList.contains('is-active')) { oldItem.classList.remove('is-active'); } this.classList.add('is-active'); } _moveSection(); } }; var accessibility = { on: function() { els.sidebarList.setAttribute('aria-hidden', true); els.sidebarList.setAttribute('tabindex', -1); var openText = els.sidebarBtn.getAttribute('data-open-text'); els.sidebarBtnBlindText.innerText = openText; setTagging.close(); for (var i = 0; i < els.sidebarListItem.length; i++) { els.sidebarListItem[i].querySelector('a').setAttribute('tabindex', '-1'); } }, off: function() { els.sidebarList.setAttribute('aria-hidden', false); els.sidebarList.removeAttribute('tabindex'); var closeText = els.sidebarBtn.getAttribute('data-close-text'); els.sidebarBtnBlindText.innerText = closeText; setTagging.open(); for (var i = 0; i < els.sidebarListItem.length; i++) { els.sidebarListItem[i].querySelector('a').removeAttribute('tabindex'); } } }; var setTagging = { open: function() { var dataOmni = els.sidebarBtn.getAttribute('data-omni'), gaLa = els.sidebarBtn.getAttribute('ga-la'); setTimeout(function() { els.sidebarBtn.setAttribute('data-omni', dataOmni.replace('open', 'close')); els.sidebarBtn.setAttribute('ga-la', gaLa.replace('open', 'close')); }, 50); }, close: function() { var dataOmni = els.sidebarBtn.getAttribute('data-omni'), gaLa = els.sidebarBtn.getAttribute('ga-la'); setTimeout(function() { els.sidebarBtn.setAttribute('data-omni', dataOmni.replace('close', 'open')); els.sidebarBtn.setAttribute('ga-la', gaLa.replace('close', 'open')); }, 50); } }; return { init: init } })();})();(function() { window.flagship.common.resize.bindEvent(); var initComponents = function() { flagship.highlights.ai.init(); flagship.highlights.colors.init(); flagship.highlights.customization.init(); flagship.highlights.cameraVideo.init(); flagship.highlights.design.init(); flagship.highlights.durability.init(); flagship.highlights.excellence.init(); flagship.highlights.exclusive.init(); flagship.highlights.faq.init(); flagship.highlights.flexpanel.init(); flagship.highlights.flexwindowBig.init(); flagship.highlights.flexwindowGesture.init(); flagship.highlights.flexwindowMap.init(); flagship.highlights.viewer.init(); flagship.highlights.ytPopup.init(); flagship.highlights.sidebar.init(); }; initComponents();})(); });