Put PC-like power in your pocket, Galaxy Z Fold6.
More powerful than ever with its super-slim, productive screen. Now super-charged with
Galaxy AI on foldables.
After loading a recorded file in the Samsung Notes
app, the Speech-to-Text button is used to convert the recorded
file to text. The Summary button is pressed to produce a
summary.
A chipset is shown with specs CPU, NPU, and GPU lit
up. The chipset pops up and lights up, then transitions to a
game on an unfolded screen. Dark and Darker mobile logo and a
scene from the game appear.
"Truly replicates a traditional phone
while doubling as a sleek tablet"
CNET
"Simply the best big foldable
phone"
PC Mag
THE LIGHTEST
239 g
THE THINNEST
5.6 mm
A close-up of Galaxy Z Fold6 is displayed at a slight angle that shows off its sides.
UNFOLD PERFECTION
Thinner and lighter with a pocket-worthy silhouette, and an even brighter, awe-inspiring fold-out screen.
Colorful. Confident. Wonderful
Colors as bold as you. Be confident, and be a true standout with
one of the exclusive online colors — available only here on
Samsung.com.
*Online exclusive colors only available on
Samsung.com.
Galaxy AI is here on Galaxy Foldables
Galaxy AI
is hereon Galaxy Foldablesis here onGalaxy Foldables
CIRCLE TO SEARCH
Circle to search on the big screen
It's an efficient way to search on a smartphone — just
make a circle. Boost your productivity on the massive fold-out
screen, with your finger or the S Pen.
A menu of a restaurant is open. S Pen is used to circle text page:
Galette. Search results appear in a Circle to Search with Google pop-up.
Tap to try
The full view of the open Galaxy Z Fold6 is shown. When the Home
button is clicked, the Circle to Search feature activates.
Tap to try
A circle is traced around the "Galette." The "Galette" is
identified and Google search results for the item appear.
NOTE ASSIST
The easiest way to summarize notes on Galaxy foldables
Get lecture notes in just a few taps — even as you multitask. Note
Assist transcribes recordings and organizes them into
notes, producing efficient summaries. For
everything else there's S Pen, ready to work wonders on the sweeping screen.
The Voice recording button is tapped from the Samsung Notes app.
With a press on the Summary button, the transcription is summarized.
Tap to try
The recording converts to text when the speech-to-text button
is pressed.
Tap to try
At the tap of a Summary button, the Samsung Notes app produces
a summary of the recording.
Need to write something in a hurry? Just type
a few keywords to achieve full
productivity.
Browsing Assist
Find a website that you need to understand
quickly? AI summarizes entire websites in a
flash.
PHOTO ASSIST
Effortless editing. Courtesy of Galaxy AI
The object-aware engine lets you edit photos to your heart's content.
With Photo Assist, just hold your finger down on an object to move, erase or
enlarge it; adjust angles or fill backgrounds just as
easily.
One of the subjects is selected and moved to another place in the picture.
Missing areas are filled in using AI.
Portrait Studio
Let AI ignite your imagination
with Portrait Studio. Self portraits instantly turn
into incredible works of art.
Instant Slow-mo
Instant Slow-mo lets you focus on key moments by
selectively applying slow motion to a video, and
sharing or saving the clip.
The video plays and starts to slow down when the screen
is tapped to show Instant Slow-mo.
Sketch to Image
Draw from scratch or on any photo. Use AI to
transform that sketch into an
image.
INTERPRETER
Your ultimate interpreter experience with dual screens,
Traveling and need to talk with the locals? Interpreter translates
on the spot whether you're expressing yourself, or listening to a global conference
in a foreign language or to a tour guide.
A conversation in two languages is transcribed and translated in real
time.
Tap to try
Galaxy AI transcribes conversations in real-time. Translations of
each language appear as texts on the screen.
Tap to try
The dual screen button activates the Interpreter app from the cover
screen.
LIVE TRANSLATE
Borderless phone calls
Translate phone conversations instantly. Perfect for
real-time voice translation on various apps, especially when you're making calls that
involve two languages.
Chat with Google Gemini to supercharge your ideas
Thanks to Samsung’s longstanding partnership with Google, your Galaxy
now comes with the Google Gemini app. Chat with Gemini to
get help learning in new ways, writing thank you notes, planning events and
more.
GET FULLY IMMERSED
Dark and Darker mobile logo. A scene in a game is shown at first in
close-up, and later from farther until the screen of an unfolded Galaxy Z Fold6 is
shown, framing the game-in-progress.
*DARK AND DARKER MOBILE IS A TRADEMARK OR SERVICE MARK OF KRAFTON,
INC.
Our most immersive smartphone gaming
Fold open a mobile gaming beast with a massive screen
made better with the Vision Booster's powerful brightness and clarity even
in broad daylight.,
2600nits
1.5xbrighter
Powerful gaming with the fastest processor on Galaxy foldables
Enjoy silky-smooth gaming with
Vulkan, even in AAA games. Then, Snapdragon® 8 Gen 3 for Galaxy renders
graphics that are absolutely fire.
The fastest Snapdragon on a
Galaxy Z Fold yet,
GPU
19%faster graphics rendering
NPU
42%improved on-device AI
performance
CPU
18%faster
performance
The fastest Snapdragon on a
Galaxy Z Fold yet,
Game harder.Game longer
Our battery ensures all-day enjoyment. It's not just a massive battery, but also leverages
a more efficient display. Game on.
Listen to music up to
77hrs
Watch videos up to
23hrs
Turn Pro. ProVisual Engine
Meet Fold's most powerful camera system yet. Topped with an upgraded NPU,
mind-blowing specs and ProVisual Engine, it'll transform your multimedia
experience.
front camera
10MPCover
Camera
4MPUnder
Display Camera
rear camera
12MPUltra Wide Camera
50MPWide-angle Camera2x Optical Quality Zoom
10MP3x Optical ZoomTelephoto Camera
Extremely detail-oriented
With our high-resolution, 50MP camera, witness
every detail come to life with stunning clarity and
vibrancy.
Captured by Galaxy Z Fold6#withGalaxy
Crystal-clear zoom. Powered by AI
Zoom way, way, way in while keeping noise down and resolution
clear with ProVisual Engine. Its sharp analysis of the zoomed-in region
enhances your shot dramatically.
A photo zooms in, going from 1.0x zoom to 1.9x. Even when zoomed in,
details remain clear.
Captured by Galaxy Z Fold6#withGalaxy
Zoom Map
Use the Zoom Map to get your bearings when you're
zoomed in; it'll make navigation a breeze.
Captured by Galaxy Z Fold6#withGalaxy
Brighten things up with Super HDR
See it, believe it. Super HDR puts the right emphasis on details
to pop and impress, even before you take the picture.
Captured by Galaxy Z Fold6#withGalaxy
Durable. Reliable. Built to last
Engineered for endurance
Meet our slim and innovative
FlexHinge.
Shielded in aluminum
Enhanced Armor
Aluminum keeps you protected.,
Truly tough
Strong protection with
Corning® Gorilla® Glass Victus® 2.
Stay water-resistant
IP48 water
resistance for those unexpected spills.
Why switch to the Galaxy
Simple switching from iOS
Switching from
iOS is so easy! Thanks to Smart Switch,
you can transfer your photos, videos, contacts and apps effortlessly.,,
Send files, data and content between
devices, including iOS and PCs. It's a quick and secure way
to openly share.
Your privacy. Secured.
In Privacy and
Security, quickly see which apps are accessing your
information, then customize your settings. Plus, with Advanced Intelligence
features, you can process data for AI services from your Galaxy device or on
the cloud.
Switch to Galaxy
Switch to Galaxy, it's easy. Elevate your experience with features exclusive to Galaxy users.
Galaxy Z Fold6 uses AI throughout many apps. For example, the camera uses AI
Zoom; Photo Assist uses AI to fill backgrounds and move, resize or erase objects.,
Productivity tools include Interpreter, which works offline to translate conversations in
real-time, and Live Translate, which facilitates calls., Composer feature for Chat Assist helps draft
messages efficiently; Note Assist transcribes recordings and organizes notes.,
Galaxy Z Fold6 comes with a big screen, with a 6.3" Cover Screen and 7.6" Main
Screen., Equipped with Galaxy AI,
it is the perfect setup for high-powered productivity. Furthermore,
Galaxy Z Fold6 is ideal for watching videos or an immersive gaming experience.
Galaxy Z Fold6 hits a peak brightness of 2600 nits, a boost from
Galaxy Z Fold5's 1750 nits. Its 3 Step Vision
Booster also adjusts color according to illuminance, keeping the display clear enough
even outdoors or while on the go.
S Pen enables productive usage of Galaxy AI. While
S Pen is supported on the Main Screen, Galaxy Z Fold6 does not come with
an S Pen. Purchase the S Pen Fold Edition or S Pen Case to enjoy smooth
note-taking and perform Air Commands.
A single charge lasts longer on Galaxy Z Fold6 than Galaxy Z Fold5.
Though Galaxy Z Fold6 features the same 4400mAh (typical) battery as
Galaxy Z Fold5, an advanced processor allows for more efficient power usage,
so you can listen up to 77 hours of music or watch up to 23 hours of video.,
Its software has upgraded to Snapdragon® 8 Gen 3 Mobile Platform for Galaxy, a
high-performance processor, to enable silky-smooth gaming.
Besides featuring Vulkan API and the newest AP, its 3 Step Vision Booster also adjusts
color according to illuminance. Galaxy Z Fold6 hits a peak brightness of 2600
nits, a boost from Galaxy Z Fold5's 1750 nits. Vapor
Chamber area also increased to support extended periods of heavy gameplay.
At 239 grams, Galaxy Z Fold6 is lighter and slimmer than
Galaxy Z Fold5, making it more pocketable.
An upgraded processor elevates Galaxy Z Fold6 performance across the board with
CPU performance improved by 18%, GPU by 19% and NPU by 42% compared to
Galaxy Z Fold5. Last but not least, the
latest and most advanced version of Galaxy AI ups your productivity game.
Galaxy Z Fold6 features a 10MP Front/Cover Camera. The Main Screen has a hidden
4MP Under Display Camera. And on the rear, Galaxy Z Fold6 is equipped with a
50MP Wide-angle Camera, 12MP Ultra Wide Camera and 10MP Telephoto Camera. Throughout
your day, take crisp, clear photos enhanced by an advanced processor and AI-powered
software. Download Expert RAW for even more creative control of
Galaxy Z Fold6's pro-grade cameras.
*Online exclusive colors only available
on Samsung.com.
Sequences shortened and simulated. Results for illustrative purposes only. Service
availability may vary by country, language, device model. Requires internet connection. Users
may need to update Android and Google app to the latest version. Works on compatible apps and
surfaces. Results may vary depending on visual matches. Accuracy of results is not
guaranteed.
Summary feature for Note Assist requires a network connection and Samsung Account login.
Service availability may vary by language. Summary feature for Note Assist is activated when a
certain number of characters is met and is under the character limit. Voice recording feature
for Note Assist may not be supported in some countries. Audio files must be under 3 hours in
duration to be processed. Accuracy of results is not guaranteed.
Compared to previous Galaxy Z Fold models.
Thickness measured from top to bottom of the glass when unfolded.
Color availability may vary depending on country or carrier.
Galaxy Z Fold6 does not have a built-in slot for the S Pen. S Pen sold
separately. Use an S Pen that is designed for Galaxy Z Fold. S Pen Fold
Edition is compatible for Galaxy Z Fold5 and Z Fold6. All other S Pens or stylus
pens may damage the screen. S Pen support is limited to the Main Screen.
Composer feature for Chat Assist requires a network connection and Samsung Account login. This
feature is activated when a certain number of characters is met. Service availability may vary
by language. Accuracy of results is not guaranteed.
Summary feature for Browsing Assist requires a network connection and Samsung Account login.
Service availability may vary by language. Service may have limited functionality or unavailable
on certain paid websites. Character limit applies. Accuracy of results is not guaranteed.
Generative Edit feature for Photo Assist requires a network connection and Samsung Account
login. Editing with Generative Edit may result 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.
Portrait Studio feature for Photo Assist requires a network connection and Samsung Account
login. Editing with Portrait Studio results in a resized photo up to 9MP. 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.
Instant Slow-mo feature for Photo Assist is available on Samsung Video Player and Samsung
Gallery. May not be available on certain video file types. Accuracy of results not
guaranteed.
Sketch to Image feature requires a network connection and Samsung Account login. Editing with
Sketch to Image may result 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.
Interpreter feature requires Samsung Account login. Certain languages may require language
pack download. Service availability may vary by language. Accuracy of results is not guaranteed.
Availability and supported features may vary by country, region or carrier. Availability of
supported languages may vary.
Dual screens are available in Conversation mode only.
Live Translate feature requires network connection to receive call messages. It can translate
without network connection once the call messages are received by the device. Samsung Account
login required. Live Translate feature is only available on pre-installed Samsung Phone apps and
some third-party apps. Service availability may vary by language or region. Certain languages
may require language pack download. Accuracy of results is not guaranteed.
Sequences shortened and simulated. Results for illustrative purposes only. Service
availability may vary by country, language, device model. Requires internet connection and
Google Account login. Users may need to download or update Google Gemini app to the latest
version. Check responses for accuracy. Gemini is a trademark of Google LLC. Gemini opt-in is
rolling out to select devices and countries — opt in to Gemini from your Google Assistant or by
downloading the Gemini app. Product functionality may be dependent on app and device settings.
Some functions may not be compatible with certain apps. Accuracy of results is not guaranteed.
Feature availability may vary by content.
Limited to Samsung smartphones.
Galaxy Z Fold6 has a peak brightness of 2600 nits on both the Main Screen and Cover Screen. The displays are adaptive, adjusting brightness level automatically based on the environment. In certain illuminance conditions or higher, High Brightness Mode and Vision Booster will be activated.
Compared to Galaxy Z Fold5.
Snapdragon branded products are products of Qualcomm Technologies, Inc. and/or its
subsidiaries.
AP performance improvements shown compared to Galaxy Z Fold5. Actual performance
will depend on user environment, conditions and pre-installed software and applications.
Limited to Galaxy foldable smartphones.
Actual battery life may vary 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 and independently assessed by UX Connect Research under default
settings using LTE and 5G Sub6 networks.
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.
AI Zoom is applied to distances between digital zoom lengths. Accuracy of results is not
guaranteed.
The Zoom Map feature activates from 20x zoom and over.
Wired transfers from Android™ devices require the receiving device to have Android™ 4.3 or
later and the sending device to have Android 4.3™ or later. Transfers can be completed without a
cable through a wireless connection. For wireless connections, the receiving device must have
Android™ 4.0 or later and the sending device must have Android™ 4.0 or later. Open Smart Switch
Mobile in “Settings” on the receiving Galaxy device or download the Smart Switch Mobile app from
the Galaxy Store. Data, content and apps available for transfer may vary by transmission
method.
Wired transfers from iOS require the receiving device to have Android™ 4.3 or later and the
sending device to have iOS 5 or later. Transfers can be completed without a cable through a
wireless connection or iCloud. For wireless connections, the receiving device must have Android™
4.0 or later and the sending device must have iOS 12 or later. iCloud transfers require the
receiving device to have Android™ 4.0 or later and the sending device to have iOS 5 or later.
Open Smart Switch Mobile in “Settings” on the receiving Galaxy device or download the Smart
Switch Mobile app from the Galaxy Store. For wireless transfers, download Smart Switch for iOS
from the App Store on your iPhone or iPad. Data, content and apps available for transfer may
vary by transmission method. Contacts, gallery, videos, calendars and reminders can be
transferred wirelessly from an iOS device.
It is recommended to use a wired connection when transferring diverse sets of data at
once.
Quick Share feature between Galaxy devices available with the following OS: smartphones and
tablets with Android OS version 10.0 (Q) and One UI 2.1 or above, PCs running Windows 10 or
later. Requires Samsung Account and Wi-Fi and Bluetooth connection. Quick Share to iOS and
Android devices available by sending shared link: individual files shared cannot exceed 5GB (for
a total of 5GB per day) and link will expire after two days; requires a Samsung Account and
internet connection.
Compared to previous models.
Armor Aluminum Frame does not include volume and side keys or SIM tray.
Corning® Gorilla® Glass Victus® 2 is applied to the front and rear of the device.
Based on lab test conditions for submersion in up to 1.5 meters of freshwater for up to 30
minutes and for protection against a solid object greater than 1mm such as a wire. 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. Not dust- or sand-resistant.
Galaxy Buds3 Pro and Galaxy Watch7 devices sold separately.
Energy Score is available on Android phones (Android 11 or above) and requires Samsung Health
app (v6.27 or above). Samsung Account login required. Service availability may vary by country
or region. To check the Energy Score, the health data tracked from Samsung Galaxy Watch or
Samsung Galaxy Ring must be synchronized with the Samsung Health App. Needs at least the
previous day’s activity data and sleep, and heart rate data during sleep. Not intended for use
in detection, diagnosis, treatment of any medical condition. The result is for your personal
reference only. Please consult a medical professional for advice.
Measured diagonally, Galaxy Z Fold6’s Main Screen size is 7.6" in the full rectangle
and 7.6" accounting for the rounded corners; actual viewable area is less due to the rounded
corners.
Measured diagonally, Galaxy Z Fold6's Cover Screen size is 6.3" in the full
rectangle and 6.2" accounting for the rounded corners; actual viewable area is smaller due to
the rounded corners and camera hole.
Air Command feature availability may vary by model or app.
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 4273mAh for Galaxy Z Fold6. Actual battery
life may vary depending on network environment, usage patterns and other factors.
Expert RAW must be downloaded separately from the Galaxy Store, for free, before use.
Supported on S24 and S23 series devices, S22 series devices, S21 Ultra, S20 Ultra, Note20 Ultra,
Z Fold6, Z Flip6, Z Fold5, Z Fold4, Z Fold3 and Z Fold2.
How-to videos for Galaxy Z Fold6
'));
}
}
};
const isZoom = function () {
let zoomLevel = 100 / ((window.innerWidth / window.outerWidth) * 100);
if (zoomLevel > 1.7) {
document.documentElement.classList.add('browser-zoomed-175');
} else {
document.documentElement.classList.remove('browser-zoomed-175');
}
if (zoomLevel > 3) {
document.documentElement.classList.add('browser-zoomed-300');
} else {
document.documentElement.classList.remove('browser-zoomed-300');
}
if (zoomLevel > 4) {
document.documentElement.classList.add('browser-zoomed-400');
} else {
document.documentElement.classList.remove('browser-zoomed-400');
}
};
const getViewerUrl = function () {
let defaultParams = '',
viewerSection = document.querySelector('.js-colors-viewer'),
viewerButton = document.querySelector('.viewer-btn'),
viewerModel = utils.isLowNetwork() ? viewerButton.getAttribute('data-model-name') : viewerSection.getAttribute('data-model-name'),
viewerColor = utils.isLowNetwork() ? viewerButton.getAttribute('data-model-color') : viewerSection.getAttribute('data-model-color'),
viewerUrl = '//www.samsung.com/global/galaxy/3d-360/viewer/?';
defaultParams = '&gesture_guide=0';
defaultParams += '&bgcolor=transparent';
defaultParams += '&skin=colorlayer';
defaultParams += '&theme=roundlayer';
defaultParams += '&auto_rotation=0';
defaultParams += '&intro=1';
defaultParams += '&ruler=1';
defaultParams += '&breakpoint_criteria=outer';
defaultParams += '&breakpoint_desktop_width=1024';
defaultParams += '&x=180';
defaultParams += '&status_toggle=1';
defaultParams += '&intro_pose=3';
defaultParams += '&intro_pose_hold=1';
defaultParams += '&intro_pose_hold_limit=9999999';
defaultParams += '&controls=0';
defaultParams += '&use_zoom=0';
defaultParams += '&use_pan=0';
defaultParams += '&screen_mode=on';
// model_name
viewerUrl += 'model_name=' + viewerModel;
if (document.documentElement.classList.contains('color_yb') || (utils.getCookie('highContrastMode') != null && utils.getCookie('highContrastMode') == 1)) {
viewerUrl += '&highcontrast=1';
} else {
viewerUrl += '&highcontrast=0';
}
// RTL
utils.isRTL() && (viewerUrl += '&rtl=1');
viewerUrl += defaultParams;
viewerUrl += '#color=' + (viewerColor ? viewerColor : 'null');
return viewerUrl;
};
return {
addLoadStatusClass: addLoadStatusClass,
setResolution: setResolution,
clickSup: clickSup,
centeredFocus: centeredFocus,
setArBanner: setArBanner,
isZoom: isZoom,
getViewerUrl: getViewerUrl,
}
})();
flagship.features.setting = (function () {
const resize = window.flagship.common.resize,
common = window.flagship.features.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)),
isGlobal = document.documentElement.classList.contains('global');
let els = {};
const init = function () {
common.addLoadStatusClass();
common.setArBanner();
setElements();
bindEvents();
setResize();
if (!maxOs && !touchDevice) {
setScrollControl();
}
setImageLoader();
setVideoLoader();
setMp4VideoLoader();
setCenteredfocus();
setDisclaimerNumber();
setDisclaimer();
setVideoTheme();
setVideoBlind();
common.isZoom();
resize.add(common.isZoom);
};
const setElements = function () {
// video
els.videoWrap = document.querySelectorAll('.js-video-wrap');
};
const bindEvents = function () {
window.addEventListener('load', anchorPosition);
window.addEventListener('hashchange', anchorPosition);
};
const anchorPosition = function () {
if (window.location.hash != '') {
let hash = location.hash.split('#')[1],
hashSection = document.querySelector('#contents #' + hash),
hashTimeout = null;
clearTimeout(hashTimeout);
hashTimeout = setTimeout(function () {
let sectionTop = hashSection.getBoundingClientRect().top,
navHeight = utils.getNavHeight(),
hashScroll = window.pageYOffset + sectionTop - navHeight;
window.scrollTo(0, hashScroll);
}, 300);
}
};
const setResize = function () {
resize.init([{
resolution: 1920,
resolutionName: 'desktop',
eventFunction: ''
}, {
resolution: 1023,
resolutionName: 'tablet',
eventFunction: ''
}, {
resolution: 767,
resolutionName: 'mobile',
eventFunction: ''
}, {
resolution: 320,
resolutionName: 'mobileS',
eventFunction: ''
}], 200);
resize.add(common.setResolution);
};
const setScrollControl = function () {
window.scrollController = utils.scrollController();
scrollController.init({
speed: 120,
duration: 0.6
});
};
const setImageLoader = function () {
window.imageLoader = utils.mediaLoader({
lazyClass: '.js-img-src',
responsiveClass: '.js-res-img',
preset: 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 = utils.mediaLoader({
type: 'bgImage',
lazyClass: '.js-bg-img',
loadOption: [{
resolution: 1920,
attribute: '',
bgOpts: ''
}],
visiblePoint: 2
});
};
const setVideoLoader = function () {
window.videoLoader = utils.mediaLoader({
type: 'video',
lazyClass: '.js-video-src',
responsiveClass: '.js-res-video',
preset: 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.videoHandler && !video.videoHandler.wrap.classList.contains('is-loaded')) {
video.videoHandler.wrap.classList.add('is-loaded');
}
}
});
};
const setMp4VideoLoader = function () {
window.mp4VideoLoader = utils.mediaLoader({
type: 'mp4Video',
lazyClass: '.js-mp4-video-src',
responsiveClass: '.js-res-video',
preset: 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.videoHandler && !video.videoHandler.wrap.classList.contains('is-loaded')) {
video.videoHandler.wrap.classList.add('is-loaded');
}
}
});
};
const setCenteredfocus = function () {
els.contents = document.querySelector('#contents');
els.allClickables = els.contents.querySelectorAll('a, button, input, select');
for (let i = 0; i < els.allClickables.length; i++) {
els.allClickables[i].addEventListener('focusin', common.centeredFocus);
}
};
const setDisclaimerNumber = function () {
const supTag = document.querySelectorAll('.click_sup'),
btmDicl = document.querySelectorAll('li.common-bottom-disclaimer__list-item');
let btmDiclArr = [];
for (let i = 0; i < btmDicl.length; i++) {
let dataSup = btmDicl[i].getAttribute('data-sup');
btmDiclArr.push(dataSup);
}
for (let j = 0; j < supTag.length; j++) {
let dataSupTag = supTag[j].getAttribute('data-sup-tag');
let supChildCount = supTag[j].parentElement.childElementCount;
if (btmDiclArr.indexOf(dataSupTag) > -1) {
supTag[j].innerText = btmDiclArr.indexOf(dataSupTag) + 1;
} else {
if (supChildCount == 1) {
supTag[j].parentElement.remove();
} else {
let supParent = supTag[j].parentElement.childNodes;
let supArr = [];
for (let supIndex = 0; supIndex < supParent.length; supIndex++) {
supArr.push(supParent[supIndex]);
}
let index = supArr.indexOf(supTag[j]);
if (index != 0 && index % 2 == 0) {
supParent[index].remove();
supParent[index - 1].remove();
} else {
if (index != supArr.length) supParent[index + 1].remove();
supParent[index].remove();
}
}
}
}
};
const setDisclaimer = function () {
els.supClicker = document.querySelectorAll('a.click_sup');
for (let i = 0; i < els.supClicker.length; i++) {
els.supClicker[i].addEventListener('click', common.clickSup);
}
};
const setVideoTheme = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
let colorType = els.videoWrap[i].getAttribute('data-theme-type');
if (colorType === 'white') {
els.videoWrap[i].classList.add('common-video--white');
} else if (colorType === 'black') {
els.videoWrap[i].classList.add('common-video--black');
}
}
};
const setVideoBlind = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
let controlBlind = els.videoWrap[i].querySelector('.js-video-control .blind');
controlBlind.innerHTML = (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) ? LOCAL_VARI.play : 'play';
}
};
return {
init: init
}
})();
flagship.features.setting.init();
(function () {
window.flagship.features.clickToVideo = (function () {
const utils = window.flagship.common.utils;
let els = {
clickToVideosWrap: [],
clickToVideo: [],
};
const init = function () {
els.clickToVideosWrap = document.querySelectorAll('.js-click-video');
if (els.clickToVideosWrap.length > 0) {
setProperty();
bindEvents();
}
};
const setProperty = function () {
for (let i = 0; i < els.clickToVideosWrap.length; i++) {
els.clickToVideosWrap[i].video = els.clickToVideosWrap[i].querySelector('video');
els.clickToVideosWrap[i].controller = els.clickToVideosWrap[i].querySelector('.js-video-control');
els.clickToVideosWrap[i].controller.video = els.clickToVideosWrap[i].video;
}
};
const bindEvents = function () {
eventList.setVideo();
eventHandler.click();
};
const eventHandler = {
click: function () {
for (let i = 0; i < els.clickToVideosWrap.length; i++) {
els.clickToVideosWrap[i].controller.addEventListener('click', eventList.clickVideoCta);
}
}
};
const eventList = {
setVideo: function () {
for (let i = 0; i < els.clickToVideosWrap.length; i++) {
els.clickToVideo[i] = utils.videoHandler({
wrap: els.clickToVideosWrap[i],
video: els.clickToVideosWrap[i].video,
controller: els.clickToVideosWrap[i].controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
},
playCallback: function () {
if (!this.wrap.classList.contains('is-started')) {
this.wrap.classList.add('is-started');
}
setTagging.pause(this.controller);
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
}
});
}
},
clickVideoCta: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
e.currentTarget.video.play();
} else {
e.currentTarget.video.pause();
}
}
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.headline = (function () {
const utils = window.flagship.common.utils;
let els = {};
const init = function () {
setElements();
bindEvents();
};
const setElements = function() {
els.moveText = document.querySelectorAll('.js-move-text');
};
const bindEvents = function () {
eventList.setScene();
eventHandler.scroll();
eventList.scroll();
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scroll);
}
};
const eventList = {
scroll: function () {
for (let i = 0; i < els.moveText.length; i++) {
els.moveText[i].sceneObj.trackAnimation(function () {
if(this.progress >= 10) {
els.moveText[i].classList.add('is-moved');
if (this.trackElement.classList.contains('common-description')) this.trackElement.style.transitionDelay = "0.2s";
}
if(this.progress <= 0) {
els.moveText[i].classList.remove('is-moved');
}
});
}
},
setScene: function () {
for(let i = 0; i < els.moveText.length; i++) {
els.moveText[i].sceneObj = SCROLLER({
trackElement: els.moveText[i],
useFixed: false,
});
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.howtoPopup = (function () {
const utils = window.flagship.common.utils;
resize = window.flagship.common.resize;
let els = {};
let currDevice = resize.checkResolution();
prevDevice = null,
currOpener = null;
let isDrag = false;
const init = function () {
els.layerPopup = document.querySelector('.js-howto-popup');
if (!!els.layerPopup) {
setElements();
setAttribute();
bindEvents();
eventList.setPopup();
}
};
const setElements = function () {
els.contents = document.querySelector('#contents');
els.openCtas = document.querySelectorAll('.js-howto-popup-opener');
// popup content
els.closeCta = document.querySelector('.js-howto-popup-close-cta');
els.ytIframe = els.layerPopup.querySelector('iframe');
els.ytDesc = els.layerPopup.querySelector('.js-howto-popup-youtube-desc');
els.dimmed = els.layerPopup.querySelector('.js-howto-popup-dimmed');
// swiper
els.swiperContainer = els.layerPopup.querySelector('.swiper-container');
els.buttonWrap = els.swiperContainer.querySelectorAll('.swiper-slide');
els.arrowWrap = els.swiperContainer.querySelector('.js-howto-popup-arrow-wrap');
els.prevArrow = els.swiperContainer.querySelector('.swiper-button-prev');
els.nextArrow = els.swiperContainer.querySelector('.swiper-button-next');
els.scrollbar = els.swiperContainer.querySelector('.js-howto-popup-scrollbar');
};
const setAttribute = function () {
for (let i = 0 ; i < els.buttonWrap.length; i++) {
els.buttonWrap[i].openerCta = els.openCtas[i];
els.buttonWrap[i].button = els.buttonWrap[i].querySelector('button');
els.buttonWrap[i].button.openerCta = els.buttonWrap[i].openerCta;
}
};
const bindEvents = function () {
eventHandler.buttonsClick();
eventHandler.arrowClick();
resize.add(eventList.resize);
};
const eventHandler = {
buttonsClick: function () {
for (let i = 0 ; i < els.buttonWrap.length; i++) {
els.buttonWrap[i].button.addEventListener('click', function () {
eventList.setYoutube(els.buttonWrap[i].button);
});
}
},
arrowClick: function () {
els.nextArrow.addEventListener('click', function (e) {
swiperEventList.clickArrow('next');
});
els.nextArrow.addEventListener('keydown', function (e) {
swiperEventList.clickArrow('next');
});
els.prevArrow.addEventListener('click', function (e) {
swiperEventList.clickArrow('prev');
});
els.prevArrow.addEventListener('keydown', function (e) {
swiperEventList.clickArrow('prev');
});
}
};
const eventList = {
setPopup: function () {
for (let i = 0; i < els.openCtas.length; i++) {
els.openCtas[i].index = i;
utils.layerPopup({
layerPopup: els.layerPopup,
layerPopupClass: '.js-howto-popup',
openerEvent: {
element: els.openCtas[i],
},
closeCtas: [els.closeCta],
dimmed: els.dimmed,
moveTarget: document.documentElement,
contents: els.contents,
show: {
start: function (target) {
let allVideos = document.querySelectorAll('video');
for (let i = 0; i < allVideos.length; i++) {
if (!allVideos[i].paused) allVideos[i].pause();
}
els.layerPopup.removeAttribute('aria-hidden');
els.layerPopup.removeAttribute('tabindex');
els.layerPopup.classList.add('is-init');
currOpener = target.openerCta;
eventList.itemImageLoader();
swiperEventList.activeCheck();
},
end: function (target) {
els.layerPopup.classList.add('is-open');
eventList.setYoutube(target);
}
},
hide: {
start: function () {
els.layerPopup.classList.remove('is-open');
},
end: function (target) {
if(utils.detector.isIosDevice) target.openerCta.style.display = '';
setTimeout(function () {
els.layerPopup.classList.remove('is-init');
}, 300);
eventList.clearYoutube();
}
}
});
}
},
setYoutube: function (target) {
let opener = target.openerCta,
ytSrc = 'htt' + 'ps://www.youtube.com/embed/' + opener.getAttribute('data-youtube-id') + '?wmode=opaque&rel=0&enablejsapi=1&version=3&autoplay=1',
ytTitle = opener.getAttribute('data-youtube-title'),
ytBlind = opener.querySelector('.blind').innerHTML;
els.ytIframe.setAttribute('src', ytSrc);
els.ytIframe.setAttribute('title', ytTitle);
els.ytDesc.innerHTML = ytBlind;
let oldActive = els.swiperContainer.querySelector('.swiper-slide.is-active');
if (!!oldActive) {
oldActive.classList.remove('is-active');
oldActive.button.removeAttribute('title');
}
els.buttonWrap[opener.index].classList.add('is-active');
accessibility.setTitle(els.buttonWrap[opener.index]);
},
clearYoutube: function () {
els.ytIframe.removeAttribute('src');
els.ytDesc.innerHTML = '';
},
resize: function (currRes) {
currDevice = currRes;
if (prevDevice != currDevice) {
if (els.layerPopup.classList.contains('is-open')) {
swiperEventList.activeCheck();
}
prevDevice = currDevice;
}
},
itemImageLoader: function () {
for (let i = 0; i < els.buttonWrap.length; i++) {
if (!els.buttonWrap[i].querySelector('img').classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.buttonWrap[i].querySelector('img')]);
}
}
}
};
const swiperEventList = {
set: function () {
if(els.swiperContainer.swiper == null) {
new Swiper(els.swiperContainer, {
init: false,
slidesPerView: 'auto',
scrollbar: {
el: els.scrollbar,
draggable: true
}
});
els.swiperContainer.swiper.on('init', swiperEventList.init);
els.swiperContainer.swiper.on('slideChange', swiperEventList.slideChange);
els.swiperContainer.swiper.on('transitionEnd', swiperEventList.slideTransition);
els.swiperContainer.swiper.on('scrollbarDragEnd', function () {
isDrag = true;
swiperEventList.slideTransition();
});
els.swiperContainer.swiper.init();
}
},
destroy: function () {
if(els.swiperContainer.swiper != null) {
els.swiperContainer.swiper.scrollbar.dragEl.style = '';
els.swiperContainer.swiper.scrollbar.destroy(true);
els.swiperContainer.swiper.navigation.destroy(true);
els.swiperContainer.swiper.destroy(true);
els.swiperContainer.swiper = null;
}
},
init: function () {
let self = this,
notification = self.el.querySelector('.swiper-notification');
if (!!notification) self.el.removeChild(notification);
setTimeout(function () {
accessibility.slide();
accessibility.arrow();
}, 500);
},
slideChange: function () {
accessibility.slide();
accessibility.arrow();
},
slideTransition: function () {
clearTimeout(els.arrowTimeout);
els.arrowTimeout = setTimeout(function () {
if (els.swiperContainer.swiper.isBeginning && !els.swiperContainer.swiper.isEnd) {
if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = '';
if (!isDrag) els.nextArrow.focus();
els.prevArrow.style.display = 'none';
} else if (!els.swiperContainer.swiper.isBeginning && els.swiperContainer.swiper.isEnd) {
if (els.prevArrow.style.display == 'none') els.prevArrow.style.display = '';
if (!isDrag) els.prevArrow.focus();
els.nextArrow.style.display = 'none';
} else {
if (els.prevArrow.style.display == 'none') els.prevArrow.style.display = '';
if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = '';
}
}, 200);
isDrag = false;
},
clickArrow: function (type) {
if (type == 'next') {
els.swiperContainer.swiper.slideNext();
} else {
els.swiperContainer.swiper.slidePrev();
}
},
activeCheck: function () {
let isSlide = ((currDevice.indexOf('mobile') > -1) && (els.buttonWrap.length >= 3)) ||
((currDevice.indexOf('desktop') > -1 || currDevice == 'tablet') && (els.buttonWrap.length >= 5));
if (isSlide) {
els.scrollbar.style.display = 'block';
els.arrowWrap.style.display = 'block';
swiperEventList.set();
if (currOpener != null) {
if (currOpener.index == 2) {
els.swiperContainer.swiper.slideTo(1, 0);
els.prevArrow.style.display = '';
els.nextArrow.style.display = '';
} else if (currOpener.index == 3) {
els.swiperContainer.swiper.slideTo(2, 0);
els.prevArrow.style.display = '';
els.nextArrow.style.display = 'none';
} else {
els.swiperContainer.swiper.slideTo(0, 0);
els.prevArrow.style.display = 'none';
els.nextArrow.style.display = '';
}
}
} else {
els.scrollbar.style.display = 'none';
els.arrowWrap.style.display = 'none';
swiperEventList.destroy();
}
}
};
const accessibility = {
setTitle: function(target){
if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) {
target.button.setAttribute('title', LOCAL_VARI.selected);
} else {
target.button.setAttribute('title', 'Selected');
}
},
slide: function () {
for (let i = 0; i < els.swiperContainer.swiper.slides.length; i++) {
if (i != els.swiperContainer.swiper.activeIndex && i != (els.swiperContainer.swiper.activeIndex + 1)) {
utils.onAccessibility(els.swiperContainer.swiper.slides[i]);
} else {
utils.offAccessibility(els.swiperContainer.swiper.slides[i]);
}
}
},
arrow: function () {
if (els.swiperContainer.swiper.isBeginning && !els.swiperContainer.swiper.isEnd) {
utils.offAccessibility(els.nextArrow);
utils.onAccessibility(els.prevArrow);
} else if (!els.swiperContainer.swiper.isBeginning && els.swiperContainer.swiper.isEnd) {
utils.offAccessibility(els.prevArrow);
utils.onAccessibility(els.nextArrow);
} else {
utils.offAccessibility(els.nextArrow);
utils.offAccessibility(els.prevArrow);
}
}
};
return {
init: init,
}
})();
})();
(function () {
window.flagship = window.flagship || {};
window.flagship.features = window.flagship.features || {};
window.flagship.features.oneColumnCarousel = (function () {
const utils = window.flagship.common.utils;
const resize = window.flagship.common.resize;
let els = {};
let prevDevice;
let currDevice = resize.checkResolution();
let dimmedClass = 'is-dimmed';
const isRtl = document.documentElement.classList.contains('rtl');
const init = function () {
els.section = document.querySelectorAll('.js-one-column-carousel');
if (!!els.section) {
setElements();
setProperty();
bindEvents();
}
};
const setElements = function () {
for (let i = 0; i < els.section.length; i++) {
els.section[i].swiperContainer = els.section[i];
els.section[i].swiperSlides = els.section[i].swiperContainer.querySelectorAll('.swiper-slide');
els.section[i].prevArrow = els.section[i].parentElement.querySelector('.swiper-button-prev');
els.section[i].nextArrow = els.section[i].parentElement.querySelector('.swiper-button-next');
els.section[i].scrollbar = els.section[i].parentElement.querySelector('.swiper-scrollbar');
}
};
const setProperty = function() {
for (let i = 0; i < els.section.length; i++) {
let isSlideLength = els.section[i].swiperSlides.length;
for (let j = 0; j < isSlideLength; j++) {
els.section[i].swiperSlides[j].video = els.section[i].swiperSlides[j].querySelector('.common-video__video');
}
}
}
const bindEvents = function () {
eventList.load();
eventHandler.keydown();
eventHandler.click();
resize.add(eventList.resize);
};
const eventHandler = {
keydown: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].prevArrow.addEventListener('keydown', function(e) {
if (e.keyCode == 13) e.preventDefault();
eventList.arrowFocus(this, els.section[i].nextArrow);
});
els.section[i].nextArrow.addEventListener('keydown', function(e) {
if (e.keyCode == 13) e.preventDefault();
eventList.arrowFocus(this, els.section[i].prevArrow);
});
}
},
click: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].prevArrow.addEventListener('click', function(e) {
eventList.arrowFocus(this, els.section[i].nextArrow);
});
els.section[i].nextArrow.addEventListener('click', function(e) {
eventList.arrowFocus(this, els.section[i].prevArrow);
});
}
}
};
const eventList = {
load: function() {
swiperEvents.set();
for (let i = 0; i < els.section.length; i++) {
els.section[i].swiper.init();
if (els.section[i].swiperSlides.length >= 2) {
els.section[i].swiper.init();
}
}
},
resize: function() {
currDevice = resize.checkResolution();
if (prevDevice != currDevice) {
eventList.responsive();
prevDevice = currDevice;
};
},
responsive: function() {
for (let i = 0; i < els.section.length; i++) {
eventList.resetDimmedSlide(els.section[i].swiper);
els.section[i].swiper.slideTo(0, false);
if (eventList.getCarouselSizeInfo(els.section[i].swiper).viewLength > 0 && currDevice != 'mobile') eventList.initDimmedSlides(els.section[i].swiper);
}
},
setMedia: function(swiper, index) {
let isIndex = index + 1 > swiper.slides.length -1 ? swiper.slides.length -1 : index + 1;
let videoLength = swiper.el.querySelectorAll('video').length - 1;
let imageLength = swiper.el.querySelectorAll('img').length - 1;
let videoloadComplateLength = swiper.el.querySelectorAll('.is-video-load-complete').length - 1;
let imageloadComplateLength = swiper.el.querySelectorAll('.is-img-load-complete').length - 1;
let nextVideo = swiper.slides[isIndex].querySelector('video');
let nextImage = swiper.slides[isIndex].querySelector('img');
if (videoloadComplateLength != videoLength) {
if (!!nextVideo) {
videoLoader.setResponsiveMedia([nextVideo]);
}
}
if (imageloadComplateLength != imageLength) {
if (!!nextImage) {
imageLoader.setResponsiveMedia([nextImage]);
}
}
},
resetVideo: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
let isVideo = swiper.slides[i].video;
if (!!isVideo && !isVideo.paused) {
isVideo.pause();
isVideo.currentTime = 0;
};
};
},
getCarouselSizeInfo: function(swiper) {
let slideLength = swiper.slides.length;
let slideWidth = swiper.slides[0].clientWidth;
let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[isRtl ? 3 : 1]);
let slideSize = slideWidth + slideMargin;
let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth;
let viewWidth = swiper.wrapperEl.clientWidth;
let viewLength = parseInt((viewWidth + slideMargin)/slideSize);
let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth));
let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4]));
return {
slideWidth: slideWidth,
slideMargin: slideMargin,
slideSize: slideSize,
maxMoveSize: maxMoveSize,
viewWidth: viewWidth,
viewLength: viewLength,
lastBeforeSize: lastBeforeSize,
isMoveSize: isMoveSize
}
},
initDimmedSlides: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if ((swiper.activeIndex + eventList.getCarouselSizeInfo(swiper).viewLength) <= i) {
swiper.slides[i].classList.add(dimmedClass);
}
}
},
setDimmedSlide: function(swiper) {
if (currDevice != 'mobile') {
for (let i = 0; i < swiper.slides.length; i++) {
let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i;
if (dimmedSlide) {
swiper.slides[i].classList.add(dimmedClass);
} else {
swiper.slides[i].classList.remove(dimmedClass);
}
}
}
},
resetDimmedSlide: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
swiper.slides[i].classList.remove(dimmedClass);
}
},
arrowFocus: function(isFocusArrow, nextFocusArrow) {
setTimeout(() => {
if (isFocusArrow.classList.contains('swiper-button-disabled')) nextFocusArrow.focus();
}, 300);
},
}
const swiperEvents = {
set: function () {
for (let i = 0; i < els.section.length; i++) {
if (els.section[i].swiper == null) {
new Swiper(els.section[i].swiperContainer, {
init: false,
slidesPerView: 'auto',
navigation: {
nextEl: els.section[i].nextArrow,
prevEl: els.section[i].prevArrow,
},
scrollbar: {
el: els.section[i].scrollbar,
draggable: true
},
});
els.section[i].swiper.on('init', swiperEvents.init);
els.section[i].swiper.on('slideChange', swiperEvents.slideChange);
els.section[i].swiper.on('transitionEnd', swiperEvents.transitionEnd);
}
}
},
init: function () {
let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next');
let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev');
isNextArrow.removeAttribute('aria-label');
isNextArrow.removeAttribute('role');
isPrevArrow.removeAttribute('aria-label');
isPrevArrow.removeAttribute('role');
accessibility.slide(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.initDimmedSlides(this);
},
slideChange: function () {
accessibility.slide(this);
eventList.resetVideo(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.setDimmedSlide(this);
if (this.realIndex > 0) eventList.setMedia(this, this.realIndex);
},
transitionEnd: function() {
if (this.slides.length < 3 && currDevice == 'mobile') return;
setTimeout(() => {
let carouselInfo = eventList.getCarouselSizeInfo(this);
let lastIndex = this.slides.length -1;
let lastSlide = this.slides[lastIndex];
let lastBeforeSlide = this.slides[lastIndex - 1];
if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize ||
carouselInfo.maxMoveSize <= carouselInfo.isMoveSize ||
(carouselInfo.isMoveSize > carouselInfo.lastBeforeSize && carouselInfo.maxMoveSize > carouselInfo.isMoveSize)) {
eventList.resetVideo(this);
lastSlide.classList.add('is-last-slide');
lastBeforeSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-dimmed');
utils.offAccessibility(this.slides[lastIndex]);
utils.onAccessibility(this.slides[lastIndex - 1]);
} else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize >= carouselInfo.isMoveSize) {
eventList.resetVideo(this);
lastSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-last-slide');
lastBeforeSlide.classList.remove('is-dimmed');
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
}
}, 0);
},
destroy: function (swiper) {
if (swiper != null) {
swiper.navigation.destroy(true);
swiper.destroy(true);
swiper = null;
}
},
};
const accessibility = {
slide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
}
};
return {
init: init,
}
})();
})();
(function () {
window.flagship.features.scrollVideo = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {
scrollVideoWraps: [],
scrollVideo: [],
scene: [],
},
currDevice = resize.checkResolution();
const init = function () {
els.scrollVideoWraps = document.querySelectorAll('div:not(.js-interactive-intro-video)>.js-scroll-video');
if (els.scrollVideoWraps.length > 0) {
setProperty();
eventList.setVideo();
eventList.setScene();
bindEvents();
}
};
const setProperty = function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scrollVideoWraps[i].video = els.scrollVideoWraps[i].querySelector('video');
els.scrollVideoWraps[i].controller = els.scrollVideoWraps[i].querySelector('.js-video-control');
els.scrollVideoWraps[i].controller.video = els.scrollVideoWraps[i].video;
els.scrollVideoWraps[i].startPoint = !!els.scrollVideoWraps[i].getAttribute('data-start-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-start-point')) : undefined;
els.scrollVideoWraps[i].reversePoint = !!els.scrollVideoWraps[i].getAttribute('data-reverse-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-reverse-point')) : undefined;
els.scrollVideoWraps[i].moStartPoint = !!els.scrollVideoWraps[i].getAttribute('data-mo-start-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-mo-start-point')) : undefined;
els.scrollVideoWraps[i].moReversePoint = !!els.scrollVideoWraps[i].getAttribute('data-mo-reverse-point') ? parseInt(els.scrollVideoWraps[i].getAttribute('data-mo-reverse-point')) : undefined;
}
};
const bindEvents = function () {
eventHandler.scroll();
eventList.scroll();
eventHandler.click();
resize.add(eventList.resize);
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scroll);
},
click: function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scrollVideoWraps[i].controller.addEventListener('click', eventList.clickVideoCta);
}
}
};
const eventList = {
setVideo: function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scrollVideo[i] = utils.videoHandler({
playType: 'scrollPlay',
startPoint: (currDevice.indexOf('mobile') > -1) ? els.scrollVideoWraps[i].moStartPoint : els.scrollVideoWraps[i].startPoint,
reversePoint: (currDevice.indexOf('mobile') > -1) ? els.scrollVideoWraps[i].moReversePoint : els.scrollVideoWraps[i].reversePoint,
wrap: els.scrollVideoWraps[i],
video: els.scrollVideoWraps[i].video,
controller: els.scrollVideoWraps[i].controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
if (!!this.video.videoWrap && this.video.videoWrap.classList.contains('js-interactive-intro-video')) {
this.video.tooltip.classList.remove('is-visible');
}
},
playCallback: function () {
if (!this.wrap.classList.contains('is-started')) {
this.wrap.classList.add('is-started');
}
setTagging.pause(this.controller);
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
}
});
}
},
setScene: function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scene[i] = SCROLLER({
trackElement: els.scrollVideoWraps[i].video,
useFixed: false,
resize: utils.detector.isTouchDevice ? false : true
});
}
},
scroll: function () {
for (let i = 0; i < els.scrollVideoWraps.length; i++) {
els.scene[i].trackAnimation(function () {
els.scrollVideo[i].scrollActive(this.progress);
});
}
},
resize: function (currRes) {
currDevice = currRes;
},
clickVideoCta: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
e.currentTarget.video.play();
} else {
e.currentTarget.video.pause();
}
}
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.threeColumnCarousel = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {},
swiperObj,
prevDevice = null,
currDevice = resize.checkResolution();
dimmedClass = 'is-dimmed';
const isRtl = document.documentElement.classList.contains('rtl');
const init = function () {
els.section = document.querySelectorAll('.js-three-column-carousel');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
for (let i = 0; i < els.section.length; i++) {
els.section[i].swiperContainer = els.section[i];
els.section[i].swiperSlide = els.section[i].querySelectorAll('.swiper-slide');
els.section[i].nextArrow = els.section[i].parentElement.querySelector('.swiper-button-next');
els.section[i].prevArrow = els.section[i].parentElement.querySelector('.swiper-button-prev');
els.section[i].scrollbar = els.section[i].parentElement.querySelector('.swiper-scrollbar');
};
};
const bindEvents = function () {
eventList.load();
eventHandler.keydown();
eventHandler.click();
resize.add(eventList.resize);
};
const eventHandler = {
swiper: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].swiper.on('init', swiperEvents.init);
els.section[i].swiper.on('slideChange', swiperEvents.slideChange);
els.section[i].swiper.on('transitionEnd', swiperEvents.transitionEnd);
};
},
keydown: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].prevArrow.addEventListener('keydown', function(e) {
if (e.keyCode == 13) e.preventDefault();
eventList.arrowFocus(this, els.section[i].nextArrow);
});
els.section[i].nextArrow.addEventListener('keydown', function(e) {
if (e.keyCode == 13) e.preventDefault();
eventList.arrowFocus(this, els.section[i].prevArrow);
});
}
},
click: function() {
for (let i = 0; i < els.section.length; i++) {
els.section[i].prevArrow.addEventListener('click', function(e) {
eventList.arrowFocus(this, els.section[i].nextArrow);
});
els.section[i].nextArrow.addEventListener('click', function(e) {
eventList.arrowFocus(this, els.section[i].prevArrow);
});
}
}
};
const eventList = {
load: function() {
for (let i = 0; i < els.section.length; i++) {
let desktopStatus = (currDevice == 'desktop' || currDevice == 'tablet') && els.section[i].swiperSlide.length > 3;
let mobileStatus = (currDevice == 'mobile' || currDevice == 'mobileS') && els.section[i].swiperSlide.length > 1;
if (desktopStatus || mobileStatus) {
swiperEvents.set();
eventHandler.swiper();
els.section[i].swiper.init();
}
}
},
resize: function() {
currDevice = resize.checkResolution();
if (prevDevice != currDevice) {
eventList.responsive();
prevDevice = currDevice;
};
},
responsive: function() {
for (let i = 0; i < els.section.length; i++) {
let isSection = els.section[i];
let desktopStatus = (currDevice == 'desktop' || currDevice == 'tablet') && isSection.swiperSlide.length > 3;
let mobileStatus = (currDevice == 'mobile' || currDevice == 'mobileS') && isSection.swiperSlide.length > 1;
eventList.resetDimmedSlide(isSection.swiper);
accessibility.reset(isSection.swiper);
if (desktopStatus || mobileStatus) {
if (isSection.swiper.initialized) swiperEvents.destroy(isSection.swiper);
swiperEvents.set();
eventHandler.swiper();
isSection.swiper.init();
if (desktopStatus) eventList.initDimmedSlides(isSection.swiper);
if (mobileStatus) accessibility.slide(isSection.swiper);
} else if ((!desktopStatus || !mobileStatus) && isSection.swiper != undefined) {
if (isSection.swiper.initialized) swiperEvents.destroy(isSection.swiper);
}
};
},
getCarouselSizeInfo: function(swiperObj) {
let slideLength = swiperObj.slides.length;
let slideWidth = swiperObj.slides[0].clientWidth;
let slideMargin = parseInt(window.getComputedStyle(swiperObj.slides[0]).margin.split(' ')[isRtl ? 3 : 1]);
let slideSize = slideWidth + slideMargin;
let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiperObj.wrapperEl.clientWidth;
let viewWidth = swiperObj.wrapperEl.clientWidth;
let viewLength = Math.round((viewWidth + slideMargin)/slideSize);
let lastBeforeSize =
currDevice.indexOf('mobile') == -1 && slideLength == 3 ? 0 :
currDevice.indexOf('mobile') > -1 && slideLength == 2 ? 0 :
(slideWidth + slideMargin) * ((slideLength - viewLength) - 1);
let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiperObj.wrapperEl).transform.split(',')[4]));
return {
slideLength: slideLength,
slideWidth: slideWidth,
slideMargin: slideMargin,
slideSize: slideSize,
maxMoveSize: maxMoveSize,
viewWidth: viewWidth,
viewLength: viewLength,
lastBeforeSize: lastBeforeSize,
isMoveSize: isMoveSize
}
},
initDimmedSlides: function(swiperObj) {
for (let i = 0; i < swiperObj.slides.length; i++) {
let isSlide = swiperObj.slides[i];
if ((swiperObj.activeIndex + eventList.getCarouselSizeInfo(swiperObj).viewLength) <= i) {
isSlide.classList.add(dimmedClass);
utils.onAccessibility(isSlide)
}
}
},
setDimmedSlide: function(swiperObj) {
for (let i = 0; i < swiperObj.slides.length; i++) {
let isSlide = swiperObj.slides[i];
let dimmedSlide = (swiperObj.activeIndex) > i || (swiperObj.activeIndex + (eventList.getCarouselSizeInfo(swiperObj).viewLength - 1)) < i;
if (dimmedSlide) {
isSlide.classList.add(dimmedClass);
accessibility.slide(swiperObj);
} else {
isSlide.classList.remove(dimmedClass);
accessibility.slide(swiperObj);
}
}
},
resetDimmedSlide: function(swiperObj) {
if (!!!swiperObj) return;
for (let i = 0; i < swiperObj.slides.length; i++) {
swiperObj.slides[i].classList.remove(dimmedClass);
}
},
tagging: function () {
const values = {
'data-omni-type': 'microsite_pcontentinter',
'data-omni': 'galaxy-z-fold6:highlights:indicator:sldr-dots:',
'ga-ca': 'indication',
'ga-ac': 'carousel',
'ga-la': 'galaxy-z-fold6:highlights:indicator:sldr-dots:',
};
},
arrowFocus: function(isFocusArrow, nextFocusArrow) {
setTimeout(() => {
if (isFocusArrow.classList.contains('swiper-button-disabled')) nextFocusArrow.focus();
}, 300);
},
};
const swiperEvents = {
set: function () {
for (let i = 0; i < els.section.length; i++) {
if (els.section[i].swiper == null) {
new Swiper(els.section[i].swiperContainer, {
init: false,
slidesPerView: 'auto',
speed: 200,
navigation: {
nextEl: els.section[i].nextArrow,
prevEl: els.section[i].prevArrow,
},
scrollbar: {
el: els.section[i].scrollbar,
draggable: true
}
});
}
}
},
init: function () {
let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next');
let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev');
isNextArrow.removeAttribute('aria-label');
isNextArrow.removeAttribute('role');
isPrevArrow.removeAttribute('aria-label');
isPrevArrow.removeAttribute('role');
eventList.tagging();
eventList.initDimmedSlides(this);
accessibility.slide(this);
},
transitionEnd: function() {
let carouselInfo = eventList.getCarouselSizeInfo(this);
setTimeout(() => {
let lastIndex = this.slides.length -1 ;
let lastSlide = this.slides[lastIndex];
let lsatDimmedLength = (carouselInfo.slideLength - 1) - carouselInfo.viewLength;
let lastBeforeSlide = this.slides[lsatDimmedLength];
if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize && carouselInfo.maxMoveSize >= carouselInfo.isMoveSize) {
lastSlide.classList.add('is-last-slide');
lastBeforeSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-dimmed');
if (currDevice.indexOf('mobile') > -1) {
utils.offAccessibility(this.slides[lastIndex]);
utils.onAccessibility(this.slides[lastIndex - 1]);
} else {
for (let i = 0; i < this.slides.length; i++) {
if (i == lastIndex || i == lastIndex - 1 || i == lastIndex - 2) {
utils.offAccessibility(this.slides[i]);
} else {
utils.onAccessibility(this.slides[i]);
}
}
}
} else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize >= carouselInfo.isMoveSize) {
lastSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-last-slide');
lastBeforeSlide.classList.remove('is-dimmed');
if (currDevice.indexOf('mobile') > -1) {
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
} else {
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
utils.offAccessibility(this.slides[lastIndex - 2]);
}
}
}, 0);
},
slideChange: function () {
eventList.setDimmedSlide(this);
accessibility.slide(this);
},
destroy: function (swiperObj) {
swiperObj.navigation.destroy(true);
swiperObj.destroy(true);
swiperObj = null;
},
};
const accessibility = {
slide: function (swiper) {
if (currDevice.indexOf('mobile') > -1) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
} else {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex && i != (swiper.activeIndex + 1) && i != (swiper.activeIndex + 2)) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
if (!!swiper.slides[i + 1]) utils.offAccessibility(swiper.slides[i + 1]);
if (!!swiper.slides[i + 2]) utils.offAccessibility(swiper.slides[i + 2]);
}
}
}
},
reset: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
utils.offAccessibility(swiper.slides[i]);
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.aiOverview = (function () {
const utils = window.flagship.common.utils,
resize = flagship.common.resize;
let els = {};
let currDevice = resize.checkResolution();
const init = function () {
els.section = document.querySelector('.features-ai-overview');
if (!!els.section) {
setElements();
eventList.setScene();
bindEvents();
}
};
const setElements = function () {
// title
els.overviewTextWrap = els.section.querySelector('.js-overview-text-wrap');
// logoVideo
els.logoWrap = els.section.querySelector('.js-logo-wrap');
els.logoVideoWrap = els.section.querySelector('.js-logo-video-wrap');
els.overviewVideo = els.logoVideoWrap.querySelector('video');
};
const bindEvents = function () {
eventHandler.scroll();
eventList.scroll();
resize.add(eventHandler.resize);
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scroll);
},
resize: function (currRes) {
currDevice = currRes;
}
};
const eventList = {
setScene: function () {
els.scene = SCROLLER({
trackElement: els.overviewTextWrap,
useFixed: false,
resize: utils.detector.isTouchDevice ? false : true
});
},
scroll: function(){
els.scene.trackAnimation(function(){
//텍스트 페이드인
if (this.wheelDirection == 'down' && this.progress <= 100 && this.progress > 0) {
if (!els.section.classList.contains('is-active')) {
els.section.classList.add('is-active');
if (els.overviewVideo.paused) {
els.overviewVideo.play();
}
}
} else if (this.wheelDirection == 'up' && this.progress == 0) {
if (els.section.classList.contains('is-active')) {
els.section.classList.remove('is-active');
if (!els.overviewVideo.paused) {
els.overviewVideo.pause();
els.overviewVideo.currentTime = 0;
}
}
}
});
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.cameraSpec = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {},
prevDevice = null,
currDevice = resize.checkResolution();
const init = function () {
els.section = document.querySelector('.features-camera-spec');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.listInner = els.section.querySelectorAll('.js-camera-spec-inner');
};
const bindEvents = function () {
resize.add(eventList.resize);
eventList.load();
eventList.showCollout();
eventHandler.scroll();
};
const eventHandler = {
scroll: function() {
window.addEventListener('scroll', eventList.showCollout);
}
}
const eventList = {
load: function() {
eventList.setSecene();
},
resize: function (currRes) {
currDevice = currRes;
if (currDevice != prevDevice) {
prevDevice = currDevice;
}
},
setSecene: function () {
for (let i = 0; i < els.listInner.length; i++) {
SCROLLER({
trackElement: els.listInner[i],
useFixed: false
});
}
},
showCollout: function() {
for (let i = 0; i < els.listInner.length; i++) {
els.listInner[i].scroller.trackAnimation(function() {
if (this.progress > 0) {
this.trackElement.classList.add('is-active');
}
if (i == 0) {
if (this.progress <= 0) {
for (let j = 0; j < els.listInner.length; j++) {
els.listInner[j].classList.remove('is-active');
}
}
}
});
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.colorchip = function (colorchipWrap) {
const utils = window.flagship.common.utils,
common = window.flagship.features.common,
resize = window.flagship.common.resize;
let els = {},
activeClass = 'is-active',
currentDevice = resize.checkResolution(),
prevDevice = null,
currentSlidesPerView = currentDevice.indexOf('mobile') > -1 ? 5 : 7;
const init = function () {
els.section = document.querySelector('.js-colors');
els.popup = document.querySelector('.js-viewer');
if (colorchipWrap.type == 'popup') {
colorchipWrap.contentWrap = els.popup;
} else {
colorchipWrap.contentWrap = els.section;
}
setElements();
setProperty();
bindEvents();
};
const setElements = function () {
// panel
els.panelWrap = els.section.querySelector('.js-panel-wrap');
els.panelItems = els.panelWrap.querySelectorAll('.js-panel-item');
// colorchip
els.swiperContainer = colorchipWrap.querySelector('.js-colorchip-container');
els.colorchipButtons = colorchipWrap.querySelectorAll('.js-colorchip-button');
els.swiperArrowWrap = colorchipWrap.querySelector('.js-arrow-wrap');
els.swiperNextArrow = colorchipWrap.querySelector('.js-colorchip-next');
els.swiperPrevArrow = colorchipWrap.querySelector('.js-colorchip-prev');
els.colorchipNames = colorchipWrap.querySelectorAll('.js-colorchip-name');
// 360 Popup Btn
els.viewerBtn = els.section.querySelector('.viewer-btn');
// viewer
els.viewerSection = els.section.querySelector('.js-colors-viewer');
els.viewerIframe = colorchipWrap.contentWrap.querySelector('iframe');
// exclusive badge
els.exclusive = colorchipWrap.contentWrap.querySelector('.js-exclusive-badge');
};
const setProperty = function () {
for (let i = 0; i < els.colorchipButtons.length; i++) {
els.colorchipButtons[i].index = i;
}
};
const bindEvents = function () {
eventList.checkColorchipSwiper();
if (colorchipWrap.type != 'popup') eventList.setColors(0);
eventHandler.click();
eventHandler.keydown();
resize.add(eventList.resize);
eventHandler.scroll();
};
const eventHandler = {
click: function () {
for (let i = 0; i < els.colorchipButtons.length; i++) {
els.colorchipButtons[i].addEventListener('click', eventList.clickColorchip);
}
els.viewerBtn.addEventListener('click', function () {
let activeIndex = this.getAttribute('data-target-index');
eventList.setColorchip(activeIndex);
eventList.setColorName(activeIndex);
eventList.setExclusive(activeIndex);
});
els.swiperNextArrow.addEventListener('click', accessibility.clickArrow);
els.swiperPrevArrow.addEventListener('click', accessibility.clickArrow);
},
keydown: function () {
els.swiperNextArrow.addEventListener('keydown', accessibility.clickArrow);
els.swiperPrevArrow.addEventListener('keydown', accessibility.clickArrow);
},
scroll: function () {
window.addEventListener('scroll', eventList.scroll);
}
};
const eventList = {
scroll: function () {
let winOffsetBottom = window.pageYOffset + window.innerHeight,
kv = document.querySelector('.features-kv'),
kvHeight = kv.getBoundingClientRect().height + utils.getNavHeight();
if (winOffsetBottom >= kvHeight) {
// bg load
colorchipWrap.bgImgs = colorchipWrap.querySelectorAll('.js-bg-img');
if(!!colorchipWrap.bgImgs) bgLoader.setResponsiveMedia(colorchipWrap.bgImgs);
eventList.setViewer();
window.removeEventListener('scroll', eventList.scroll);
}
},
setViewer: function () {
if (!utils.isLowNetwork()) {
setTimeout(function () {
els.viewerIframe.style.position = 'fixed';
els.viewerIframe.style.top = 0;
els.viewerIframe.style.opacity = 0;
setTimeout(function () {
els.viewerIframe.style.position = '';
els.viewerIframe.style.top = '';
els.viewerIframe.style.opacity = '';
}, 300);
}, 1000);
// set
eventList.setViewerUrl(els.colorchipButtons[0].getAttribute('data-colors'));
}
},
checkColorchipSwiper: function () {
let colorchipSwiperLength = currentDevice.indexOf('mobile') > -1 ? 6 : 8;
if (els.colorchipButtons.length >= colorchipSwiperLength) {
if (els.swiperArrowWrap.style.display == 'none') {
els.swiperArrowWrap.style.display = '';
}
swiperEvents.set();
} else {
if (els.swiperArrowWrap.style.display != 'none') {
els.swiperArrowWrap.style.display = 'none';
}
if (els.colorchipSwiper != null) {
swiperEvents.destroy();
}
}
},
setColors: function (activeIndex) {
eventList.setPopupBtn(els.colorchipButtons[activeIndex]);
eventList.setColorchip(activeIndex);
eventList.setPanel(activeIndex);
eventList.setColorName(activeIndex);
eventList.setExclusive(activeIndex);
},
resize: function (currRes) {
currentDevice = currRes;
if (currentDevice !== prevDevice) {
eventList.checkColorchipSwiper();
currentSlidesPerView = currentDevice.indexOf('mobile') > -1 ? 5 : 7;
prevDevice = currentDevice;
}
},
clickColorchip: function () {
let targetColor = this;
eventList.setColors(targetColor.index);
eventList.setViewerUrl(targetColor.getAttribute('data-colors'));
},
setColorchip: function (activeIndex) {
let targetcolorchipButton = els.colorchipButtons[activeIndex];
for (let i = 0; i < els.colorchipButtons.length; i++) {
els.colorchipButtons[i].classList.remove(activeClass);
if (!!colorchipWrap.isStatic) {
els.colorchipButtons[i].setAttribute('aria-selected', false);
} else {
els.colorchipButtons[i].removeAttribute('title');
}
}
if (!targetcolorchipButton.classList.contains(activeClass)) {
targetcolorchipButton.classList.add(activeClass);
if (!!colorchipWrap.isStatic) {
targetcolorchipButton.setAttribute('aria-selected', true);
} else {
accessibility.selected(targetcolorchipButton);
}
}
},
setPanel: function (activeIndex) {
if (!colorchipWrap.isStatic) return;
for (let i = 0; i < els.panelItems.length; i++) {
if (els.panelItems[i].classList.contains(activeClass)) {
els.panelItems[i].classList.remove(activeClass);
els.panelItems[i].setAttribute('aria-hidden', true);
}
}
if (!els.panelItems[activeIndex].classList.contains(activeClass)) {
els.panelItems[activeIndex].classList.add(activeClass);
els.panelItems[activeIndex].setAttribute('aria-hidden', false);
}
},
setColorName: function (activeIndex) {
for (let i = 0; i < els.colorchipNames.length; i++) {
if (els.colorchipNames[i].classList.contains(activeClass)) {
els.colorchipNames[i].classList.remove(activeClass);
els.colorchipNames[i].setAttribute('aria-hidden', true);
}
}
if (!els.colorchipNames[activeIndex].classList.contains(activeClass)) {
els.colorchipNames[activeIndex].classList.add(activeClass);
els.colorchipNames[activeIndex].setAttribute('aria-hidden', false);
}
},
setViewerUrl: function (colorName) {
if (!!colorchipWrap.isStatic) return;
if (colorchipWrap.type == 'popup') {
let viewerSrc = els.viewerIframe.getAttribute('src').split('#color=')[0];
els.viewerIframe.setAttribute('src', `${viewerSrc}#color=${colorName}`);
} else {
els.viewerSection.setAttribute('data-model-color', colorName);
els.viewerIframe.setAttribute('src', common.getViewerUrl());
}
},
setPopupBtn: function (target) {
if (colorchipWrap.type == 'popup') return;
els.viewerBtn.setAttribute('data-target-index', target.index);
els.viewerBtn.setAttribute('data-model-color', target.getAttribute('aria-controls'));
},
setExclusive: function (activeIndex) {
if (!!els.colorchipButtons[activeIndex].getAttribute('data-exclusive')) {
els.exclusive.classList.add('is-active');
} else {
els.exclusive.classList.remove('is-active');
}
}
};
const swiperEvents = {
set: function () {
if (els.colorchipSwiper == null) {
els.colorchipSwiper = new Swiper(els.swiperContainer, {
init: false,
navigation: {
nextEl: els.swiperNextArrow,
prevEl: els.swiperPrevArrow,
},
slidesPerView: currentSlidesPerView,
speed: 300,
});
els.colorchipSwiper.on('init', swiperEvents.init);
els.colorchipSwiper.on('slideChange', swiperEvents.slideChange);
els.colorchipSwiper.init();
}
},
init: function () {
let notification = this.el.querySelector('.swiper-notification');
if (!!notification) this.el.removeChild(notification);
els.swiperPrevArrow.removeAttribute('aria-label');
els.swiperPrevArrow.removeAttribute('role');
els.swiperNextArrow.removeAttribute('aria-label');
els.swiperNextArrow.removeAttribute('role');
accessibility.colorchip(els.colorchipSwiper);
},
slideChange: function () {
accessibility.colorchip(els.colorchipSwiper);
},
destroy: function () {
els.colorchipSwiper.destroy(true);
els.colorchipSwiper = null;
},
};
const accessibility = {
clickArrow: function (e) {
let arrowTimeout = null,
arrowStyleTimeout = null;
if ((e.type == 'keydown' && e.keyCode == 13) || e.type == 'click') {
e.preventDefault();
if (els.colorchipSwiper.isBeginning && !els.colorchipSwiper.isEnd) {
els.swiperPrevArrow.style.setProperty('display', 'block');
clearTimeout(arrowTimeout);
arrowTimeout = setTimeout(function () {
els.swiperNextArrow.focus();
}, 300);
clearTimeout(arrowStyleTimeout);
arrowStyleTimeout = setTimeout(function () {
els.swiperPrevArrow.style.display = '';
}, 400);
} else if (!els.colorchipSwiper.isBeginning && els.colorchipSwiper.isEnd) {
els.swiperNextArrow.style.setProperty('display', 'block');
clearTimeout(arrowTimeout);
arrowTimeout = setTimeout(function () {
els.swiperPrevArrow.focus();
}, 300);
clearTimeout(arrowStyleTimeout);
arrowStyleTimeout = setTimeout(function () {
els.swiperNextArrow.style.display = '';
}, 400);
}
}
},
colorchip: function (swiperObj) {
let isNotActivedColorchips = null;
for (let i = 0; i < swiperObj.slides.length; i++) {
if (currentDevice.indexOf('mobile') > -1) {
isNotActivedColorchips = (i != swiperObj.activeIndex) && (i > swiperObj.activeIndex + 4) || (swiperObj.activeIndex > i);
} else {
isNotActivedColorchips = (i != swiperObj.activeIndex) && (i > swiperObj.activeIndex + 6) || (swiperObj.activeIndex > i);
}
if (isNotActivedColorchips) {
utils.onAccessibility(swiperObj.slides[i]);
setTimeout(function () {
utils.onAccessibility(swiperObj.slides[i]);
}, 300);
} else {
utils.offAccessibility(swiperObj.slides[i]);
setTimeout(function () {
utils.offAccessibility(swiperObj.slides[i]);
}, 300);
}
}
},
selected: function (target) {
if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) {
target.setAttribute('title', LOCAL_VARI.selected);
} else {
target.setAttribute('title', 'Selected');
}
}
};
return init(colorchipWrap);
};
let colorchips = document.querySelectorAll('.js-colorchip');
for (let i = 0; i < colorchips.length; i++) {
colorchips[i].type = colorchips[i].parentElement.classList.contains('js-popup-colorchip') ? 'popup' : 'colors';
colorchips[i].isStatic = colorchips[i].parentElement.getAttribute('data-static');
flagship.features.colorchip(colorchips[i]);
}
})();
;
(function () {
window.flagship.features.faq = (function () {
const resize = window.flagship.common.resize,
utils = window.flagship.common.utils;
let els = {},
prevDevice = null,
currDevice = resize.checkResolution();
const init = function () {
els.section = document.querySelector('.js-faq');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.faqList = els.section.querySelector('.js-faq-list');
};
const bindEvents = function () {
resize.add(eventList.resize);
eventList.setAccordion();
};
const eventList = {
resize: function (currRes) {
currDevice = currRes;
if (currDevice != prevDevice) {
eventList.responsive();
prevDevice = currDevice;
}
},
responsive: function () {
let isOpenedItems = els.faqList.querySelectorAll('.js-faq-item.is-open');
if (isOpenedItems.length > 0) {
for (let i = 0; i < isOpenedItems.length; i++) {
let isOpenedItemContent = isOpenedItems[i].querySelector('.js-faq-answer');
let clientHeight = isOpenedItemContent.children[0].clientHeight;
isOpenedItemContent.style.height = `${clientHeight}px`;
}
}
},
setAccordion: function () {
els.accordion = new window.flagship.common.accordion({
wrap: els.faqList,
classList: {
item: 'js-faq-item',
button: 'js-faq-open',
contents: 'js-faq-answer',
activeClass: 'is-open'
},
open: {
start: function (target) {
let targetInnerCta = target.querySelector('.js-featue-cta');
if (targetInnerCta) targetInnerCta.addEventListener('click', accessibility.moveFocus);
}
}
});
els.accordion.init();
},
};
const accessibility = {
moveFocus: function (e) {
if (this.getAttribute('href').indexOf('#') > -1) {
e.preventDefault();
let sectionId = this.getAttribute('href'),
section = document.querySelector(`${sectionId}`),
sectionTop = section.getBoundingClientRect().top,
movePosition = (sectionTop + window.pageYOffset) - utils.getNavHeight(),
clickable = section.querySelectorAll('a, button'),
title = section.querySelector('h2') || section.querySelector('h3');
if (!!title) {
let _focusOut = function () {
title.removeAttribute('tabindex');
title.removeEventListener('focusout', _focusOut);
};
title.addEventListener('focusout', _focusOut);
title.setAttribute('tabindex', 0);
title.focus();
} else {
clickable[0].focus();
}
window.scrollTo(0, movePosition);
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship = window.flagship || {};
window.flagship.features = window.flagship.features || {};
window.flagship.features.highlightsZone = (function () {
const utils = window.flagship.common.utils;
const resize = window.flagship.common.resize;
let els = {};
let prevDevice;
let swiperObj = {};
let pointerOffset = {};
let currDevice = resize.checkResolution();
let dimmedClass = 'is-dimmed';
let ctaPlayStatus = true;
let scrollProgress = null;
let lowNetwork = document.documentElement.classList.contains('low_network');
let isBgLoaded = false;
const init = function () {
els.section = document.querySelector('.features-highlights');
if (!!els.section) {
setElements();
setProperty();
bindEvents();
}
};
const setElements = function () {
els.mainContainer = els.section.querySelector('.js-highlights-main-container');
els.mainSwiperSlides = els.mainContainer.querySelectorAll('.swiper-slide');
els.videoWrap = els.mainContainer.querySelectorAll('.js-video-wrap');
els.prevArrow = els.mainContainer.parentElement.querySelector('.swiper-button-prev');
els.nextArrow = els.mainContainer.parentElement.querySelector('.swiper-button-next');
els.scrollbar = els.section.querySelector('.js-highlights-scrollbar');
els.bgContainer = els.section.querySelector('.js-highlights-bg-container');
els.bgSwiperSlides = els.bgContainer.querySelectorAll('.swiper-slide');
};
const setProperty = function () {
els.mainContainer.autoPlay = true;
els.videoWrap = els.mainContainer.querySelectorAll('.js-video-wrap');
for (let i = 0; i < els.videoWrap.length; i++) {
els.videoWrap[i].video = els.videoWrap[i].querySelector('.common-video__video');
els.videoWrap[i].coverImageHighband = els.videoWrap[i].querySelector('.common-video__cover-image--highband');
els.videoWrap[i].coverImageLowband = els.videoWrap[i].querySelector('.common-video__cover-image--lowband');
els.videoWrap[i].controller = els.videoWrap[i].querySelector('.js-video-control');
els.videoWrap[i].controller.video = els.videoWrap[i].video;
els.videoWrap[i].progressBar = els.videoWrap[i].querySelector('.common-video__control-progress-bar');
els.bgSwiperSlides[i].image = els.bgSwiperSlides[i].querySelector('img');
}
};
const bindEvents = function () {
eventList.load();
eventHandler.click();
eventHandler.scroll();
eventHandler.flickSwiper();
resize.add(eventList.resize);
};
const eventHandler = {
flickSwiper: function () {
els.mainContainer.addEventListener('touchstart', function (e) {
pointerOffset.start = null;
pointerOffset.current = null;
pointerOffset.start = e.touches[0].clientX;
els.mainContainer.addEventListener('touchmove', eventList.getPointerMoveSize);
});
els.mainContainer.addEventListener('touchend', function () {
if (pointerOffset.start == null) return;
els.mainContainer.autoPlay = false;
els.mainContainer.removeEventListener('touchmove', eventList.getPointerMoveSize);
});
els.mainContainer.addEventListener('mousedown', function (e) {
pointerOffset.start = null;
pointerOffset.current = null;
pointerOffset.start = e.offsetX;
els.mainContainer.addEventListener('mousemove', eventList.getPointerMoveSize);
});
els.mainContainer.addEventListener('mouseup', function () {
els.mainContainer.autoPlay = false;
els.mainContainer.removeEventListener('mousemove', eventList.getPointerMoveSize);
});
els.mainContainer.addEventListener('mouseleave', function () {
if (pointerOffset.start == null) return;
pointerOffset.start = null;
pointerOffset.current = null;
els.mainContainer.removeEventListener('mousemove', eventList.getPointerMoveSize);
});
},
click: function () {
for (let i = 0; i < els.videoWrap.length; i++) {
els.videoWrap[i].controller.addEventListener('click', eventList.clickVideoCta);
}
for (let i = 0; i < els.videoWrap.length; i++) {
els.videoWrap[i].controller.addEventListener('click', eventList.stopAutoPlay);
}
els.nextArrow.addEventListener('click', function (e) {
eventList.stopAutoPlay(e)
eventList.swiperArrow(e);
});
els.prevArrow.addEventListener('click', function (e) {
eventList.stopAutoPlay(e)
eventList.swiperArrow(e);
});
els.scrollbar.addEventListener('click', eventList.stopAutoPlay);
},
scroll: function () {
window.addEventListener('scroll', eventList.scroll)
}
}
const eventList = {
load: function () {
swiperEvents.set();
swiperObj.main.init();
swiperObj.bg.init();
eventList.setVideo();
eventList.setScene();
eventList.scroll();
},
resize: function () {
currDevice = resize.checkResolution();
if (prevDevice != currDevice) {
eventList.responsive();
prevDevice = currDevice;
};
},
responsive: function () {
let desktopStatus = eventList.getCarouselSizeInfo(swiperObj.main).viewLength > 0 && currDevice == 'desktop';
eventList.resetDimmedSlide(swiperObj.main);
swiperObj.main.slideTo(0, false);
if (desktopStatus) eventList.initDimmedSlides(swiperObj.main);
},
setVideo: function () {
for (let i = 0; i < els.videoWrap.length; i++) {
utils.videoHandler({
playType: 'scrollPlay',
startPoint: currDevice != 'mobile' ? 40 : 24,
reversePoint: currDevice != 'mobile' ? 88 : 80,
wrap: els.videoWrap[i],
video: els.videoWrap[i].video,
controller: els.videoWrap[i].controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
},
playCallback: function () {
setTagging.pause(this.controller);
this.video.timeupdateEvent = function(){
if (this.currentTime > 0) {
if (!this.videoHandler.wrap.classList.contains('is-started')) {
this.videoHandler.wrap.classList.add('is-started');
}
eventList.setProgerssDuration(i);
this.removeEventListener('timeupdate', this.timeupdateEvent);
}
}
this.video.addEventListener('timeupdate', this.video.timeupdateEvent);
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
if (els.mainContainer.autoPlay) {
if (scrollProgress > 40 && scrollProgress < 55) {
clearTimeout(swiperObj.main.videoTiming);
swiperObj.main.videoTiming = setTimeout(() => {
swiperObj.main.slideNext();
}, 1000);
}
}
}
});
}
},
playVideo: function (video) {
if (video.readyState >= 1) {
video.play();
} else {
video.addEventListener('canplay', function () {
this.play();
}, {
once: true
})
}
},
clickVideoCta: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
eventList.playVideo(e.currentTarget.video);
ctaPlayStatus = true;
} else {
e.currentTarget.video.pause();
ctaPlayStatus = false;
}
}
},
stopAutoPlay: function (e) {
if (e.target.classList.contains('js-video-control') ||
e.target.classList.contains('swiper-button-next') ||
e.target.classList.contains('swiper-button-prev') ||
e.target.classList.contains('js-highlights-scrollbar')
) {
els.mainContainer.autoPlay = false;
};
},
swiperArrowVisiblirity: function () {
let mainSlidesLength = els.mainSwiperSlides.length - 1;
let mainSwiper = swiperObj.main;
let prevArrow = mainSwiper.previousIndex > mainSwiper.realIndex;
let nextArrow = mainSwiper.previousIndex < mainSwiper.realIndex;
if (prevArrow) {
if (mainSwiper.realIndex == (mainSlidesLength - 1)) {
if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = '';
} else if (mainSwiper.realIndex == 0) {
els.prevArrow.style.display = 'none';
}
};
if (nextArrow) {
if (mainSwiper.realIndex == 1) {
if (els.prevArrow.style.display == 'none') els.prevArrow.style.display = '';
} else if (mainSwiper.realIndex == mainSlidesLength) {
els.nextArrow.style.display = 'none';
}
};
},
swiperArrow: function (e) {
let mainSwiper = swiperObj.main;
let mainSlidesLength = els.mainSwiperSlides.length - 1;
let prevArrow = e.target.classList.contains('swiper-button-prev');
let nextArrow = e.target.classList.contains('swiper-button-next');
if (prevArrow) {
clearTimeout(swiperObj.main.videoTiming);
mainSwiper.slidePrev();
if (mainSwiper.realIndex == 0) {
setTimeout(() => {
els.nextArrow.blur();
els.nextArrow.focus();
}, 300);
}
};
if (nextArrow) {
clearTimeout(swiperObj.main.videoTiming);
mainSwiper.slideNext();
if (mainSwiper.realIndex == mainSlidesLength) {
setTimeout(() => {
els.prevArrow.blur();
els.prevArrow.focus();
}, 300);
}
};
},
scroll: function () {
els.section.scene.trackAnimation(function () {
let isIndex = swiperObj.main.realIndex;
let isMainVideoHandler = els.videoWrap[isIndex].video.videoHandler;
scrollProgress = this.progress;
if (!lowNetwork && ctaPlayStatus) isMainVideoHandler.scrollActive(this.progress);
if (scrollProgress > 0 && !isBgLoaded) {
for (let i = 0; i < els.bgSwiperSlides.length; i++) {
if (!els.bgSwiperSlides[i].image.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.bgSwiperSlides[i].image]);
}
}
isBgLoaded = true;
}
});
},
slideVideoPlay: function () {
let isIndex = swiperObj.main.realIndex;
let isVideoWrap = els.videoWrap[isIndex];
isVideoWrap.classList.add('is-ended');
setTimeout(function () {
isVideoWrap.classList.remove('is-started', 'is-paused');
if (!ctaPlayStatus) isVideoWrap.video.paused();
isVideoWrap.video.currentTime = 0;
if (ctaPlayStatus) {
eventList.playVideo(isVideoWrap.video);
setTimeout(function () {
if (els.mainContainer.autoPlay) isVideoWrap.video.videoHandler.controller.blur();
if (els.mainContainer.autoPlay) isVideoWrap.video.videoHandler.controller.focus();
if (isIndex == (swiperObj.main.slides.length - 1)) {
els.mainContainer.autoPlay = false;
}
}, 300);
}
}, 50);
},
setProgerssDuration: function (index) {
let isDuration = els.videoWrap[index].video.duration;
if (!!!els.videoWrap[index].durationSet) {
els.videoWrap[index].progressBar.style.animationDuration = `${isDuration}s`;
els.videoWrap[index].durationSet = true;
}
},
setMedia: function (index) {
let videoLength = els.mainSwiperSlides.length - 1;
let isIndex = index + 1
let loadIndex = isIndex < videoLength ? isIndex : videoLength;
let mainVideoloadComplateLength = els.mainContainer.querySelectorAll('.is-video-load-complete').length - 1;
for (let i = 0; i <= loadIndex; i++) {
if (mainVideoloadComplateLength != videoLength && !els.videoWrap[i].video.classList.contains('.is-video-load-complete')) {
if (!!els.videoWrap[i].video) videoLoader.setResponsiveMedia([els.videoWrap[i].video]);
if (!lowNetwork) {
if (!!els.videoWrap[i].coverImageHighband) imageLoader.setResponsiveMedia([els.videoWrap[i].coverImageHighband]);
} else {
if (!!els.videoWrap[i].coverImageLowband) imageLoader.setResponsiveMedia([els.videoWrap[i].coverImageLowband]);
}
if (!!els.bgSwiperSlides[i].image) imageLoader.setResponsiveMedia([els.bgSwiperSlides[i].image]);
}
}
},
pauseVideo: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
let isVideo = swiper.slides[i].querySelector('video');
if (!!isVideo && !isVideo.paused) {
isVideo.pause();
};
};
},
getCarouselSizeInfo: function (swiper) {
let slideLength = swiper.slides.length;
let slideWidth = swiper.slides[0].clientWidth;
let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[1]);
let slideSize = slideWidth + slideMargin;
let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth;
let viewWidth = swiper.wrapperEl.clientWidth;
let viewLength = parseInt((viewWidth + slideMargin) / slideSize);
let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth));
let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4]));
return {
slideWidth: slideWidth,
slideMargin: slideMargin,
slideSize: slideSize,
maxMoveSize: maxMoveSize,
viewWidth: viewWidth,
viewLength: viewLength,
lastBeforeSize: lastBeforeSize,
isMoveSize: isMoveSize
}
},
setScene: function () {
els.section.scene = SCROLLER({
trackElement: els.section,
useFixed: false
});
},
initDimmedSlides: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if ((swiper.activeIndex + eventList.getCarouselSizeInfo(swiper).viewLength) <= i) {
swiper.slides[i].classList.add(dimmedClass);
}
}
},
setDimmedSlide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i;
if (dimmedSlide) {
swiper.slides[i].classList.add(dimmedClass);
} else {
swiper.slides[i].classList.remove(dimmedClass);
}
}
},
resetDimmedSlide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
swiper.slides[i].classList.remove(dimmedClass);
}
},
getPointerMoveSize: function (e) {
if (!!e.touches) {
pointerOffset.current = e.touches[0].clientX;
} else {
pointerOffset.current = e.offsetX;
}
}
}
const swiperEvents = {
set: function () {
if (swiperObj.main == null) {
swiperObj.main = new Swiper(els.mainContainer, {
init: false,
slidesPerView: 'auto',
scrollbar: {
el: els.scrollbar,
draggable: true
},
});
swiperObj.main.on('init', swiperEvents.init);
swiperObj.main.on('slideChange', swiperEvents.slideChange);
swiperObj.main.on('transitionEnd', swiperEvents.transitionEnd);
}
if (swiperObj.bg == null) {
swiperObj.bg = new Swiper(els.bgContainer, {
init: false,
slidesPerView: 'auto',
allowTouchMove: false
});
}
els.prevArrow.style.display = 'none';
},
init: function () {
let isNextArrow = this.el.parentElement.querySelector('.swiper-button-next');
let isPrevArrow = this.el.parentElement.querySelector('.swiper-button-prev');
isNextArrow.removeAttribute('aria-label');
isNextArrow.removeAttribute('role');
isPrevArrow.removeAttribute('aria-label');
isPrevArrow.removeAttribute('role');
accessibility.slide(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0) eventList.initDimmedSlides(this);
},
slideChange: function () {
swiperObj.bg.slideTo(this.realIndex);
accessibility.slide(this);
eventList.pauseVideo(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0) eventList.setDimmedSlide(this);
if (this.realIndex > 0) eventList.setMedia(this.realIndex);
if (!lowNetwork) eventList.slideVideoPlay();
eventList.swiperArrowVisiblirity();
},
transitionEnd: function () {
setTimeout(() => {
let carouselInfo = eventList.getCarouselSizeInfo(this);
let lastIndex = this.slides.length - 1;
let lastSlide = this.slides[lastIndex];
let lastBeforeSlide = this.slides[lastIndex - 1];
let isIndex = swiperObj.main.previousIndex;
let isMoveSize = currDevice != 'mobile' ? carouselInfo.isMoveSize : carouselInfo.isMoveSize + Math.abs(carouselInfo.slideMargin);
els.videoWrap[isIndex].video.pause();
if (carouselInfo.lastBeforeSize + (carouselInfo.slideWidth / 2) < isMoveSize && carouselInfo.maxMoveSize - (carouselInfo.slideWidth / 2) <= isMoveSize) {
lastSlide.classList.add('is-last-slide');
lastBeforeSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-dimmed');
if (currDevice.indexOf('mobile') > -1) {
eventList.pauseVideo(this);
if (!lowNetwork && ctaPlayStatus) {
lastSlide.querySelector('video').play();
};
lastSlide.classList.add('swiper-slide-active');
lastBeforeSlide.classList.remove('swiper-slide-active');
if (els.nextArrow.style.display != 'none') {
els.nextArrow.style.display = 'none';
setTimeout(() => {
els.prevArrow.blur();
els.prevArrow.focus();
}, 300);
}
utils.offAccessibility(this.slides[lastIndex]);
utils.onAccessibility(this.slides[lastIndex - 1]);
}
} else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize >= carouselInfo.isMoveSize) {
lastSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-last-slide');
lastBeforeSlide.classList.remove('is-dimmed');
if (currDevice.indexOf('mobile') > -1) {
eventList.pauseVideo(this);
if (!lowNetwork && ctaPlayStatus) {
lastBeforeSlide.querySelector('video').play();
};
lastSlide.classList.remove('swiper-slide-active');
lastBeforeSlide.classList.add('swiper-slide-active');
if (els.nextArrow.style.display == 'none') els.nextArrow.style.display = '';
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
}
}
}, 0);
},
destroy: function (swiper) {
if (swiper != null) {
swiper.navigation.destroy(true);
swiper.destroy(true);
swiper = null;
}
},
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
const accessibility = {
slide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
}
};
return {
init: init,
}
})();
})();
;
(function () {
window.flagship.features.interactiveCircleToSearch = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {};
let objs = {};
let stepInfo = [];
let scrollProgress = null;
const init = function () {
els.section = document.querySelector('.js-circle-to-search');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.interactiveContent = els.section.querySelector('.js-interactive');
els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial');
els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video');
els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video');
els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video');
els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');
els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta');
};
const setProperty = function (el, index) {
el.video = el.querySelector('video');
el.video.videoWrap = el;
el.controller = el.querySelector('.js-video-control');
el.controller.video = el.querySelector('video');
el.alert = el.parentElement.querySelector('.common-tutorial__alert');
el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');
el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');
el.video.playIndex = index;
el.video.coverImage = el.querySelector('.common-video__cover-image');
};
const bindEvents = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
setProperty(els.videoWrap[i], i);
setStepStatus(els.videoList[i])
}
setVideos();
eventList.videoController();
eventList.click();
eventList.setScroller();
eventHandler.scroll();
};
const setStepStatus = function (el) {
stepInfo.push({
alert: el.getAttribute('data-alert'),
tooltip: el.getAttribute('data-tooltip')
});
};
const eventList = {
setScroller: function () {
if (els.interactiveContent.scene == null) {
els.interactiveContent.scene = SCROLLER({
trackElement: els.interactiveContent,
useFixed: false
});
}
},
scrollEvent: function () {
if (els.interactiveContent.scene != null) {
els.interactiveContent.scene.trackAnimation(function () {
scrollProgress = this.progress;
if (els.interactiveContent.classList.contains('is-tutorial-opened')) {
let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video');
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
let replayStatus = !document.documentElement.classList.contains('low_network') &&
activeVideo.paused &&
!els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) &&
!els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) &&
scrollProgress > 0 && scrollProgress < 100;
let resetStatus = scrollProgress === 0 || scrollProgress === 100;
let pauseStatus = (this.wheelDirection == 'up' && scrollProgress <= 30) || (this.wheelDirection == 'down' && scrollProgress >= 60);
if (replayStatus) {
if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) {
els.videoWrap[0].video.play();
} else {
els.videoWrap[0].video.addEventListener('canplay', function() {
els.videoWrap[0].video.play();
}, {once: true});
}
}
if (resetStatus) {
activeVideo.pause();
activeVideo.currentTime = 0;
eventList.tutorialReset();
}
if (pauseStatus && !activeVideo.paused) {
activeVideo.pause();
}
}
});
}
},
videoController: function () {
for (let i = 0; i < objs.videos.length; i++) {
objs.videos[i].controller.addEventListener('click', function () {
if (this.video.paused) {
this.video.play();
} else {
this.video.pause();
}
});
}
},
nextVideoPlay: function (index) {
els.videoList[index + 1].classList.add('is-visible');
if (els.videos[index + 1].readyState > 3) {
els.videos[index + 1].play();
} else {
els.videos[index + 1].addEventListener('loadeddata', function () {
if (this.paused) this.play();
});
}
els.videos[index + 1].videoWrap.controller.focus();
setTimeout(function () {
if (utils.detector.isTouchDevice) {
if (!!els.videoList[index].tooltipCta) {
els.videoList[index].tooltipCta.blur();
}
}
els.videos[index + 1].videoWrap.controller.focus();
utils.onAccessibility(els.videoList[index]);
if (!!els.videoList[index].tooltip) {
utils.onAccessibility(els.videoList[index].tooltip);
}
els.videoList[index].classList.remove('is-visible');
}, 300);
},
click: function () {
let self = this;
for (let i = 0; i < els.tooltipCta.length; i++) {
els.tooltipCta[i].addEventListener('click', function () {
self.nextVideoPlay(i);
});
}
},
tutorialReset: function () {
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
els.videoWrap[0].classList.remove(firstVideoHandler.playClass);
els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass);
els.videoWrap[0].classList.remove(firstVideoHandler.endedClass);
// video wrap
if (!els.videoList[0].classList.contains('is-visible')) {
els.videoList[0].classList.add('is-visible');
}
// tooltip
if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) {
els.videoWrap[0].tooltip.classList.remove('is-visible');
}
// tootip accessibility
utils.offAccessibility(els.videoWrap[0]);
if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip);
for (let i = 0; i < els.videoWrap.length; i++) {
if (i != 0) {
if (els.videoList[i].classList.contains('is-visible')) {
els.videoList[i].classList.remove('is-visible');
}
if (!els.videoWrap[i].video.paused) {
els.videoWrap[i].video.pause();
els.videoWrap[i].video.currentTime = 0;
}
// tooltip
if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) {
els.videoWrap[i].tooltip.classList.remove('is-visible');
}
utils.onAccessibility(els.videoWrap[i]);
if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip);
}
}
// replay cta
els.tutorialReplay.style.display = 'none';
els.tutorialReplay.setAttribute('aria-hidden', true);
els.tutorialReplay.setAttribute('tabindex', -1);
}
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scrollEvent);
eventList.scrollEvent();
}
}
const setVideos = function () {
objs.videos = [];
for (let i = 0; i < els.videoWrap.length; i++) {
let isVideoWrap = els.videoWrap[i];
objs.videos.push(utils.videoHandler({
wrap: isVideoWrap,
video: isVideoWrap.video,
controller: isVideoWrap.controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
if (this.controller.style.display = 'none') {
this.controller.style.display = '';
}
}
},
playCallback: function () {
els.videoList[this.video.playIndex].removeAttribute('tabindex');
els.videoList[this.video.playIndex].removeAttribute('aria-hidden');
this.controller.style.display = 'block';
utils.offAccessibility(this.controller);
setTagging.pause(this.controller);
let nextPlayindex = this.video.playIndex + 1;
if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) {
if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) {
videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);
}
if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]);
}
}
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
let self = this;
if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') {
if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled');
if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible');
utils.offAccessibility(this.wrap.tooltip);
}
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
let playStatus = scrollProgress > 30 && scrollProgress < 60;
if (playStatus && !!this.wrap.tooltipCta) {
this.wrap.tooltipCta.focus();
setTimeout(function () {
self.wrap.tooltipCta.focus();
}, 300);
}
if ((els.videos.length - 1) == this.video.playIndex) {
els.tutorialReplay.style.display = 'block';
els.tutorialReplay.removeAttribute('tabindex');
els.tutorialReplay.removeAttribute('aria-hidden');
if (playStatus) {
els.tutorialReplay.focus();
setTimeout(function () {
els.tutorialReplay.focus();
}, 300);
}
}
setTimeout(function () {
self.controller.style.display = 'none';
}, 100);
}
}));
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.interactiveInterpreter = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {};
let objs = {};
let stepInfo = [];
let scrollProgress = null;
let isMute = null;
const init = function () {
els.section = document.querySelector('.js-interpreter');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.interactiveContent = els.section.querySelector('.js-interactive');
els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial');
els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video');
els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video');
els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video');
els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');
els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta');
els.allVideoWrap = els.section.querySelectorAll('.js-video-wrap');
els.muteCta = els.section.querySelectorAll('.js-mute-cta');
// status
isMute = !!els.muteCta && els.muteCta.length > 0;
};
const setProperty = function (el, index) {
el.video = el.querySelector('video');
el.video.videoWrap = el;
el.controller = el.querySelector('.js-video-control');
el.controller.video = el.querySelector('video');
el.alert = el.parentElement.querySelector('.common-tutorial__alert');
el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');
el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');
el.video.playIndex = index;
el.video.coverImage = el.querySelector('.common-video__cover-image');
if (isMute) {
el.muteCta = els.muteCta[index + 1];
}
};
const bindEvents = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
setProperty(els.videoWrap[i], i);
setStepStatus(els.videoList[i]);
}
setVideos();
eventList.videoController();
eventList.click.tooltipCta();
eventList.setScroller();
eventHandler.scroll();
if (isMute) {
muteEventHandler();
}
};
const setStepStatus = function (el) {
stepInfo.push({
alert: el.getAttribute('data-alert'),
tooltip: el.getAttribute('data-tooltip')
});
};
const muteEventHandler = function () {
for (let i = 0; i < els.muteCta.length; i++) {
muteEventList.setProperty(els.muteCta[i], i);
muteEventList.setMuteBlindText(els.muteCta[i], i);
muteEventList.click(els.muteCta[i], i);
els.allVideoWrap[i].querySelector('video').style.pointerEvents = 'none';
}
};
const muteEventList = {
setProperty: function (muteCta, index) {
muteCta.videoWrap = els.allVideoWrap[index];
muteCta.videoWrap.muteCta = muteCta;
muteCta.video = els.allVideoWrap[index].querySelector('video');
muteCta.blind = muteCta.querySelector('.blind');
},
setMuteBlindText: function (muteCta) {
muteCta.blind.innerText = muteCta.getAttribute('data-unmute');
},
click: function (muteCta) {
muteCta.addEventListener('click', function () {
let isMute = this.video.muted;
if (!!isMute) {
this.classList.remove('is-muted');
this.classList.add('is-unmuted');
this.blind.innerText = this.getAttribute('data-mute');
this.video.muted = false;
setTagging.mute(this);
} else {
this.classList.remove('is-unmuted');
this.classList.add('is-muted');
this.blind.innerText = this.getAttribute('data-unmute');
this.video.muted = true;
setTagging.unmute(this);
}
});
},
};
const eventList = {
setScroller: function () {
if (els.interactiveContent.scene == null) {
els.interactiveContent.scene = SCROLLER({
trackElement: els.interactiveContent,
useFixed: false
});
}
},
scrollEvent: function () {
if (els.interactiveContent.scene != null) {
els.interactiveContent.scene.trackAnimation(function () {
scrollProgress = this.progress;
if (els.interactiveContent.classList.contains('is-tutorial-opened')) {
let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video');
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
let replayStatus = !document.documentElement.classList.contains('low_network') &&
activeVideo.paused &&
!els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) &&
!els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) &&
scrollProgress > 0 && scrollProgress < 100;
let resetStatus = scrollProgress === 0 || scrollProgress === 100;
let pauseStatus = (this.wheelDirection == 'up' && scrollProgress <= 30) || (this.wheelDirection == 'down' && scrollProgress >= 60);
if (replayStatus) {
if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) {
els.videoWrap[0].video.play();
} else {
els.videoWrap[0].video.addEventListener('canplay', function () {
els.videoWrap[0].video.play();
}, {once: true});
}
}
if (resetStatus) {
activeVideo.pause();
activeVideo.currentTime = 0;
eventList.tutorialReset();
}
if (pauseStatus && !activeVideo.paused) {
activeVideo.pause();
}
}
});
}
},
videoController: function () {
for (let i = 0; i < objs.videos.length; i++) {
objs.videos[i].controller.addEventListener('click', function () {
if (this.video.paused) {
this.video.play();
} else {
this.video.pause();
}
});
}
},
nextVideoPlay: function (index) {
els.videoList[index + 1].classList.add('is-visible');
if (els.videos[index + 1].readyState > 3) {
els.videos[index + 1].play();
} else {
els.videos[index + 1].addEventListener('loadeddata', function () {
if (this.paused) this.play();
});
}
els.videos[index + 1].videoWrap.controller.focus();
setTimeout(function () {
if (utils.detector.isTouchDevice) {
if (!!els.videoList[index].tooltipCta) {
els.videoList[index].tooltipCta.blur();
}
}
els.videos[index + 1].videoWrap.controller.focus();
utils.onAccessibility(els.videoList[index]);
if (!!els.videoList[index].tooltip) {
utils.onAccessibility(els.videoList[index].tooltip);
}
els.videoList[index].classList.remove('is-visible');
}, 300);
},
click: {
tooltipCta: function () {
for (let i = 0; i < els.tooltipCta.length; i++) {
els.tooltipCta[i].addEventListener('click', function () {
eventList.nextVideoPlay(i);
});
}
}
},
tutorialReset: function () {
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
els.videoWrap[0].classList.remove(firstVideoHandler.playClass);
els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass);
els.videoWrap[0].classList.remove(firstVideoHandler.endedClass);
// video wrap
if (!els.videoList[0].classList.contains('is-visible')) {
els.videoList[0].classList.add('is-visible');
}
// tooltip
if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) {
els.videoWrap[0].tooltip.classList.remove('is-visible');
}
// tootip accessibility
utils.offAccessibility(els.videoWrap[0]);
if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip);
for (let i = 0; i < els.videoWrap.length; i++) {
if (i != 0) {
if (els.videoList[i].classList.contains('is-visible')) {
els.videoList[i].classList.remove('is-visible');
}
if (!els.videoWrap[i].video.paused) {
els.videoWrap[i].video.pause();
els.videoWrap[i].video.currentTime = 0;
}
// tooltip
if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) {
els.videoWrap[i].tooltip.classList.remove('is-visible');
}
utils.onAccessibility(els.videoWrap[i]);
if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip);
}
}
// replay cta
els.tutorialReplay.style.display = 'none';
els.tutorialReplay.setAttribute('aria-hidden', true);
els.tutorialReplay.setAttribute('tabindex', -1);
}
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scrollEvent);
eventList.scrollEvent();
}
}
const setVideos = function () {
objs.videos = [];
for (let i = 0; i < els.videoWrap.length; i++) {
let isVideoWrap = els.videoWrap[i];
objs.videos.push(utils.videoHandler({
wrap: isVideoWrap,
video: isVideoWrap.video,
controller: isVideoWrap.controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
if (this.controller.style.display = 'none') {
this.controller.style.display = '';
}
}
},
playCallback: function () {
els.videoList[this.video.playIndex].removeAttribute('tabindex');
els.videoList[this.video.playIndex].removeAttribute('aria-hidden');
utils.offAccessibility(this.wrap.muteCta);
if (!this.video.muted) {
this.wrap.muteCta.classList.remove('is-unmuted');
this.wrap.muteCta.video.muted = true;
this.wrap.muteCta.blind.innerText = this.wrap.muteCta.getAttribute('data-unmute');
setTagging.unmute(this.wrap.muteCta);
}
this.controller.style.display = 'block';
utils.offAccessibility(this.controller);
setTagging.pause(this.controller);
let nextPlayindex = this.video.playIndex + 1;
if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) {
if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) {
videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);
}
if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]);
}
}
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
let self = this;
if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') {
if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled');
if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible');
utils.offAccessibility(this.wrap.tooltip);
}
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
let playStatus = scrollProgress > 30 && scrollProgress < 60;
if (playStatus && !!this.wrap.tooltipCta) {
this.wrap.tooltipCta.focus();
setTimeout(function () {
self.wrap.tooltipCta.focus();
}, 300);
}
if ((els.videos.length - 1) == this.video.playIndex) {
els.tutorialReplay.style.display = 'block';
els.tutorialReplay.removeAttribute('tabindex');
els.tutorialReplay.removeAttribute('aria-hidden');
if (playStatus) {
els.tutorialReplay.focus();
setTimeout(function () {
els.tutorialReplay.focus();
}, 300);
}
}
setTimeout(function () {
self.controller.style.display = 'none';
}, 100);
}
}));
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
},
mute: function (targetCta) {
if (targetCta.hasAttribute('data-omni')) {
let dataOmni = targetCta.getAttribute('data-omni').toLowerCase();
targetCta.setAttribute('data-omni', dataOmni.replace('unmute', 'mute'));
}
if (targetCta.hasAttribute('ga-la')) {
let gaLa = targetCta.getAttribute('ga-la').toLowerCase();
targetCta.setAttribute('ga-la', gaLa.replace('unmute', 'mute'));
}
},
unmute: function (targetCta) {
if (targetCta.hasAttribute('data-omni')) {
let dataOmni = targetCta.getAttribute('data-omni').toLowerCase();
targetCta.setAttribute('data-omni', dataOmni.replace('mute', 'unmute'));
}
if (targetCta.hasAttribute('ga-la')) {
let gaLa = targetCta.getAttribute('ga-la').toLowerCase();
targetCta.setAttribute('ga-la', gaLa.replace('mute', 'unmute'));
}
},
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.interactiveNoteAssist = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {};
let objs = {};
let stepInfo = [];
let scrollProgress = null;
const init = function () {
els.section = document.querySelector('.js-note-assist');
if (!!els.section) {
setElements();
bindEvents();
}
};
const setElements = function () {
els.interactiveContent = els.section.querySelector('.js-interactive');
els.tutorialVideoContainer = els.section.querySelector('.common-interactive__tutorial');
els.videoList = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video');
els.videoWrap = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video');
els.videos = els.tutorialVideoContainer.querySelectorAll('.common-interactive__tutorial-video .common-video__video');
els.tooltipCta = els.tutorialVideoContainer.querySelectorAll('.js-tutorial-tooltip-cta');
els.tutorialReplay = els.tutorialVideoContainer.querySelector('.js-replay-cta');
};
const setProperty = function (el, index) {
el.video = el.querySelector('video');
el.video.videoWrap = el;
el.controller = el.querySelector('.js-video-control');
el.controller.video = el.querySelector('video');
el.alert = el.parentElement.querySelector('.common-tutorial__alert');
el.tooltip = el.parentElement.querySelector('.js-tutorial-tooltip');
el.tooltipCta = el.parentElement.querySelector('.js-tutorial-tooltip-cta');
el.video.playIndex = index;
el.video.coverImage = el.querySelector('.common-video__cover-image');
};
const bindEvents = function () {
for (let i = 0; i < els.videoWrap.length; i++) {
setProperty(els.videoWrap[i], i);
setStepStatus(els.videoList[i])
}
setVideos();
eventList.videoController();
eventList.click();
eventList.setScroller();
eventHandler.scroll();
};
const setStepStatus = function (el) {
stepInfo.push({
alert: el.getAttribute('data-alert'),
tooltip: el.getAttribute('data-tooltip')
});
};
const eventList = {
setScroller: function () {
if (els.interactiveContent.scene == null) {
els.interactiveContent.scene = SCROLLER({
trackElement: els.interactiveContent,
useFixed: false
});
}
},
scrollEvent: function () {
if (els.interactiveContent.scene != null) {
els.interactiveContent.scene.trackAnimation(function () {
scrollProgress = this.progress;
if (els.interactiveContent.classList.contains('is-tutorial-opened')) {
let activeVideo = els.tutorialVideoContainer.querySelector('.is-visible video');
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
let replayStatus = !document.documentElement.classList.contains('low_network') &&
activeVideo.paused &&
!els.videoWrap[0].classList.contains(firstVideoHandler.endedClass) &&
!els.videoWrap[0].classList.contains(firstVideoHandler.pauseClass) &&
scrollProgress > 0 && scrollProgress < 100;
let resetStatus = scrollProgress === 0 || scrollProgress === 100;
let pauseStatus = (this.wheelDirection == 'up' && scrollProgress <= 30) || (this.wheelDirection == 'down' && scrollProgress >= 60);
if (replayStatus) {
if (els.videoWrap[0].video.readyState == 4 && els.videoWrap[0].video.paused) {
els.videoWrap[0].video.play();
} else {
els.videoWrap[0].video.addEventListener('canplay', function () {
els.videoWrap[0].video.play();
}, {once: true});
}
}
if (resetStatus) {
activeVideo.pause();
activeVideo.currentTime = 0;
eventList.tutorialReset();
}
if (pauseStatus && !activeVideo.paused) {
activeVideo.pause();
}
}
});
}
},
videoController: function () {
for (let i = 0; i < objs.videos.length; i++) {
objs.videos[i].controller.addEventListener('click', function () {
if (this.video.paused) {
this.video.play();
} else {
this.video.pause();
}
});
}
},
nextVideoPlay: function (index) {
els.videoList[index + 1].classList.add('is-visible');
if (els.videos[index + 1].readyState > 3) {
els.videos[index + 1].play();
} else {
els.videos[index + 1].addEventListener('loadeddata', function () {
if (this.paused) this.play();
});
}
els.videos[index + 1].videoWrap.controller.focus();
setTimeout(function () {
if (utils.detector.isTouchDevice) {
if (!!els.videoList[index].tooltipCta) {
els.videoList[index].tooltipCta.blur();
}
}
els.videos[index + 1].videoWrap.controller.focus();
utils.onAccessibility(els.videoList[index]);
if (!!els.videoList[index].tooltip) {
utils.onAccessibility(els.videoList[index].tooltip);
}
els.videoList[index].classList.remove('is-visible');
}, 300);
},
click: function () {
let self = this;
for (let i = 0; i < els.tooltipCta.length; i++) {
els.tooltipCta[i].addEventListener('click', function () {
self.nextVideoPlay(i);
});
}
},
tutorialReset: function () {
let firstVideoHandler = els.videoWrap[0].video.videoHandler;
els.videoWrap[0].classList.remove(firstVideoHandler.playClass);
els.videoWrap[0].classList.remove(firstVideoHandler.pauseClass);
els.videoWrap[0].classList.remove(firstVideoHandler.endedClass);
// video wrap
if (!els.videoList[0].classList.contains('is-visible')) {
els.videoList[0].classList.add('is-visible');
}
// tooltip
if (!!els.videoWrap[0].tooltip && els.videoWrap[0].tooltip.classList.contains('is-visible')) {
els.videoWrap[0].tooltip.classList.remove('is-visible');
}
// tootip accessibility
utils.offAccessibility(els.videoWrap[0]);
if (!!els.videoWrap[0].tooltip) utils.onAccessibility(els.videoWrap[0].tooltip);
for (let i = 0; i < els.videoWrap.length; i++) {
if (i != 0) {
if (els.videoList[i].classList.contains('is-visible')) {
els.videoList[i].classList.remove('is-visible');
}
if (!els.videoWrap[i].video.paused) {
els.videoWrap[i].video.pause();
els.videoWrap[i].video.currentTime = 0;
}
// tooltip
if (!!els.videoWrap[i].tooltip && els.videoWrap[i].tooltip.classList.contains('is-visible')) {
els.videoWrap[i].tooltip.classList.remove('is-visible');
}
utils.onAccessibility(els.videoWrap[i]);
if (!!els.videoWrap[i].tooltip) utils.onAccessibility(els.videoWrap[i].tooltip);
}
}
// replay cta
els.tutorialReplay.style.display = 'none';
els.tutorialReplay.setAttribute('aria-hidden', true);
els.tutorialReplay.setAttribute('tabindex', -1);
}
};
const eventHandler = {
scroll: function () {
window.addEventListener('scroll', eventList.scrollEvent);
eventList.scrollEvent();
}
}
const setVideos = function () {
objs.videos = [];
for (let i = 0; i < els.videoWrap.length; i++) {
let isVideoWrap = els.videoWrap[i];
objs.videos.push(utils.videoHandler({
wrap: isVideoWrap,
video: isVideoWrap.video,
controller: isVideoWrap.controller,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
if (this.controller.style.display = 'none') {
this.controller.style.display = '';
}
}
},
playCallback: function () {
els.videoList[this.video.playIndex].removeAttribute('tabindex');
els.videoList[this.video.playIndex].removeAttribute('aria-hidden');
this.controller.style.display = 'block';
utils.offAccessibility(this.controller);
setTagging.pause(this.controller);
let nextPlayindex = this.video.playIndex + 1;
if ((els.videos.length - 1) > this.video.playIndex && els.videos[nextPlayindex].readyState < 4) {
if (!els.videos[nextPlayindex].classList.contains('is-video-load-complete')) {
videoLoader.setResponsiveMedia([els.videos[nextPlayindex]]);
}
if (!els.videos[nextPlayindex].coverImage.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([els.videos[nextPlayindex].coverImage]);
}
}
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
let self = this;
if (!!this.wrap.tooltip && stepInfo[this.video.playIndex].tooltip == 'true') {
if (!!this.wrap.tooltipCta) this.wrap.tooltipCta.removeAttribute('disabled');
if (!!this.wrap.tooltip) this.wrap.tooltip.classList.add('is-visible');
utils.offAccessibility(this.wrap.tooltip);
}
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
let playStatus = scrollProgress > 30 && scrollProgress < 60;
if (playStatus && !!this.wrap.tooltipCta) {
this.wrap.tooltipCta.focus();
setTimeout(function () {
self.wrap.tooltipCta.focus();
}, 300);
}
if ((els.videos.length - 1) == this.video.playIndex) {
els.tutorialReplay.style.display = 'block';
els.tutorialReplay.removeAttribute('tabindex');
els.tutorialReplay.removeAttribute('aria-hidden');
if (playStatus) {
els.tutorialReplay.focus();
setTimeout(function () {
els.tutorialReplay.focus();
}, 300);
}
}
setTimeout(function () {
self.controller.style.display = 'none';
}, 100);
}
}));
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.interactive = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize;
let els = {},
prevDevice = null,
currDevice = resize.checkResolution(),
scrollProgress = null;
const init = function () {
els.interactiveContents = document.querySelectorAll('.js-interactive');
if (!!els.interactiveContents && els.interactiveContents.length > 0) {
for (let i = 0; i < els.interactiveContents.length; i++) {
setProperty(els.interactiveContents[i], i);
eventList.setIntroVideo(els.interactiveContents[i]);
eventList.setIntroScene(els.interactiveContents[i]);
bindEvents(els.interactiveContents[i], i);
}
}
};
const setProperty = function (content, index) {
// introVideo
content.index = index;
content.introVideo = content.querySelector('.js-interactive-intro-video video');
content.introVideo.videoWrap = content.querySelector('.js-interactive-intro-video');
content.introVideo.wrap = content.querySelector('.js-interactive-intro-video .js-video-wrap');
content.introVideo.parentWrap = content.parentElement;
content.introVideo.controllerCta = content.introVideo.videoWrap.querySelector('.js-video-control');
content.introVideo.controllerCta.video = content.introVideo;
content.introVideo.tooltip = content.querySelector('.js-tutorial-tooltip');
content.introVideo.tooltipCta = content.querySelector('.js-tutorial-tooltip-cta');
content.introVideo.tooltipCta.parentWrap = content;
content.tutorialContentWrap = content.querySelectorAll('.js-tutorial-video');
content.tutorialContentWrap.tooltip = content.querySelectorAll('.js-tutorial-video .js-tutorial-tooltip');
// start, reverse point
content.introVideo.wrap.startPoint = !!content.introVideo.wrap.getAttribute('data-start-point') ? parseInt(content.introVideo.wrap.getAttribute('data-start-point')) : undefined;
content.introVideo.wrap.reversePoint = !!content.introVideo.wrap.getAttribute('data-reverse-point') ? parseInt(content.introVideo.wrap.getAttribute('data-reverse-point')) : undefined;
content.introVideo.wrap.moStartPoint = !!content.introVideo.wrap.getAttribute('data-mo-start-point') ? parseInt(content.introVideo.wrap.getAttribute('data-mo-start-point')) : undefined;
content.introVideo.wrap.moReversePoint = !!content.introVideo.wrap.getAttribute('data-mo-reverse-point') ? parseInt(content.introVideo.wrap.getAttribute('data-mo-reverse-point')) : undefined;
// replayCta
content.replayCta = content.querySelector('.js-replay-cta');
content.replayCta.parentWrap = content;
};
const bindEvents = function (content, i) {
eventHandler.click.introTooltipCta(content.introVideo.tooltipCta);
eventHandler.click.replayCta(content.replayCta);
eventHandler.click.videoController(content.introVideo.controllerCta);
eventHandler.scroll(content);
eventList.scroll(content);
resize.add(function (currRes) {
eventList.resize(currRes, content);
});
};
const eventList = {
setIntroVideo: function (content) {
utils.videoHandler({
playType: 'scrollPlay',
startPoint: content.introVideo.wrap.startPoint,
reversePoint: content.introVideo.wrap.reversePoint,
wrap: content.introVideo.wrap,
video: content.introVideo,
controller: content.introVideo.controllerCta,
resetCallback: function () {
if (this.wrap.classList.contains('is-completed')) {
this.wrap.classList.remove('is-completed');
}
if (this.wrap.classList.contains('is-started')) {
this.wrap.classList.remove('is-started');
}
utils.offAccessibility(content.introVideo.videoWrap);
if (content.introVideo.controllerCta.style.display == 'none') {
content.introVideo.controllerCta.style.display = 'block';
}
if (this.video.tooltip.classList.contains('is-visible')) {
this.video.tooltip.classList.remove('is-visible');
}
this.video.tooltip.classList.remove('is-visible');
utils.onAccessibility(this.video.tooltip);
},
playCallback: function () {
if (!this.wrap.classList.contains('is-started')) {
this.wrap.classList.add('is-started');
}
setTagging.pause(this.controller);
let videoWrap = content.tutorialContentWrap[0].querySelector('.js-video-wrap');
videoWrap.coverImg = videoWrap.querySelector('.common-video__cover-image');
videoWrap.video = videoWrap.querySelector('video');
if (!!videoWrap.coverImg && !videoWrap.coverImg.classList.contains('is-img-load-complete')) {
imageLoader.setResponsiveMedia([videoWrap.coverImg]);
}
if (!!videoWrap.video && !videoWrap.video.classList.contains('is-video-load-complete')) {
videoLoader.setResponsiveMedia([videoWrap.video]);
}
},
pauseCallback: function () {
setTagging.play(this.controller);
},
endCallback: function () {
let self = this;
if (!this.wrap.classList.contains('is-completed')) {
this.wrap.classList.add('is-completed');
}
this.video.tooltip.classList.add('is-visible');
utils.offAccessibility(this.video.tooltip);
let isPlaySection = null;
isPlaySection = scrollProgress > 30 && scrollProgress < 60;
if (isPlaySection) {
this.video.tooltipCta.focus();
setTimeout(function () {
self.video.tooltipCta.focus();
self.controller.style.display = 'none';
}, 300);
}
}
});
},
setIntroScene: function (content) {
content.introVideo.scene = SCROLLER({
trackElement: content.introVideo,
useFixed: false,
resize: utils.detector.isTouchDevice ? false : true
});
},
scroll: function (content) {
if (!content.classList.contains('is-tutorial-opened')) {
content.introVideo.scene.trackAnimation(function () {
content.introVideo.videoHandler.scrollActive(this.progress);
scrollProgress = this.progress;
let pauseStatus = (this.wheelDirection == 'up' && scrollProgress <= 30) || (this.wheelDirection == 'down' && scrollProgress >= 60);
if (pauseStatus && !content.introVideo.paused) {
content.introVideo.pause();
}
});
}
},
click: {
introVideoTooltipCta: function () {
let content = this.parentWrap;
content.classList.add('is-tutorial-opened');
utils.onAccessibility(content.introVideo.videoWrap);
content.tutorialContentWrap[0].classList.add('is-visible');
utils.offAccessibility(content.tutorialContentWrap[0]);
content.tutorialContentWrap[0].querySelector('.common-video__control').focus();
setTimeout(function () {
content.tutorialContentWrap[0].querySelector('.common-video__control').focus();
}, 300);
content.introVideo.tooltip.classList.remove('is-visible');
let videoWrap = content.tutorialContentWrap[0].querySelector('.js-video-wrap');
videoWrap.video.play();
},
replayCta: function () {
let content = this.parentWrap;
content.introVideo.tooltip.classList.remove('is-visible');
utils.onAccessibility(content.introVideo.tooltip);
utils.offAccessibility(content.introVideo.videoWrap);
content.introVideo.controllerCta.style.display = 'block';
content.introVideo.controllerCta.focus();
setTimeout(function () {
content.introVideo.controllerCta.focus();
}, 300);
content.replayCta.style.display = 'none';
content.replayCta.setAttribute('aria-hidden', true);
content.replayCta.setAttribute('tabindex', -1);
for (let i = 0; i < content.tutorialContentWrap.length; i++) {
content.tutorialContentWrap[i].classList.remove('is-visible');
if (!!content.tutorialContentWrap.tooltip[i]) {
content.tutorialContentWrap.tooltip[i].classList.remove('is-visible');
}
utils.onAccessibility(content.tutorialContentWrap[i]);
setTimeout(function () {
content.tutorialContentWrap[i].querySelector('video').currentTime = 0;
}, 300);
}
content.classList.remove('is-tutorial-opened');
content.introVideo.play();
},
videoController: function (e) {
if (e.target == e.currentTarget) {
if (e.currentTarget.video.paused) {
e.currentTarget.video.play();
} else {
e.currentTarget.video.pause();
}
}
},
},
reset: function (content) {
if (content.classList.contains('is-tutorial-opened')) {
content.classList.remove('is-tutorial-opened');
}
// replay cta
if (content.replayCta.style.display == 'block') {
content.replayCta.style.display = 'none';
content.replayCta.setAttribute('aria-hidden', true);
content.replayCta.setAttribute('tabindex', -1);
}
// tutorial video
let tutorialWrap = content.tutorialContentWrap;
for (let i = 0; i < tutorialWrap.length; i++) {
tutorialWrap[i].classList.remove('is-visible');
utils.onAccessibility(tutorialWrap[i]);
// video
tutorialWrap[i].video = tutorialWrap[i].querySelector('video');
if (!tutorialWrap[i].video.paused) {
tutorialWrap[i].video.pause();
tutorialWrap[i].video.currentTime = 0;
}
// tooltip
if (!!tutorialWrap.tooltip[i]) {
if (tutorialWrap.tooltip[i].classList.contains('is-visible')) {
tutorialWrap.tooltip[i].classList.remove('is-visible');
}
utils.onAccessibility(tutorialWrap.tooltip[i]);
}
}
// intro video
utils.offAccessibility(content.introVideo.videoWrap);
if (content.introVideo.controllerCta.style.display == 'none') {
content.introVideo.controllerCta.style.display = 'block';
}
// intro tooltip
if (content.introVideo.tooltip.classList.contains('is-visible')) {
content.introVideo.tooltip.classList.remove('is-visible')
}
utils.onAccessibility(content.introVideo.tooltip);
if (scrollProgress >= 30 && scrollProgress <= 60) {
if (content.introVideo.paused) {
content.introVideo.currentTime = 0;
content.introVideo.play();
}
}
},
resize: function (currRes, content) {
currDevice = currRes;
if (prevDevice != currDevice) {
eventList.reset(content);
}
prevDevice = currDevice;
},
};
const eventHandler = {
click: {
replayCta: function (replayCta) {
replayCta.addEventListener('click', eventList.click.replayCta);
},
introTooltipCta: function (introTooltipCta) {
introTooltipCta.addEventListener('click', eventList.click.introVideoTooltipCta);
},
videoController: function (introVideoController) {
introVideoController.addEventListener('click', eventList.click.videoController);
}
},
scroll: function (content) {
window.addEventListener('scroll', function () {
eventList.scroll(content);
});
}
};
const setTagging = {
play: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('pause', 'play'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('pause', 'play'));
}
},
pause: function (targetController) {
if (targetController.hasAttribute('data-omni')) {
let dataOmni = targetController.getAttribute('data-omni').toLowerCase();
targetController.setAttribute('data-omni', dataOmni.replace('play', 'pause'));
}
if (targetController.hasAttribute('ga-la')) {
let gaLa = targetController.getAttribute('ga-la').toLowerCase();
targetController.setAttribute('ga-la', gaLa.replace('play', 'pause'));
}
}
};
return {
init: init
}
})();
})();
(function () {
window.flagship.features.moveFeature = (function () {
const utils = window.flagship.common.utils;
let els = {};
const init = function () {
els.jumpCta = document.querySelectorAll('.js-jump-cta');
if (!!els.jumpCta) {
setProperty();
bindEvents();
}
};
const setProperty = function () {
for (let i = 0; i < els.jumpCta.length; i++) {
els.jumpCta[i].sectionId = els.jumpCta[i].getAttribute('href');
els.jumpCta[i].section = document.querySelector(`${els.jumpCta[i].sectionId}`);
els.jumpCta[i].returnCta = els.jumpCta[i].section.querySelector('.js-return-cta');
els.jumpCta[i].returnCta.jumpCta = els.jumpCta[i];
els.jumpCta[i].returnCta.section = els.jumpCta[i].section;
}
};
const bindEvents = function () {
eventHandler.click();
eventList.setScene();
eventHandler.scroll();
};
const eventHandler = {
click: function () {
for (let i = 0; i < els.jumpCta.length; i++) {
els.jumpCta[i].addEventListener('click', eventList.clickJumpCta);
els.jumpCta[i].returnCta.addEventListener('click', eventList.clickReturnCta);
}
},
scroll: function () {
window.addEventListener('scroll', eventList.hideReturnCta);
}
};
const eventList = {
setScene: function () {
for(let i=0; i swiper.slides.length -1 ? swiper.slides.length -1 : index + 1;
let videoLength = swiper.el.querySelectorAll('video').length - 1;
let imageLength = swiper.el.querySelectorAll('img').length - 1;
let videoloadComplateLength = swiper.el.querySelectorAll('.is-video-load-complete').length - 1;
let imageloadComplateLength = swiper.el.querySelectorAll('.is-img-load-complete').length - 1;
let nextVideo = swiper.slides[isIndex].querySelector('video');
let nextImage = swiper.slides[isIndex].querySelector('img');
if (videoloadComplateLength != videoLength) {
if (!!nextVideo) {
videoLoader.setResponsiveMedia([nextVideo]);
}
}
if (imageloadComplateLength != imageLength) {
if (!!nextImage) {
imageLoader.setResponsiveMedia([nextImage]);
}
}
},
resetVideo: function(swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
let isVideo = swiper.slides[i].video;
if (!!isVideo && !isVideo.paused) {
isVideo.pause();
isVideo.currentTime = 0;
};
};
},
getCarouselSizeInfo: function(swiper) {
let slideLength = swiper.slides.length;
let slideWidth = swiper.slides[0].clientWidth;
let slideMargin = parseInt(window.getComputedStyle(swiper.slides[0]).margin.split(' ')[isRtl ? 3 : 1]);
let slideSize = slideWidth + slideMargin;
let maxMoveSize = ((slideSize * slideLength) - slideMargin) - swiper.wrapperEl.clientWidth;
let viewWidth = swiper.wrapperEl.clientWidth;
let viewLength = parseInt((viewWidth + slideMargin)/slideSize);
let lastBeforeSize = slideLength == 2 ? 0 : Math.abs((maxMoveSize - slideSize)) + Math.abs((viewWidth - slideWidth));
let isMoveSize = Math.abs(parseInt(window.getComputedStyle(swiper.wrapperEl).transform.split(',')[4]));
return {
slideWidth: slideWidth,
slideMargin: slideMargin,
slideSize: slideSize,
maxMoveSize: maxMoveSize,
viewWidth: viewWidth,
viewLength: viewLength,
lastBeforeSize: lastBeforeSize,
isMoveSize: isMoveSize
}
},
setDimmedSlide: function(swiper) {
if (currDevice != 'mobile') {
for (let i = 0; i < swiper.slides.length; i++) {
let dimmedSlide = (swiper.activeIndex) > i || (swiper.activeIndex + (eventList.getCarouselSizeInfo(swiper).viewLength - 1)) < i;
if (dimmedSlide) {
swiper.slides[i].classList.add(dimmedClass);
} else {
swiper.slides[i].classList.remove(dimmedClass);
}
}
}
},
slideChange: function () {
accessibility.slide(this);
eventList.resetVideo(this);
if (eventList.getCarouselSizeInfo(this).viewLength > 0 && currDevice != 'mobile') eventList.setDimmedSlide(this);
if (this.realIndex > 0) eventList.setMedia(this, this.realIndex);
},
transitionEnd: function() {
if (this.slides.length < 3 && currDevice == 'mobile') return;
setTimeout(() => {
let carouselInfo = eventList.getCarouselSizeInfo(this);
let lastIndex = this.slides.length -1;
let lastSlide = this.slides[lastIndex];
let lastBeforeSlide = this.slides[lastIndex - 1];
if (carouselInfo.isMoveSize > carouselInfo.lastBeforeSize || carouselInfo.maxMoveSize == carouselInfo.isMoveSize) {
eventList.resetVideo(this);
lastSlide.classList.add('is-last-slide');
lastBeforeSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-dimmed');
utils.offAccessibility(this.slides[lastIndex]);
utils.onAccessibility(this.slides[lastIndex - 1]);
} else if (lastSlide.classList.contains('is-last-slide') && carouselInfo.lastBeforeSize == carouselInfo.isMoveSize) {
eventList.resetVideo(this);
lastSlide.classList.add('is-dimmed');
lastSlide.classList.remove('is-last-slide');
lastBeforeSlide.classList.remove('is-dimmed');
utils.onAccessibility(this.slides[lastIndex]);
utils.offAccessibility(this.slides[lastIndex - 1]);
}
let swiperActiveSlide = els.section.querySelector('.swiper-slide-active');
let lastSlideActive = els.section.querySelector('.is-last-slide');
let isActiveSlide = !!lastSlideActive ? lastSlideActive : swiperActiveSlide;
let isActiveVideo = isActiveSlide.querySelector('video');
if (!!isActiveVideo && !isLowBand) isActiveVideo.play()
}, 0);
},
setScene: function() {
els.section.scene = SCROLLER({
trackElement: els.section
});
},
setVideoType: function() {
if (!!els.videos) {
for (let i = 0; i < els.videos.length; i++) {
els.videos[i].videoHandler.playType = 'scrollPlay';
}
}
},
scroll: function() {
els.section.scene.trackAnimation(function() {
let swiperActiveSlide = els.section.querySelector('.swiper-slide-active');
let lastSlideActive = els.section.querySelector('.is-last-slide');
let isActiveSlide = !!lastSlideActive ? lastSlideActive : swiperActiveSlide;
let isActiveVideo = isActiveSlide.querySelector('video');
if (!!isActiveVideo && !isLowBand) isActiveVideo.videoHandler.scrollActive(this.progress);
});
}
};
const accessibility = {
slide: function (swiper) {
for (let i = 0; i < swiper.slides.length; i++) {
if (i != swiper.activeIndex) {
utils.onAccessibility(swiper.slides[i]);
} else {
utils.offAccessibility(swiper.slides[i]);
}
}
}
};
return {
init: init
}
})();
})();
;
(function () {
window.flagship.features.viewer = (function () {
const utils = window.flagship.common.utils,
resize = window.flagship.common.resize,
common = window.flagship.features.common,
isLow = utils.isLowNetwork();
let els = {},
currDevice = resize.checkResolution();
const init = function () {
els.viewerBtn = document.querySelector('.viewer-btn');
els.section = document.querySelector('.js-colors');
els.popup = document.querySelector('.js-viewer');
if (!!isLow) {
if (!els.viewerBtn) return;
els.currentWrap = els.popup;
setElements();
setProperty();
popupEvents.set();
bindEvents();
} else {
if (!els.section) return;
els.currentWrap = els.section;
setElements();
setProperty();
bindEvents();
}
};
const setElements = function () {
els.wrapEl = document.querySelector('#wrap');
els.contents = document.querySelector('#contents');
// popup
els.popupWrap = els.currentWrap.querySelector('.js-viewer-wrap');
els.popupInner = els.currentWrap.querySelector('.js-viewer-inner');
els.closeCta = els.currentWrap.querySelector('.js-viewer-close');
els.popupContents = els.currentWrap.querySelector('.js-viewer-contents');
// popup-scroll
els.popupScroll = els.currentWrap.querySelector('.js-viewer-scroll');
els.popupScrollUpBtn = els.currentWrap.querySelector('.js-scroll-up');
els.popupScrollDownBtn = els.currentWrap.querySelector('.js-scroll-down');
// viewer
els.viewerIframe = els.currentWrap.querySelector('iframe');
els.foldBtn = els.currentWrap.querySelector('.js-fold-btn');
els.resetBtn = els.currentWrap.querySelector('.js-reset-btn');
// angle preset
els.presetOpen = els.currentWrap.querySelector('.js-preset-open');
els.presetClose = els.currentWrap.querySelector('.js-preset-close');
els.presetLayer = els.currentWrap.querySelector('.js-preset-layer');
els.angleCta = els.currentWrap.querySelectorAll('.js-angle-cta');
};
const setProperty = function () {
// timeout
els.resizeTimeout = null;
els.resizeInnerTimeout = null;
els.viewerOpener = null;
els.viewerIframe.isHash = false;
els.viewerIframe.isIntroposeReady = false;
els.viewerIframe.isFold = false;
els.viewerIframe.resetTimeout = null;
};
const bindEvents = function () {
eventHandler.load();
eventHandler.message();
eventHandler.click();
resize.add(eventList.resize);
if (!isLow) {
eventList.setScene();
}
};
const eventHandler = {
load: function () {
window.addEventListener('DOMContentLoaded', eventList.load, {
once: true
});
},
message: function () {
window.addEventListener('message', eventList.receiveV3DMessage, false);
},
click: function () {
if (!!isLow) {
els.popupScroll.addEventListener('click', eventList.clickLayerScroll);
}
els.foldBtn && els.foldBtn.addEventListener('click', eventList.clickFold);
els.resetBtn && els.resetBtn.addEventListener('click', eventList.clickReset);
els.presetOpen && els.presetOpen.addEventListener('click', eventList.openPresetPopup);
for (let i = 0; i < els.angleCta.length; i++) {
els.angleCta[i].addEventListener('click', eventList.setAngle);
}
els.contents.addEventListener('click', function (e) {
if (e.target.classList.contains('js-reset-btn') || e.target.classList.contains('js-fold-btn') || e.target.classList.contains('js-preset-open') || e.target.closest('.js-preset-layer')) return;
eventList.closePresetPopup();
});
},
scroll: function () {
window.addEventListener('scroll', eventList.runIntroPose);
}
};
const eventList = {
load: function () {
if (!!isLow) {
eventList.innerWrapHeight();
eventList.layerScroll();
}
accessibility.fold.ariaLabel();
eventList.setFoldClass();
},
receiveV3DMessage: 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');
}
}
} 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');
}
}
} else if (e.data == 'V3D.state.introPose.ready') {
if (!isLow) {
els.viewerIframe.isIntroposeReady = true;
eventHandler.scroll();
eventList.runIntroPose();
} else {
els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*');
}
} else if (e.data == 'V3D.state.localData.ready') {
els.viewerIframe && els.viewerIframe.contentWindow.postMessage(JSON.stringify(V3DLOCALDATA), '*');
} else if (e.data == 'V3D.state.actionPose.0') {
els.viewerIframe.isFold = true;
eventList.setFoldClass();
} else if (e.data == 'V3D.state.actionPose.1') {
els.viewerIframe.isFold = false;
eventList.setFoldClass();
} else if (e.data == 'V3D.event.pointerdown') {
eventList.closePresetPopup();
}
},
resize: function (currRes) {
currDevice = currRes;
if (utils.detector.isTouchDevice && !utils.detector.isIosDevice) eventList.innerWrapHeight();
eventList.layerScroll();
},
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 () {
eventList.setLayerScroll();
}, 300);
},
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');
}
},
clickLayerScroll: function (e) {
e && e.preventDefault();
if (e.target.matches('.js-scroll-btn')) {
let scrollDown = e.target.classList.contains('js-scroll-down'),
$popupContents = $(els.popupContents);
if (scrollDown) {
$popupContents.stop().animate({
scrollTop: $popupContents.scrollTop() + 100
}, {
duration: 300,
complete: function () {
eventList.updateLayerScroll(true);
}
});
} else {
$popupContents.stop().animate({
scrollTop: $popupContents.scrollTop() - 100
}, {
duration: 300,
complete: function () {
eventList.updateLayerScroll(true);
}
});
}
}
},
updateLayerScroll: function (isClicked) {
const offsetTop = els.popupContents.scrollTop,
layerBottom = els.popupContents.scrollHeight - els.popupContents.clientHeight;
els.popupScrollUpBtn.removeAttribute('tabindex');
els.popupScrollUpBtn.removeAttribute('aria-hidden');
els.popupScrollUpBtn.removeAttribute('disabled');
els.popupScrollDownBtn.removeAttribute('tabindex');
els.popupScrollDownBtn.removeAttribute('aria-hidden');
els.popupScrollDownBtn.removeAttribute('disabled');
if (offsetTop == 0) {
isClicked && els.popupScrollDownBtn && els.popupScrollDownBtn.focus();
els.popupScrollUpBtn.setAttribute('tabindex', '-1');
els.popupScrollUpBtn.setAttribute('aria-hidden', 'true');
els.popupScrollUpBtn.setAttribute('disabled', 'disabled');
} else if (offsetTop >= layerBottom - 1) {
isClicked && els.popupScrollUpBtn && els.popupScrollUpBtn.focus();
els.popupScrollDownBtn.setAttribute('tabindex', '-1');
els.popupScrollDownBtn.setAttribute('aria-hidden', 'true');
els.popupScrollDownBtn.setAttribute('disabled', 'disabled');
}
},
setScene: function () {
els.sceneObj = SCROLLER({
trackElement: els.section,
useFixed: false
});
},
runIntroPose: function () {
els.sceneObj.trackAnimation(function () {
let progress = currDevice.indexOf('mobile') > -1 ? 50 : 30;
if (this.progress >= progress && !!els.viewerIframe.isIntroposeReady) {
els.viewerIframe && els.viewerIframe.contentWindow.postMessage('V3D.introPose.run', '*');
window.removeEventListener('scroll', eventList.runIntroPose);
}
});
},
clickFold: function () {
if (!els.viewerIframe.isFold) {
els.viewerIframe.isFold = true;
els.viewerIframe.contentWindow.postMessage('V3D.action.reverse', '*');
} else {
els.viewerIframe.isFold = false;
els.viewerIframe.contentWindow.postMessage('V3D.action', '*');
}
accessibility.fold.ariaLabel();
eventList.setFoldClass();
accessibility.fold.tagging();
},
clickReset: function () {
let viewerSrc = els.viewerIframe.getAttribute('src');
els.viewerIframe.setAttribute('src', `${viewerSrc}#reset=1`);
clearTimeout(els.viewerIframe.resetTimeout);
els.viewerIframe.resetTimeout = setTimeout(function () {
viewerSrc = viewerSrc.split('#reset=1')[0];
els.viewerIframe.setAttribute('src', viewerSrc);
}, 300);
},
openPresetPopup: function () {
if (!els.presetLayer.classList.contains('is-active')) {
els.presetOpen.classList.add('is-open');
els.presetLayer.classList.add('is-active');
els.presetOpen.setAttribute('aria-expanded', true);
els.presetClose.focus();
} else {
eventList.closePresetPopup();
}
els.presetClose && els.presetClose.addEventListener('click', eventList.closePresetPopup);
},
closePresetPopup: function (e) {
if (els.presetLayer.classList.contains('is-active')) {
els.presetOpen.classList.remove('is-open');
els.presetLayer.classList.remove('is-active');
els.presetOpen.setAttribute('aria-expanded', false);
if (e && e.target.classList.contains('js-preset-close')) {
els.presetOpen.focus();
}
}
},
setFoldClass: function () {
if (!els.viewerIframe.isFold) {
if (els.foldBtn.classList.contains('is-folded')) els.foldBtn.classList.remove('is-folded');
els.foldBtn.classList.add('is-fold');
} else {
if (els.foldBtn.classList.contains('is-fold')) els.foldBtn.classList.remove('is-fold');
els.foldBtn.classList.add('is-folded');
}
},
setAngle: function () {
let target = this,
targetAngle = target.innerText.toLowerCase();
if (targetAngle == 'front') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 0', '*');
} else if (targetAngle == 'back') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 3.141592653589793', '*');
} else if (targetAngle == 'top') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 1.5707963267948966,angleY: 3.141592653589793', '*');
} else if (targetAngle == 'bottom') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: -1.5707963267948966,angleY: 0', '*');
} else if (targetAngle == 'left') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: 1.5707963267948966', '*');
} else if (targetAngle == 'right') {
els.viewerIframe.contentWindow.postMessage('V3D.setPosition.angleX: 0,angleY: -1.5707963267948966', '*');
}
accessibility.selected(target);
}
};
const popupEvents = {
set: function () {
utils.layerPopup({
layerPopup: els.popup,
layerPopupClass: '.js-viewer',
openerEvent: {
element: els.viewerBtn,
},
closeCtas: [els.closeCta],
dimmed: els.popupWrap,
moveTarget: document.documentElement,
contents: els.contents,
show: {
start: function (target) {
els.popup.classList.add('is-init');
popupEvents.show(target.openerCta);
},
end: function () {
if (utils.detector.isIosDevice) els.popup.style.display = 'block';
els.popup.classList.add('is-open');
}
},
hide: {
start: function () {
els.popup.classList.remove('is-open');
},
end: function () {
setTimeout(function () {
els.popup.classList.remove('is-init');
}, 300);
popupEvents.hide();
}
}
});
},
show: function (viewerOpener) {
if (viewerOpener.classList.contains('viewer-btn')) {
els.viewerIframe.isHash = false;
els.viewerOpener = viewerOpener;
} else {
els.viewerIframe.isHash = true;
els.viewerOpener = els.viewerBtn;
}
els.viewerIframe.setAttribute('src', common.getViewerUrl());
},
hide: function () {
els.viewerIframe.setAttribute('src', 'about:blank');
if (els.viewerIframe.isHash) {
setTimeout(function () {
els.viewerOpener.focus();
}, 300);
}
},
};
const accessibility = {
fold: {
ariaLabel: function () {
if (!els.viewerIframe.isFold) {
els.foldBtn.setAttribute('aria-label', `${els.foldBtn.getAttribute('data-unfolded')}`);
} else {
els.foldBtn.setAttribute('aria-label', `${els.foldBtn.getAttribute('data-folded')}`);
}
},
tagging: function () {
let dataOmni = els.foldBtn.getAttribute('data-omni'),
gaLa = els.foldBtn.getAttribute('ga-la');
if (!els.viewerIframe.isFold) {
els.foldBtn.setAttribute('data-omni', dataOmni.replace('folded', 'unfolded'));
els.foldBtn.setAttribute('ga-la', gaLa.replace('folded', 'unfolded'));
} else {
els.foldBtn.setAttribute('data-omni', dataOmni.replace('unfolded', 'folded'));
els.foldBtn.setAttribute('ga-la', gaLa.replace('unfolded', 'folded'));
}
},
},
selected: function (target) {
for (let i = 0; i < els.angleCta.length; i++) {
els.angleCta[i].removeAttribute('title');
if (els.angleCta[i].classList.contains('is-selected')) {
els.angleCta[i].classList.remove('is-selected');
}
}
if (!target.classList.contains('is-selected')) {
target.classList.add('is-selected');
}
if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) {
target.setAttribute('title', LOCAL_VARI.selected);
} else {
target.setAttribute('title', 'Selected');
}
}
};
return {
init: init
}
})();
})();
flagship.features.initialize = (function () {
window.flagship.common.resize.bindEvent();
const init = function () {
flagship.features.clickToVideo.init();
flagship.features.headline.init();
flagship.features.howtoPopup.init();
flagship.features.oneColumnCarousel.init();
flagship.features.scrollVideo.init();
flagship.features.threeColumnCarousel.init();
flagship.features.aiOverview.init();
flagship.features.cameraSpec.init();
flagship.features.faq.init();
flagship.features.highlightsZone.init();
flagship.features.interactiveCircleToSearch.init();
flagship.features.interactiveInterpreter.init();
flagship.features.interactiveNoteAssist.init();
flagship.features.interactive.init();
flagship.features.moveFeature.init();
flagship.features.performance.init();
flagship.features.photoAssist.init();
flagship.features.viewer.init();
};
return {
init: init
}
})();
flagship.features.initialize.init();
});
Product Registration
Quick and easy product registration.. Receive up-to-date personalized services and tips.
Serial Number/IMEI
Enter your Serial Number/IMEI
QR Scan
Scan the QR code on your products for easy registration.
* This feature can only be supported on Samsung Home Appliances and non-smart B2C monitors.
Enter your Serial Number/IMEI
Quick and easy product registration.
Please enter the 11 or 15- digit number.
This product is already registered. Make sure you entered the right serial number or IMEI.
iaType
iaSubType
iaCategory
Back view
The serial number and model name are printed on the label located on the lower left side of the device’s exterior, near the front. They are also on a second label, inside the refrigerator compartment on a side wall above the top shelf.
Back view
The serial number and model name are printed on the label located on the lower left side of the device’s exterior, near the front. They are also on a second label, inside the refrigerator compartment on a side wall above the top shelf.
Product registration is almost complete!!
You've entered a valid S/N or IMEI. Now select the model of your product.
Suggested Searches
No result. Please try again.
Galaxy Book3 Ultra
SM-G996BZKGEUA
Serial Number: R3CR508WNAH
The device you are currently using does not support the camera function.