Galaxy Buds2 Pro
Click or tap to zoom in/out
Klik of tik om uit te zoomen
Click or tap to zoom in/out
Klik of tik om uit te zoomen
Click or tap to zoom in/out
Klik of tik om uit te zoomen
Click or tap to zoom in/out
Klik of tik om uit te zoomen
Click or tap to zoom in/out
Klik of tik om uit te zoomen
Click or tap to zoom in/out
Klik of tik om uit te zoomen
Click or tap to zoom in/out
Klik of tik om uit te zoomen
Click or tap to zoom in/out
Klik of tik om uit te zoomen
Galaxy Buds2 Pro
SM-R510NZAAEUB
Beoordelingen : 4.7(Aantal beoordelingen :123)
- De ultieme draadloze luisterervaring met 24-bits Hi-Fi-geluid
- Duidelijke en verstaanbare gesprekken, net alsof je tegenover iemand zit
- De 3 hoge SNR-microfoons houden nog meer geluiden van buitenaf tegen
- Ergonomisch design voor optimaal draagcomfort, de hele dag door
- Laat je omringen door multi-channel bioscoopgeluid
Kies jouw Kleur
Kleur :
key features
Kraakhelder geluid
Intelligente ANC
Fit
360 Audio
"); section.innerHTML = markup; document.getElementById("iemessage").appendChild(section); } })();
Galaxy Buds2 Pro
KOOP NU
MELD JE ALVAST AAN
KOOP NU
"24-bits audio-ondersteuning is slechts één van de vele verbeteringen."
Android Authority
Robert Tiggs
08/2022
"De Galaxy Buds2 Pro zijn de Samsung-oordopjes waar we met smart op hebben gewacht"
Digital Trends
Joe Maring
08/2022
From Digital Trends. © 2022 Digital Trends Media Group. Alle rechten voorbehouden. Gebruikt onder licentie.
"Het geluid klinkt luid en duidelijk op alle niveaus. Deze oordopjes behoren met recht tot het hogere segment."
Sammobile
Adnan Farooqui
08/2022
"De Galaxy Buds2 Pro van Samsung hebben alles wat je van oordopjes in het hogere segment mag verwachten."
Stuff
Tom Morgan
08/2022
- Het ultieme Hi-Fi-geluid
- Naadloze connectiviteit
- Comfortabele pasvorm
- AI-assistentie direct in je oor
Maak kennis met Galaxy AI
Geniet optimaal van je Galaxy AI met de Galaxy Buds2 Pro. Nu heb je een vertaler, direct in je oor. Zet de vertaalfuncties op je Samsung Galaxy-smartphone met Galaxy Buds2 Pro aan. Maak makkelijk vrienden zonder taalbarrière, face to face of via de telefoon.
Houd je Galaxy Buds2 Pro aan, zelfs als je Interpreter op je Samsung Galaxy-smartphone moet gebruiken. Hoor de vertaling via de oordopjes, terwijl de andere persoon luistert via de gekoppelde smartphonespeaker. Geniet van soepele gesprekken zonder je telefoon te overhandigen iedere keer als je aan het woord bent.
*De vertaalfunctie vereist een Samsung-account. Voor bepaalde talen is het downloaden van een taalpakket vereist. Beschikbaarheid van de service kan per taal verschillen. De nauwkeurigheid van resultaten wordt niet gegarandeerd. *Voor het gebruik van Live Translate is een netwerkverbinding vereist en moet je zijn ingelogd op je Samsung-account. Live Translate is alleen beschikbaar op de vooraf geïnstalleerde Samsung Phone-app. Voor bepaalde talen is het downloaden van een taalpakket vereist. De beschikbaarheid van de service kan per taal, land, regio of provider verschillen. De nauwkeurigheid van resultaten wordt niet gegarandeerd. *Galaxy AI-functies worden ondersteund op Galaxy S24 Ultra, S24 Plus en S24 vanaf februari 2024. *Samsung Galaxy-apparaten kunnen de nieuwste softwareupdate vereisen om Galaxy AI-functies te ondersteunen. *Gesimuleerde afbeeldingen voor illustratieve doeleinden. Daadwerkelijke UX/UI kan afwijken.
De microfoons van je Galaxy Buds2 Pro registreren je woorden duidelijk tijdens telefoongesprekken via Live Translation door middel van een spraakherkenningsalgoritme. Daarna zet Live Translate op de gekoppelde Galaxy-smartphone de woorden om naar de betreffende taal. Lees het gesprek zonder je telefoon aan je oor te houden.
*De vertaalfunctie vereist een Samsung-account. Voor bepaalde talen is het downloaden van een taalpakket vereist. Beschikbaarheid van de service kan per taal verschillen. De nauwkeurigheid van resultaten wordt niet gegarandeerd. *Voor het gebruik van Live Translate is een netwerkverbinding vereist en moet je zijn ingelogd op je Samsung-account. Live Translate is alleen beschikbaar op de vooraf geïnstalleerde Samsung Phone-app. Voor bepaalde talen is het downloaden van een taalpakket vereist. De beschikbaarheid van de service kan per taal, land, regio of provider verschillen. De nauwkeurigheid van resultaten wordt niet gegarandeerd. *Galaxy AI-functies worden ondersteund op Galaxy S24 Ultra, S24 Plus en S24 vanaf februari 2024. *Samsung Galaxy-apparaten kunnen de nieuwste softwareupdate vereisen om Galaxy AI-functies te ondersteunen. *Gesimuleerde afbeeldingen voor illustratieve doeleinden. Daadwerkelijke UX/UI kan afwijken.
SOUND EXPERIENCE
Voor een hoogwaardige luisterervaring
24-bits HiFi-geluid
Geluid zoals het hoort,
draadloos
2-wegspeaker
voor een brede frequentierespons Woofer
zorgt voor een diepere bas. Tweeter
zorgt voor een heldere hoge tonen
24-bits
HiFi-geluid
16-bit
24-bit
Elke noot klinkt zoals hij bedoeld is, omdat het kraakheldere geluid begint bij jouw favoriete Samsung Galaxy-toestel. De geüpdatete Samsung Seamless Codec zet het volle 24-bits geluid om naar de Galaxy Buds2 Pro, met behoud van hetzelfde hoogwaardige 24-bits geluid. 1, 2
INTELLIGENTE ANC
Geniet volop van je afspeellijst
Active Noise Cancelling (ANC)
is beter dan ooit.
Active Noise Cancelling (ANC)
is beter dan ooit. Met 3 microfoons met een hoge SNR (Signal-to-Noise Ratio) kunnen de Galaxy Buds2 Pro elk omgevingsgeluidje opsporen en verwijderen - zelfs het fluisteren van de wind.3
Met Voice Detect kan je gemakkelijk tot een gesprek met anderen overgaan.
Begin met praten en Voice Detect schakelt ANC uit en omgevingsgeluid in, zodat je het gesprek goed kan volgen zonder jouw Buds2 Pro uit te doen. 3
360 AUDIO
Realistisch geluid
Met Intelligent 360 Audio voelt het geluid realistischer. De 360 Audio-algoritmes met Direct-multichannel (5,1ch / 7,1ch), Dolby Atmos ® en Enhanced Dolby Head Tracking bieden een meeslepende ervaring doordat elke beweging synchroon blijft. 360 Audio registreert zelfs de richting van het geluid als je je hoofd beweegt, zodat je het geluid in elke richting ervaart. 4, 5
Wat is 360 Audio?
360 Audio is een functie die de richting van het geluid registreert als je je hoofd beweegt, zodat je het geluid in elke richting ervaart.
play
Cone-shaped sound funnels are directed at a mannequin head from the left and right. Then, five funnels of sound face the head from all around. Next, the funnels transform into an orb that surrounds the entire head.
360 AUDIO
Inschakelen gaat gemakkelijk met Samsung Galaxy
Om video's te bekijken met een ruimtelijke surround sound, open de app Galaxy Wearable, ga naar 360 audio en tik op de togglefunctie om in te schakelen.
- *Beschikbaarheid van kleuren kan verschillen per land, regio, provider of toestel.
- *Gesimuleerde afbeelding voor illustratieve doeleinden.
Stap 1
Open de Galaxy Wearable-app en schakel “360 audio” in
Stap 2
Zet "Head tracking" aan voor een meeslepende ervaring.
INTENSE GELUIDSERVARING
Zet je geluid aan voor een diepere dimensie
Met Dolby Atmos bewegen films en muziek om je heen op een manier die niet mogelijk is met standaardgeluid. Het overweldigende geluidslandschap heeft geen simpele linker- en rechterkanalen, maar omringt je met gerichte details. Pak je oordopjes, probeer 360 Audio en geniet van een geheel nieuwe geluidservaring.
- *Luister voor een optimale ervaring met oordopjes of koptelefoon op een toestel met Dolby Atmos-ondersteuning.
- *De nummers zijn bestemd om te worden afgespeeld in Atmos-ondersteunde omgevingen, uitsluitend voor het demonstreren van Dolby Atmos-technologie.
Music
A vocalist, guitarist and percussionist perform together as they record music in a studio.
Nature
Close up shots of rain falling gently on various forest plants.
Cinema
Lights dance around a shiny orb in an abstract representation of the sounds passing by.
Pak je oordopjes en probeer het 360 Audio-geluid uit
360 AUDIO RECORDING
Leg de wereld vast zoals jij hem hoort
Geluid klinkt nu nog helderder met alleen je smartphone en Galaxy Buds2 Pro. Zet 360 Audio Recording aan zodat je vrienden bij het afspelen van jouw video's door het hyperrealistische 360-geluid helemaal worden meegesleurd in de actie.
- *Afbeelding gesimuleerd voor illustratieve doeleinden
- *360 Audio Recording is beschikbaar op Samsung Galaxy Z Fold4, Z Flip4 met Android One UI versie 5.0 of hoger, mits gekoppeld met Galaxy Buds2 Pro.
- *Verbeterde Head Tracking en Direct Multi-channel worden ondersteund op Android One UI versie 4.1.1 of hoger.
360 AUDIO RECORDING
Maak video's met 360 Audio
Voordat je begint met opnemen, ga naar de geavanceerde videomogelijkheden van je Samsung Camera- app. Draag je Galaxy Buds2 Pro en schakel de 360-audio-opname in. Nu ben je klaar om 3D-geluid op te nemen.
- *360 Audio Recording is beschikbaar op Samsung Galaxy Z Fold4, Z Flip4 met Android One UI versie 5.0 of hoger, mits gekoppeld met Galaxy Buds2 Pro.
- *360 Audio en Verbeterde Head Tracking kunnen per app en content verschillen.
Hoor het van de makers
Zie hoe influencers op social media 360 Audio Recording gebruiken om de aandacht van hun volgers vast te houden.
- *Luister voor een optimale ervaring met oordopjes of koptelefoon op een toestel met Dolby Atmos-ondersteuning.
- *360 Audio Recording is beschikbaar op Samsung Galaxy Z Fold4, Z Flip4 met Android One UI versie 5.0 of hoger, mits gekoppeld met Galaxy Buds2 Pro.
- *360 Audio en Verbeterde Head Tracking kunnen per app en content verschillen.
-
Vlog & Social media
Play -
Muziek & Dans
Play -
Sport & Activiteiten
Play
Pak je oordopjes en probeer het 360 Audio-geluid uit
NAADLOZE CONNECTIVITEIT
Synchroniseer je leven
Eenvoudig koppelen
Maak open en tik aan
Galaxy Buds2 Pro worden automatisch gevonden door je Samsung Galaxy-toestellen en kunnen met één tik worden gekoppeld. Zo eenvoudig is het.
Auto Switch op de Galaxy Buds2 Pro vindt slim activiteiten op mobiele apparaten en schakelt moeiteloos tussen jouw Samsung Galaxy-telefoon, tablet of watch.
Zelfs als je verbonden bent met een Samsung TV kan je wisselen om je telefoon op te nemen. Als de Galaxy Buds2 Pro via Bluetooth verbonden zijn met de Samsung TV, hoef je je oordopjes niet uit te doen om de telefoon op te nemen. Als je gebeld wordt, hoef je alleen maar twee keer op de Galaxy Buds2 Pro te tikken. 6
*Automatisch schakelen met de TV werkt alleen voor telefoongesprekken
SMARTTHINGS FIND
Weet waar je oordopjes zijn
Bang dat je je Galaxy Buds2 Pro kwijt raakt? Geen paniek. Met de zoek locatie-functie van SmartThings Find kan je je geliefde Galaxy Buds2 Pro altijd vinden. Het kan zelfs zonder de case. 7, 8, 9, 10
Het geïntegreerde alarm waarschuwt je als je je Galaxy Buds2 Pro ergens laat liggen, en je telefoon geeft een melding zodat je ze niet per ongeluk vergeet.
ERGONOMISCH ONTWERP
Stijl die bij je past
FIT
In je
comfort
zone
Galaxy Buds Pro Galaxy Buds2 Pro
15 %
kleinere afmetingen
5,5 g
We hebben het ontwerp van de oordopjes aangepast, zodat ze 15% kleiner zijn dan de Buds Pro en als gegoten in je oor passen.
Geniet van een comfortabele pasvorm dankzij het ergonomisch ontwerp van de oordopjes. Verbeterde luchtstroomtechnologie vermindert de druk in het gehoorkanaal en zorgt voor minimaal lawaai, voor comfort en helder geluid. 11
Galaxy Buds2 Pro. How to wear Galaxy Buds2 Pro. A closed Galaxy Buds2 Pro case in Bora Purple appears onscreen. It opens and the ear buds float out of the case and upwards. Text reads, Finding your fit is easy. The buds twirl around, and one ear bud vanishes behind the other. The inner side is seen, indicating the letter R printed in a circle on the body of the ear bud. Text reads, Check R, right. Then, the buds spin around again to reveal the second ear bud. It shows the letter L printed on the body of the ear bud. Text reads, And L, left. The ear bud spins again to show the outer side of the body. Text reads, Make sure the wind shield is facing up. A line is drawn to indicate the location of the Wind Shield at the upper edge of the ear bud. The ear bud zooms toward the screen to transition to a close up of an ear and the ear bud being comfortably put into place. Text reads, All set! Ready to get immersed? A seamless transition shows another person with Bora Purple Galaxy Buds2 Pro in their ear. Text reads, The ultimate Hi-Fi sound is now wireless. Samsung dot com. The Samsung logo appears.
Hoe draag je de
Galaxy Buds2 Pro
KLEUREN
Sprekende
kleuren
Zowel de oordopjes als de case zijn beschikbaar in een aantal premium kleuren. Elk oordopje is voorzien van een glanzende afwerking en een matte binnenkant die zacht aanvoelt op je huid. 12
We zien een Galaxy Buds2 Pro case en oordopjes in de kleur Graphite
We zien een Galaxy Buds2 Pro case en oordopjes in de kleur White
We zien een Galaxy Buds2 Pro case en oordopjes in de kleur Bora Purple
Zowel de oordopjes als de case zijn beschikbaar in een aantal premium kleuren. Elk oordopje is voorzien van een glanzende afwerking en een matte binnenkant die zacht aanvoelt op je huid. 12
GALAXY EXCELLENCE
Speelt alle hits
GALAXY EXCELLENCE
Speelt alle hits
We zien twee losse Bora Purple Galaxy Buds2 Pro oordopjes in het midden van het scherm.
-
Batterij
Kan tot 5 uur lang audio afspelen met ANC, met nog eens 18 uur van de case. 13, 14, 15 -
Bluetooth 5.3
Kan gebruik maken van BT 5.3. LE Audio wordt later ondersteund. 16 -
Waterbestendig (IPX7)
Muziek in de regen en in de zon. De Galaxy Buds2 Pro zijn waterbestendig en beschermd tegen zweet, water en morsen. 17
Batterij
Kan tot 5 uur lang audio afspelen met ANC, met nog eens 18 uur van de case.13, 14, 15 Bluetooth 5.3
Kan gebruik maken van BT 5.3. LE Audio wordt later ondersteund. 16 Waterbestendig (IPX7)
Muziek in de regen en in de zon. De Galaxy Buds2 Pro zijn waterbestendig en beschermd tegen zweet, water en morsen. 17
VERGELIJKEN
Je nieuwe oordopjes lonken
-
Galaxy Buds2 Pro
ANC
yes
Omgevingsgeluid
yes
360 Audio
yes
Geluidskwaliteit
2-wegspeaker
Afspeeltijd
5 uur (ANC aan)
7,5 uur (ANC uit) -
Galaxy Buds2
ANC
yes
Omgevingsgeluid
yes
360 Audio
yes
Geluidskwaliteit
24-bits HiFi
2-wegspeaker
Afspeeltijd
5 uur (ANC aan)
8 uur (ANC uit) -
Galaxy Buds Live
ANC
yes
Omgevingsgeluid
no
360 audio
yes
Geluidskwaliteit
1-wegspeaker
Afspeeltijd
6hours (ANC on)
8hours (ANC off)
Galaxy Buds2 Pro
Galaxy Buds2
Galaxy Buds Live
Geluidskwaliteit
24-bits Hi-Fi
2-wegspeaker
Geluidskwaliteit
2-wegspeaker
Geluidskwaliteit
1-wegspeaker
ANC
yes
+ 3 Hoge SNR microfoons
ANC
yes
ANC
yes
Omgevingsgeluid
yes
Omgevingsgeluid
yes
Omgevingsgeluid
no -
Voice Detect
yes
Voice Detect
no -
Voice Detect
no -
360 audio 5
yes
+ Ondersteuning direct Multi-channel
360 audio
yes
360 audio
yes
Waterbestendig 17, 18
IPX7
Waterbestendig 18, 20
IPX2
Waterbestendig 18, 20
IPX2
Bluetooth ver.
Ver5.3
Bluetooth ver.
Ver5.2
Bluetooth ver.
Ver5.0
SmartThings Find 8
yes
+ Met/zonder case
SmartThings Find 8
yes
SmartThings Find 8
yes
Auto switch 6
yes
Auto switch 6
yes
Auto switch 6
yes
Bixby-spraakherkenning 19
yes
Bixby-spraakherkenning 19
yes
Bixby-spraakherkenning 19
yes
Speeltijd 13
Max 5 uur (ANC aan)
Max 8 uur (ANC uit)
Speeltijd
Max 5 uur (ANC aan)
Max 7.5 uur (ANC uit)
Speeltijd
Up to 6hours (ANC on)
Max 8 uur (ANC uit)
- *De beschikbaarheid van kleuren, formaten en modellen kan verschillen per land of regio.
- **Audiospeeltijd getest door een pre-productie Samsung Galaxy Buds2 Pro/Galaxy Buds2/Galaxy Buds Live te koppelen aan een recent uitgebrachte Galaxy Smartphone met ANC aan of uit. De werkelijke levensduur van de batterij kan verschillen en is afhankelijk van de gebruiksomstandigheden, de instellingen, het aantal oplaadbeurten, de Bluetooth-signaalsterkte en andere factoren.
ECOSYSTEM
De verbonden kracht van Samsung Galaxy
Galaxy Z Flip4
Meer informatie
Koop nu
Galaxy Z Fold4
Meer informatie
Koop nu
Galaxy Watch5 Pro
Meer informatie
Koop nu
Galaxy Watch5
Meer informatie
Koop nu
*Galaxy Z Flip4, Galaxy Z Fold4, Galaxy Watch5 en Galaxy Watch5 Pro apart verkrijgbaar.
C C
- Vereist Galaxy-toestellen met One UI versie 4.0 of hoger.
- Ondersteuning van 24-bits geluid kan verschillen afhankelijk van de applicatie.
- Voice Detect moet zijn ingeschakeld via de instellingen in de Galaxy Wearable-app.
- Alleen beschikbaar op Samsung Galaxy-smartphones en -tablets met Android One UI versie 3.1 of hoger. 360 Audio en Dolby Head Tracking™-ondersteuning kunnen verschillen, afhankelijk van de app en content.
- Verbeterde Head Tracking en Direct Multi-channel worden ondersteund op Android One UI versie 4.1.1 of hoger.
- Auto Switch-functie alleen beschikbaar op Samsung Galaxy smartphones en tablets met OneUI 4.1 of hoger en Galaxy Watch 4 of hoger. Samsung-apparaten moeten zijn ingelogd op een Samsung-account om Auto Switch te gebruiken. Auto Switch voor Samsung TV's is alleen beschikbaar op TV's die na februari 2022 zijn verschenen of die in juli 2022 een firmware-update hebben gehad. Auto Switch op tv's werkt alleen voor uitgaande of inkomende telefoongesprekken.
- Als de batterij leeg is, geeft hij laatst verbonden locatie weer.
- De SmartThings Find app is alleen beschikbaar op Samsung Galaxy-toestellen met Android 8 of hoger.
- SmartThing Find wordt niet ondersteund in China.
- Voor het ontvangen van meldingen van SmartThings Find moet je in instellingen de meldingen inschakelen.
- 15% kleinere afmetingen vergeleken met de Buds Pro op basis van volume. Het formaat van de ear tips kan worden aangepast voor meer comfort.
- Kleuren kunnen verschillen afhankelijk van land, regio of provider.
- Oordopjes kunnen tot 5 uur audio afspelen met ANC, terwijl de case 18 uur speeltijd geeft als de case en de buds 100% zijn opgeladen. Gebaseerd op interne tests. Audio afspeelduur getest door het koppelen van een pre-productie Galaxy Buds2 Pro aan een recent uitgebrachte Galaxy smartphone met standaardinstellingen (zoals ANC) ingeschakeld. Werkelijke batterijduur kan verschillen en hangt af van gebruiksomstandigheden, instellingen, aantal oplaadbeurten, sterkte van het Bluetoothsignaal en andere factoren.
* 'Fabrieksinstelling' verwijst naar de oorspronkelijke instelling van de Galaxy Buds2 Pro toen deze werd uitgebracht en ingeschakeld.
*'Speeltijd' verwijst naar wanneer de Galaxy Buds2 Pro verbonden zijn met de telefoon en muziek streamen. - Speeltijd kan verschillen naar gelang de instellingen.
- De gemiddelde capaciteit is getest onder laboratoriumomstandigheden van derden. De gemiddelde capaciteit is het geschatte rekenkundig gemiddelde, rekening houdend met de verschillen in batterijcapaciteit van de batterijsamples die getest zijn volgens de IEC 61960-3-norm. De opgegeven capaciteit is 58 mAh (oordopjes), 500 mAh (laadcase). Werkelijke batterijduur is afhankelijk van de netwerkomgeving, gebruikspatronen en andere factoren.
- Sommige apparaten, vooral apparaten die niet zijn getest of goedgekeurd door de Bluetooth SIG, zijn mogelijk niet compatibel met de oordopjes. LE Audio wordt later dit jaar beschikbaar.
- IPX7 is getest door het toestel gedurende 30 minuten tot 1 meter diep in zoet water te houden.
- Gebruik op het strand of in het zwembad afgeraden. Oplaadcase is niet waterbestendig. Als de oordopjes beschadigd zijn, is waterbestendigheid niet gegarandeerd. Als de oordopjes of je handen nat zijn, moet je de dopjes goed afdrogen voordat je ze gebruikt of in de oplaadcase plaatst. Als je ze in de oplaadcase plaatst terwijl ze nog nat zijn, kunnen de oordopjes beschadigd raken.
- Bixby-service kan per land verschillen; Bixby herkent geselecteerde talen en bepaalde accenten/dialecten; vereist inloggen op Samsung-account en verbinding met internet (Wi-Fi of 4G/5G).
- IPX2 is gebaseerd op laboratoriumtests waarbij water onder een hoek van max 15° op het apparaat wordt gesproeid.
" ); return ( e.attr("data-swiper-slide-index") || e.attr("data-swiper-slide-index", t), i.cache && (this.virtual.cache[t] = e), e ); }, appendSlide: function (e) { if ("object" == typeof e && "length" in e) for (var t = 0; t < e.length; t += 1) e[t] && this.virtual.slides.push(e[t]); else this.virtual.slides.push(e); this.virtual.update(!0); }, prependSlide: function (e) { var s, n, t = this.activeIndex, i = t + 1, a = 1; if (Array.isArray(e)) { for (var o = 0; o < e.length; o += 1) e[o] && this.virtual.slides.unshift(e[o]); (i = t + e.length), (a = e.length); } else this.virtual.slides.unshift(e); this.params.virtual.cache && ((s = this.virtual.cache), (n = {}), Object.keys(s).forEach(function (e) { var t = s[e], i = t.attr("data-swiper-slide-index"); i && t.attr("data-swiper-slide-index", parseInt(i, 10) + 1), (n[parseInt(e, 10) + a] = t); }), (this.virtual.cache = n)), this.virtual.update(!0), this.slideTo(i, 0); }, removeSlide: function (e) { if (null != e) { var t = this.activeIndex; if (Array.isArray(e)) for (var i = e.length - 1; 0 <= i; --i) this.virtual.slides.splice(e[i], 1), this.params.virtual.cache && delete this.virtual.cache[e[i]], e[i] < t && --t, (t = Math.max(t, 0)); else this.virtual.slides.splice(e, 1), this.params.virtual.cache && delete this.virtual.cache[e], e < t && --t, (t = Math.max(t, 0)); this.virtual.update(!0), this.slideTo(t, 0); } }, removeAllSlides: function () { (this.virtual.slides = []), this.params.virtual.cache && (this.virtual.cache = {}), this.virtual.update(!0), this.slideTo(0, 0); }, }, b = { name: "virtual", params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, addSlidesBefore: 0, addSlidesAfter: 0, }, }, create: function () { j.extend(this, { virtual: { update: w.update.bind(this), appendSlide: w.appendSlide.bind(this), prependSlide: w.prependSlide.bind(this), removeSlide: w.removeSlide.bind(this), removeAllSlides: w.removeAllSlides.bind(this), renderSlide: w.renderSlide.bind(this), slides: this.params.virtual.slides, cache: {}, }, }); }, on: { beforeInit: function () { var e; this.params.virtual.enabled && (this.classNames.push( this.params.containerModifierClass + "virtual" ), j.extend(this.params, (e = { watchSlidesProgress: !0 })), j.extend(this.originalParams, e), this.params.initialSlide || this.virtual.update()); }, setTranslate: function () { this.params.virtual.enabled && this.virtual.update(); }, }, }, K = { handle: function (e) { var t = this.rtlTranslate, i = (e = e.originalEvent ? e.originalEvent : e).keyCode || e.charCode; if ( !this.allowSlideNext && ((this.isHorizontal() && 39 === i) || (this.isVertical() && 40 === i) || 34 === i) ) return !1; if ( !this.allowSlidePrev && ((this.isHorizontal() && 37 === i) || (this.isVertical() && 38 === i) || 33 === i) ) return !1; if ( !( e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || (u.activeElement && u.activeElement.nodeName && ("input" === u.activeElement.nodeName.toLowerCase() || "textarea" === u.activeElement.nodeName.toLowerCase())) ) ) { if ( this.params.keyboard.onlyInViewport && (33 === i || 34 === i || 37 === i || 39 === i || 38 === i || 40 === i) ) { var s = !1; if ( 0 < this.$el.parents("." + this.params.slideClass).length && 0 === this.$el.parents("." + this.params.slideActiveClass).length ) return; var n = X.innerWidth, a = X.innerHeight, o = this.$el.offset(); t && (o.left -= this.$el[0].scrollLeft); for ( var r = [ [o.left, o.top], [o.left + this.width, o.top], [o.left, o.top + this.height], [o.left + this.width, o.top + this.height], ], l = 0; l < r.length; l += 1 ) { var d = r[l]; 0 <= d[0] && d[0] <= n && 0 <= d[1] && d[1] <= a && (s = !0); } if (!s) return; } this.isHorizontal() ? ((33 !== i && 34 !== i && 37 !== i && 39 !== i) || (e.preventDefault ? e.preventDefault() : (e.returnValue = !1)), (((34 !== i && 39 !== i) || t) && ((33 !== i && 37 !== i) || !t)) || this.slideNext(), (((33 !== i && 37 !== i) || t) && ((34 !== i && 39 !== i) || !t)) || this.slidePrev()) : ((33 !== i && 34 !== i && 38 !== i && 40 !== i) || (e.preventDefault ? e.preventDefault() : (e.returnValue = !1)), (34 !== i && 40 !== i) || this.slideNext(), (33 !== i && 38 !== i) || this.slidePrev()), this.emit("keyPress", i); } }, enable: function () { this.keyboard.enabled || (S(u).on("keydown", this.keyboard.handle), (this.keyboard.enabled = !0)); }, disable: function () { this.keyboard.enabled && (S(u).off("keydown", this.keyboard.handle), (this.keyboard.enabled = !1)); }, }, E = { name: "keyboard", params: { keyboard: { enabled: !1, onlyInViewport: !0 } }, create: function () { j.extend(this, { keyboard: { enabled: !1, enable: K.enable.bind(this), disable: K.disable.bind(this), handle: K.handle.bind(this), }, }); }, on: { init: function () { this.params.keyboard.enabled && this.keyboard.enable(); }, destroy: function () { this.keyboard.enabled && this.keyboard.disable(); }, }, }; function x() { for (var i, e = [], t = arguments.length; t--;) e[t] = arguments[t]; (i = (i = 1 === e.length && e[0].constructor && e[0].constructor === Object ? e[0] : ((a = e[0]), e[1])) || {}), (i = j.extend({}, i)), a && !i.el && (i.el = a), c.call(this, i), Object.keys(G).forEach(function (t) { Object.keys(G[t]).forEach(function (e) { x.prototype[e] || (x.prototype[e] = G[t][e]); }); }); var s, n, a, o = this, r = (void 0 === o.modules && (o.modules = {}), Object.keys(o.modules).forEach(function (e) { var t, e = o.modules[e]; e.params && ((t = Object.keys(e.params)[0]), "object" == typeof (e = e.params[t]) && null !== e && t in i && "enabled" in e && (!0 === i[t] && (i[t] = { enabled: !0 }), "object" != typeof i[t] || "enabled" in i[t] || (i[t].enabled = !0), i[t] || (i[t] = { enabled: !1 }))); }), j.extend({}, W)), l = (o.useModulesParams(r), (o.params = j.extend({}, r, Y, i)), (o.originalParams = j.extend({}, o.params)), (o.passedParams = j.extend({}, i)), (o.$ = S)(o.params.el)); if ((a = l[0])) return 1 < l.length ? ((s = []), l.each(function (e, t) { t = j.extend({}, i, { el: t }); s.push(new x(t)); }), s) : ((a.swiper = o), l.data("swiper", o), a && a.shadowRoot && a.shadowRoot.querySelector ? ((n = S( a.shadowRoot.querySelector("." + o.params.wrapperClass) )).children = function (e) { return l.children(e); }) : (n = l.children("." + o.params.wrapperClass)), j.extend(o, { $el: l, el: a, $wrapperEl: n, wrapperEl: n[0], classNames: [], slides: S(), slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal: function () { return "horizontal" === o.params.direction; }, isVertical: function () { return "vertical" === o.params.direction; }, rtl: "rtl" === a.dir.toLowerCase() || "rtl" === l.css("direction"), rtlTranslate: "horizontal" === o.params.direction && ("rtl" === a.dir.toLowerCase() || "rtl" === l.css("direction")), wrongRTL: "-webkit-box" === n.css("display"), activeIndex: 0, realIndex: 0, isBeginning: !0, isEnd: !1, translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, allowSlideNext: o.params.allowSlideNext, allowSlidePrev: o.params.allowSlidePrev, touchEvents: ((r = y.pointerEvents ? ["pointerdown", "pointermove", "pointerup"] : ["mousedown", "mousemove", "mouseup"]), (o.touchEventsTouch = { start: (a = [ "touchstart", "touchmove", "touchend", "touchcancel", ])[0], move: a[1], end: a[2], cancel: a[3], }), (o.touchEventsDesktop = { start: r[0], move: r[1], end: r[2], }), y.touch || !o.params.simulateTouch ? o.touchEventsTouch : o.touchEventsDesktop), touchEventsData: { isTouched: void 0, isMoved: void 0, allowTouchCallbacks: void 0, touchStartTime: void 0, isScrolling: void 0, currentTranslate: void 0, startTranslate: void 0, allowThresholdMove: void 0, formElements: "input, select, option, textarea, button, video", lastClickTime: j.now(), clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, isTouchEvent: void 0, startMoving: void 0, }, allowClick: !0, allowTouchMove: o.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0, }, imagesToLoad: [], imagesLoaded: 0, }), o.useModules(), o.params.init && o.init(), o); } var C = { lastScrollTime: j.now(), lastEventBeforeSnap: void 0, recentWheelEvents: [], event: function () { return -1 < X.navigator.userAgent.indexOf("firefox") ? "DOMMouseScroll" : ((t = "onwheel" in u) || ((e = u.createElement("div")).setAttribute( "onwheel", "return;" ), (t = "function" == typeof e.onwheel)), (t = !t && u.implementation && u.implementation.hasFeature && !0 !== u.implementation.hasFeature("", "") ? u.implementation.hasFeature("Events.wheel", "3.0") : t) ? "wheel" : "mousewheel"); var e, t; }, normalize: function (e) { var t = 0, i = 0, s = 0, n = 0; return ( "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && ((t = i), (i = 0)), (s = 10 * t), (n = 10 * i), "deltaY" in e && (n = e.deltaY), "deltaX" in e && (s = e.deltaX), e.shiftKey && !s && ((s = n), (n = 0)), (s || n) && e.deltaMode && (1 === e.deltaMode ? ((s *= 40), (n *= 40)) : ((s *= 800), (n *= 800))), { spinX: (t = s && !t ? (s < 1 ? -1 : 1) : t), spinY: (i = n && !i ? (n < 1 ? -1 : 1) : i), pixelX: s, pixelY: n, } ); }, handleMouseEnter: function () { this.mouseEntered = !0; }, handleMouseLeave: function () { this.mouseEntered = !1; }, handle: function (e) { var t = e, i = this, s = i.params.mousewheel; if ( (i.params.cssMode && t.preventDefault(), !i.mouseEntered && !s.releaseOnEdges) ) return !0; t.originalEvent && (t = t.originalEvent); var n = 0, a = i.rtlTranslate ? -1 : 1, o = C.normalize(t); if (s.forceToAxis) if (i.isHorizontal()) { if (!(Math.abs(o.pixelX) > Math.abs(o.pixelY))) return !0; n = o.pixelX * a; } else { if (!(Math.abs(o.pixelY) > Math.abs(o.pixelX))) return !0; n = o.pixelY; } else n = Math.abs(o.pixelX) > Math.abs(o.pixelY) ? -o.pixelX * a : -o.pixelY; if (0 === n) return !0; if ((s.invert && (n = -n), i.params.freeMode)) { var r = { time: j.now(), delta: Math.abs(n), direction: Math.sign(n), }, a = i.mousewheel.lastEventBeforeSnap, o = a && r.time < a.time + 500 && r.delta <= a.delta && r.direction === a.direction; if (!o) { (i.mousewheel.lastEventBeforeSnap = void 0), i.params.loop && i.loopFix(); var l, d, a = i.getTranslate() + n * s.sensitivity, s = i.isBeginning, c = i.isEnd; if ( ((a = a >= i.minTranslate() ? i.minTranslate() : a) <= i.maxTranslate() && (a = i.maxTranslate()), i.setTransition(0), i.setTranslate(a), i.updateProgress(), i.updateActiveIndex(), i.updateSlidesClasses(), ((!s && i.isBeginning) || (!c && i.isEnd)) && i.updateSlidesClasses(), i.params.freeModeSticky && (clearTimeout(i.mousewheel.timeout), (i.mousewheel.timeout = void 0), 15 <= (l = i.mousewheel.recentWheelEvents).length && l.shift(), (s = l.length ? l[l.length - 1] : void 0), (c = l[0]), l.push(r), s && (r.delta > s.delta || r.direction !== s.direction) ? l.splice(0) : 15 <= l.length && r.time - c.time < 500 && 1 <= c.delta - r.delta && r.delta <= 6 && ((d = 0 < n ? 0.8 : 0.2), (i.mousewheel.lastEventBeforeSnap = r), l.splice(0), (i.mousewheel.timeout = j.nextTick(function () { i.slideToClosest(i.params.speed, !0, void 0, d); }, 0))), i.mousewheel.timeout || (i.mousewheel.timeout = j.nextTick(function () { (i.mousewheel.lastEventBeforeSnap = r), l.splice(0), i.slideToClosest(i.params.speed, !0, void 0, 0.5); }, 500))), o || i.emit("scroll", t), i.params.autoplay && i.params.autoplayDisableOnInteraction && i.autoplay.stop(), a === i.minTranslate() || a === i.maxTranslate()) ) return !0; } } else { (s = { time: j.now(), delta: Math.abs(n), direction: Math.sign(n), raw: e, }), (c = i.mousewheel.recentWheelEvents), (o = (2 <= c.length && c.shift(), c.length ? c[c.length - 1] : void 0)); if ( (c.push(s), (!o || s.direction !== o.direction || s.delta > o.delta) && i.mousewheel.animateSlider(s), i.mousewheel.releaseScroll(s)) ) return !0; } return ( t.preventDefault ? t.preventDefault() : (t.returnValue = !1), !1 ); }, animateSlider: function (e) { return ( (6 <= e.delta && j.now() - this.mousewheel.lastScrollTime < 60) || (e.direction < 0 ? (this.isEnd && !this.params.loop) || this.animating || (this.slideNext(), this.emit("scroll", e.raw)) : (this.isBeginning && !this.params.loop) || this.animating || (this.slidePrev(), this.emit("scroll", e.raw)), (this.mousewheel.lastScrollTime = new X.Date().getTime()), !1) ); }, releaseScroll: function (e) { var t = this.params.mousewheel; if (e.direction < 0) { if (this.isEnd && !this.params.loop && t.releaseOnEdges) return !0; } else if ( this.isBeginning && !this.params.loop && t.releaseOnEdges ) return !0; return !1; }, enable: function () { var e = C.event(); if (this.params.cssMode) return ( this.wrapperEl.removeEventListener(e, this.mousewheel.handle), !0 ); if (!e) return !1; if (this.mousewheel.enabled) return !1; var t = this.$el; return ( (t = "container" !== this.params.mousewheel.eventsTarged ? S(this.params.mousewheel.eventsTarged) : t).on("mouseenter", this.mousewheel.handleMouseEnter), t.on("mouseleave", this.mousewheel.handleMouseLeave), t.on(e, this.mousewheel.handle), (this.mousewheel.enabled = !0) ); }, disable: function () { var e = C.event(); if (this.params.cssMode) return ( this.wrapperEl.addEventListener(e, this.mousewheel.handle), !0 ); if (!e) return !1; if (!this.mousewheel.enabled) return !1; var t = this.$el; return ( (t = "container" !== this.params.mousewheel.eventsTarged ? S(this.params.mousewheel.eventsTarged) : t).off(e, this.mousewheel.handle), !(this.mousewheel.enabled = !1) ); }, }, L = { update: function () { var e, t, i = this.params.navigation; this.params.loop || ((e = (t = this.navigation).$nextEl), (t = t.$prevEl) && 0 < t.length && (this.isBeginning ? t.addClass(i.disabledClass) : t.removeClass(i.disabledClass), t[ this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass" ](i.lockClass)), e && 0 < e.length && (this.isEnd ? e.addClass(i.disabledClass) : e.removeClass(i.disabledClass), e[ this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass" ](i.lockClass))); }, onPrevClick: function (e) { e.preventDefault(), (this.isBeginning && !this.params.loop) || this.slidePrev(); }, onNextClick: function (e) { e.preventDefault(), (this.isEnd && !this.params.loop) || this.slideNext(); }, init: function () { var e, t, i = this.params.navigation; (i.nextEl || i.prevEl) && (i.nextEl && ((e = S(i.nextEl)), this.params.uniqueNavElements && "string" == typeof i.nextEl && 1 < e.length && 1 === this.$el.find(i.nextEl).length && (e = this.$el.find(i.nextEl))), i.prevEl && ((t = S(i.prevEl)), this.params.uniqueNavElements && "string" == typeof i.prevEl && 1 < t.length && 1 === this.$el.find(i.prevEl).length && (t = this.$el.find(i.prevEl))), e && 0 < e.length && e.on("click", this.navigation.onNextClick), t && 0 < t.length && t.on("click", this.navigation.onPrevClick), j.extend(this.navigation, { $nextEl: e, nextEl: e && e[0], $prevEl: t, prevEl: t && t[0], })); }, destroy: function () { var e = this.navigation, t = e.$nextEl, e = e.$prevEl; t && t.length && (t.off("click", this.navigation.onNextClick), t.removeClass(this.params.navigation.disabledClass)), e && e.length && (e.off("click", this.navigation.onPrevClick), e.removeClass(this.params.navigation.disabledClass)); }, }, A = { update: function () { var e = this.rtl, s = this.params.pagination; if ( s.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length ) { var n, t = ( this.virtual && this.params.virtual.enabled ? this.virtual : this ).slides.length, i = this.pagination.$el, a = this.params.loop ? Math.ceil( (t - 2 * this.loopedSlides) / this.params.slidesPerGroup ) : this.snapGrid.length; if ( (this.params.loop ? ((n = Math.ceil( (this.activeIndex - this.loopedSlides) / this.params.slidesPerGroup )) > t - 1 - 2 * this.loopedSlides && (n -= t - 2 * this.loopedSlides), a - 1 < n && (n -= a), n < 0 && "bullets" !== this.params.paginationType && (n = a + n)) : (n = void 0 !== this.snapIndex ? this.snapIndex : this.activeIndex || 0), "bullets" === s.type && this.pagination.bullets && 0 < this.pagination.bullets.length) ) { var o, r, l, d = this.pagination.bullets; if ( (s.dynamicBullets && ((this.pagination.bulletSize = d .eq(0) [this.isHorizontal() ? "outerWidth" : "outerHeight"](!0)), i.css( this.isHorizontal() ? "width" : "height", this.pagination.bulletSize * (s.dynamicMainBullets + 4) + "px" ), 1 < s.dynamicMainBullets && void 0 !== this.previousIndex && ((this.pagination.dynamicBulletIndex += n - this.previousIndex), this.pagination.dynamicBulletIndex > s.dynamicMainBullets - 1 ? (this.pagination.dynamicBulletIndex = s.dynamicMainBullets - 1) : this.pagination.dynamicBulletIndex < 0 && (this.pagination.dynamicBulletIndex = 0)), (o = n - this.pagination.dynamicBulletIndex), (l = ((r = o + (Math.min(d.length, s.dynamicMainBullets) - 1)) + o) / 2)), d.removeClass( s.bulletActiveClass + " " + s.bulletActiveClass + "-next " + s.bulletActiveClass + "-next-next " + s.bulletActiveClass + "-prev " + s.bulletActiveClass + "-prev-prev " + s.bulletActiveClass + "-main" ), 1 < i.length) ) d.each(function (e, t) { var t = S(t), i = t.index(); i === n && t.addClass(s.bulletActiveClass), s.dynamicBullets && (o <= i && i <= r && t.addClass(s.bulletActiveClass + "-main"), i === o && t .prev() .addClass(s.bulletActiveClass + "-prev") .prev() .addClass(s.bulletActiveClass + "-prev-prev"), i === r && t .next() .addClass(s.bulletActiveClass + "-next") .next() .addClass(s.bulletActiveClass + "-next-next")); }); else { var t = d.eq(n), c = t.index(); if ((t.addClass(s.bulletActiveClass), s.dynamicBullets)) { for (var t = d.eq(o), u = d.eq(r), h = o; h <= r; h += 1) d.eq(h).addClass(s.bulletActiveClass + "-main"); if (this.params.loop) if (c >= d.length - s.dynamicMainBullets) { for (var p = s.dynamicMainBullets; 0 <= p; --p) d.eq(d.length - p).addClass( s.bulletActiveClass + "-main" ); d.eq(d.length - s.dynamicMainBullets - 1).addClass( s.bulletActiveClass + "-prev" ); } else t .prev() .addClass(s.bulletActiveClass + "-prev") .prev() .addClass(s.bulletActiveClass + "-prev-prev"), u .next() .addClass(s.bulletActiveClass + "-next") .next() .addClass(s.bulletActiveClass + "-next-next"); else t .prev() .addClass(s.bulletActiveClass + "-prev") .prev() .addClass(s.bulletActiveClass + "-prev-prev"), u .next() .addClass(s.bulletActiveClass + "-next") .next() .addClass(s.bulletActiveClass + "-next-next"); } } s.dynamicBullets && ((c = Math.min(d.length, s.dynamicMainBullets + 4)), (t = (this.pagination.bulletSize * c - this.pagination.bulletSize) / 2 - l * this.pagination.bulletSize), (u = e ? "right" : "left"), d.css(this.isHorizontal() ? u : "top", t + "px")); } "fraction" === s.type && (i .find("." + s.currentClass) .text(s.formatFractionCurrent(n + 1)), i.find("." + s.totalClass).text(s.formatFractionTotal(a))), "progressbar" === s.type && ((c = s.progressbarOpposite ? this.isHorizontal() ? "vertical" : "horizontal" : this.isHorizontal() ? "horizontal" : "vertical"), (l = (n + 1) / a), (u = e = 1), "horizontal" == c ? (e = l) : (u = l), i .find("." + s.progressbarFillClass) .transform( "translate3d(0,0,0) scaleX(" + e + ") scaleY(" + u + ")" ) .transition(this.params.speed)), "custom" === s.type && s.renderCustom ? (i.html(s.renderCustom(this, n + 1, a)), this.emit("paginationRender", this, i[0])) : this.emit("paginationUpdate", this, i[0]), i[ this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass" ](s.lockClass); } }, render: function () { var e = this.params.pagination; if ( e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length ) { var t = ( this.virtual && this.params.virtual.enabled ? this.virtual : this ).slides.length, i = this.pagination.$el, s = ""; if ("bullets" === e.type) { for ( var n = this.params.loop ? Math.ceil( (t - 2 * this.loopedSlides) / this.params.slidesPerGroup ) : this.snapGrid.length, a = 0; a < n; a += 1 ) e.renderBullet ? (s += e.renderBullet.call(this, a, e.bulletClass)) : (s += "<" + e.bulletElement + ' class="' + e.bulletClass + '">' + e.bulletElement + ">"); i.html(s), (this.pagination.bullets = i.find("." + e.bulletClass)); } "fraction" === e.type && ((s = e.renderFraction ? e.renderFraction.call(this, e.currentClass, e.totalClass) : ' / '), i.html(s)), "progressbar" === e.type && ((s = e.renderProgressbar ? e.renderProgressbar.call(this, e.progressbarFillClass) : ''), i.html(s)), "custom" !== e.type && this.emit("paginationRender", this.pagination.$el[0]); } }, init: function () { var e, t = this, i = t.params.pagination; i.el && 0 !== (e = S(i.el)).length && (t.params.uniqueNavElements && "string" == typeof i.el && 1 < e.length && 1 === t.$el.find(i.el).length && (e = t.$el.find(i.el)), "bullets" === i.type && i.clickable && e.addClass(i.clickableClass), e.addClass(i.modifierClass + i.type), "bullets" === i.type && i.dynamicBullets && (e.addClass("" + i.modifierClass + i.type + "-dynamic"), (t.pagination.dynamicBulletIndex = 0), i.dynamicMainBullets < 1 && (i.dynamicMainBullets = 1)), "progressbar" === i.type && i.progressbarOpposite && e.addClass(i.progressbarOppositeClass), i.clickable && e.on("click", "." + i.bulletClass, function (e) { e.preventDefault(); e = S(this).index() * t.params.slidesPerGroup; t.params.loop && (e += t.loopedSlides), t.slideTo(e); }), j.extend(t.pagination, { $el: e, el: e[0] })); }, destroy: function () { var e, t = this.params.pagination; t.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length && ((e = this.pagination.$el).removeClass(t.hiddenClass), e.removeClass(t.modifierClass + t.type), this.pagination.bullets && this.pagination.bullets.removeClass(t.bulletActiveClass), t.clickable && e.off("click", "." + t.bulletClass)); }, }, P = { setTranslate: function () { var e, t, i, s, n, a, o, r; this.params.scrollbar.el && this.scrollbar.el && ((a = this.scrollbar), (e = this.rtlTranslate), (r = this.progress), (t = a.dragSize), (i = a.trackSize), (s = a.$dragEl), (n = a.$el), (a = this.params.scrollbar), (r = (i - (o = t)) * r), e ? 0 < (r = -r) ? ((o = t - r), (r = 0)) : i < -r + t && (o = i + r) : r < 0 ? ((o = t + r), (r = 0)) : i < r + t && (o = i - r), this.isHorizontal() ? (s.transform("translate3d(" + r + "px, 0, 0)"), (s[0].style.width = o + "px")) : (s.transform("translate3d(0px, " + r + "px, 0)"), (s[0].style.height = o + "px")), a.hide && (clearTimeout(this.scrollbar.timeout), (n[0].style.opacity = 1), (this.scrollbar.timeout = setTimeout(function () { (n[0].style.opacity = 0), n.transition(400); }, 1e3)))); }, setTransition: function (e) { this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e); }, updateSize: function () { var e, t, i, s, n, a, o; this.params.scrollbar.el && this.scrollbar.el && ((t = (e = this.scrollbar).$dragEl), (i = e.$el), (t[0].style.width = ""), (t[0].style.height = ""), (s = this.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight), (a = (n = this.size / this.virtualSize) * (s / this.size)), (o = "auto" === this.params.scrollbar.dragSize ? s * n : parseInt(this.params.scrollbar.dragSize, 10)), this.isHorizontal() ? (t[0].style.width = o + "px") : (t[0].style.height = o + "px"), (i[0].style.display = 1 <= n ? "none" : ""), this.params.scrollbar.hide && (i[0].style.opacity = 0), j.extend(e, { trackSize: s, divider: n, moveDivider: a, dragSize: o, }), e.$el[ this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass" ](this.params.scrollbar.lockClass)); }, getPointerPosition: function (e) { return this.isHorizontal() ? ("touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0] : e ).clientX : ("touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0] : e ).clientY; }, setDragPosition: function (e) { var t = this.scrollbar, i = this.rtlTranslate, s = t.$el, n = t.dragSize, a = t.trackSize, o = t.dragStartPos, t = (t.getPointerPosition(e) - s.offset()[this.isHorizontal() ? "left" : "top"] - (null !== o ? o : n / 2)) / (a - n), e = ((t = Math.max(Math.min(t, 1), 0)), i && (t = 1 - t), this.minTranslate() + (this.maxTranslate() - this.minTranslate()) * t); this.updateProgress(e), this.setTranslate(e), this.updateActiveIndex(), this.updateSlidesClasses(); }, onDragStart: function (e) { var t = this.params.scrollbar, i = this.scrollbar, s = this.$wrapperEl, n = i.$el, a = i.$dragEl; (this.scrollbar.isTouched = !0), (this.scrollbar.dragStartPos = e.target === a[0] || e.target === a ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[ this.isHorizontal() ? "left" : "top" ] : null), e.preventDefault(), e.stopPropagation(), s.transition(100), a.transition(100), i.setDragPosition(e), clearTimeout(this.scrollbar.dragTimeout), n.transition(0), t.hide && n.css("opacity", 1), this.params.cssMode && this.$wrapperEl.css("scroll-snap-type", "none"), this.emit("scrollbarDragStart", e); }, onDragMove: function (e) { var t = this.scrollbar, i = this.$wrapperEl, s = t.$el, n = t.$dragEl; this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : (e.returnValue = !1), t.setDragPosition(e), i.transition(0), s.transition(0), n.transition(0), this.emit("scrollbarDragMove", e)); }, onDragEnd: function (e) { var t = this.params.scrollbar, i = this.scrollbar, s = this.$wrapperEl, n = i.$el; this.scrollbar.isTouched && ((this.scrollbar.isTouched = !1), this.params.cssMode && (this.$wrapperEl.css("scroll-snap-type", ""), s.transition("")), t.hide && (clearTimeout(this.scrollbar.dragTimeout), (this.scrollbar.dragTimeout = j.nextTick(function () { n.css("opacity", 0), n.transition(400); }, 1e3))), this.emit("scrollbarDragEnd", e), t.snapOnRelease && this.slideToClosest()); }, enableDraggable: function () { var e, t, i, s, n; this.params.scrollbar.el && ((i = this.scrollbar), (e = this.touchEventsTouch), (t = this.touchEventsDesktop), (n = this.params), (i = i.$el[0]), (s = !(!y.passiveListener || !n.passiveListeners) && { passive: !1, capture: !1, }), (n = !(!y.passiveListener || !n.passiveListeners) && { passive: !0, capture: !1, }), y.touch ? (i.addEventListener(e.start, this.scrollbar.onDragStart, s), i.addEventListener(e.move, this.scrollbar.onDragMove, s), i.addEventListener(e.end, this.scrollbar.onDragEnd, n)) : (i.addEventListener(t.start, this.scrollbar.onDragStart, s), u.addEventListener(t.move, this.scrollbar.onDragMove, s), u.addEventListener(t.end, this.scrollbar.onDragEnd, n))); }, disableDraggable: function () { var e, t, i, s, n; this.params.scrollbar.el && ((i = this.scrollbar), (e = this.touchEventsTouch), (t = this.touchEventsDesktop), (n = this.params), (i = i.$el[0]), (s = !(!y.passiveListener || !n.passiveListeners) && { passive: !1, capture: !1, }), (n = !(!y.passiveListener || !n.passiveListeners) && { passive: !0, capture: !1, }), y.touch ? (i.removeEventListener( e.start, this.scrollbar.onDragStart, s ), i.removeEventListener(e.move, this.scrollbar.onDragMove, s), i.removeEventListener(e.end, this.scrollbar.onDragEnd, n)) : (i.removeEventListener( t.start, this.scrollbar.onDragStart, s ), u.removeEventListener(t.move, this.scrollbar.onDragMove, s), u.removeEventListener(t.end, this.scrollbar.onDragEnd, n))); }, init: function () { var e, t, i, s; this.params.scrollbar.el && ((e = this.scrollbar), (s = this.$el), (i = S((t = this.params.scrollbar).el)), 0 === (s = (i = this.params.uniqueNavElements && "string" == typeof t.el && 1 < i.length && 1 === s.find(t.el).length ? s.find(t.el) : i).find("." + this.params.scrollbar.dragClass)).length && ((s = S( '
' )), i.append(s)), j.extend(e, { $el: i, el: i[0], $dragEl: s, dragEl: s[0] }), t.draggable && e.enableDraggable()); }, destroy: function () { this.scrollbar.disableDraggable(); }, }, Q = { setTransform: function (e, t) { var i = this.rtl, e = S(e), i = i ? -1 : 1, s = e.attr("data-swiper-parallax") || "0", n = e.attr("data-swiper-parallax-x"), a = e.attr("data-swiper-parallax-y"), o = e.attr("data-swiper-parallax-scale"), r = e.attr("data-swiper-parallax-opacity"); n || a ? ((n = n || "0"), (a = a || "0")) : this.isHorizontal() ? ((n = s), (a = "0")) : ((a = s), (n = "0")), (n = 0 <= n.indexOf("%") ? parseInt(n, 10) * t * i + "%" : n * t * i + "px"), (a = 0 <= a.indexOf("%") ? parseInt(a, 10) * t + "%" : a * t + "px"), null != r && ((s = r - (r - 1) * (1 - Math.abs(t))), (e[0].style.opacity = s)), null == o ? e.transform("translate3d(" + n + ", " + a + ", 0px)") : ((i = o - (o - 1) * (1 - Math.abs(t))), e.transform( "translate3d(" + n + ", " + a + ", 0px) scale(" + i + ")" )); }, setTranslate: function () { var s = this, e = s.$el, t = s.slides, n = s.progress, a = s.snapGrid; e .children( "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]" ) .each(function (e, t) { s.parallax.setTransform(t, n); }), t.each(function (e, t) { var i = t.progress; 1 < s.params.slidesPerGroup && "auto" !== s.params.slidesPerView && (i += Math.ceil(e / 2) - n * (a.length - 1)), (i = Math.min(Math.max(i, -1), 1)), S(t) .find( "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]" ) .each(function (e, t) { s.parallax.setTransform(t, i); }); }); }, setTransition: function (s) { void 0 === s && (s = this.params.speed), this.$el .find( "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]" ) .each(function (e, t) { var t = S(t), i = parseInt(t.attr("data-swiper-parallax-duration"), 10) || s; 0 === s && (i = 0), t.transition(i); }); }, }, Z = { getDistanceBetweenTouches: function (e) { if (e.targetTouches.length < 2) return 1; var t = e.targetTouches[0].pageX, i = e.targetTouches[0].pageY, s = e.targetTouches[1].pageX, e = e.targetTouches[1].pageY; return Math.sqrt(Math.pow(s - t, 2) + Math.pow(e - i, 2)); }, onGestureStart: function (e) { var t = this.params.zoom, i = this.zoom, s = i.gesture; if ( ((i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1), !y.gestures) ) { if ( "touchstart" !== e.type || ("touchstart" === e.type && e.targetTouches.length < 2) ) return; (i.fakeGestureTouched = !0), (s.scaleStart = Z.getDistanceBetweenTouches(e)); } (s.$slideEl && s.$slideEl.length) || ((s.$slideEl = S(e.target).closest(".swiper-slide")), 0 === s.$slideEl.length && (s.$slideEl = this.slides.eq(this.activeIndex)), (s.$imageEl = s.$slideEl.find("img, svg, canvas")), (s.$imageWrapEl = s.$imageEl.parent("." + t.containerClass)), (s.maxRatio = s.$imageWrapEl.attr("data-swiper-zoom") || t.maxRatio), 0 !== s.$imageWrapEl.length) ? (s.$imageEl.transition(0), (this.zoom.isScaling = !0)) : (s.$imageEl = void 0); }, onGestureChange: function (e) { var t = this.params.zoom, i = this.zoom, s = i.gesture; if (!y.gestures) { if ( "touchmove" !== e.type || ("touchmove" === e.type && e.targetTouches.length < 2) ) return; (i.fakeGestureMoved = !0), (s.scaleMove = Z.getDistanceBetweenTouches(e)); } s.$imageEl && 0 !== s.$imageEl.length && ((i.scale = y.gestures ? e.scale * i.currentScale : (s.scaleMove / s.scaleStart) * i.currentScale), i.scale > s.maxRatio && (i.scale = s.maxRatio - 1 + Math.pow(i.scale - s.maxRatio + 1, 0.5)), i.scale < t.minRatio && (i.scale = t.minRatio + 1 - Math.pow(t.minRatio - i.scale + 1, 0.5)), s.$imageEl.transform( "translate3d(0,0,0) scale(" + i.scale + ")" )); }, onGestureEnd: function (e) { var t = this.params.zoom, i = this.zoom, s = i.gesture; if (!y.gestures) { if (!i.fakeGestureTouched || !i.fakeGestureMoved) return; if ( "touchend" !== e.type || ("touchend" === e.type && e.changedTouches.length < 2 && !r.android) ) return; (i.fakeGestureTouched = !1), (i.fakeGestureMoved = !1); } s.$imageEl && 0 !== s.$imageEl.length && ((i.scale = Math.max(Math.min(i.scale, s.maxRatio), t.minRatio)), s.$imageEl .transition(this.params.speed) .transform("translate3d(0,0,0) scale(" + i.scale + ")"), (i.currentScale = i.scale), (i.isScaling = !1), 1 === i.scale && (s.$slideEl = void 0)); }, onTouchStart: function (e) { var t = this.zoom, i = t.gesture, t = t.image; i.$imageEl && 0 !== i.$imageEl.length && !t.isTouched && (r.android && e.preventDefault(), (t.isTouched = !0), (t.touchesStart.x = ( "touchstart" === e.type ? e.targetTouches[0] : e ).pageX), (t.touchesStart.y = ( "touchstart" === e.type ? e.targetTouches[0] : e ).pageY)); }, onTouchMove: function (e) { var t = this.zoom, i = t.gesture, s = t.image, n = t.velocity; if ( i.$imageEl && 0 !== i.$imageEl.length && ((this.allowClick = !1), s.isTouched && i.$slideEl) ) { s.isMoved || ((s.width = i.$imageEl[0].offsetWidth), (s.height = i.$imageEl[0].offsetHeight), (s.startX = j.getTranslate(i.$imageWrapEl[0], "x") || 0), (s.startY = j.getTranslate(i.$imageWrapEl[0], "y") || 0), (i.slideWidth = i.$slideEl[0].offsetWidth), (i.slideHeight = i.$slideEl[0].offsetHeight), i.$imageWrapEl.transition(0), this.rtl && ((s.startX = -s.startX), (s.startY = -s.startY))); var a = s.width * t.scale, o = s.height * t.scale; if (!(a < i.slideWidth && o < i.slideHeight)) { if ( ((s.minX = Math.min(i.slideWidth / 2 - a / 2, 0)), (s.maxX = -s.minX), (s.minY = Math.min(i.slideHeight / 2 - o / 2, 0)), (s.maxY = -s.minY), (s.touchesCurrent.x = ( "touchmove" === e.type ? e.targetTouches[0] : e ).pageX), (s.touchesCurrent.y = ( "touchmove" === e.type ? e.targetTouches[0] : e ).pageY), !s.isMoved && !t.isScaling) ) { if ( this.isHorizontal() && ((Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x) || (Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)) ) return void (s.isTouched = !1); if ( !this.isHorizontal() && ((Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y) || (Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)) ) return void (s.isTouched = !1); } e.preventDefault(), e.stopPropagation(), (s.isMoved = !0), (s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX), (s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY), s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, 0.8)), s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, 0.8)), s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, 0.8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, 0.8)), n.prevPositionX || (n.prevPositionX = s.touchesCurrent.x), n.prevPositionY || (n.prevPositionY = s.touchesCurrent.y), n.prevTime || (n.prevTime = Date.now()), (n.x = (s.touchesCurrent.x - n.prevPositionX) / (Date.now() - n.prevTime) / 2), (n.y = (s.touchesCurrent.y - n.prevPositionY) / (Date.now() - n.prevTime) / 2), Math.abs(s.touchesCurrent.x - n.prevPositionX) < 2 && (n.x = 0), Math.abs(s.touchesCurrent.y - n.prevPositionY) < 2 && (n.y = 0), (n.prevPositionX = s.touchesCurrent.x), (n.prevPositionY = s.touchesCurrent.y), (n.prevTime = Date.now()), i.$imageWrapEl.transform( "translate3d(" + s.currentX + "px, " + s.currentY + "px,0)" ); } } }, onTouchEnd: function () { var e = this.zoom, t = e.gesture, i = e.image, s = e.velocity; if (t.$imageEl && 0 !== t.$imageEl.length) { if (!i.isTouched || !i.isMoved) return (i.isTouched = !1), void (i.isMoved = !1); (i.isTouched = !1), (i.isMoved = !1); var n = 300, a = 300, o = s.x * n, o = i.currentX + o, r = s.y * a, r = i.currentY + r, s = (0 !== s.x && (n = Math.abs((o - i.currentX) / s.x)), 0 !== s.y && (a = Math.abs((r - i.currentY) / s.y)), Math.max(n, a)), n = ((i.currentX = o), (i.currentY = r), i.width * e.scale), a = i.height * e.scale; (i.minX = Math.min(t.slideWidth / 2 - n / 2, 0)), (i.maxX = -i.minX), (i.minY = Math.min(t.slideHeight / 2 - a / 2, 0)), (i.maxY = -i.minY), (i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX)), (i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY)), t.$imageWrapEl .transition(s) .transform( "translate3d(" + i.currentX + "px, " + i.currentY + "px,0)" ); } }, onTransitionEnd: function () { var e = this.zoom, t = e.gesture; t.$slideEl && this.previousIndex !== this.activeIndex && (t.$imageEl.transform("translate3d(0,0,0) scale(1)"), t.$imageWrapEl.transform("translate3d(0,0,0)"), (e.scale = 1), (e.currentScale = 1), (t.$slideEl = void 0), (t.$imageEl = void 0), (t.$imageWrapEl = void 0)); }, toggle: function (e) { var t = this.zoom; t.scale && 1 !== t.scale ? t.out() : t.in(e); }, in: function (e) { var t, i, s, n, a = this.zoom, o = this.params.zoom, r = a.gesture, l = a.image; r.$slideEl || ((r.$slideEl = this.clickedSlide ? S(this.clickedSlide) : this.slides.eq(this.activeIndex)), (r.$imageEl = r.$slideEl.find("img, svg, canvas")), (r.$imageWrapEl = r.$imageEl.parent("." + o.containerClass))), r.$imageEl && 0 !== r.$imageEl.length && (r.$slideEl.addClass("" + o.zoomedSlideClass), (l = void 0 === l.touchesStart.x && e ? ((t = ("touchend" === e.type ? e.changedTouches[0] : e) .pageX), ("touchend" === e.type ? e.changedTouches[0] : e).pageY) : ((t = l.touchesStart.x), l.touchesStart.y)), (a.scale = r.$imageWrapEl.attr("data-swiper-zoom") || o.maxRatio), (a.currentScale = r.$imageWrapEl.attr("data-swiper-zoom") || o.maxRatio), e ? ((o = r.$slideEl[0].offsetWidth), (e = r.$slideEl[0].offsetHeight), (t = r.$slideEl.offset().left + o / 2 - t), (l = r.$slideEl.offset().top + e / 2 - l), (s = r.$imageEl[0].offsetWidth), (n = r.$imageEl[0].offsetHeight), (s = s * a.scale), (n = n * a.scale), (s = -(o = Math.min(o / 2 - s / 2, 0))), (n = -(e = Math.min(e / 2 - n / 2, 0))), s < (i = (i = t * a.scale) < o ? o : i) && (i = s), n < (s = (s = l * a.scale) < e ? e : s) && (s = n)) : (s = i = 0), r.$imageWrapEl .transition(300) .transform("translate3d(" + i + "px, " + s + "px,0)"), r.$imageEl .transition(300) .transform("translate3d(0,0,0) scale(" + a.scale + ")")); }, out: function () { var e = this.zoom, t = this.params.zoom, i = e.gesture; i.$slideEl || ((i.$slideEl = this.clickedSlide ? S(this.clickedSlide) : this.slides.eq(this.activeIndex)), (i.$imageEl = i.$slideEl.find("img, svg, canvas")), (i.$imageWrapEl = i.$imageEl.parent("." + t.containerClass))), i.$imageEl && 0 !== i.$imageEl.length && ((e.scale = 1), (e.currentScale = 1), i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"), i.$imageEl .transition(300) .transform("translate3d(0,0,0) scale(1)"), i.$slideEl.removeClass("" + t.zoomedSlideClass), (i.$slideEl = void 0)); }, enable: function () { var e, t, i = this.zoom; i.enabled || ((i.enabled = !0), (e = !( "touchstart" !== this.touchEvents.start || !y.passiveListener || !this.params.passiveListeners ) && { passive: !0, capture: !1 }), (t = !y.passiveListener || { passive: !1, capture: !0 }), y.gestures ? (this.$wrapperEl.on( "gesturestart", ".swiper-slide", i.onGestureStart, e ), this.$wrapperEl.on( "gesturechange", ".swiper-slide", i.onGestureChange, e ), this.$wrapperEl.on( "gestureend", ".swiper-slide", i.onGestureEnd, e )) : "touchstart" === this.touchEvents.start && (this.$wrapperEl.on( this.touchEvents.start, ".swiper-slide", i.onGestureStart, e ), this.$wrapperEl.on( this.touchEvents.move, ".swiper-slide", i.onGestureChange, t ), this.$wrapperEl.on( this.touchEvents.end, ".swiper-slide", i.onGestureEnd, e ), this.touchEvents.cancel && this.$wrapperEl.on( this.touchEvents.cancel, ".swiper-slide", i.onGestureEnd, e )), this.$wrapperEl.on( this.touchEvents.move, "." + this.params.zoom.containerClass, i.onTouchMove, t )); }, disable: function () { var e, t, i = this.zoom; i.enabled && ((this.zoom.enabled = !1), (e = !( "touchstart" !== this.touchEvents.start || !y.passiveListener || !this.params.passiveListeners ) && { passive: !0, capture: !1 }), (t = !y.passiveListener || { passive: !1, capture: !0 }), y.gestures ? (this.$wrapperEl.off( "gesturestart", ".swiper-slide", i.onGestureStart, e ), this.$wrapperEl.off( "gesturechange", ".swiper-slide", i.onGestureChange, e ), this.$wrapperEl.off( "gestureend", ".swiper-slide", i.onGestureEnd, e )) : "touchstart" === this.touchEvents.start && (this.$wrapperEl.off( this.touchEvents.start, ".swiper-slide", i.onGestureStart, e ), this.$wrapperEl.off( this.touchEvents.move, ".swiper-slide", i.onGestureChange, t ), this.$wrapperEl.off( this.touchEvents.end, ".swiper-slide", i.onGestureEnd, e ), this.touchEvents.cancel && this.$wrapperEl.off( this.touchEvents.cancel, ".swiper-slide", i.onGestureEnd, e )), this.$wrapperEl.off( this.touchEvents.move, "." + this.params.zoom.containerClass, i.onTouchMove, t )); }, }, J = { loadInSlide: function (e, r) { void 0 === r && (r = !0); var l, d = this, c = d.params.lazy; void 0 !== e && 0 !== d.slides.length && ((e = (l = d.virtual && d.params.virtual.enabled ? d.$wrapperEl.children( "." + d.params.slideClass + '[data-swiper-slide-index="' + e + '"]' ) : d.slides.eq(e)).find( "." + c.elementClass + ":not(." + c.loadedClass + "):not(." + c.loadingClass + ")" )), 0 !== (e = !l.hasClass(c.elementClass) || l.hasClass(c.loadedClass) || l.hasClass(c.loadingClass) ? e : e.add(l[0])).length && e.each(function (e, t) { var i = S(t), s = (i.addClass(c.loadingClass), i.attr("data-background")), n = i.attr("data-src"), a = i.attr("data-srcset"), o = i.attr("data-sizes"); d.loadImage(i[0], n || s, a, o, !1, function () { var e, t; null == d || !d || (d && !d.params) || d.destroyed || (s ? (i.css("background-image", 'url("' + s + '")'), i.removeAttr("data-background")) : (a && (i.attr("srcset", a), i.removeAttr("data-srcset")), o && (i.attr("sizes", o), i.removeAttr("data-sizes")), n && (i.attr("src", n), i.removeAttr("data-src"))), i.addClass(c.loadedClass).removeClass(c.loadingClass), l.find("." + c.preloaderClass).remove(), d.params.loop && r && ((e = l.attr("data-swiper-slide-index")), l.hasClass(d.params.slideDuplicateClass) ? ((t = d.$wrapperEl.children( '[data-swiper-slide-index="' + e + '"]:not(.' + d.params.slideDuplicateClass + ")" )), d.lazy.loadInSlide(t.index(), !1)) : ((t = d.$wrapperEl.children( "." + d.params.slideDuplicateClass + '[data-swiper-slide-index="' + e + '"]' )), d.lazy.loadInSlide(t.index(), !1))), d.emit("lazyImageReady", l[0], i[0])); }), d.emit("lazyImageLoad", l[0], i[0]); })); }, load: function () { var i = this, t = i.$wrapperEl, s = i.params, n = i.slides, e = i.activeIndex, a = i.virtual && s.virtual.enabled, o = s.lazy, r = s.slidesPerView; function l(e) { if (a) { if ( t.children( "." + s.slideClass + '[data-swiper-slide-index="' + e + '"]' ).length ) return 1; } else if (n[e]) return 1; } function d(e) { return a ? S(e).attr("data-swiper-slide-index") : S(e).index(); } if ( ("auto" === r && (r = 0), i.lazy.initialImageLoaded || (i.lazy.initialImageLoaded = !0), i.params.watchSlidesVisibility) ) t.children("." + s.slideVisibleClass).each(function (e, t) { t = a ? S(t).attr("data-swiper-slide-index") : S(t).index(); i.lazy.loadInSlide(t); }); else if (1 < r) for (var c = e; c < e + r; c += 1) l(c) && i.lazy.loadInSlide(c); else i.lazy.loadInSlide(e); if (o.loadPrevNext) if (1 < r || (o.loadPrevNextAmount && 1 < o.loadPrevNextAmount)) { for ( var o = o.loadPrevNextAmount, u = r, h = Math.min(e + u + Math.max(o, u), n.length), u = Math.max(e - Math.max(u, o), 0), p = e + r; p < h; p += 1 ) l(p) && i.lazy.loadInSlide(p); for (var m = u; m < e; m += 1) l(m) && i.lazy.loadInSlide(m); } else { (o = t.children("." + s.slideNextClass)), (u = (0 < o.length && i.lazy.loadInSlide(d(o)), t.children("." + s.slidePrevClass))); 0 < u.length && i.lazy.loadInSlide(d(u)); } }, }, k = { LinearSpline: function (e, t) { var i, s, n, a, o; return ( (this.x = e), (this.y = t), (this.lastIndex = e.length - 1), (this.interpolate = function (e) { return e ? ((o = (function (e, t) { for (s = -1, i = e.length; 1 < i - s;) e[(n = (i + s) >> 1)] <= t ? (s = n) : (i = n); return i; })(this.x, e)), (a = o - 1), ((e - this.x[a]) * (this.y[o] - this.y[a])) / (this.x[o] - this.x[a]) + this.y[a]) : 0; }), this ); }, getInterpolateFunction: function (e) { this.controller.spline || (this.controller.spline = this.params.loop ? new k.LinearSpline(this.slidesGrid, e.slidesGrid) : new k.LinearSpline(this.snapGrid, e.snapGrid)); }, setTranslate: function (e, t) { var i, s, n = this, a = n.controller.control; function o(e) { var t = n.rtlTranslate ? -n.translate : n.translate; "slide" === n.params.controller.by && (n.controller.getInterpolateFunction(e), (s = -n.controller.spline.interpolate(-t))), (s && "container" !== n.params.controller.by) || ((i = (e.maxTranslate() - e.minTranslate()) / (n.maxTranslate() - n.minTranslate())), (s = (t - n.minTranslate()) * i + e.minTranslate())), n.params.controller.inverse && (s = e.maxTranslate() - s), e.updateProgress(s), e.setTranslate(s, n), e.updateActiveIndex(), e.updateSlidesClasses(); } if (Array.isArray(a)) for (var r = 0; r < a.length; r += 1) a[r] !== t && a[r] instanceof p && o(a[r]); else a instanceof p && t !== a && o(a); }, setTransition: function (t, e) { var i, s = this, n = s.controller.control; function a(e) { e.setTransition(t, s), 0 !== t && (e.transitionStart(), e.params.autoHeight && j.nextTick(function () { e.updateAutoHeight(); }), e.$wrapperEl.transitionEnd(function () { n && (e.params.loop && "slide" === s.params.controller.by && e.loopFix(), e.transitionEnd()); })); } if (Array.isArray(n)) for (i = 0; i < n.length; i += 1) n[i] !== e && n[i] instanceof p && a(n[i]); else n instanceof p && e !== n && a(n); }, }, ee = { makeElFocusable: function (e) { return e.attr("tabIndex", "0"), e; }, addElRole: function (e, t) { return e.attr("role", t), e; }, addElLabel: function (e, t) { return e.attr("aria-label", t), e; }, disableEl: function (e) { return e.attr("aria-disabled", !0), e; }, enableEl: function (e) { return e.attr("aria-disabled", !1), e; }, onEnterKey: function (e) { var t = this.params.a11y; 13 === e.keyCode && ((e = S(e.target)), this.navigation && this.navigation.$nextEl && e.is(this.navigation.$nextEl) && ((this.isEnd && !this.params.loop) || this.slideNext(), this.isEnd ? this.a11y.notify(t.lastSlideMessage) : this.a11y.notify(t.nextSlideMessage)), this.navigation && this.navigation.$prevEl && e.is(this.navigation.$prevEl) && ((this.isBeginning && !this.params.loop) || this.slidePrev(), this.isBeginning ? this.a11y.notify(t.firstSlideMessage) : this.a11y.notify(t.prevSlideMessage)), this.pagination && e.is("." + this.params.pagination.bulletClass) && e[0].click()); }, notify: function (e) { var t = this.a11y.liveRegion; 0 !== t.length && (t.html(""), t.html(e)); }, updateNavigation: function () { var e, t; !this.params.loop && this.navigation && ((e = (t = this.navigation).$nextEl), (t = t.$prevEl) && 0 < t.length && (this.isBeginning ? this.a11y.disableEl(t) : this.a11y.enableEl(t)), e && 0 < e.length && (this.isEnd ? this.a11y.disableEl(e) : this.a11y.enableEl(e))); }, updatePagination: function () { var i = this, s = i.params.a11y; i.pagination && i.params.pagination.clickable && i.pagination.bullets && i.pagination.bullets.length && i.pagination.bullets.each(function (e, t) { t = S(t); i.a11y.makeElFocusable(t), i.a11y.addElRole(t, "button"), i.a11y.addElLabel( t, s.paginationBulletMessage.replace( /{{index}}/, t.index() + 1 ) ); }); }, init: function () { this.$el.append(this.a11y.liveRegion); var e, t, i = this.params.a11y; this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl), this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl), e && (this.a11y.makeElFocusable(e), this.a11y.addElRole(e, "button"), this.a11y.addElLabel(e, i.nextSlideMessage), e.on("keydown", this.a11y.onEnterKey)), t && (this.a11y.makeElFocusable(t), this.a11y.addElRole(t, "button"), this.a11y.addElLabel(t, i.prevSlideMessage), t.on("keydown", this.a11y.onEnterKey)), this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.on( "keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey ); }, destroy: function () { var e, t; this.a11y.liveRegion && 0 < this.a11y.liveRegion.length && this.a11y.liveRegion.remove(), this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl), this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl), e && e.off("keydown", this.a11y.onEnterKey), t && t.off("keydown", this.a11y.onEnterKey), this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.off( "keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey ); }, }, I = { init: function () { if (this.params.history) { if (!X.history || !X.history.pushState) return ( (this.params.history.enabled = !1), void (this.params.hashNavigation.enabled = !0) ); var e = this.history; (e.initialized = !0), (e.paths = I.getPathValues()), (e.paths.key || e.paths.value) && (e.scrollToSlide( 0, e.paths.value, this.params.runCallbacksOnInit ), this.params.history.replaceState || X.addEventListener( "popstate", this.history.setHistoryPopState )); } }, destroy: function () { this.params.history.replaceState || X.removeEventListener( "popstate", this.history.setHistoryPopState ); }, setHistoryPopState: function () { (this.history.paths = I.getPathValues()), this.history.scrollToSlide( this.params.speed, this.history.paths.value, !1 ); }, getPathValues: function () { var e = X.location.pathname .slice(1) .split("/") .filter(function (e) { return "" !== e; }), t = e.length; return { key: e[t - 2], value: e[t - 1] }; }, setHistory: function (e, t) { this.history.initialized && this.params.history.enabled && ((t = this.slides.eq(t)), (t = I.slugify(t.attr("data-history"))), X.location.pathname.includes(e) || (t = e + "/" + t), ((e = X.history.state) && e.value === t) || (this.params.history.replaceState ? X.history.replaceState({ value: t }, null, t) : X.history.pushState({ value: t }, null, t))); }, slugify: function (e) { return e .toString() .replace(/\s+/g, "-") .replace(/[^\w-]+/g, "") .replace(/--+/g, "-") .replace(/^-+/, "") .replace(/-+$/, ""); }, scrollToSlide: function (e, t, i) { if (t) for (var s = 0, n = this.slides.length; s < n; s += 1) { var a = this.slides.eq(s); I.slugify(a.attr("data-history")) !== t || a.hasClass(this.params.slideDuplicateClass) || ((a = a.index()), this.slideTo(a, e, i)); } else this.slideTo(0, e, i); }, }, q = { onHashCange: function () { var e = u.location.hash.replace("#", ""); e !== this.slides.eq(this.activeIndex).attr("data-hash") && void 0 !== (e = this.$wrapperEl .children( "." + this.params.slideClass + '[data-hash="' + e + '"]' ) .index()) && this.slideTo(e); }, setHash: function () { var e; this.hashNavigation.initialized && this.params.hashNavigation.enabled && (this.params.hashNavigation.replaceState && X.history && X.history.replaceState ? X.history.replaceState( null, null, "#" + this.slides.eq(this.activeIndex).attr("data-hash") || "" ) : ((e = (e = this.slides.eq(this.activeIndex)).attr("data-hash") || e.attr("data-history")), (u.location.hash = e || ""))); }, init: function () { if ( !( !this.params.hashNavigation.enabled || (this.params.history && this.params.history.enabled) ) ) { this.hashNavigation.initialized = !0; var e = u.location.hash.replace("#", ""); if (e) for (var t = 0, i = this.slides.length; t < i; t += 1) { var s = this.slides.eq(t); (s.attr("data-hash") || s.attr("data-history")) !== e || s.hasClass(this.params.slideDuplicateClass) || ((s = s.index()), this.slideTo(s, 0, this.params.runCallbacksOnInit, !0)); } this.params.hashNavigation.watchState && S(X).on("hashchange", this.hashNavigation.onHashCange); } }, destroy: function () { this.params.hashNavigation.watchState && S(X).off("hashchange", this.hashNavigation.onHashCange); }, }, M = { run: function () { var e = this, t = e.slides.eq(e.activeIndex), i = e.params.autoplay.delay; t.attr("data-swiper-autoplay") && (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay), clearTimeout(e.autoplay.timeout), (e.autoplay.timeout = j.nextTick(function () { e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.params.loop ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")), e.params.cssMode && e.autoplay.running && e.autoplay.run(); }, i)); }, start: function () { return ( void 0 === this.autoplay.timeout && !this.autoplay.running && ((this.autoplay.running = !0), this.emit("autoplayStart"), this.autoplay.run(), !0) ); }, stop: function () { return ( !!this.autoplay.running && void 0 !== this.autoplay.timeout && (this.autoplay.timeout && (clearTimeout(this.autoplay.timeout), (this.autoplay.timeout = void 0)), (this.autoplay.running = !1), this.emit("autoplayStop"), !0) ); }, pause: function (e) { !this.autoplay.running || this.autoplay.paused || (this.autoplay.timeout && clearTimeout(this.autoplay.timeout), (this.autoplay.paused = !0), 0 !== e && this.params.autoplay.waitForTransition ? (this.$wrapperEl[0].addEventListener( "transitionend", this.autoplay.onTransitionEnd ), this.$wrapperEl[0].addEventListener( "webkitTransitionEnd", this.autoplay.onTransitionEnd )) : ((this.autoplay.paused = !1), this.autoplay.run())); }, }, te = { setTranslate: function () { for (var e = this.slides, t = 0; t < e.length; t += 1) { var i = this.slides.eq(t), s = -i[0].swiperSlideOffset, n = (this.params.virtualTranslate || (s -= this.translate), 0), a = (this.isHorizontal() || ((n = s), (s = 0)), this.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0)); i.css({ opacity: a }).transform( "translate3d(" + s + "px, " + n + "px, 0px)" ); } }, setTransition: function (e) { var i, s = this, t = s.slides, n = s.$wrapperEl; t.transition(e), s.params.virtualTranslate && 0 !== e && ((i = !1), t.transitionEnd(function () { if (!i && s && !s.destroyed) { (i = !0), (s.animating = !1); for ( var e = ["webkitTransitionEnd", "transitionend"], t = 0; t < e.length; t += 1 ) n.trigger(e[t]); } })); }, }, ie = { setTranslate: function () { var e, t = this.$el, i = this.$wrapperEl, s = this.slides, n = this.width, a = this.height, o = this.rtlTranslate, r = this.size, l = this.params.cubeEffect, d = this.isHorizontal(), c = this.virtual && this.params.virtual.enabled, u = 0; l.shadow && (d ? (0 === (e = i.find(".swiper-cube-shadow")).length && ((e = S('
')), i.append(e)), e.css({ height: n + "px" })) : 0 === (e = t.find(".swiper-cube-shadow")).length && ((e = S('
')), t.append(e))); for (var h, p = 0; p < s.length; p += 1) { var m = s.eq(p), v = p, f = 90 * (v = c ? parseInt(m.attr("data-swiper-slide-index"), 10) : v), g = Math.floor(f / 360), w = (o && ((f = -f), (g = Math.floor(-f / 360))), Math.max(Math.min(m[0].progress, 1), -1)), b = 0, y = 0, E = 0, g = (v % 4 == 0 ? ((b = 4 * -g * r), (E = 0)) : (v - 1) % 4 == 0 ? ((b = 0), (E = 4 * -g * r)) : (v - 2) % 4 == 0 ? ((b = r + 4 * g * r), (E = r)) : (v - 3) % 4 == 0 && ((b = -r), (E = 3 * r + 4 * r * g)), o && (b = -b), d || ((y = b), (b = 0)), "rotateX(" + (d ? 0 : -f) + "deg) rotateY(" + (d ? f : 0) + "deg) translate3d(" + b + "px, " + y + "px, " + E + "px)"); w <= 1 && -1 < w && (u = o ? 90 * -v - 90 * w : 90 * v + 90 * w), m.transform(g), l.slideShadows && ((f = d ? m.find(".swiper-slide-shadow-left") : m.find(".swiper-slide-shadow-top")), (b = d ? m.find(".swiper-slide-shadow-right") : m.find(".swiper-slide-shadow-bottom")), 0 === f.length && ((f = S( '
' )), m.append(f)), 0 === b.length && ((b = S( '
' )), m.append(b)), f.length && (f[0].style.opacity = Math.max(-w, 0)), b.length && (b[0].style.opacity = Math.max(w, 0))); } i.css({ "-webkit-transform-origin": "50% 50% -" + r / 2 + "px", "-moz-transform-origin": "50% 50% -" + r / 2 + "px", "-ms-transform-origin": "50% 50% -" + r / 2 + "px", "transform-origin": "50% 50% -" + r / 2 + "px", }), l.shadow && (d ? e.transform( "translate3d(0px, " + (n / 2 + l.shadowOffset) + "px, " + -n / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + l.shadowScale + ")" ) : ((t = Math.abs(u) - 90 * Math.floor(Math.abs(u) / 90)), (n = 1.5 - (Math.sin((2 * t * Math.PI) / 360) / 2 + Math.cos((2 * t * Math.PI) / 360) / 2)), (t = l.shadowScale), (n = l.shadowScale / n), (h = l.shadowOffset), e.transform( "scale3d(" + t + ", 1, " + n + ") translate3d(0px, " + (a / 2 + h) + "px, " + -a / 2 / n + "px) rotateX(-90deg)" ))), i.transform( "translate3d(0px,0," + (T.isSafari || T.isUiWebView ? -r / 2 : 0) + "px) rotateX(" + (this.isHorizontal() ? 0 : u) + "deg) rotateY(" + (this.isHorizontal() ? -u : 0) + "deg)" ); }, setTransition: function (e) { var t = this.$el; this.slides .transition(e) .find( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" ) .transition(e), this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e); }, }, se = { setTranslate: function () { for ( var e = this.slides, t = this.rtlTranslate, i = 0; i < e.length; i += 1 ) { var s, n, a = e.eq(i), o = a[0].progress, r = -180 * (o = this.params.flipEffect.limitRotation ? Math.max(Math.min(a[0].progress, 1), -1) : o), l = 0, d = -a[0].swiperSlideOffset, c = 0; this.isHorizontal() ? t && (r = -r) : ((c = d), (l = -r), (r = d = 0)), (a[0].style.zIndex = -Math.abs(Math.round(o)) + e.length), this.params.flipEffect.slideShadows && ((s = this.isHorizontal() ? a.find(".swiper-slide-shadow-left") : a.find(".swiper-slide-shadow-top")), (n = this.isHorizontal() ? a.find(".swiper-slide-shadow-right") : a.find(".swiper-slide-shadow-bottom")), 0 === s.length && ((s = S( '
' )), a.append(s)), 0 === n.length && ((n = S( '
' )), a.append(n)), s.length && (s[0].style.opacity = Math.max(-o, 0)), n.length && (n[0].style.opacity = Math.max(o, 0))), a.transform( "translate3d(" + d + "px, " + c + "px, 0px) rotateX(" + l + "deg) rotateY(" + r + "deg)" ); } }, setTransition: function (e) { var i, s = this, t = s.slides, n = s.activeIndex, a = s.$wrapperEl; t .transition(e) .find( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" ) .transition(e), s.params.virtualTranslate && 0 !== e && ((i = !1), t.eq(n).transitionEnd(function () { if (!i && s && !s.destroyed) { (i = !0), (s.animating = !1); for ( var e = ["webkitTransitionEnd", "transitionend"], t = 0; t < e.length; t += 1 ) a.trigger(e[t]); } })); }, }, ne = { setTranslate: function () { for ( var e = this.width, t = this.height, i = this.slides, s = this.$wrapperEl, n = this.slidesSizesGrid, a = this.params.coverflowEffect, o = this.isHorizontal(), r = this.translate, l = o ? e / 2 - r : t / 2 - r, d = o ? a.rotate : -a.rotate, c = a.depth, u = 0, h = i.length; u < h; u += 1 ) { var p = i.eq(u), m = n[u], m = ((l - p[0].swiperSlideOffset - m / 2) / m) * a.modifier, v = o ? d * m : 0, f = o ? 0 : d * m, g = -c * Math.abs(m), w = o ? 0 : a.stretch * m, b = o ? a.stretch * m : 0, b = (Math.abs(b) < 0.001 && (b = 0), Math.abs(w) < 0.001 && (w = 0), Math.abs(g) < 0.001 && (g = 0), Math.abs(v) < 0.001 && (v = 0), "translate3d(" + b + "px," + w + "px," + g + "px) rotateX(" + (f = Math.abs(f) < 0.001 ? 0 : f) + "deg) rotateY(" + v + "deg)"); p.transform(b), (p[0].style.zIndex = 1 - Math.abs(Math.round(m))), a.slideShadows && ((w = o ? p.find(".swiper-slide-shadow-left") : p.find(".swiper-slide-shadow-top")), (g = o ? p.find(".swiper-slide-shadow-right") : p.find(".swiper-slide-shadow-bottom")), 0 === w.length && ((w = S( '
' )), p.append(w)), 0 === g.length && ((g = S( '
' )), p.append(g)), w.length && (w[0].style.opacity = 0 < m ? m : 0), g.length && (g[0].style.opacity = 0 < -m ? -m : 0)); } (y.pointerEvents || y.prefixedPointerEvents) && (s[0].style.perspectiveOrigin = l + "px 50%"); }, setTransition: function (e) { this.slides .transition(e) .find( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left" ) .transition(e); }, }, ae = { init: function () { var e = this.params.thumbs, t = this.constructor; e.swiper instanceof t ? ((this.thumbs.swiper = e.swiper), j.extend(this.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1, }), j.extend(this.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1, })) : j.isObject(e.swiper) && ((this.thumbs.swiper = new t( j.extend({}, e.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1, }) )), (this.thumbs.swiperCreated = !0)), this.thumbs.swiper.$el.addClass( this.params.thumbs.thumbsContainerClass ), this.thumbs.swiper.on("tap", this.thumbs.onThumbClick); }, onThumbClick: function () { var e, t, i, s = this.thumbs.swiper; s && ((e = s.clickedIndex), ((i = s.clickedSlide) && S(i).hasClass(this.params.thumbs.slideThumbActiveClass)) || null == e || ((i = s.params.loop ? parseInt( S(s.clickedSlide).attr("data-swiper-slide-index"), 10 ) : e), this.params.loop && ((s = this.activeIndex), this.slides.eq(s).hasClass(this.params.slideDuplicateClass) && (this.loopFix(), (this._clientLeft = this.$wrapperEl[0].clientLeft), (s = this.activeIndex)), (e = this.slides .eq(s) .prevAll('[data-swiper-slide-index="' + i + '"]') .eq(0) .index()), (t = this.slides .eq(s) .nextAll('[data-swiper-slide-index="' + i + '"]') .eq(0) .index()), (i = void 0 === e || (void 0 !== t && t - s < s - e) ? t : e)), this.slideTo(i))); }, update: function (e) { var t = this.thumbs.swiper; if (t) { var i, s, n, a = "auto" === t.params.slidesPerView ? t.slidesPerViewDynamic() : t.params.slidesPerView, o = (this.realIndex !== t.realIndex && ((i = t.activeIndex), (n = t.params.loop ? (t.slides .eq(i) .hasClass(t.params.slideDuplicateClass) && (t.loopFix(), (t._clientLeft = t.$wrapperEl[0].clientLeft), (i = t.activeIndex)), (s = t.slides .eq(i) .prevAll( '[data-swiper-slide-index="' + this.realIndex + '"]' ) .eq(0) .index()), (n = t.slides .eq(i) .nextAll( '[data-swiper-slide-index="' + this.realIndex + '"]' ) .eq(0) .index()), void 0 === s ? n : void 0 === n ? s : n - i == i - s ? i : n - i < i - s ? n : s) : this.realIndex), t.visibleSlidesIndexes && t.visibleSlidesIndexes.indexOf(n) < 0 && (t.params.centeredSlides ? (n = i < n ? n - Math.floor(a / 2) + 1 : n + Math.floor(a / 2) - 1) : i < n && (n = n - a + 1), t.slideTo(n, e ? 0 : void 0))), 1), r = this.params.thumbs.slideThumbActiveClass; if ( (1 < this.params.slidesPerView && !this.params.centeredSlides && (o = this.params.slidesPerView), this.params.thumbs.multipleActiveThumbs || (o = 1), (o = Math.floor(o)), t.slides.removeClass(r), t.params.loop || (t.params.virtual && t.params.virtual.enabled)) ) for (var l = 0; l < o; l += 1) t.$wrapperEl .children( '[data-swiper-slide-index="' + (this.realIndex + l) + '"]' ) .addClass(r); else for (var d = 0; d < o; d += 1) t.slides.eq(this.realIndex + d).addClass(r); } }, }, _ = [ m, F, U, v, g, b, E, { name: "mousewheel", params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarged: "container", }, }, create: function () { j.extend(this, { mousewheel: { enabled: !1, enable: C.enable.bind(this), disable: C.disable.bind(this), handle: C.handle.bind(this), handleMouseEnter: C.handleMouseEnter.bind(this), handleMouseLeave: C.handleMouseLeave.bind(this), animateSlider: C.animateSlider.bind(this), releaseScroll: C.releaseScroll.bind(this), lastScrollTime: j.now(), lastEventBeforeSnap: void 0, recentWheelEvents: [], }, }); }, on: { init: function () { !this.params.mousewheel.enabled && this.params.cssMode && this.mousewheel.disable(), this.params.mousewheel.enabled && this.mousewheel.enable(); }, destroy: function () { this.params.cssMode && this.mousewheel.enable(), this.mousewheel.enabled && this.mousewheel.disable(); }, }, }, { name: "navigation", params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock", }, }, create: function () { j.extend(this, { navigation: { init: L.init.bind(this), update: L.update.bind(this), destroy: L.destroy.bind(this), onNextClick: L.onNextClick.bind(this), onPrevClick: L.onPrevClick.bind(this), }, }); }, on: { init: function () { this.navigation.init(), this.navigation.update(); }, toEdge: function () { this.navigation.update(); }, fromEdge: function () { this.navigation.update(); }, destroy: function () { this.navigation.destroy(); }, click: function (e) { var t, i = this.navigation, s = i.$nextEl, i = i.$prevEl; !this.params.navigation.hideOnClick || S(e.target).is(i) || S(e.target).is(s) || (s ? (t = s.hasClass(this.params.navigation.hiddenClass)) : i && (t = i.hasClass(this.params.navigation.hiddenClass)), !0 === t ? this.emit("navigationShow", this) : this.emit("navigationHide", this), s && s.toggleClass(this.params.navigation.hiddenClass), i && i.toggleClass(this.params.navigation.hiddenClass)); }, }, }, { name: "pagination", params: { pagination: { el: null, bulletElement: "span", clickable: !1, hideOnClick: !1, renderBullet: null, renderProgressbar: null, renderFraction: null, renderCustom: null, progressbarOpposite: !1, type: "bullets", dynamicBullets: !1, dynamicMainBullets: 1, formatFractionCurrent: function (e) { return e; }, formatFractionTotal: function (e) { return e; }, bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", modifierClass: "swiper-pagination-", currentClass: "swiper-pagination-current", totalClass: "swiper-pagination-total", hiddenClass: "swiper-pagination-hidden", progressbarFillClass: "swiper-pagination-progressbar-fill", progressbarOppositeClass: "swiper-pagination-progressbar-opposite", clickableClass: "swiper-pagination-clickable", lockClass: "swiper-pagination-lock", }, }, create: function () { j.extend(this, { pagination: { init: A.init.bind(this), render: A.render.bind(this), update: A.update.bind(this), destroy: A.destroy.bind(this), dynamicBulletIndex: 0, }, }); }, on: { init: function () { this.pagination.init(), this.pagination.render(), this.pagination.update(); }, activeIndexChange: function () { (!this.params.loop && void 0 !== this.snapIndex) || this.pagination.update(); }, snapIndexChange: function () { this.params.loop || this.pagination.update(); }, slidesLengthChange: function () { this.params.loop && (this.pagination.render(), this.pagination.update()); }, snapGridLengthChange: function () { this.params.loop || (this.pagination.render(), this.pagination.update()); }, destroy: function () { this.pagination.destroy(); }, click: function (e) { this.params.pagination.el && this.params.pagination.hideOnClick && 0 < this.pagination.$el.length && !S(e.target).hasClass(this.params.pagination.bulletClass) && (!0 === this.pagination.$el.hasClass( this.params.pagination.hiddenClass ) ? this.emit("paginationShow", this) : this.emit("paginationHide", this), this.pagination.$el.toggleClass( this.params.pagination.hiddenClass )); }, }, }, { name: "scrollbar", params: { scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag", }, }, create: function () { j.extend(this, { scrollbar: { init: P.init.bind(this), destroy: P.destroy.bind(this), updateSize: P.updateSize.bind(this), setTranslate: P.setTranslate.bind(this), setTransition: P.setTransition.bind(this), enableDraggable: P.enableDraggable.bind(this), disableDraggable: P.disableDraggable.bind(this), setDragPosition: P.setDragPosition.bind(this), getPointerPosition: P.getPointerPosition.bind(this), onDragStart: P.onDragStart.bind(this), onDragMove: P.onDragMove.bind(this), onDragEnd: P.onDragEnd.bind(this), isTouched: !1, timeout: null, dragTimeout: null, }, }); }, on: { init: function () { this.scrollbar.init(), this.scrollbar.updateSize(), this.scrollbar.setTranslate(); }, update: function () { this.scrollbar.updateSize(); }, resize: function () { this.scrollbar.updateSize(); }, observerUpdate: function () { this.scrollbar.updateSize(); }, setTranslate: function () { this.scrollbar.setTranslate(); }, setTransition: function (e) { this.scrollbar.setTransition(e); }, destroy: function () { this.scrollbar.destroy(); }, }, }, { name: "parallax", params: { parallax: { enabled: !1 } }, create: function () { j.extend(this, { parallax: { setTransform: Q.setTransform.bind(this), setTranslate: Q.setTranslate.bind(this), setTransition: Q.setTransition.bind(this), }, }); }, on: { beforeInit: function () { this.params.parallax.enabled && ((this.params.watchSlidesProgress = !0), (this.originalParams.watchSlidesProgress = !0)); }, init: function () { this.params.parallax.enabled && this.parallax.setTranslate(); }, setTranslate: function () { this.params.parallax.enabled && this.parallax.setTranslate(); }, setTransition: function (e) { this.params.parallax.enabled && this.parallax.setTransition(e); }, }, }, { name: "zoom", params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed", }, }, create: function () { var s = this, t = { enabled: !1, scale: 1, currentScale: 1, isScaling: !1, gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3, }, image: { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {}, }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0, }, }, n = ("onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out" .split(" ") .forEach(function (e) { t[e] = Z[e].bind(s); }), j.extend(s, { zoom: t }), 1); Object.defineProperty(s.zoom, "scale", { get: function () { return n; }, set: function (e) { var t, i; n !== e && ((t = s.zoom.gesture.$imageEl ? s.zoom.gesture.$imageEl[0] : void 0), (i = s.zoom.gesture.$slideEl ? s.zoom.gesture.$slideEl[0] : void 0), s.emit("zoomChange", e, t, i)), (n = e); }, }); }, on: { init: function () { this.params.zoom.enabled && this.zoom.enable(); }, destroy: function () { this.zoom.disable(); }, touchStart: function (e) { this.zoom.enabled && this.zoom.onTouchStart(e); }, touchEnd: function (e) { this.zoom.enabled && this.zoom.onTouchEnd(e); }, doubleTap: function (e) { this.params.zoom.enabled && this.zoom.enabled && this.params.zoom.toggle && this.zoom.toggle(e); }, transitionEnd: function () { this.zoom.enabled && this.params.zoom.enabled && this.zoom.onTransitionEnd(); }, slideChange: function () { this.zoom.enabled && this.params.zoom.enabled && this.params.cssMode && this.zoom.onTransitionEnd(); }, }, }, { name: "lazy", params: { lazy: { enabled: !1, loadPrevNext: !1, loadPrevNextAmount: 1, loadOnTransitionStart: !1, elementClass: "swiper-lazy", loadingClass: "swiper-lazy-loading", loadedClass: "swiper-lazy-loaded", preloaderClass: "swiper-lazy-preloader", }, }, create: function () { j.extend(this, { lazy: { initialImageLoaded: !1, load: J.load.bind(this), loadInSlide: J.loadInSlide.bind(this), }, }); }, on: { beforeInit: function () { this.params.lazy.enabled && this.params.preloadImages && (this.params.preloadImages = !1); }, init: function () { this.params.lazy.enabled && !this.params.loop && 0 === this.params.initialSlide && this.lazy.load(); }, scroll: function () { this.params.freeMode && !this.params.freeModeSticky && this.lazy.load(); }, resize: function () { this.params.lazy.enabled && this.lazy.load(); }, scrollbarDragMove: function () { this.params.lazy.enabled && this.lazy.load(); }, transitionStart: function () { this.params.lazy.enabled && (this.params.lazy.loadOnTransitionStart || (!this.params.lazy.loadOnTransitionStart && !this.lazy.initialImageLoaded)) && this.lazy.load(); }, transitionEnd: function () { this.params.lazy.enabled && !this.params.lazy.loadOnTransitionStart && this.lazy.load(); }, slideChange: function () { this.params.lazy.enabled && this.params.cssMode && this.lazy.load(); }, }, }, { name: "controller", params: { controller: { control: void 0, inverse: !1, by: "slide" }, }, create: function () { j.extend(this, { controller: { control: this.params.controller.control, getInterpolateFunction: k.getInterpolateFunction.bind(this), setTranslate: k.setTranslate.bind(this), setTransition: k.setTransition.bind(this), }, }); }, on: { update: function () { this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline); }, resize: function () { this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline); }, observerUpdate: function () { this.controller.control && this.controller.spline && ((this.controller.spline = void 0), delete this.controller.spline); }, setTranslate: function (e, t) { this.controller.control && this.controller.setTranslate(e, t); }, setTransition: function (e, t) { this.controller.control && this.controller.setTransition(e, t); }, }, }, { name: "a11y", params: { a11y: { enabled: !0, notificationClass: "swiper-notification", prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", }, }, create: function () { var t = this; j.extend(t, { a11y: { liveRegion: S( '' ), }, }), Object.keys(ee).forEach(function (e) { t.a11y[e] = ee[e].bind(t); }); }, on: { init: function () { this.params.a11y.enabled && (this.a11y.init(), this.a11y.updateNavigation()); }, toEdge: function () { this.params.a11y.enabled && this.a11y.updateNavigation(); }, fromEdge: function () { this.params.a11y.enabled && this.a11y.updateNavigation(); }, paginationUpdate: function () { this.params.a11y.enabled && this.a11y.updatePagination(); }, destroy: function () { this.params.a11y.enabled && this.a11y.destroy(); }, }, }, { name: "history", params: { history: { enabled: !1, replaceState: !1, key: "slides" }, }, create: function () { j.extend(this, { history: { init: I.init.bind(this), setHistory: I.setHistory.bind(this), setHistoryPopState: I.setHistoryPopState.bind(this), scrollToSlide: I.scrollToSlide.bind(this), destroy: I.destroy.bind(this), }, }); }, on: { init: function () { this.params.history.enabled && this.history.init(); }, destroy: function () { this.params.history.enabled && this.history.destroy(); }, transitionEnd: function () { this.history.initialized && this.history.setHistory( this.params.history.key, this.activeIndex ); }, slideChange: function () { this.history.initialized && this.params.cssMode && this.history.setHistory( this.params.history.key, this.activeIndex ); }, }, }, { name: "hash-navigation", params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 }, }, create: function () { j.extend(this, { hashNavigation: { initialized: !1, init: q.init.bind(this), destroy: q.destroy.bind(this), setHash: q.setHash.bind(this), onHashCange: q.onHashCange.bind(this), }, }); }, on: { init: function () { this.params.hashNavigation.enabled && this.hashNavigation.init(); }, destroy: function () { this.params.hashNavigation.enabled && this.hashNavigation.destroy(); }, transitionEnd: function () { this.hashNavigation.initialized && this.hashNavigation.setHash(); }, slideChange: function () { this.hashNavigation.initialized && this.params.cssMode && this.hashNavigation.setHash(); }, }, }, { name: "autoplay", params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1, }, }, create: function () { var t = this; j.extend(t, { autoplay: { running: !1, paused: !1, run: M.run.bind(t), start: M.start.bind(t), stop: M.stop.bind(t), pause: M.pause.bind(t), onVisibilityChange: function () { "hidden" === document.visibilityState && t.autoplay.running && t.autoplay.pause(), "visible" === document.visibilityState && t.autoplay.paused && (t.autoplay.run(), (t.autoplay.paused = !1)); }, onTransitionEnd: function (e) { t && !t.destroyed && t.$wrapperEl && e.target === this && (t.$wrapperEl[0].removeEventListener( "transitionend", t.autoplay.onTransitionEnd ), t.$wrapperEl[0].removeEventListener( "webkitTransitionEnd", t.autoplay.onTransitionEnd ), (t.autoplay.paused = !1), t.autoplay.running ? t.autoplay.run() : t.autoplay.stop()); }, }, }); }, on: { init: function () { this.params.autoplay.enabled && (this.autoplay.start(), document.addEventListener( "visibilitychange", this.autoplay.onVisibilityChange )); }, beforeTransitionStart: function (e, t) { this.autoplay.running && (t || !this.params.autoplay.disableOnInteraction ? this.autoplay.pause(e) : this.autoplay.stop()); }, sliderFirstMove: function () { this.autoplay.running && (this.params.autoplay.disableOnInteraction ? this.autoplay.stop() : this.autoplay.pause()); }, touchEnd: function () { this.params.cssMode && this.autoplay.paused && !this.params.autoplay.disableOnInteraction && this.autoplay.run(); }, destroy: function () { this.autoplay.running && this.autoplay.stop(), document.removeEventListener( "visibilitychange", this.autoplay.onVisibilityChange ); }, }, }, { name: "effect-fade", params: { fadeEffect: { crossFade: !1 } }, create: function () { j.extend(this, { fadeEffect: { setTranslate: te.setTranslate.bind(this), setTransition: te.setTransition.bind(this), }, }); }, on: { beforeInit: function () { var e; "fade" === this.params.effect && (this.classNames.push( this.params.containerModifierClass + "fade" ), j.extend( this.params, (e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0, }) ), j.extend(this.originalParams, e)); }, setTranslate: function () { "fade" === this.params.effect && this.fadeEffect.setTranslate(); }, setTransition: function (e) { "fade" === this.params.effect && this.fadeEffect.setTransition(e); }, }, }, { name: "effect-cube", params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: 0.94, }, }, create: function () { j.extend(this, { cubeEffect: { setTranslate: ie.setTranslate.bind(this), setTransition: ie.setTransition.bind(this), }, }); }, on: { beforeInit: function () { var e; "cube" === this.params.effect && (this.classNames.push( this.params.containerModifierClass + "cube" ), this.classNames.push( this.params.containerModifierClass + "3d" ), j.extend( this.params, (e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0, }) ), j.extend(this.originalParams, e)); }, setTranslate: function () { "cube" === this.params.effect && this.cubeEffect.setTranslate(); }, setTransition: function (e) { "cube" === this.params.effect && this.cubeEffect.setTransition(e); }, }, }, { name: "effect-flip", params: { flipEffect: { slideShadows: !0, limitRotation: !0 } }, create: function () { j.extend(this, { flipEffect: { setTranslate: se.setTranslate.bind(this), setTransition: se.setTransition.bind(this), }, }); }, on: { beforeInit: function () { var e; "flip" === this.params.effect && (this.classNames.push( this.params.containerModifierClass + "flip" ), this.classNames.push( this.params.containerModifierClass + "3d" ), j.extend( this.params, (e = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0, }) ), j.extend(this.originalParams, e)); }, setTranslate: function () { "flip" === this.params.effect && this.flipEffect.setTranslate(); }, setTransition: function (e) { "flip" === this.params.effect && this.flipEffect.setTransition(e); }, }, }, { name: "effect-coverflow", params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, modifier: 1, slideShadows: !0, }, }, create: function () { j.extend(this, { coverflowEffect: { setTranslate: ne.setTranslate.bind(this), setTransition: ne.setTransition.bind(this), }, }); }, on: { beforeInit: function () { "coverflow" === this.params.effect && (this.classNames.push( this.params.containerModifierClass + "coverflow" ), this.classNames.push( this.params.containerModifierClass + "3d" ), (this.params.watchSlidesProgress = !0), (this.originalParams.watchSlidesProgress = !0)); }, setTranslate: function () { "coverflow" === this.params.effect && this.coverflowEffect.setTranslate(); }, setTransition: function (e) { "coverflow" === this.params.effect && this.coverflowEffect.setTransition(e); }, }, }, { name: "thumbs", params: { thumbs: { multipleActiveThumbs: !0, swiper: null, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-container-thumbs", }, }, create: function () { j.extend(this, { thumbs: { swiper: null, init: ae.init.bind(this), update: ae.update.bind(this), onThumbClick: ae.onThumbClick.bind(this), }, }); }, on: { beforeInit: function () { var e = this.params.thumbs; e && e.swiper && (this.thumbs.init(), this.thumbs.update(!0)); }, slideChange: function () { this.thumbs.swiper && this.thumbs.update(); }, update: function () { this.thumbs.swiper && this.thumbs.update(); }, resize: function () { this.thumbs.swiper && this.thumbs.update(); }, observerUpdate: function () { this.thumbs.swiper && this.thumbs.update(); }, setTransition: function (e) { var t = this.thumbs.swiper; t && t.setTransition(e); }, beforeDestroy: function () { var e = this.thumbs.swiper; e && this.thumbs.swiperCreated && e && e.destroy(); }, }, }, ]; return ( void 0 === p.use && ((p.use = p.Class.use), (p.installModule = p.Class.installModule)), p.use(_), p ); }), (function () { var o, e, t, i, s, n, a, r, l, d, c; (window.wearable = window.wearable || {}), (window.wearable.quote = window.wearable.quote || {}), (wearable.quote = ((e = !(o = {})), (t = null), (i = function () { s(), window.removeEventListener("load", i); }), (s = function () { (e = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), (o.slidesPerView = "mobile" == e ? 2 : 4), e != t && (n(), (t = e)); }), (n = function () { null != o.swiper && (o.swiper.pagination.destroy(!0), o.swiper.navigation.destroy(!0), o.swiper.destroy(!0), (o.swiper = null)); (o.quoteWrap.classList.remove("js-swiper-initialized"), null === o.swiper && o.itemArray.length > o.slidesPerView) ? (a(), o.quoteWrap.classList.add("js-swiper-initialized"), (o.swiper = new Swiper(o.quoteContainer, { init: !1, slidesPerView: 1, loop: !0, loopFillGroupWithBlank: !0, navigation: { nextEl: o.nextArrow, prevEl: o.prevArrow }, pagination: { el: o.quotePagination, type: "bullets", renderBullet: function () { return '
'; }, }, })), o.swiper.on("slideChange", function () { c.call(this), d.call(this), imageLoader.setResponsiveImage([ o.prevArrow.querySelector("img"), o.nextArrow.querySelector("img"), ]); }), o.swiper.on("init", function () { var t = this, e = this.el.querySelector(".swiper-notification"); e && this.el.removeChild(e), c.call(this), l.call(this), d.call(this); for (var i = 0; i < this.pagination.bullets.length; i++) !(function (e) { t.pagination.bullets[i].addEventListener( "click", function () { t.slideToLoop(e); } ); })(i); }), o.swiper.init()) : r(); }), (a = function () { (o.quoteList.innerHTML = ""), o.quoteList.removeAttribute("role"); for ( var e = 0, t = [], i = [], s = 0; s < o.itemArray.length; s++ ) e++, i.push(o.itemArray[s]), e >= o.slidesPerView ? (t.push(i), (i = []), (e = 0)) : s == o.itemArray.length - 1 && t.push(i); for (var n = [], s = 0; s < t.length; s++) { n.push('
'); for (var a = 0; a < t[s].length; a++) t[s][a].setAttribute("role", "listitem"), n.push(t[s][a].outerHTML), t[s][a].removeAttribute("role"); n.push("
"); } o.quoteList.innerHTML = n.join(""); }), (r = function () { o.quoteList.innerHTML = ""; var e = []; o.quoteList.setAttribute("role", "list"); for (var t = 0; t < o.itemArray.length; t++) o.itemArray[t].setAttribute("role", "listitem"), e.push(o.itemArray[t].outerHTML), o.itemArray[t].removeAttribute("role"); o.quoteList.innerHTML = e.join(""); }), (l = function () { Array.prototype.slice .call(this.pagination.bullets) .forEach(function (t, i) { Object.keys(o.paginationTagging).forEach(function (e) { "data-omni" == e || "ga-la" == e ? t.setAttribute(e, o.paginationTagging[e] + (i + 1)) : t.setAttribute(e, o.paginationTagging[e]); }); }); }), (d = function () { var n = this, a = Array.prototype.slice.call(this.slides); Array.prototype.slice .call(this.pagination.bullets) .forEach(function (e, t) { var i = [], s = a[t + 1].querySelectorAll( ".sc-wearable-media-quote__media" ); (s = Array.prototype.slice.call(s)).forEach(function (e) { i.push(e.innerText); }), n.realIndex == t ? e.setAttribute("aria-label", i.join(", ") + " Selected") : e.setAttribute("aria-label", i.join(", ")); }); }), (c = function () { for (var e = 0; e < this.slides.length; e++) if (e != this.snapIndex) { s = i = void 0; var t = this.slides[e]; t.setAttribute("aria-hidden", !0), t.setAttribute("tabindex", -1); for ( var i = t.querySelectorAll( "a, button, input, select, iframe" ), s = 0; s < i.length; s++ ) i[s].setAttribute("tabindex", -1), i[s].setAttribute("aria-hidden", !0); } else { a = n = void 0; t = this.slides[e]; t.removeAttribute("aria-hidden"), t.removeAttribute("tabindex"); for ( var n = t.querySelectorAll( "a, button, input, select, iframe" ), a = 0; a < n.length; a++ ) n[a].removeAttribute("tabindex"), n[a].removeAttribute("aria-hidden"); } }), { init: function () { if ( ((o.section = document.querySelector( ".sc-wearable-media-quote" )), o.section) ) { (o.swiper = null), (o.slidesPerView = 3), (o.itemArray = []), (o.quoteWrap = o.section.querySelector( ".sc-wearable-media-quote__wrap" )), (o.quoteContainer = o.section.querySelector( ".sc-wearable-media-quote__container" )), (o.quoteList = o.section.querySelector( ".sc-wearable-media-quote__list" )), (o.quoteListItems = o.quoteList.querySelectorAll( ".sc-wearable-media-quote__list-item" )), (o.prevArrow = o.section.querySelector( ".sc-wearable-media-quote__arrow-prev" )), (o.nextArrow = o.section.querySelector( ".sc-wearable-media-quote__arrow-next" )), (o.quotePagination = o.section.querySelector( ".sc-wearable-media-quote__pagination" )), (o.paginationTagging = { "data-omni-type": "microsite_pcontentinter", "data-omni": "galaxy-buds2-pro:highlights:media-quote:dot:", "ga-ca": "indication", "ga-ac": "carousel", "ga-la": "galaxy-buds2-pro:highlights:media-quote:dot:", }); for (var e = 0; e < o.quoteListItems.length; e++) { o.itemArray.push(o.quoteListItems[e]); o.quoteList.removeChild(o.quoteListItems[e]); } window.addEventListener("load", i), window.addEventListener("resize", s); } }, })), wearable.quote.init(); })(), (function () { (window.buds2pro = window.buds2pro || {}), (window.buds2pro.common = window.buds2pro.common || {}); var e, o, t, i, s, n, a, r, l, d, c, u = { convertArray: function (e) { return Array.prototype.slice.call(e); }, getViewPort: function () { var e = window, t = "inner"; return ( "innerWidth" in window || ((t = "client"), (e = document.documentElement || document.body)), { width: e[t + "Width"], height: e[t + "Height"] } ); }, getCurrentDevice: function () { var e = u.getViewPort().width; return 1024 <= e ? "desktop" : e < 1024 && 768 <= e ? "tablet" : "mobile"; }, isInVerticalViewPort: function (e) { e = e.getBoundingClientRect(); return e.top - 200 <= u.getViewPort().height && 0 <= e.bottom; }, isInHorizontalViewPort: function (e) { e = e.getBoundingClientRect(); return ( e.left - 200 <= u.getViewPort().width && 0 <= e.right + 200 ); }, isVerticalVisible: function (e) { return ( u.isInVerticalViewPort(e) && !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) ); }, isHorizontalVisible: function (e) { return ( u.isInHorizontalViewPort(e) && !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length) ); }, setCookie: function (e, t, i) { var s = new Date(); s.setTime(s.getTime() + 60 * i * 60 * 24 * 1e3), (document.cookie = e + "=" + t + "; exprires=" + s.toUTCString() + "; path=/"); }, getCookie: function (e) { e = document.cookie.match("(^|;) ?" + e + "=([^;]*)(;|$)"); return e ? e[2] : null; }, triggerEvent: function (e, t, i, s, n) { var a, i = i || null, s = s || !1, n = n || !0; null == i ? (a = document.createEvent("HTMLEvents")).initEvent(t, s, n) : (a = document.createEvent("CustomEvent")).initCustomEvent( t, s, n, i ), e.dispatchEvent(a); }, visibleScroll: function () { !0 === this.scrollFlag && ((this.scrollFlag = !1), (document.body.style.position = ""), (document.body.style.width = ""), (document.body.style.left = ""), (document.body.style.right = ""), (document.body.style.top = ""), (document.body.style.zIndex = ""), (this.wrapEl.style.paddingRight = ""), (document.documentElement.style.overflow = ""), null !== this.popupEl && ((this.popupEl.style.paddingRight = ""), (this.popupEl = null))), window.scrollTo(0, this.saveScrollTop); var e = document.querySelector("#subnav"), t = (e && ((t = e.querySelector(".heading a")), (i = e.querySelector(".inside ul")), (e = e.querySelector(".gnb")), t && (t.style.marginRight = ""), i && (i.style.marginRight = ""), e && (e.style.marginRight = "")), document.querySelector(".pd-g-header-navigation")); t && ((i = t.querySelector(".pd-header-navigation")), (e = t.querySelector(".pd-header-navigation__menu-wrap")), (t = t.querySelector(".pd-buying-price")), i && (i.style.paddingRight = ""), e && (e.style.paddingRight = ""), t && (t.style.paddingRight = "")); document.querySelector(".floating-navigation") && (i = document.querySelector(".floating-navigation__wrap")) && (i.style.paddingRight = ""); var i, e = document.querySelector(".f_backtotop"), t = (e && (e.style.paddingRight = ""), document.querySelector("#spr-live-chat-app")); t && ((i = t.querySelector(".spr-chat__proactive-box")), (e = t.querySelector(".spr-chat__trigger-box")), i && (i.style.marginRight = ""), e && (e.style.marginRight = "")); }, hiddenScroll: function (e) { var t = window.innerWidth - document.documentElement.clientWidth, e = ((this.saveScrollTop = window.pageYOffset || document.documentElement.scrollTop), (this.popupEl = e || null), (this.scrollFlag = !0), (this.wrapEl = document.querySelector("#wrap")), (document.body.style.position = "fixed"), (document.body.style.width = "100%"), (document.body.style.left = 0), (document.body.style.right = 0), (document.body.style.top = -this.saveScrollTop + "px"), (document.body.style.zIndex = -1), (this.wrapEl.style.paddingRight = t + "px"), (document.documentElement.style.overflow = "hidden"), null !== this.popupEl && (this.popupEl.style.paddingRight = t + "px"), document.querySelector("#subnav")), i = (e && ((i = e.querySelector(".heading a")), (s = e.querySelector(".inside ul")), (e = e.querySelector(".gnb")), i && (i.style.marginRight = t + "px"), s && (s.style.marginRight = t + "px"), e && (e.style.marginRight = t + "px")), document.querySelector(".pd-g-header-navigation")); i && ((s = i.querySelector(".pd-header-navigation")), (e = i.querySelector(".pd-header-navigation__menu-wrap")), (i = i.querySelector(".pd-buying-price")), s && (s.style.paddingRight = t + "px"), e && (e.style.paddingRight = t + "px"), i && (i.style.paddingRight = t / 2 + "px")); document.querySelector(".floating-navigation") && (s = document.querySelector(".floating-navigation__wrap")) && (s.style.paddingRight = t + "px"); var s, e = document.querySelector(".f_backtotop"), i = (e && (e.style.paddingRight = t + "px"), document.querySelector("#spr-live-chat-app")); i && ((s = i.querySelector(".spr-chat__proactive-box")), (e = i.querySelector(".spr-chat__trigger-box")), s && (s.style.marginRight = t + "px"), e && (e.style.marginRight = t + "px")); }, closest: function (e, t) { do { if (e == document.documentElement) return null; if (e.matches ? e.matches(t) : e.msMatchesSelector(t)) return e; } while ( null !== (e = e.parentElement || e.parentNode) || 1 === e.nodeType ); return null; }, onPopupAccessibility: function (e) { e.setAttribute("aria-hidden", !0), e.setAttribute("tabindex", -1); for ( var t = e.querySelectorAll("a, button, input, select, iframe"), i = 0; i < t.length; i++ ) { var s = t[i].getAttribute("aria-hidden"), n = t[i].getAttribute("tabindex"); null != s && t[i].setAttribute("data-prev-aria-hidden", s), null != n && t[i].setAttribute("data-prev-tabindex", n), t[i].setAttribute("tabindex", -1), t[i].setAttribute("aria-hidden", !0); } }, offPopupAccessibility: function (e) { e.removeAttribute("aria-hidden"), e.removeAttribute("tabindex"); for ( var t = e.querySelectorAll("a, button, input, select, iframe"), i = 0; i < t.length; i++ ) { var s = t[i].getAttribute("data-prev-aria-hidden"), n = t[i].getAttribute("data-prev-tabindex"); null != s ? t[i].setAttribute("aria-hidden", s) : t[i].removeAttribute("aria-hidden"), null != n ? t[i].setAttribute("tabindex", n) : t[i].removeAttribute("tabindex"), t[i].removeAttribute("data-prev-aria-hidden"), t[i].removeAttribute("data-prev-tabindex"); } }, onAccessibility: function (e) { e.setAttribute("aria-hidden", !0), e.setAttribute("tabindex", -1); for ( var t = e.querySelectorAll("a, button, input, select, iframe"), i = 0; i < t.length; i++ ) t[i].setAttribute("tabindex", -1), t[i].setAttribute("aria-hidden", !0); }, offAccessibility: function (e) { e.removeAttribute("aria-hidden"), e.removeAttribute("tabindex"); for ( var t = e.querySelectorAll("a, button, input, select, iframe"), i = 0; i < t.length; i++ ) t[i].removeAttribute("tabindex"), t[i].removeAttribute("aria-hidden"); }, extend: function (t, i) { return ( Object.keys(i).forEach(function (e) { t[e] = i[e]; }), t ); }, getHeight: function (e) { var t, i, s; return e ? ((t = (i = window.getComputedStyle(e)).display), (i = parseInt(i.maxHeight)), (s = 0), "none" != t && 0 != i ? e.offsetHeight : ((e.style.position = "absolute"), (e.style.visibility = "hidden"), (e.style.display = "block"), (s = e.offsetHeight), (e.style.display = ""), (e.style.position = ""), (e.style.visibility = ""), s)) : 0; }, setLastActiveItem: function (e) { this.lastActiveItem = e || null; }, getLastActiveItem: function () { return null != this.lastActiveItem ? this.lastActiveItem : null; }, isRTL: function () { return document.documentElement.classList.contains("rtl"); }, checkRegion: function () { for ( var e = document.getElementsByTagName("meta"), t = "", i = 0; i < e.length; i++ ) if ("sitecode" == e[i].getAttribute("name")) return (t = e[i].getAttribute("content")); if ("" == t) return -1 < document.location.pathname.indexOf("global") ? "global" : "jp"; }, isLowNetwork: function () { var e = "global" == u.checkRegion() || "jp" == u.checkRegion() ? "___GALAXY_SPEED" : "__COM_SPEED"; return null == u.getCookie(e) || null == u.getCookie(e) ? null : "L" == u.getCookie(e) || ("H" != u.getCookie(e) && void 0); }, getNavHeight: function () { var e, t, i = 0, s = document.querySelector(".pd-g-header-navigation") || document.querySelector("#subnav") || document.querySelector(".sticky-menu") || document.querySelector(".pd-g-floating-nav"); return (i = s ? s.classList.contains("pd-g-header-navigation") ? ((t = (e = s.querySelector( ".pd-header-navigation" )).querySelector(".pd-header-navigation__menu-wrap")), e.clientHeight + t.clientHeight) : s.clientHeight : i); }, getQueryString: function (e) { var t = (s = location.href).indexOf("?") + 1, i = -1 < s.indexOf("#") ? s.indexOf("#") + 1 : s.length; if (0 == t) return ""; for ( var s = (s = s.substring(t, i)).split("&"), n = "", a = 0; a < s.length; a++ ) { var o = s[a].split("="); if (2 != o.length) break; o[0] == e && (n = o[1]); break; } return n; }, customParallax: function (e) { var t = e.mode || "center", i = e.delay || 0, s = e.ease || "Power0.easeNone", n = e.transZ || 0, a = e.duration || 0.3, o = e.distance || 0, r = e.correction || 0, l = e.windowCorrection ? window.innerHeight * e.windowCorrection : 0, d = e.direction || 1, c = e.activeElement, u = e.targetElement || c, h = e.wrapperElement || c, e = e.unit || "px", p = window.pageYOffset, m = window.pageYOffset + window.innerHeight, c = c.getBoundingClientRect(), v = p + h.getBoundingClientRect().top, h = v + h.getBoundingClientRect().height, f = window.innerHeight + c.height + 2 * l, g = "center" == t ? c.top - (window.innerHeight - c.height) / 2 : c.top - window.innerHeight; "px" == e && (o = (c.height * o) / 100), v <= m + l && p - l <= h && TweenMax.to(u, a, { y: r + ((g * ("center" == t ? 2 * o : o)) / f) * d + e, z: n, ease: s, delay: i, }); }, isTouchDevice: ((h = "ontouchstart" in window || (window.DocumentTouch && document instanceof window.DocumentTouch)) ? document.documentElement.classList.add("isTouchDevice") : document.documentElement.classList.add("isNotTouchDevice"), h), isIosDevice: ((h = /iPad|iPhone|iPod/.test(navigator.userAgent)) ? document.documentElement.classList.add("isIosDevice") : document.documentElement.classList.add("isNotIosDevice"), h), isBrokenFixed: function () { var e = window.innerWidth, t = window.innerHeight, i = !1; return ( document.documentElement.classList.remove("is-broken-fixed"), (1440 <= e && t <= 540) || (e <= 810 && t / e < 0.5277) ? (document.documentElement.classList.add("is-broken-fixed"), (i = !0)) : document.documentElement.classList.remove( "is-broken-fixed" ), i ); }, isIEorEdge: (function () { var e, t = navigator.userAgent.toLowerCase(); if ("Microsoft Internet Explorer" == navigator.appName) e = "msie "; else if (-1 < t.search("trident")) e = "trident/.*rv:"; else { if (!(-1 < t.search("edge/"))) return -1; e = "edge/"; } return null != new RegExp(e + "([0-9]{1,})(\\.{0,}[0-9]{0,1})").exec(t) ? (document.documentElement.classList.add("isIEorEdge"), parseFloat(RegExp.$1 + RegExp.$2)) : -1; })(), checkGlobal: void (0 === location.pathname.indexOf("/global/galaxy") || !0 === window.IS_CAMPAIGN ? document.documentElement.classList.add("global") : document.documentElement.classList.add("dotcom")), checkOS: ((h = (h = navigator.appVersion.match(/(mac|win|linux)/i)) ? h[1].toLowerCase() : ""), void document.documentElement.classList.add(h)), isFireFox: void ( /firefox/i.test(navigator.userAgent) && document.documentElement.classList.add("firefox") ), isWebkit: void ( /applewebkit/i.test(navigator.userAgent) && document.documentElement.classList.add("webkit") ), isChrome: void ( /chrome/i.test(navigator.userAgent) && document.documentElement.classList.add("chrome") ), isOpera: void ( /opera/i.test(navigator.userAgent) && document.documentElement.classList.add("opera") ), isIos: void ( /ip(ad|hone|od)/i.test(navigator.userAgent) && document.documentElement.classList.add("ios") ), isCrIos: void ( /crios/i.test(navigator.userAgent) && document.documentElement.classList.add("crios") ), isAndroid: void ( /android/i.test(navigator.userAgent) && document.documentElement.classList.add("android") ), isSafari: ((h = /applewebkit/i.test(navigator.userAgent)), (e = /chrome/i.test(navigator.userAgent)), void ( h && !e && document.documentElement.classList.add("safari") )), isHuawei: void ( /HUAWEICLT/i.test(navigator.userAgent) && document.documentElement.classList.add("huawei") ), isUCBrowser: void ( /UCBrowser/i.test(navigator.userAgent) && document.documentElement.classList.add("ucbrowser") ), }, h = ((t = !(o = {})), (i = null), (s = function () { n(), a(), u.isLowNetwork() && document.documentElement.classList.add("low_network"), document.documentElement.classList.add("load"), window.removeEventListener("load", s); }), (n = function () { (t = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(o.resizeTimeout), (o.resizeTimeout = setTimeout(function () { u.isBrokenFixed(); }, 100)), t != i && (document.documentElement.classList.add(t), document.documentElement.classList.remove(i), (i = t)); }), (a = function () { for ( var e = window.pageYOffset, t = e + window.innerHeight, i = 0; i < o.allClickables.length; i++ ) { var s = o.allClickables[i], n = e + s.getBoundingClientRect().top, a = e + u.getNavHeight(); a <= n && n <= t ? (s.isVisible = !0) : (n < a || t < n) && (s.isVisible = !1); } }), (r = function (e) { e.preventDefault(), e.stopPropagation(); var t = this, e = parseFloat(this.innerText), i = document.querySelectorAll("#desc-section li")[e - 1], s = i.innerText, n = ((i.innerHTML = '' + s + ""), function () { l.call(t), i.removeEventListener("focusin", n); }), a = function () { (i.innerHTML = s), i.removeAttribute("tabindex"), i.removeEventListener("focusout", a); }; i.addEventListener("focusin", n), i.addEventListener("focusout", a), i.querySelector("a").focus(); }), (l = function (e) { var s; (!document.documentElement.classList.contains("ios") && e && null == e.relatedTarget) || ((s = this).isClicked || this.isVisible || d(this) || setTimeout(function () { var e = window.pageYOffset, t = s.getBoundingClientRect(), i = (window.innerHeight - u.getNavHeight()) / 2, e = e - u.getNavHeight() + t.top + t.height / 2; window.scrollTo(0, e - i); }, 10), (this.isClicked = !1)); }), (d = function (e) { var e = e.parentNode, t = e.getAttribute("id"); return ( "contents" != t && e != document.body && (!( "subnav" != t && !e.classList.contains("sc-s22ultra-popup") ) || d(e)) ); }), (c = function () { this.isClicked = !0; }), { init: function () { (o.resizeTimeout = null), (o.supClicker = document.querySelectorAll("a.click_sup")), (o.contents = document.getElementById("contents") || document.getElementById("content")), (o.allClickables = o.contents.querySelectorAll( "a, button, input, select" )); var e = 0; for ( window.addEventListener("load", s), window.addEventListener("resize", n), window.addEventListener("scroll", a), e = 0; e < o.allClickables.length; e++ ) { var t = o.allClickables[e]; (t.isClicked = !1), (t.isVisible = !1), t.addEventListener("focusin", l), t.addEventListener("mousedown", c); } for (e = 0; e < o.supClicker.length; e++) o.supClicker[e].addEventListener("click", r); var i = document.documentElement.classList; "global" == u.checkRegion() || i.contains("mac") || i.contains("safari") || ANIUTIL.scrollController({ speed: 120, duration: 0.5 }); ANIUTIL && ANIUTIL.imageLoader({ lazyClass: ".js-img-src", responsiveClass: ".js-res-img", loadOption: [ { resolution: 1920, attribute: "data-src-pc" }, { resolution: 1080, attribute: "data-src-tablet" }, { resolution: 767, attribute: "data-src-mobile" }, { resolution: 360, attribute: "data-src-mobile-min" }, ], visiblePoint: 1, }); }, }); (window.buds2pro.common.utils = u), h.init(); })(), (function () { var a, t, e, i, s, n, o, r, l, d, c, u, h, p, m, v, f; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.audioPopup = window.buds2pro.audioPopup || {}), (buds2pro.audioPopup = ((a = {}), (t = window.buds2pro.common.utils), (e = !1), (i = null), (s = function () { n(), window.removeEventListener("load", s); }), (n = function () { (e = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(a.resizeTimeout), (a.resizeTimeout = setTimeout(function () { u(); }, 100)), e != i && (o(), (i = e)); }), (o = function () { null != a.swiper && (a.swiper.destroy(!0), (a.swiper = null), (a.isSwiperInit = !1)); null == a.swiper && ((a.swiper = new Swiper(a.swiperEl, { init: !1, slidesPerView: 1, navigation: { nextEl: a.swiperNavNextArrow, prevEl: a.swiperNavPrevArrow, }, pagination: { el: a.swiperPagination, type: "bullets", renderBullet: function () { return '
'; }, }, })), a.swiper.on("slideChange", function () { l.call(this), d.call(this), m.call(this), v.call(this), f.call(this); }), a.swiper.on("init", function () { var t = this, e = this.el.querySelector(".swiper-notification"); e && this.el.removeChild(e), l.call(this), d.call(this), m.call(this), v.call(this), f.call(this); for (var i = 0; i < this.pagination.bullets.length; i++) !(function (e) { t.pagination.bullets[i].addEventListener( "click", function () { t.slideTo(e); } ); })(i); a.isSwiperInit = !0; }), a.swiper.init()); }), (l = function () { for (var e = 0; e < this.slides.length; e++) e != this.activeIndex ? t.onAccessibility(this.slides[e]) : t.offAccessibility(this.slides[e]); }), (d = function () { null != a.swiper && (this.isBeginning || this.isEnd ? !this.isBeginning && this.isEnd ? (t.onAccessibility(a.swiperNavNextArrow), t.offAccessibility(a.swiperNavPrevArrow)) : this.isBeginning && !this.isEnd && (t.offAccessibility(a.swiperNavNextArrow), t.onAccessibility(a.swiperNavPrevArrow)) : (t.offAccessibility(a.swiperNavNextArrow), t.offAccessibility(a.swiperNavPrevArrow))); }), (c = function () { a.popupEl.classList.remove("sc-buds-audio-popup--open-mo"), a.moPopupOpenBtn && a.moPopupOpenBtn.focus(), t.offPopupAccessibility(a.popupVisualWrap), t.offAccessibility(a.moPopupOpenBtn), t.offAccessibility(a.popupCloseBtn), t.onAccessibility(a.moPopupEl); }), (u = function () { var t = [], i = (a.popupItemContents.forEach(function (e) { e = e.querySelector(".sc-buds-step__item-description"); (e.style.height = ""), t.push(e.clientHeight); }), t.reduce(function (e, t) { return Math.max(e, t); })); a.popupItemContents.forEach(function (e) { e.querySelector( ".sc-buds-step__item-description" ).style.height = i + "px"; }); }), (h = function (e) { (("keydown" == e.type && 13 == e.keyCode) || "click" == e.type) && (e.preventDefault(), clearTimeout(a.arrowTimeout), (a.arrowTimeout = setTimeout(function () { !a.swiper.isBeginning && a.swiper.isEnd ? a.swiperNavPrevArrow.focus() : a.swiper.isBeginning && !a.swiper.isEnd && a.swiperNavNextArrow.focus(); }, 50))); }), (p = function () { a.popupEl.classList.contains("sc-buds-audio-popup--open-mo") || (a.popupEl.classList.add("sc-buds-audio-popup--open-mo"), t.offAccessibility(a.moPopupEl), t.onPopupAccessibility(a.popupVisualWrap), t.onAccessibility(a.moPopupOpenBtn), t.onAccessibility(a.popupCloseBtn), a.moPopupCloseBtns[0].focus()); }), (m = function () { var i = this; Array.prototype.slice .call(this.pagination.bullets) .forEach(function (e, t) { i.realIndex == t ? e.setAttribute( "aria-label", "step" + (t + 1) + " selected" ) : e.setAttribute("aria-label", "step" + (t + 1)); }); }), (v = function () { var n = this; Array.prototype.slice .call(this.pagination.bullets) .forEach(function (i, s) { Object.keys(a.paginationTagging).forEach(function (e) { var t; "data-omni" == e || "ga-la" == e ? ((t = (t = a.paginationTagging[e].split(":dot"))[0] + (n.realIndex + 1) + ":dot" + t[1] + (s + 1)), i.setAttribute(e, t)) : i.setAttribute(e, a.paginationTagging[e]); }); }); }), (f = function () { var i = this; Object.keys(a.navArrowTagging).forEach(function (e) { var t; "data-omni" == e || "ga-la" == e ? ((t = (t = a.navArrowTagging[e].split(":arrow"))[0] + (i.realIndex + 1) + ":arrow" + t[1]), a.swiperNavPrevArrow.setAttribute(e, t + i.realIndex), a.swiperNavNextArrow.setAttribute(e, t + (i.realIndex + 2))) : (a.swiperNavPrevArrow.setAttribute(e, a.navArrowTagging[e]), a.swiperNavNextArrow.setAttribute(e, a.navArrowTagging[e])); }); }), { init: function () { (a.section = document.querySelector( ".sc-buds-audio-popup__wrapper" )), a.section && ((a.swiper = null), (a.isSwiperInit = !1), (a.arrowTimeout = null), (a.wrapEl = document.querySelector("#wrap")), (a.saveScrollTop = 0), (a.swiperEl = a.section.querySelector( ".sc-buds-step__visual-swiper" )), (a.swiperNavNextArrow = a.section.querySelector( ".swiper-button-next" )), (a.swiperNavPrevArrow = a.section.querySelector( ".swiper-button-prev" )), (a.swiperPagination = a.section.querySelector( ".sc-buds-step__indicator-list" )), (a.popupEl = a.section.querySelector( ".sc-buds-audio-popup" )), (a.popupCloseBtn = a.popupEl.querySelector( ".sc-buds-audio-popup__close-cta" )), (a.popupItemContents = t.convertArray( a.popupEl.querySelectorAll(".sc-buds-step__item-content") )), (a.popupVisualWrap = a.popupEl.querySelector( ".sc-buds-step__visual-wrap" )), (a.moPopupEl = a.section.querySelector( ".sc-buds-step__text" )), (a.moPopupOpenBtn = a.popupEl.querySelector( ".sc-buds-step__mo-popup-cta" )), (a.moPopupCloseBtns = t.convertArray( a.moPopupEl.querySelectorAll(".sc-buds-step__mo-close") )), (a.popupDimmed = a.section.querySelector( ".sc-buds-audio-popup__dimmed" )), (a.scBuds = document.createElement("div")), a.scBuds.classList.add("sc-buds"), a.scBuds.appendChild(a.section), document.body.appendChild(a.scBuds), (a.paginationTagging = { "data-omni-type": "microsite_pcontentinter", "data-omni": "galaxy-buds2-pro:highlights:360-audio^popup-step:dot:step", "ga-ca": "indication", "ga-ac": "carousel", "ga-la": "galaxy-buds2-pro:highlights:360-audio^popup-step:dot:step", }), (a.navArrowTagging = { "data-omni-type": "microsite_pcontentinter", "data-omni": "galaxy-buds2-pro:highlights:360-audio^popup-step:arrow:step", "ga-ca": "indication", "ga-ac": "carousel", "ga-la": "galaxy-buds2-pro:highlights:360-audio^popup-step:arrow:step", }), window.addEventListener("load", s), window.addEventListener("resize", n), a.swiperNavNextArrow.addEventListener("click", h), a.swiperNavPrevArrow.addEventListener("click", h), a.swiperNavNextArrow.addEventListener("keydown", h), a.swiperNavPrevArrow.addEventListener("keydown", h), a.popupCloseBtn.addEventListener("click", r), a.popupDimmed.addEventListener("click", r), a.moPopupCloseBtns.forEach(function (e) { e.addEventListener("click", c); }), a.moPopupOpenBtn.addEventListener("click", p)); }, showAudioPopupLayer: function () { t.hiddenScroll(), a.popupEl.classList.add("sc-buds-audio-popup--init"), document.documentElement.classList.add("no-scroll"), document.documentElement.classList.add( "is-layer-popup-opened" ), setTimeout(function () { t.onPopupAccessibility(document.querySelector("#wrap")), a.popupEl.classList.add("sc-buds-audio-popup--open"), "mobile" == e && a.popupEl.classList.add("sc-buds-audio-popup--open-mo"); }, 150), setTimeout(function () { t.offAccessibility(a.scBuds), null != a.swiper && d.call(a.swiper), "mobile" == e || a.popupEl.classList.contains( "sc-buds-audio-popup--open-mo" ) ? (t.offAccessibility(a.moPopupEl), t.onPopupAccessibility(a.popupVisualWrap), t.onAccessibility(a.moPopupOpenBtn), t.onAccessibility(a.popupCloseBtn), a.moPopupCloseBtns[0].focus()) : a.popupCloseBtn.focus(); }, 300); }, hideAudioPopupLayer: (r = function () { t.visibleScroll(), a.popupEl.classList.remove("sc-buds-audio-popup--open"), a.popupEl.classList.remove("sc-buds-audio-popup--open-mo"), document.documentElement.classList.remove("no-scroll"), document.documentElement.classList.remove( "is-layer-popup-opened" ), setTimeout(function () { a.popupEl.classList.remove("sc-buds-audio-popup--init"), t.offPopupAccessibility(document.querySelector("#wrap")); }, 150), setTimeout(function () { t.getLastActiveItem() && t.getLastActiveItem().focus(), t.onAccessibility(a.scBuds), null != a.swiper && a.swiper.slideTo(0, 0); }, 300); }), })); })(), (function () { var s, t, e, i, n, a, o, r, l, d, c, u, h, p, m, v, f; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.recordingPopup = window.buds2pro.recordingPopup || {}), (buds2pro.recordingPopup = ((s = {}), (t = window.buds2pro.common.utils), (e = !1), (i = null), (n = function () { a(), window.removeEventListener("load", n); }), (a = function () { (e = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(s.resizeTimeout), (s.resizeTimeout = setTimeout(function () { u(); }, 100)), e != i && (o(), (i = e)); }), (o = function () { null != s.swiper && (s.swiper.destroy(!0), (s.swiper = null), (s.isSwiperInit = !1)); null == s.swiper && ((s.swiper = new Swiper(s.swiperEl, { init: !1, slidesPerView: 1, navigation: { nextEl: s.swiperNavNextArrow, prevEl: s.swiperNavPrevArrow, }, pagination: { el: s.swiperPagination, type: "bullets", renderBullet: function () { return '
'; }, }, })), s.swiper.on("slideChange", function () { l.call(this), d.call(this), m.call(this), v.call(this), f.call(this); }), s.swiper.on("init", function () { var t = this, e = this.el.querySelector(".swiper-notification"); e && this.el.removeChild(e), l.call(this), d.call(this), m.call(this), v.call(this), f.call(this); for (var i = 0; i < this.pagination.bullets.length; i++) !(function (e) { t.pagination.bullets[i].addEventListener( "click", function () { t.slideTo(e); } ); })(i); s.isSwiperInit = !0; }), s.swiper.init()); }), (l = function () { for (var e = 0; e < this.slides.length; e++) e != this.activeIndex ? t.onAccessibility(this.slides[e]) : t.offAccessibility(this.slides[e]); }), (d = function () { null != s.swiper && (this.isBeginning || this.isEnd ? !this.isBeginning && this.isEnd ? (t.onAccessibility(s.swiperNavNextArrow), t.offAccessibility(s.swiperNavPrevArrow)) : this.isBeginning && !this.isEnd && (t.offAccessibility(s.swiperNavNextArrow), t.onAccessibility(s.swiperNavPrevArrow)) : (t.offAccessibility(s.swiperNavNextArrow), t.offAccessibility(s.swiperNavPrevArrow))); }), (c = function () { s.popupEl.classList.remove("sc-buds-audio-popup--open-mo"), s.moPopupOpenBtn && s.moPopupOpenBtn.focus(), t.offPopupAccessibility(s.popupVisualWrap), t.offAccessibility(s.moPopupOpenBtn), t.offAccessibility(s.popupCloseBtn), t.onAccessibility(s.moPopupEl); }), (u = function () { var t = [""], i = (s.popupItemContents.forEach(function (e) { e = e.querySelector(".sc-buds-step__item-description"); (e.style.height = ""), t.push(e.clientHeight); }), t.reduce(function (e, t) { return Math.max(e, t); })); s.popupItemContents.forEach(function (e) { e.querySelector( ".sc-buds-step__item-description" ).style.height = i + "px"; }); }), (h = function (e) { (("keydown" == e.type && 13 == e.keyCode) || "click" == e.type) && (e.preventDefault(), clearTimeout(s.arrowTimeout), (s.arrowTimeout = setTimeout(function () { !s.swiper.isBeginning && s.swiper.isEnd ? s.swiperNavPrevArrow.focus() : s.swiper.isBeginning && !s.swiper.isEnd && s.swiperNavNextArrow.focus(); }, 50))); }), (p = function () { s.popupEl.classList.contains("sc-buds-audio-popup--open-mo") || (s.popupEl.classList.add("sc-buds-audio-popup--open-mo"), t.offAccessibility(s.moPopupEl), t.onPopupAccessibility(s.popupVisualWrap), t.onAccessibility(s.moPopupOpenBtn), t.onAccessibility(s.popupCloseBtn), s.moPopupCloseBtns[0].focus()); }), (m = function () { var i = this; Array.prototype.slice .call(this.pagination.bullets) .forEach(function (e, t) { i.realIndex == t ? e.setAttribute( "aria-label", "step" + (t + 1) + " selected" ) : e.setAttribute("aria-label", "step" + (t + 1)); }); }), (v = function () { Array.prototype.slice .call(this.pagination.bullets) .forEach(function (t, i) { setTimeout(function () { Object.keys(s.paginationTagging).forEach(function (e) { "data-omni" == e || "ga-la" == e ? t.setAttribute(e, s.paginationTagging[e] + (i + 1)) : t.setAttribute(e, s.paginationTagging[e]); }); }, 0); }); }), (f = function () { var t = this; Object.keys(s.navArrowTagging).forEach(function (e) { "data-omni" == e || "ga-la" == e ? (s.swiperNavPrevArrow.setAttribute( e, s.navArrowTagging[e] + t.realIndex ), s.swiperNavNextArrow.setAttribute( e, s.navArrowTagging[e] + (t.realIndex + 2) )) : (s.swiperNavPrevArrow.setAttribute(e, s.navArrowTagging[e]), s.swiperNavNextArrow.setAttribute(e, s.navArrowTagging[e])); }); }), { init: function () { (s.section = document.querySelector( ".sc-buds-recording-popup__wrapper" )), s.section && ((s.swiper = null), (s.isSwiperInit = !1), (s.arrowTimeout = null), (s.wrapEl = document.querySelector("#wrap")), (s.saveScrollTop = 0), (s.swiperEl = s.section.querySelector( ".sc-buds-step__visual-swiper" )), (s.swiperNavNextArrow = s.section.querySelector( ".swiper-button-next" )), (s.swiperNavPrevArrow = s.section.querySelector( ".swiper-button-prev" )), (s.swiperPagination = s.section.querySelector( ".sc-buds-step__indicator-list" )), (s.popupEl = s.section.querySelector( ".sc-buds-audio-popup" )), (s.popupCloseBtn = s.popupEl.querySelector( ".sc-buds-audio-popup__close-cta" )), (s.popupItemContents = t.convertArray( s.popupEl.querySelectorAll(".sc-buds-step__item-content") )), (s.popupVisualWrap = s.popupEl.querySelector( ".sc-buds-step__visual-wrap" )), (s.moPopupEl = s.section.querySelector( ".sc-buds-step__text" )), (s.moPopupOpenBtn = s.popupEl.querySelector( ".sc-buds-step__mo-popup-cta" )), (s.moPopupCloseBtns = t.convertArray( s.moPopupEl.querySelectorAll(".sc-buds-step__mo-close") )), (s.popupDimmed = s.section.querySelector( ".sc-buds-audio-popup__dimmed" )), (s.scBuds = document.createElement("div")), s.scBuds.classList.add("sc-buds"), s.scBuds.appendChild(s.section), document.body.appendChild(s.scBuds), (s.paginationTagging = { "data-omni-type": "microsite_pcontentinter", "data-omni": "galaxy-buds2-pro:highlights:360-audio-recording^popup:dot:", "ga-ca": "indication", "ga-ac": "carousel", "ga-la": "galaxy-buds2-pro:highlights:360-audio-recording^popup:dot:", }), (s.navArrowTagging = { "data-omni-type": "microsite_pcontentinter", "data-omni": "galaxy-buds2-pro:highlights:360-audio-recording^popup:arrow:", "ga-ca": "indication", "ga-ac": "carousel", "ga-la": "galaxy-buds2-pro:highlights:360-audio-recording^popup:arrow:", }), window.addEventListener("load", n), window.addEventListener("resize", a), s.swiperNavNextArrow.addEventListener("click", h), s.swiperNavPrevArrow.addEventListener("click", h), s.swiperNavNextArrow.addEventListener("keydown", h), s.swiperNavPrevArrow.addEventListener("keydown", h), s.popupCloseBtn.addEventListener("click", r), s.popupDimmed.addEventListener("click", r), s.moPopupCloseBtns.forEach(function (e) { e.addEventListener("click", c); }), s.moPopupOpenBtn.addEventListener("click", p)); }, showAudioPopupLayer: function () { t.hiddenScroll(), s.popupEl.classList.add("sc-buds-audio-popup--init"), document.documentElement.classList.add("no-scroll"), document.documentElement.classList.add( "is-layer-popup-opened" ), setTimeout(function () { t.onPopupAccessibility(document.querySelector("#wrap")), s.popupEl.classList.add("sc-buds-audio-popup--open"), "mobile" == e && s.popupEl.classList.add("sc-buds-audio-popup--open-mo"); }, 150), setTimeout(function () { t.offAccessibility(s.scBuds), null != s.swiper && d.call(s.swiper), "mobile" == e || s.popupEl.classList.contains( "sc-buds-audio-popup--open-mo" ) ? (t.offAccessibility(s.moPopupEl), t.onPopupAccessibility(s.popupVisualWrap), t.onAccessibility(s.moPopupOpenBtn), t.onAccessibility(s.popupCloseBtn), s.moPopupCloseBtns[0].focus()) : s.popupCloseBtn.focus(); }, 300); }, hideAudioPopupLayer: (r = function () { t.visibleScroll(), s.popupEl.classList.remove("sc-buds-audio-popup--open"), s.popupEl.classList.remove("sc-buds-audio-popup--open-mo"), document.documentElement.classList.remove("no-scroll"), document.documentElement.classList.remove( "is-layer-popup-opened" ), setTimeout(function () { s.popupEl.classList.remove("sc-buds-audio-popup--init"), t.offPopupAccessibility(document.querySelector("#wrap")); }, 150), setTimeout(function () { t.getLastActiveItem() && t.getLastActiveItem().focus(), t.onAccessibility(s.scBuds), null != s.swiper && s.swiper.slideTo(0, 0); }, 300); }), })); })(), (function () { var a, o, r, e, t, s; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.subnav = window.buds2pro.subnav || {}), (buds2pro.subnav = ((a = {}), (o = window.buds2pro.common.utils), (r = window.pageYOffset), (e = function () { t(); }), (t = function () { r = window.pageYOffset; var n = (window.innerHeight + o.getNavHeight()) / 2; a.visSections.forEach(function (e) { var i, t = e.getBoundingClientRect(), s = r + t.top, t = r + t.bottom; s <= r + n && r + n <= t && ((i = e.dataset.visIndex), a.navItems.forEach(function (e, t) { t != i && e.parentNode.classList.contains("on") && e.parentNode.classList.remove("on"); }), (s = a.navItems[i].parentNode).classList.contains("on") || (s.classList.add("on"), !a.section.classList.contains("hold") && s.classList.contains("on") && GALAXY.header && GALAXY.header.resetSubNav())); }); }), (s = function (e) { e.preventDefault(); var t, i, s, n, e = this.parentNode; a.section.classList.contains("hold") || e.classList.contains("on") || (a.navItems.forEach(function (e) { e.parentNode.classList.remove("on"); }), e.classList.contains("on") || e.classList.add("on"), (e = this.dataset.navIndex), (t = (e = a.navDests[e]).getBoundingClientRect()), (i = parseInt(window.getComputedStyle(e).paddingTop)), (s = (window.innerHeight - (t.height - i) + o.getNavHeight()) / 2), (n = 0), (n = e.classList.contains("js-nav-center") ? r + t.top + i - s : r + t.top - o.getNavHeight()) < 150 && (n = 0), a.section.classList.add("hold"), GALAXY.setSmoothScrollTop(n, 1500, function () { a.section.classList.contains("hold") && a.section.classList.remove("hold"), GALAXY.header && GALAXY.header.resetSubNav(); })); }), { init: function () { var i; (a.section = document.getElementById("subnav")), a.section && ((a.navItems = o.convertArray( a.section.querySelectorAll("ul li>a") )), (a.navDests = document.querySelectorAll('[class*="js-nav-"]')), (a.visSections = o.convertArray( document.querySelectorAll(".js-visible") )), (a.visCount = -1), a.visSections.forEach(function (e) { e.dataset.visIndex = e.classList.contains("js-count") ? ++a.visCount : a.visCount; }), t(), window.addEventListener("resize", e), window.addEventListener("scroll", t), (i = window.location.hash), a.navItems.forEach(function (e, t) { -1 < e.getAttribute("href").indexOf("#") && ((e.dataset.navIndex = t), e.addEventListener("click", s)), i && -1 < e.getAttribute("href").indexOf(i) && (e.parentNode.classList.remove("on"), e.click()); })); }, })); })(), (function () { function e() { if ( (document.documentElement.classList.remove("is-layer-popup-opened"), p.visibleScroll(), h.layer) ) { h.wrap.removeAttribute("aria-hidden"), h.layer.parentNode.removeChild(h.layer), (h.layer = null); for (var e = 0; e < h.baseContentsClickable.length; e++) { var t = h.baseContentsClickable[e]; var i = t.getAttribute("data-prev-tabindex"); var s = t.getAttribute("data-prev-aria-hidden"); if (!!i) t.setAttribute("tabindex", i); else t.removeAttribute("tabindex"); if (!!s) t.setAttribute("aria-hidden", s); else t.removeAttribute("aria-hidden"); t.removeAttribute("data-prev-tabindex"); t.removeAttribute("data-prev-aria-hidden"); } setTimeout(function () { h.opener && h.opener.focus(); }, 1100); } } function u(e) { return ( "https://www.youtube.com/embed/" + e + "?showinfo=0&wmode=transparent&autoplay=1&rel=0" ); } var h, p, t, i, s, m; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.video = window.buds2pro.video || {}), (buds2pro.video = ((h = {}), (p = window.buds2pro.common.utils), (t = !1), (i = null), (s = function () { (t = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile") != i && (clearTimeout(h.responsiveTimeout), (h.responsiveTimeout = setTimeout(function () { p.offPopupAccessibility(h.contents), document.documentElement.classList.contains( "is-layer-popup-opened" ) && p.onPopupAccessibility(h.contents); }, 500)), (i = t)); }), (m = function () { e(), window.buds2pro.compare && window.buds2pro.compare.setSlideAccessibility(); }), { init: function () { (h.wrap = document.querySelector("#wrap")), h.wrap && ((h.contents = document.querySelector("#contents")), (h.responsiveTimeout = null), (h.layer = null), (h.opener = null), (h.baseContentsClickable = null), (h.closeButton = null), window.addEventListener("resize", s)); }, showVideoLayer: function (e, t, i) { document.documentElement.classList.add("is-layer-popup-opened"), p.hiddenScroll(); e = e.split("?v=")[1]; if ( (h.wrap.setAttribute("aria-hidden", "true"), (h.baseContentsClickable = document.documentElement.querySelectorAll( "a, input, select, textarea, button, video, iframe" )), !h.layer) ) { (h.layer = document.createElement("div")), h.layer.setAttribute("id", "layer-youtube"), h.layer.classList.add("m_layer-youtube"), h.layer.classList.add("show"), (h.layer.innerHTML = [ '
', '', 'Movie player Layer', '
', '', '', "", '
', '
', "
", "
", "
", ].join("")), h.layer.addEventListener("touchmove", function (e) { e.preventDefault(); }), (h.closeButton = h.layer.querySelector( 'button[class*="_btn_close"]' )), h.closeButton.addEventListener("click", m); for (var s = 0; s < h.baseContentsClickable.length; s++) { var n = h.baseContentsClickable[s]; var a = n.getAttribute("tabindex"); var o = n.getAttribute("aria-hidden"); if (!!a) n.setAttribute("data-prev-tabindex", a); if (!!o) n.setAttribute("data-prev-aria-hidden", o); n.setAttribute("tabindex", "-1"); n.setAttribute("aria-hidden", "true"); } document.body.appendChild(h.layer); e = t; if ( h.closeButton != null && !(window.GALAXY && window.GALAXY.isGalaxy) ) { var r = e.getAttribute("data-omni-type"); var l = e.getAttribute("data-close-omni"); var d = e.getAttribute("data-close-ga"); var c = e.getAttribute("ga-ca"); e = e.getAttribute("ga-ac"); h.closeButton.setAttribute("data-omni-type", r); h.closeButton.setAttribute("data-omni", l); h.closeButton.setAttribute("ga-ca", c); h.closeButton.setAttribute("ga-ac", e); h.closeButton.setAttribute("ga-la", d); } t && (h.opener = t), setTimeout(function () { h.closeButton && h.closeButton.focus(); }, 1100); } }, hideVideoLayer: e, getYoutubePlayerLink: u, })); })(), (function () { var e, t, i, s, n, a, o; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.anc = window.buds2pro.anc || {}), (buds2pro.anc = ((e = {}), window.buds2pro.common.utils, (t = !1), (i = null), (s = function () { n(), o(), window.removeEventListener("load", s); }), (n = function () { (t = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(e.resizeTimeout), (e.resizeTimeout = setTimeout(function () { o(); }, 100)), t != i && (a(), (i = t)); }), (a = function () { null != e.sequenceScroller && (e.sequenceScroller.destroy(), (e.sequenceScroller = null)); null != e.sequencePlayer && (e.sequenceCanvas.removeChild( e.sequenceCanvas.querySelector("canvas") ), (e.sequencePlayer = null)); null == e.sequenceScroller && (e.sequenceScroller = SCROLLER({ trackElement: e.sequenceCanvas, activeElement: e.section, activeType: "reverse", correction: 0.4, activeCallback: function () { null != e.sequencePlayer && (e.sequencePlayer.stop(), e.sequencePlayer.play()); }, endCallback: function () { null != e.sequencePlayer && e.sequencePlayer.stop(); }, })); "undefined" != typeof __BUDS_SEQUENCE_URL && null != __BUDS_SEQUENCE_URL && null != __BUDS_SEQUENCE_URL && "" != __BUDS_SEQUENCE_URL ? (e.sequenceImagePath = __BUDS_SEQUENCE_URL + "/") : (e.sequenceImagePath = "/src/_galaxy-buds2-pro/images/"); null == e.sequencePlayer && (e.sequencePlayer = SEQUENCEPLAYER({ targetElement: e.sequenceCanvas, startNum: 0, endNum: 32, path: e.sequenceImagePath, name: "mobile" != t ? "galaxy-buds2-pro-anc-pc-sequence_" : "galaxy-buds2-pro-anc-mo-sequence_", extension: "jpg", playTime: 1400, imageLoadOffset: 2, })); }), (o = function () { null != e.sequenceScroller && e.sequenceScroller.activeAnimation(); }), { init: function () { (e.section = document.querySelector(".sc-buds-anc")), e.section && ((e.sequenceScroller = null), (e.sequencePlayer = null), (e.sequenceImagePath = null), (e.sequenceCanvas = e.section.querySelector( ".sc-buds-anc__kv-image" )), (e.ancKv = e.section.querySelector(".sc-buds-anc__kv")), (e.ancKvFrontImage = e.ancKv.querySelector( ".sc-buds-anc__kv-image-front" )), window.addEventListener("load", s), window.addEventListener("resize", n), window.addEventListener("scroll", o)); }, })); })(), (function () { var n, e, t, i, s, a, o, r, l, d, c, u, h, p, m, v; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.audio = window.buds2pro.audio || {}), (buds2pro.audio = ((n = {}), (e = window.buds2pro.common.utils), (t = !1), (i = null), (s = function () { a(), r(), window.removeEventListener("load", s); }), (a = function () { (t = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(n.resizeTimeout), (n.resizeTimeout = setTimeout(function () { r(); }, 100)), t != i && (o(), (i = t)); }), (o = function () { null != n.sequenceScroller && (n.sequenceScroller.destroy(), (n.sequenceScroller = null)); null != n.sequencePlayer && (n.sequenceCanvas.removeChild( n.sequenceCanvas.querySelector("canvas") ), (n.sequencePlayer = null)); null == n.sequenceScroller && (n.sequenceScroller = SCROLLER({ trackElement: n.sequenceCanvas, activeElement: n.section, activeType: "reverse", correction: 0.5, activeCallback: function () { null != n.sequencePlayer && (n.sequencePlayer.stop(), n.sequencePlayer.play()); }, endCallback: function () { null != n.sequencePlayer && n.sequencePlayer.stop(); }, })); "undefined" != typeof __BUDS_SEQUENCE_URL && null != __BUDS_SEQUENCE_URL && null != __BUDS_SEQUENCE_URL && "" != __BUDS_SEQUENCE_URL ? (n.sequenceImagePath = __BUDS_SEQUENCE_URL + "/") : (n.sequenceImagePath = "/src/_galaxy-buds2-pro/images/"); null == n.sequencePlayer && (n.sequencePlayer = SEQUENCEPLAYER({ targetElement: n.sequenceCanvas, startNum: 0, endNum: 59, path: n.sequenceImagePath, name: "mobile" != t ? "galaxy-buds2-pro-360-audio-pc-sequence_" : "galaxy-buds2-pro-360-audio-mo-sequence_", extension: "jpg", playTime: 2e3, imageLoadOffset: 2, })); }), (r = function () { null != n.sequenceScroller && n.sequenceScroller.activeAnimation(); var e = window.pageYOffset, t = e + window.innerHeight, i = n.audioCard.getBoundingClientRect(), s = e + i.top, i = e + i.bottom; (t <= s || i <= e) && c(); }), (l = function () { (n.audioPopup = window.buds2pro.audioPopup), e.setLastActiveItem(this), n.audioPopup.showAudioPopupLayer(); }), (d = function () { document.documentElement.classList.contains( "is-layer-popup-opened" ) && c(); }), (c = function () { n.audioCard.classList.contains("s-play") && ((n.videoControlText.innerHTML = "play"), n.audioCard.classList.remove("s-play"), n.videoContent.pause(), (n.isPaused = !0), v.call(n.videoControlButton)); }), (u = function () { n.audioCard.classList.contains("s-play") && ((n.videoControlText.innerHTML = "play"), n.audioCard.classList.remove("s-play"), n.audioCard.classList.add("s-ready"), n.videoContent.pause(), (n.videoContent.currentTime = 0), (n.isPaused = !0), v.call(n.videoControlButton)); }), (h = function (e) { e.preventDefault(), n.isPaused ? ((n.videoControlText.innerHTML = "pause"), n.audioCard.classList.contains("s-ready") && n.audioCard.classList.remove("s-ready"), n.audioCard.classList.add("s-play"), n.videoContent.play(), (n.isPaused = !1), v.call(n.videoControlButton)) : c(); }), (p = function (e) { ("focusin" == n.prevEventType && "mouseenter" == e.type) || (n.audioCardText.classList.add("is-hover"), (n.prevEventType = e.type)); }), (m = function (e) { ("focusin" == n.prevEventType && "mouseleave" == e.type) || (n.audioCardText.classList.remove("is-hover"), (n.prevEventType = e.type)); }), (v = function () { var t = this, i = { "data-omni": t.getAttribute("data-omni"), "ga-la": t.getAttribute("ga-la"), }; setTimeout(function () { Object.keys(i).forEach(function (e) { !1 === n.isPaused ? t.setAttribute(e, i[e].replace(":play", ":pause")) : t.setAttribute(e, i[e].replace(":pause", ":play")); }); }, 50); }), { init: function () { if ( ((n.section = document.querySelector(".sc-buds-360-audio")), n.section) ) { if ( ((n.sequenceScroller = null), (n.sequencePlayer = null), (n.sequenceImagePath = null), (n.sequenceCanvas = n.section.querySelector( ".sc-buds-360-audio__kv-image" )), (n.audioPopupBtn = n.section.querySelector( ".sc-buds-360-audio__cta" )), (n.isPaused = !0), (n.prevEventType = null), (n.audioCard = n.section.querySelector( ".sc-buds-360-audio__card" )), (n.audioCardText = n.section.querySelector( ".sc-buds-360-audio__card-text" )), (n.videoControlButton = n.audioCard.querySelector( "a.sc-buds-360-audio__play-area" )), (n.videoContent = n.audioCard.querySelector( ".sc-buds-360-audio__video-source" )), (n.videoControlText = n.audioCard.querySelector("span.blind")), window.addEventListener("load", s), window.addEventListener("resize", a), window.addEventListener("scroll", r), !!n.audioPopupBtn) ) n.audioPopupBtn.addEventListener("click", l); n.videoControlButton.addEventListener("click", h), n.videoControlButton.addEventListener("mouseenter", p), n.videoControlButton.addEventListener("mouseleave", m), n.videoControlButton.addEventListener("focusin", p), n.videoControlButton.addEventListener("focusout", m), n.videoContent.addEventListener("ended", u), n.videoContent.addEventListener("timeupdate", d); } }, })); })(), (function () { var n, a, e, t, i, s, o, r; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.colors = window.buds2pro.colors || {}), (buds2pro.colors = ((n = {}), (a = window.buds2pro.common.utils), (e = !1), (t = null), (i = function () { s(), window.removeEventListener("load", i); }), (s = function () { (e = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(n.resizeTimeout), (n.resizeTimeout = setTimeout(function () { }, 100)), e != t && (o(), (t = e)); }), (o = function () { n.colorsContentItems.forEach(function (e, t) { var i = n.colorsChipButtons[t]; n.currentIndex == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), i.classList.contains("is-active") || i.classList.add("is-active"), i.setAttribute("title", "selected"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || a.offAccessibility(e)) : (e.classList.contains("is-active") && e.classList.remove("is-active"), i.classList.contains("is-active") && i.classList.remove("is-active"), i.removeAttribute("title"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || a.onAccessibility(e)); }); }), (r = function () { var s = n.colorsChipButtons.indexOf(this); n.currentIndex != s && (n.colorsContentItems.forEach(function (e, t) { var i = n.colorsChipButtons[t]; s == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), i.classList.contains("is-active") || i.classList.add("is-active"), i.setAttribute("title", "selected"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || a.offAccessibility(e)) : (e.classList.contains("is-active") && e.classList.remove("is-active"), i.classList.contains("is-active") && i.classList.remove("is-active"), i.removeAttribute("title"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || a.onAccessibility(e)); }), (n.currentIndex = s)); }), { init: function () { (n.section = document.querySelector(".sc-buds-colors")), n.section && ((n.currentIndex = 2), (n.colorsChipList = n.section.querySelector( ".sc-buds-colors__colors" )), (n.colorsChipItems = a.convertArray( n.colorsChipList.querySelectorAll("li") )), (n.colorsChipButtons = a.convertArray( n.section.querySelectorAll(".sc-buds-colors__color") )), (n.colorsContents = n.section.querySelector( ".sc-buds-colors__contents" )), (n.colorsContentItems = a.convertArray( n.section.querySelectorAll(".sc-buds-colors__item") )), window.addEventListener("load", i), window.addEventListener("resize", s), n.colorsChipButtons.forEach(function (e) { e.addEventListener("click", r); })); }, })); })(), (function () { function t() { var e, t, i, s, n; null != r.moTabSwiper && ((n = r.compareTabButtons[r.currentTabIndex].parentNode), (e = r.compareTabList.getBoundingClientRect()), (t = n.getBoundingClientRect()), r.compareTabButtons.forEach(function (e, t) { r.currentTabIndex == t ? (e.parentNode.classList.contains("is-active") || e.parentNode.classList.add("is-active"), e.setAttribute("title", "selected")) : (e.parentNode.classList.contains("is-active") && e.parentNode.classList.remove("is-active"), e.removeAttribute("title")); }), (i = parseInt(getComputedStyle(n).marginLeft)), (s = t.left - e.left - i), (n = 2 * i + n.clientWidth), TweenMax.to(r.compareTabHighlight, 0.3, { width: n + "px", left: s + "px", }), (n = 0 == r.currentTabIndex || r.currentTabIndex == r.compareTabButtons.length - 1 ? r.moTabSwiper.slidesGrid[r.currentTabIndex] > r.moTabSwiper.snapGrid[r.moTabSwiper.snapGrid.length - 1] ? r.moTabSwiper.snapGrid[r.moTabSwiper.snapGrid.length - 1] : r.moTabSwiper.slidesGrid[r.currentTabIndex] : (l.isRTL() ? e.right - t.right : t.left - e.left) - t.width / 2 - i * r.marginCount), TweenMax.to(r.compareTabList, 0.3, { x: n * (l.isRTL() ? 1 : -1) + "px", }), (r.compareTab.scrollLeft = 0)); } function o(t) { var i, s; t ? ((i = []), l .convertArray( t.querySelectorAll(".sc-buds-compare__list-product-item") ) .forEach(function (e) { e.getAttribute("data-product") == f(t) ? (e.classList.contains("is-active") || e.classList.add("is-active"), l.offAccessibility(e)) : (e.classList.contains("is-active") && e.classList.remove("is-active"), l.onAccessibility(e)), l .convertArray(e.querySelectorAll("img")) .forEach(function (e) { e.classList.contains("load-complete") || i.push(e); }); }), (s = t.getAttribute("data-color")), l .convertArray(t.querySelectorAll(".sc-buds-compare__color")) .forEach(function (e) { e.getAttribute("data-color") == s ? e.classList.contains("is-active") || e.classList.add("is-active") : e.classList.contains("is-active") && e.classList.remove("is-active"), l.offAccessibility(e); }), 0 < i.length && imageLoader.setResponsiveImage(i)) : r.compareListItems.forEach(function (e) { v(e), m(e); }); } var r, l, d, e, i, s, n, a, c, u, h, p, m, v, f, g, w; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.compare = window.buds2pro.compare || {}), (buds2pro.compare = ((r = {}), (l = window.buds2pro.common.utils), (d = !1), (e = null), (i = function () { s(), window.removeEventListener("load", i); }), (s = function () { (d = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(r.resizeTimeout), (r.resizeTimeout = setTimeout(function () { "mobile" != d && g(), h(); }, 100)), d != e && (n(), (e = d)); }), (n = function () { (r.currentTabIndex = 0), null != r.swiper && (r.swiper.destroy(!0), (r.swiper = null), (r.isSwiperInit = !1)); null == r.swiper && ((r.swiper = new Swiper(r.compareContainer, { init: !1, allowTouchMove: !1, slidesPerView: "mobile" != d ? "auto" : 1, navigation: { nextEl: r.nextArrow, prevEl: r.prevArrow }, })), r.swiper.on("snapIndexChange", function () { r.isSwiperInit && w(!0); }), r.swiper.on("init", function () { w(!1), (r.isSwiperInit = !0); var e = this.el.querySelector(".swiper-notification"); e && this.el.removeChild(e); }), r.swiper.init()); o(), null != r.moTabSwiper && (r.moTabSwiper.destroy(!0), (r.moTabSwiper = null)); "mobile" == d && setTimeout(function () { null == r.moTabSwiper && ((r.moTabSwiper = new Swiper(r.compareTab, { init: !1, slidesPerView: "auto", freeMode: !0, })), r.moTabSwiper.on("init", function () { var e = this.el.querySelector(".swiper-notification"); e && this.el.removeChild(e); }), r.moTabSwiper.init()); r.compareColorWraps.forEach(function (e) { e.style.height = ""; }), t(); }, 200); }), (a = function () { }), (c = function () { var e = r.compareTabButtons.indexOf(this); e != r.currentTabIndex && (null != r.swiper && (r.swiper.slideTo(e), o(r.compareListItems[e])), (r.currentTabIndex = e), t()); }), (u = function () { var e, t, i, s; null != r.moTabSwiper && ((s = r.compareTabButtons.indexOf(this)), (i = r.compareTabButtons[s].parentNode), (e = r.compareTabList.getBoundingClientRect()), (t = i.getBoundingClientRect()), (i = parseInt(getComputedStyle(i).marginLeft)), (s = 0 == s || s == r.compareTabButtons.length - 1 ? r.moTabSwiper.slidesGrid[s] > r.moTabSwiper.snapGrid[r.moTabSwiper.snapGrid.length - 1] ? r.moTabSwiper.snapGrid[ r.moTabSwiper.snapGrid.length - 1 ] : r.moTabSwiper.slidesGrid[s] : (l.isRTL() ? e.right - t.right : t.left - e.left) - t.width / 2 - i * r.marginCount), TweenMax.to(r.compareTabList, 0.3, { x: s * (l.isRTL() ? 1 : -1) + "px", }), (r.compareTab.scrollLeft = 0)); }), (h = function () { var e, t, i, s; null != r.moTabSwiper && ((i = r.compareTabButtons[r.currentTabIndex].parentNode), (e = r.compareTabList.getBoundingClientRect()), (s = i.getBoundingClientRect()), (i = 2 * (t = parseInt(getComputedStyle(i).marginLeft)) + i.clientWidth), (s = s.left - e.left - t), (r.compareTabHighlight.style.width = i + "px"), (r.compareTabHighlight.style.left = s + "px")); }), (p = function () { var i, e = l.closest(this, ".sc-buds-compare__list-item"), t = e.getAttribute("data-size"), s = e.getAttribute("data-color"), n = this.getAttribute("data-default-size"), a = this.getAttribute("data-color"); s != a && (t != n && e.setAttribute("data-size", n), s != a && e.setAttribute("data-color", a), (t = l.convertArray( e.querySelectorAll(".sc-buds-compare__color") )), (i = t.indexOf(this)), t.forEach(function (e, t) { i == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), e.setAttribute("title", "selected")) : (e.classList.contains("is-active") && e.classList.remove("is-active"), e.removeAttribute("title")); }), o(e), m(e)); }), (m = function (e) { var i = e.getAttribute("data-size"); l.convertArray( e.querySelectorAll(".sc-buds-compare__list-size-button") ).forEach(function (e) { var t = e.getAttribute("data-size"); i == t ? e.classList.contains("is-active") || e.classList.add("is-active") : e.classList.contains("is-active") && e.classList.remove("is-active"); }); }), (v = function (e) { var s = e.getAttribute("data-color"), n = e.getAttribute("data-size"); l.convertArray( e.querySelectorAll(".sc-buds-compare__color") ).forEach(function (e) { var t = e.getAttribute("data-color"), i = e.getAttribute("data-default-size"); s == t && n == i ? e.classList.contains("is-active") || e.classList.add("is-active") : e.classList.contains("is-active") && e.classList.remove("is-active"); }); }), (f = function (e) { var t = "", i = e.getAttribute("data-product"), s = e.getAttribute("data-color"), e = e.getAttribute("data-size"); return (t += i), s && (t += "-" + s), e && (t += "-" + e), t; }), (g = function () { var t = [], i = (r.compareColorWraps.forEach(function (e) { (e.style.height = ""), t.push(e.clientHeight); }), t.reduce(function (e, t) { return Math.max(e, t); })); r.compareColorWraps.forEach(function (e) { e.style.height = i + "px"; }); }), { init: function () { (r.section = document.querySelector(".sc-buds-compare")), r.section && ((r.isSwiperInit = !1), (r.moTabSwiper = null), (r.currentTabIndex = 0), (r.compareTab = r.section.querySelector( ".sc-buds-compare__tab" )), (r.compareTabList = r.compareTab.querySelector( ".sc-buds-compare__tab-list" )), (r.compareTabButtons = l.convertArray( r.compareTabList.querySelectorAll( ".sc-buds-compare__tab-button button" ) )), (r.compareTabHighlight = r.compareTab.querySelector( ".sc-buds-compare__tab-highlight" )), (r.swiper = null), (r.compareContainer = r.section.querySelector( ".sc-buds-compare__container" )), (r.compareListItems = l.convertArray( r.compareContainer.querySelectorAll( ".sc-buds-compare__list-item" ) )), (r.compareColorWraps = l.convertArray( r.compareContainer.querySelectorAll( ".sc-buds-compare__list-colors" ) )), (r.compareColorChips = l.convertArray( r.compareContainer.querySelectorAll( ".sc-buds-compare__list-item .sc-buds-compare__color" ) )), (r.nextArrow = r.section.querySelector( ".swiper-button-next" )), (r.prevArrow = r.section.querySelector( ".swiper-button-prev" )), (r.marginCount = r.compareTabButtons.length - 2 + 0.5), window.addEventListener("load", i), window.addEventListener("resize", s), window.addEventListener("scroll", a), r.compareTabButtons.forEach(function (e) { e.addEventListener("click", c), e.addEventListener("focus", u); }), r.compareColorChips.forEach(function (e) { e.addEventListener("click", p); })); }, setSlideAccessibility: (w = function (n) { var a; null != r.swiper && ((a = []), r.compareListItems.forEach(function (t, e) { var i, s = l.convertArray( t.querySelectorAll( ".sc-buds-compare__list-product-item" ) ); r.swiper.snapIndex <= e && e < r.swiper.snapIndex + ("mobile" != d ? 3 : 1) ? (l.offAccessibility(t), s.forEach(function (e) { e.getAttribute("data-product") == f(t) ? (e.classList.contains("is-active") || e.classList.add("is-active"), l.offAccessibility(e)) : (e.classList.contains("is-active") && e.classList.remove("is-active"), l.onAccessibility(e)), n && l .convertArray(e.querySelectorAll("img")) .forEach(function (e) { e.classList.contains("load-complete") || a.push(e); }); }), (i = t.getAttribute("data-color")), l .convertArray( t.querySelectorAll(".sc-buds-compare__color") ) .forEach(function (e) { e.getAttribute("data-color") == i ? (e.classList.contains("is-active") || e.classList.add("is-active"), e.setAttribute("title", "selected")) : (e.classList.contains("is-active") && e.classList.remove("is-active"), e.removeAttribute("title")), l.offAccessibility(e); })) : (l.onAccessibility(t), s.forEach(function (e) { l.onAccessibility(e); })); }), 0 < a.length && imageLoader.setResponsiveImage(a)); }), })); })(), (function () { function t() { var e = s.getCookie(i.cookieName); null != e && e.length && "1" == e ? (document.documentElement.classList.add("color_yb"), i.contrastBtn.setAttribute( "title", i.contrastBtnTitle + " selected" ), i.defaultBtn.setAttribute("title", i.defaultBtnTitle)) : (document.documentElement.classList.remove("color_yb"), i.contrastBtn.setAttribute("title", i.contrastBtnTitle), i.defaultBtn.setAttribute( "title", i.defaultBtnTitle + " selected" )); } var i, s, e, n, a; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.contrast = window.buds2pro.contrast || {}), (buds2pro.contrast = ((i = {}), (s = window.buds2pro.common.utils), (e = function () { t(); }), (n = function (e) { e.preventDefault(), s.setCookie(i.cookieName, "0", 1), t(); }), (a = function (e) { e.preventDefault(), s.setCookie(i.cookieName, "1", 1), t(); }), { init: function () { if ( ((i.section = document.querySelector(".cp-high-contrast")), i.section) ) { if ( ((i.defaultBtn = i.section.querySelector(".type-default")), (i.defaultBtnTitle = i.defaultBtn .getAttribute("title") .trim()), (i.contrastBtn = i.section.querySelector(".type-contrast")), (i.contrastBtnTitle = i.contrastBtn .getAttribute("title") .trim()), (i.cookieName = "highContrastMode"), window.addEventListener("load", e), !!i.defaultBtn) ) i.defaultBtn.addEventListener("click", n); if (!!i.contrastBtn) i.contrastBtn.addEventListener("click", a); } }, })); })(), (function () { var e, t, i, s, n, a, o, r; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.easyPairing = window.buds2pro.easyPairing || {}), (buds2pro.easyPairing = ((e = {}), window.buds2pro.common.utils, (t = !1), (i = null), (s = function () { (n(), o(), "undefined" != typeof __BUDS_SEQUENCE_URL && null != __BUDS_SEQUENCE_URL && null != __BUDS_SEQUENCE_URL && "" != __BUDS_SEQUENCE_URL) ? (e.sequenceImagePath = __BUDS_SEQUENCE_URL + "/") : (e.sequenceImagePath = "/src/_galaxy-buds2-pro/images/"); null == e.sequencePlayer && (e.sequencePlayer = SEQUENCEPLAYER({ targetElement: e.sequenceCanvas, startNum: 0, endNum: 68, path: e.sequenceImagePath, name: "galaxy-buds2-pro-easy-pairing-sequence_", extension: "jpg", playTime: 2e3, imageLoadOffset: 1, })); window.removeEventListener("load", s); }), (n = function () { (t = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(e.resizeTimeout), (e.resizeTimeout = setTimeout(function () { }, 100)), o(), t != i && (a(), (i = t)); }), (a = function () { r(), null == e.sequenceScroller && (e.sequenceScroller = SCROLLER({ trackElement: e.sequenceCanvas, activeElement: e.section, activeType: "reverse", correction: 0.3, activeCallback: function () { null != e.sequencePlayer && (e.sequencePlayer.stop(), e.sequencePlayer.play()); }, endCallback: function () { null != e.sequencePlayer && e.sequencePlayer.stop(); }, })); }), (o = function () { null != e.sequenceScroller && e.sequenceScroller.activeAnimation(); }), (r = function () { null != e.sequenceScroller && (e.sequenceScroller.destroy(), (e.sequenceScroller = null)); }), { init: function () { (e.section = document.querySelector(".sc-buds-easy-pairing")), e.section && ((e.sequenceScroller = null), (e.sequencePlayer = null), (e.sequenceImagePath = null), (e.sequenceCanvas = e.section.querySelector( ".sc-buds-easy-pairing__kv-inner" )), window.addEventListener("load", s), window.addEventListener("resize", n), window.addEventListener("scroll", o)); }, })); })(), (function () { var o, r, e, t, i, s, n, a, l, d, c; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.ecosystem = window.buds2pro.ecosystem || {}), (buds2pro.ecosystem = ((o = {}), (r = window.buds2pro.common.utils), (e = !1), (t = null), (i = function () { o.ecoPopups.forEach(function (e, t) { t = o.ecoItemButtons[t]; e.classList.contains("is-active") && e.classList.remove("is-active"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.onAccessibility(e), r.offAccessibility(t)); }), s(), window.removeEventListener("load", i); }), (s = function () { (e = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(o.resizeTimeout), (o.resizeTimeout = setTimeout(function () { }, 100)), e != t && (n(), (t = e)); }), (n = function () { }), (a = function () { r.customParallax({ wrapperElement: o.section, activeElement: o.ecoItem01, distance: 10, direction: -1, }), r.customParallax({ wrapperElement: o.section, activeElement: o.ecoItem02, distance: 10, }), r.customParallax({ wrapperElement: o.section, activeElement: o.ecoItem03, distance: 5, }), r.customParallax({ wrapperElement: o.section, activeElement: o.ecoItem04, distance: 5, direction: -1, }); }), (l = function (e) { e.preventDefault(); var n = o.ecoItemButtons.indexOf(this), a = []; o.ecoPopups.forEach(function (e, t) { var i = o.ecoItemButtons[t], s = e.querySelector(".sc-wearable-ecosystem__popup-close"); n == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.offAccessibility(e), r.onAccessibility(i)), document.removeEventListener("click", c), setTimeout(function () { s.focus(), document.addEventListener("click", c); }, 400), r .convertArray(e.querySelectorAll("img")) .forEach(function (e) { e.classList.contains("load-complate") || a.push(e); })) : (e.classList.contains("is-active") && e.classList.remove("is-active"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.onAccessibility(e), r.offAccessibility(i))); }), 0 < a.length && imageLoader.setResponsiveImage(a); }), (d = function () { o.ecoPopups.forEach(function (e, t) { t = o.ecoItemButtons[t]; e.classList.contains("is-active") && e.classList.remove("is-active"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.onAccessibility(e), r.offAccessibility(t)); }); var e = r .closest(this, ".sc-wearable-ecosystem__item") .querySelector(".sc-wearable-ecosystem__item-cta-link"); setTimeout(function () { e.focus(), document.removeEventListener("click", c); }, 400); }), (c = function (e) { null == r.closest(e.target, ".sc-wearable-ecosystem__popup") && (o.ecoPopups.forEach(function (e, t) { t = o.ecoItemButtons[t]; e.classList.contains("is-active") && e.classList.remove("is-active"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.onAccessibility(e), r.offAccessibility(t)); }), document.removeEventListener("click", c)); }), { init: function () { (o.section = document.querySelector(".sc-wearable-ecosystem")), o.section && ((o.ecoContents = o.section.querySelector( ".sc-wearable-ecosystem__contents" )), (o.ecoItems = r.convertArray( o.ecoContents.querySelectorAll( ".sc-wearable-ecosystem__item" ) )), (o.ecoItemButtons = r.convertArray( o.ecoContents.querySelectorAll( ".sc-wearable-ecosystem__item-cta-link" ) )), (o.ecoPopups = r.convertArray( o.ecoContents.querySelectorAll( ".sc-wearable-ecosystem__popup" ) )), (o.ecoPopupCloseButtons = r.convertArray( o.ecoContents.querySelectorAll( ".sc-wearable-ecosystem__popup-close" ) )), (o.ecoItem01 = o.ecoContents.querySelector( ".sc-wearable-ecosystem__item--01 .sc-wearable-ecosystem__item-inner" )), (o.ecoItem02 = o.ecoContents.querySelector( ".sc-wearable-ecosystem__item--02 .sc-wearable-ecosystem__item-inner" )), (o.ecoItem03 = o.ecoContents.querySelector( ".sc-wearable-ecosystem__item--03 .sc-wearable-ecosystem__item-inner" )), (o.ecoItem04 = o.ecoContents.querySelector( ".sc-wearable-ecosystem__item--04 .sc-wearable-ecosystem__item-inner" )), window.addEventListener("load", i), window.addEventListener("resize", s), window.addEventListener("scroll", a), o.ecoItemButtons.forEach(function (e) { e.addEventListener("click", l); }), o.ecoPopupCloseButtons.forEach(function (e) { e.addEventListener("click", d); })); }, })); })(), (function () { var s, e, n, t, i, a, o, r; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.ergonomic = window.buds2pro.ergonomic || {}), (buds2pro.ergonomic = ((s = {}), (e = window.buds2pro.common.utils), (n = !1), (t = null), (i = function () { a(), r(), window.removeEventListener("load", i); }), (a = function () { (n = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(s.resizeTimeout), (s.resizeTimeout = setTimeout(function () { r(); }, 100)), n != t && (o(), (t = n)); }), (o = function () { null != s.scroller && (s.scroller.destroy(), (s.scroller = null)); null == s.scroller && (s.scroller = SCROLLER({ trackElement: s.section, useFixed: !1, })); }), (r = function () { null != s.scroller && s.scroller.trackAnimation(function () { var e = ANIUTIL.calRange({ targetValue: "mobile" != n ? 25 : 10, progress: this.progress, startPoint: 0, endPoint: "mobile" != n ? 60 : 40, }), t = ANIUTIL.calRange({ targetValue: 10, progress: this.progress, startPoint: 0, endPoint: 60, }), i = ANIUTIL.calRange({ targetValue: 8, progress: this.progress, startPoint: 0, endPoint: 60, }); TweenMax.to(s.designKvItems[0], 0.5, { y: e - ("mobile" != n ? 5 : 0) + "%", z: 0, }), TweenMax.to(s.designKvItems[1], 0.6, { y: 20 - t + "%", z: 0, }), TweenMax.to(s.designKvItems[2], 0.3, { y: i - 4 + "%", z: 0, }); }); }), { init: function () { (s.section = document.querySelector( ".sc-buds-ergonomic-design" )), s.section && ((s.scroller = null), (s.designKvWrap = s.section.querySelector( ".sc-buds-ergonomic-design__kv-items" )), (s.designKvItems = e.convertArray( s.designKvWrap.querySelectorAll( ".sc-buds-ergonomic-design__kv-item" ) )), window.addEventListener("load", i), window.addEventListener("resize", a), window.addEventListener("scroll", r)); }, })); })(), (function () { var o, r, e, t, i, s, n, a, l, d, c; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.excellence = window.buds2pro.excellence || {}), (buds2pro.excellence = ((o = {}), (r = window.buds2pro.common.utils), (e = !1), (t = null), (i = function () { s(), window.removeEventListener("load", i); }), (s = function () { (e = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(o.resizeTimeout), (o.resizeTimeout = setTimeout(function () { c(); }, 100)), e != t && (n(), (t = e)); }), (n = function () { null != o.moNavSwiper && (o.moNavSwiper.destroy(!0), (o.moNavSwiper = null)); if ("mobile" != e) o.infoButtons.forEach(function (e, t) { var i = o.contentKv[t]; o.currentIndex == t ? (o.info[t].classList.contains("is-active") || o.info[t].classList.add("is-active"), i.classList.contains("is-active") || i.classList.add("is-active"), e.setAttribute("title", "selected"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || r.offAccessibility(i)) : (o.info[t].classList.contains("is-active") && o.info[t].classList.remove("is-active"), i.classList.contains("is-active") && i.classList.remove("is-active"), e.removeAttribute("title"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || r.onAccessibility(i)); }); else if ( (o.moNavButtons.forEach(function (e, t) { var i = o.contentKv[t], s = o.moInfo[t]; o.currentIndex == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), i.classList.contains("is-active") || i.classList.add("is-active"), s.classList.contains("is-active") || s.classList.add("is-active"), e.setAttribute("aria-selected", !0), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.offAccessibility(i), r.offAccessibility(s))) : (e.classList.contains("is-active") && e.classList.remove("is-active"), i.classList.contains("is-active") && i.classList.remove("is-active"), s.classList.contains("is-active") && s.classList.remove("is-active"), e.setAttribute("aria-selected", !1), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.onAccessibility(i), r.onAccessibility(s))); }), null == o.moNavSwiper) ) (o.moNavSwiper = new Swiper(o.moNavBg, { init: !1, slidesPerView: "auto", freeMode: !0, })), o.moNavSwiper.on("init", function () { var e = this.el.querySelector(".swiper-notification"); e && this.el.removeChild(e); }), o.moNavSwiper.init(); }), (a = function () { var n, a = o.infoButtons.indexOf(this); o.currentIndex != a && ((n = []), o.infoButtons.forEach(function (e, t) { var i = o.contentKv[t], s = o.infoButtons[t]; a == t ? (o.info[t].classList.contains("is-active") || o.info[t].classList.add("is-active"), i.classList.contains("is-active") || i.classList.add("is-active"), e.setAttribute("title", "selected"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || r.offAccessibility(i), r .convertArray(i.querySelectorAll("img")) .forEach(function (e) { e.classList.contains("load-complete") || n.push(e); }), r .convertArray(s.querySelectorAll("img")) .forEach(function (e) { e.classList.contains("load-complete") || n.push(e); })) : (o.info[t].classList.contains("is-active") && o.info[t].classList.remove("is-active"), i.classList.contains("is-active") && i.classList.remove("is-active"), e.removeAttribute("title"), document.documentElement.classList.contains( "is-layer-popup-opened" ) || r.onAccessibility(i)); }), 0 < n.length && imageLoader.setResponsiveImage(n), (o.currentIndex = a)); }), (l = function () { var n, e, a = o.moNavButtons.indexOf(this); o.currentIndex != a && ((n = []), o.moNavButtons.forEach(function (e, t) { var i = o.contentKv[t], s = o.moInfo[t]; a == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), i.classList.contains("is-active") || i.classList.add("is-active"), s.classList.contains("is-active") || s.classList.add("is-active"), e.setAttribute("aria-selected", !0), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.offAccessibility(i), r.offAccessibility(s)), r .convertArray(s.querySelectorAll("img")) .forEach(function (e) { e.classList.contains("load-complete") || n.push(e); })) : (e.classList.contains("is-active") && e.classList.remove("is-active"), i.classList.contains("is-active") && i.classList.remove("is-active"), s.classList.contains("is-active") && s.classList.remove("is-active"), e.setAttribute("aria-selected", !1), document.documentElement.classList.contains( "is-layer-popup-opened" ) || (r.onAccessibility(i), r.onAccessibility(s))); }), 0 < n.length && imageLoader.setResponsiveImage(n), (o.currentIndex = a), (e = this), clearTimeout(o.moNavClickTimeout), (o.moNavClickTimeout = setTimeout(function () { e.blur(); }, 150)), (o.moNavClickTimeout = setTimeout(function () { e.focus(); }, 300)), c()); }), (d = function () { var e = o.moNavButtons.indexOf(this), t = o.moNavList.getBoundingClientRect(), e = o.moNavButtons[e].getBoundingClientRect(), t = r.isRTL() ? t.right - e.right - (t.width - e.width) / 2 : e.left - t.left - (t.width - e.width) / 2; t > o.moNavSwiper.snapGrid[o.moNavSwiper.snapGrid.length - 1] ? (t = o.moNavSwiper.snapGrid[o.moNavSwiper.snapGrid.length - 1]) : t < o.moNavSwiper.snapGrid[0] && (t = o.moNavSwiper.snapGrid[0]), TweenMax.to(o.moNavList, 0.3, { x: t * (r.isRTL() ? 1 : -1) + "px", }); }), (c = function () { var e, t, i, s; null != o.moNavSwiper && ((s = o.moNavButtons[o.currentIndex]), (e = o.moNavList.getBoundingClientRect()), (t = s.getBoundingClientRect()), o.moNavButtons.forEach(function (e, t) { o.currentIndex == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), e.setAttribute("aria-selected", !0)) : (e.classList.contains("is-active") && e.classList.remove("is-active"), e.setAttribute("aria-selected", !1)); }), (i = t.left - e.left), (s = s.clientWidth), TweenMax.to(o.moNavHighlight, 0.3, { width: s + "px", left: i + "px", }), (s = r.isRTL() ? e.right - t.right - (e.width - t.width) / 2 : t.left - e.left - (e.width - t.width) / 2) > o.moNavSwiper.snapGrid[o.moNavSwiper.snapGrid.length - 1] ? (s = o.moNavSwiper.snapGrid[o.moNavSwiper.snapGrid.length - 1]) : s < o.moNavSwiper.snapGrid[0] && (s = o.moNavSwiper.snapGrid[0]), TweenMax.to(o.moNavList, 0.3, { x: s * (r.isRTL() ? 1 : -1) + "px", })); }), { init: function () { (o.section = document.querySelector(".sc-buds-excellence")), o.section && ((o.currentIndex = 0), (o.moNavSwiper = null), (o.contents = o.section.querySelector( ".sc-buds-excellence__contents" )), (o.contentKvWrap = o.contents.querySelector( ".sc-buds-excellence__kv-wrap" )), (o.contentKv = r.convertArray( o.contentKvWrap.querySelectorAll( ".sc-buds-excellence__kv" ) )), (o.infoWrap = o.section.querySelector( ".sc-buds-excellence__info-wrap--pc" )), (o.info = r.convertArray( o.infoWrap.querySelectorAll(".sc-buds-excellence__info") )), (o.infoButtons = r.convertArray( o.infoWrap.querySelectorAll(".sc-buds-excellence__btn") )), (o.moInfoWrap = o.section.querySelector( ".sc-buds-excellence__info-wrap--mo" )), (o.moInfo = r.convertArray( o.moInfoWrap.querySelectorAll(".sc-buds-excellence__info") )), (o.moNavClickTimeout = null), (o.moNav = o.section.querySelector( ".sc-buds-excellence__nav" )), (o.moNavBg = o.moNav.querySelector( ".sc-buds-excellence__nav-bg" )), (o.moNavList = o.moNavBg.querySelector( ".sc-buds-excellence__nav-wrap" )), (o.moNavHighlight = o.moNavList.querySelector( ".sc-buds-excellence__nav-highlight" )), (o.moNavButtons = r.convertArray( o.moNavList.querySelectorAll( ".sc-buds-excellence__nav-button" ) )), window.addEventListener("load", i), window.addEventListener("resize", s), o.infoButtons.forEach(function (e) { e.addEventListener("click", a); }), o.moNavButtons.forEach(function (e) { e.addEventListener("click", l), e.addEventListener("focus", d); })); }, })); })(), (function () { var n, e, t; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.expert = window.buds2pro.expert || {}), (buds2pro.expert = ((n = {}), (e = window.buds2pro.common.utils), (t = function (e) { e.preventDefault(); var e = this.getAttribute("href"), e = (buds2pro.video.showVideoLayer(e, this, !0), document.querySelector("#layer-youtube")), t = e.querySelector("iframe"), i = n.youtubeLink.indexOf(this), s = null; (s = n.youtubeDesc[i]).removeAttribute("aria-hidden", ""), null != s && e.querySelector(".m_video_view").appendChild(s), t.setAttribute( "title", n.iframeTitle[i].getAttribute("data-iframe-title") ), window.GALAXY && window.GALAXY.isGalaxy && 0 < n.youtubeLayer[i].querySelectorAll(".youtube-slide") .length && window.GALAXY.omniture(this.getAttribute("data-omni")); }), { init: function () { (n.section = document.querySelector(".sc-buds-expert-review")), n.section && ((n.youtubeLayer = n.section.querySelectorAll(".js-youtube-layer")), (n.youtubeLink = e.convertArray( n.section.querySelectorAll(".js-youtube-link") )), (n.youtubeDesc = n.section.querySelectorAll(".js-youtube-desc")), (n.iframeTitle = n.section.querySelectorAll(".js-iframe-title")), n.youtubeLink.forEach(function (e) { e.addEventListener("click", t); })); }, })); })(), (function () { var e, t, i, s, n, a, o; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.hifi = window.buds2pro.hifi || {}), (buds2pro.hifi = ((e = {}), window.buds2pro.common.utils, (t = !1), (i = null), (s = function () { n(), o(), window.removeEventListener("load", s); }), (n = function () { (t = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(e.resizeTimeout), (e.resizeTimeout = setTimeout(function () { o(); }, 100)), t != i && (a(), (i = t)); }), (a = function () { null != e.sequenceScroller && (e.sequenceScroller.destroy(), (e.sequenceScroller = null)); null != e.sequencePlayer && (e.sequenceCanvas.removeChild( e.sequenceCanvas.querySelector("canvas") ), (e.sequencePlayer = null)); null == e.sequenceScroller && (e.sequenceScroller = SCROLLER({ trackElement: e.sequenceCanvas, activeElement: e.section, activeType: "oneWay", correction: 0.6, activeCallback: function () { e.section.classList.remove("is-sequence-complete"), null != e.sequencePlayer && (e.sequencePlayer.stop(), e.sequencePlayer.play({ endCallback: function () { e.section.classList.add("is-sequence-complete"); }, })); }, endCallback: function () { e.section.classList.remove("is-sequence-complete"), null != e.sequencePlayer && e.sequencePlayer.stop(); }, })); "undefined" != typeof __BUDS_SEQUENCE_URL && null != __BUDS_SEQUENCE_URL && null != __BUDS_SEQUENCE_URL && "" != __BUDS_SEQUENCE_URL ? (e.sequenceImagePath = __BUDS_SEQUENCE_URL + "/") : (e.sequenceImagePath = "/src/_galaxy-buds2-pro/images/"); null == e.sequencePlayer && (e.sequencePlayer = SEQUENCEPLAYER({ targetElement: e.sequenceCanvas, startNum: 0, endNum: 42, path: e.sequenceImagePath, name: "mobile" != t ? "galaxy-buds2-pro-hifi-audio-pc-sequence_" : "galaxy-buds2-pro-hifi-audio-mo-sequence_", extension: "jpg", playTime: 1200, imageLoadOffset: 2, })); }), (o = function () { null != e.sequenceScroller && e.sequenceScroller.activeAnimation(); }), { init: function () { (e.section = document.querySelector(".sc-buds-hifi-audio")), e.section && ((e.sequenceScroller = null), (e.sequencePlayer = null), (e.sequenceImagePath = null), (e.sequenceCanvas = e.section.querySelector( ".sc-buds-hifi-audio__parts" )), window.addEventListener("load", s), window.addEventListener("resize", n), window.addEventListener("scroll", o)); }, })); })(), (function () { var s, e; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.howto = window.buds2pro.howto || {}), (buds2pro.howto = ((s = {}), (e = function (e) { e.preventDefault(); var e = s.youtubeLink.getAttribute("href"), e = (buds2pro.video.showVideoLayer(e, s.youtubeLink, !0), document.querySelector("#layer-youtube")), t = e.querySelector("iframe"), i = null; !s.youtubeLink.getAttribute("data-hidden-text") && s.youtubeDesc && ((i = s.youtubeDesc.cloneNode(!0)).removeAttribute( "aria-hidden", "" ), null != i && e.querySelector(".m_video_view").appendChild(i)), t.setAttribute( "title", s.iframeTitle.getAttribute("data-iframe-title") ), window.GALAXY && window.GALAXY.isGalaxy && 0 < s.youtubeLayer.querySelectorAll(".youtube-slide").length && window.GALAXY.omniture( s.youtubeLink.getAttribute("data-omni") ); }), { init: function () { (s.section = document.querySelector(".sc-buds-how-to")), s.section && ((s.youtubeLayer = s.section.querySelector(".js-youtube-layer")), (s.youtubeLink = s.youtubeLayer.querySelector(".js-youtube-link")), (s.youtubeDesc = s.youtubeLayer.querySelector(".js-youtube-desc")), (s.iframeTitle = s.youtubeLayer.querySelector(".js-iframe-title")), s.youtubeLink.addEventListener("click", e)); }, })); })(), (function () { function n() { a.immersiveTabContents[a.currentIndex].classList.contains( "is-active" ) && ((a.immersivePlayTexts[a.currentIndex].innerHTML = "play"), a.immersiveTabContents[a.currentIndex].classList.remove("s-play"), a.immersiveTabContents[a.currentIndex] .querySelector("video") .pause(), (a.isPaused = !0), p.call(a.immersivePlayButtons[a.currentIndex])); } var a, o, e, t, i, s, r, l, d, c, u, h, p, m; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.immersive = window.buds2pro.immersive || {}), (buds2pro.immersive = ((a = {}), (o = window.buds2pro.common.utils), (e = !1), (t = null), (i = function () { s(), window.removeEventListener("load", i); }), (s = function () { (e = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(a.resizeTimeout), (a.resizeTimeout = setTimeout(function () { c(); }, 100)), e != t && (r(), (t = e)); }), (r = function () { a.immersiveTabButtons.forEach(function (e, t) { var i = a.immersiveTabContents[t]; setTimeout(function () { a.currentIndex == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), i.classList.contains("is-active") || i.classList.add("is-active"), e.setAttribute("aria-selected", !0), o.offAccessibility(i)) : (e.classList.contains("is-active") && e.classList.remove("is-active"), i.classList.contains("is-active") && i.classList.remove("is-active"), e.setAttribute("aria-selected", !1), o.onAccessibility(i)); }, 500); }); }), (l = function () { var e = window.pageYOffset, t = e + window.innerHeight, i = a.immersiveTabContent.getBoundingClientRect(), s = e + i.top, i = e + i.bottom; !a.isPaused && (t <= s || i <= e) && n(); }), (d = function () { var s = a.immersiveTabButtons.indexOf(this); s != a.currentIndex && (a.immersiveTabButtons.forEach(function (e, t) { var i = a.immersiveTabContents[t]; s == t ? (e.classList.contains("is-active") || e.classList.add("is-active"), i.classList.contains("is-active") || i.classList.add("is-active"), e.setAttribute("aria-selected", !0), o.offAccessibility(i)) : (e.classList.contains("is-active") && e.classList.remove("is-active"), i.classList.contains("is-active") && i.classList.remove("is-active"), e.setAttribute("aria-selected", !1), o.onAccessibility(i)); }), h(), (a.currentIndex = s), c()); }), (c = function () { var e = a.immersiveTabButtons[a.currentIndex], t = a.immersiveTabList.getBoundingClientRect(), e = e.getBoundingClientRect(), e = (a.immersiveTabButtons.forEach(function (e, t) { a.currentIndex == t ? e.classList.contains("is-active") || e.classList.add("is-active") : e.classList.contains("is-active") && e.classList.remove("is-active"); }), e.left - t.left); TweenMax.to(a.immersiveTabHighlight, 0.3, { left: e + "px" }); }), (u = function () { document.documentElement.classList.contains( "is-layer-popup-opened" ) && n(); }), (h = function () { (a.immersivePlayTexts[a.currentIndex].innerHTML = "play"), a.immersiveTabContents[a.currentIndex].classList.remove( "s-play" ), a.immersiveTabContents[a.currentIndex] .querySelector("video") .pause(), (a.immersiveTabContents[a.currentIndex].querySelector( "video" ).currentTime = 0), a.immersiveTabContents[a.currentIndex].classList.add("s-ready"), (a.isPaused = !0), p.call(a.immersivePlayButtons[a.currentIndex]); }), (p = function () { var t = this, i = { "data-omni": t.getAttribute("data-omni"), "ga-la": t.getAttribute("ga-la"), }; setTimeout(function () { Object.keys(i).forEach(function (e) { !1 === a.isPaused ? t.setAttribute(e, i[e].replace(":play", ":pause")) : t.setAttribute(e, i[e].replace(":pause", ":play")); }); }, 50); }), (m = function () { a.isPaused ? a.immersiveTabContents[a.currentIndex].classList.contains( "is-active" ) && ((a.immersivePlayTexts[a.currentIndex].innerHTML = "pause"), a.immersiveTabContents[a.currentIndex].classList.add( "s-play" ), a.immersiveTabContents[a.currentIndex] .querySelector("video") .play(), a.immersiveTabContents[a.currentIndex].classList.contains( "s-ready" ) && (a.immersiveTabContents[a.currentIndex].classList.remove( "s-ready" ), (a.immersiveTabContents[a.currentIndex].querySelector( "video" ).currentTime = 0)), (a.isPaused = !1), p.call(a.immersivePlayButtons[a.currentIndex])) : n(); }), { init: function () { (a.section = document.querySelector(".sc-buds-immersive")), a.section && ((a.currentIndex = 0), (a.isPaused = !0), (a.immersiveTab = a.section.querySelector( ".sc-buds-immersive__tab" )), (a.immersiveTabList = a.immersiveTab.querySelector( ".sc-buds-immersive__tab-list" )), (a.immersiveTabButtons = o.convertArray( a.immersiveTabList.querySelectorAll( ".sc-buds-immersive__tab-button" ) )), (a.immersiveTabHighlight = a.immersiveTabList.querySelector( ".sc-buds-immersive__tab-highlight" )), (a.immersiveTabContent = a.section.querySelector( ".sc-buds-immersive__tab-contents" )), (a.immersiveTabContents = o.convertArray( a.immersiveTabContent.querySelectorAll( ".sc-buds-immersive__tab-content" ) )), (a.immersivePlayButtons = o.convertArray( a.immersiveTabContent.querySelectorAll( ".sc-buds-immersive__play" ) )), (a.immersivePlayTexts = o.convertArray( a.immersiveTabContent.querySelectorAll("span.blind") )), window.addEventListener("load", i), window.addEventListener("resize", s), window.addEventListener("scroll", l), a.immersiveTabButtons.forEach(function (e) { e.addEventListener("click", d); }), a.immersiveTabContents.forEach(function (e) { e.querySelector("video").addEventListener("ended", h), e .querySelector("video") .addEventListener("timeupdate", u); }), a.immersivePlayButtons.forEach(function (e) { e.addEventListener("click", m); })); }, })); })(), (function () { var e; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.kv = window.buds2pro.kv || {}), (buds2pro.kv = ((e = {}), { init: function () { if ( ((e.section = document.querySelector(".sc-buds-kv")), e.section) ) if ( (e.section.classList.remove("is-use-buy"), e.section.classList.remove("is-use-regist"), e.section.classList.remove("is-use-order"), e.section.classList.remove("is-use-where"), e.section.classList.remove("is-use-off"), "undefined" != typeof __BUDS_USE_KV_CTA && null != __BUDS_USE_KV_CTA && null != __BUDS_USE_KV_CTA && "" != __BUDS_USE_KV_CTA) ) "buy-now" == __BUDS_USE_KV_CTA ? e.section.classList.add("is-use-buy") : "pre-order" == __BUDS_USE_KV_CTA ? e.section.classList.add("is-use-order") : "pre-registration" == __BUDS_USE_KV_CTA ? e.section.classList.add("is-use-regist") : "where-to-buy" == __BUDS_USE_KV_CTA ? e.section.classList.add("is-use-where") : "where-to-buy" == __BUDS_USE_KV_CTA && e.section.classList.add("is-use-off"); else e.section.classList.add("is-use-buy"); }, })); })(), (function () { var i, a, e, t, s, n, o, r, l, d; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.overview = window.buds2pro.overview || {}), (buds2pro.overview = ((i = {}), (a = window.buds2pro.common.utils), (e = !1), (t = null), (s = function () { n(), r(), window.removeEventListener("load", s); }), (n = function () { (e = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(i.resizeTimeout), (i.resizeTimeout = setTimeout(function () { d(); }, 100)), r(), e != t && (o(), (t = e)); }), (o = function () { l(), null == i.scroller && (i.scroller = SCROLLER({ trackElement: i.section, useFixed: !1, })); d(); }), (r = function () { null != i.scroller && i.scroller.trackAnimation(function () { var e = ANIUTIL.calRange({ targetValue: 0.8, progress: this.progress, startPoint: 20, endPoint: 50, }); TweenMax.to(i.overviewDimmed, 0.2, { opacity: 0.8 - e }); }); var s = window.pageYOffset, n = s + a.getNavHeight() + (window.innerHeight - a.getNavHeight()) / 2; i.overviewItems.forEach(function (e) { var t = e.getBoundingClientRect(), i = s + t.top, t = s + t.bottom; i <= n && n <= t ? e.classList.contains("is-active") || e.classList.add("is-active") : e.classList.contains("is-active") && e.classList.remove("is-active"); }); }), (l = function () { null != i.scroller && (i.scroller.destroy(), (i.scroller = null)); }), (d = function () { var e = i.fixedElement.getBoundingClientRect(), t = i.overviewListWrap.getBoundingClientRect(), t = parseInt(getComputedStyle(i.overviewListWrap).marginTop) + t.height, e = e.height; i.movingValue = e < t ? t - e + a.getNavHeight() : a.getNavHeight(); }), { init: function () { (i.section = document.querySelector(".sc-buds-overview")), i.section && ((i.scroller = null), (i.activeIndex = 0), (i.movingValue = 0), (i.trackElement = i.section.querySelector( ".sc-buds-overview__track" )), (i.fixedElement = i.section.querySelector( ".sc-buds-overview__fixed" )), (i.overviewListWrap = i.section.querySelector( ".sc-buds-overview__list-wrap" )), (i.overviewList = i.section.querySelector( ".sc-buds-overview__list" )), (i.overviewItems = a.convertArray( i.overviewList.querySelectorAll(".sc-buds-overview__item") )), (i.overviewDimmed = i.section.querySelector( ".sc-buds-overview__dimmed" )), window.addEventListener("load", s), window.addEventListener("resize", n), window.addEventListener("scroll", r)); }, })); })(), (function () { function t(e) { r.videoListItems[e].classList.remove("is-pause"), r.videoListItems[e].classList.remove("is-ready"), r.videoListItems[e].classList.add("is-active"), r.videoSource[e].play(), (r.videoControlTxt[e].innerHTML = "Pause"), (r.videoControls[e].isPaused = !1), g.call(r.videoControls[e]); } function o(e) { r.videoListItems[e].classList.contains("is-active") && (r.videoListItems[e].classList.add("is-pause"), r.videoSource[e].pause(), (r.videoControlTxt[e].innerHTML = "Play"), (r.videoControls[e].isPaused = !0), g.call(r.videoControls[e])); } function n(e, t) { return e[t].querySelector(".sc-buds-recording-video__item-title") .innerText; } var r, i, s, e, a, l, d, c, u, h, p, m, v, f, g, w, b, y, E; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.recording = window.buds2pro.recording || {}), (buds2pro.recording = ((r = {}), (i = window.buds2pro.common.utils), (s = !1), (e = null), (l = function () { d(), window.removeEventListener("load", l); }), (d = function () { (s = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile") != e && (c(), (e = s)); }), (c = function () { r.videoListItems.forEach(function (e, t) { v(t), "mobile" != s && i.offAccessibility(e); }), null != r.swiper && (r.swiper.pagination.destroy(!0), r.swiper.navigation.destroy(!0), r.swiper.destroy(!0), (r.swiper = null), (r.prevIndex = null)); if ( "mobile" == s && (r.videoContent.classList.remove("js-swiper-initialized"), null === r.swiper) ) r.videoContent.classList.add("js-swiper-initialized"), (r.swiper = new Swiper(r.swiperContainer, { init: !1, slidesPerView: "auto", loop: !0, loopFillGroupWithBlank: !0, navigation: { nextEl: r.nextArrow, prevEl: r.prevArrow }, pagination: { el: r.pagination, type: "bullets", renderBullet: function () { return '
'; }, }, })), r.swiper.on("slideChange", function () { v(this.previousIndex), f.call(this), w.call(this), b.call(this), y.call(this), imageLoader.setResponsiveImage([ r.prevArrow.querySelector("img"), r.nextArrow.querySelector("img"), ]); }), r.swiper.on("init", function () { var t = this, e = this.el.querySelector(".swiper-notification"); e && this.el.removeChild(e), f.call(this), w.call(this), b.call(this), y.call(this); for (var i = 0; i < this.pagination.bullets.length; i++) !(function (e) { t.pagination.bullets[i].addEventListener( "click", function () { t.slideToLoop(e); } ); })(i); for (i = 0; i < this.slides.length; i++) { var s = this.slides[i].querySelector( ".sc-buds-recording-video__btn-play > img" ), n = this.slides[i].querySelector( ".sc-buds-recording-video__btn-pause > img" ); this.slides[i].classList.contains( "swiper-slide-duplicate" ) && (imageLoader.setResponsiveImage([ this.slides[i].querySelector( "img.sc-buds-recording-video__cover-image" ), ]), imageLoader.setResponsiveImage([s, n]), a(), (r.swiper = this)); } }), r.swiper.init(); }), (u = function () { for ( var e = window.pageYOffset, t = e + window.innerHeight, i = r.videoContent.getBoundingClientRect(), s = e + i.top, n = e + i.bottom, a = 0; a < r.videoControls.length; a++ ) !r.videoControls[a].isPaused && (t <= s || n <= e) && o(a); }), (h = function () { (r.recordingPopup = window.buds2pro.recordingPopup), i.setLastActiveItem(this), r.recordingPopup.showAudioPopupLayer(); }), (p = function (e) { var t = r.videoSource.indexOf(this); v(t); }), (m = function () { var e = r.videoSource.indexOf(this); document.documentElement.classList.contains( "is-layer-popup-opened" ) && o(e); }), (v = function (e) { r.videoListItems[e].classList.contains("is-active") && (r.videoListItems[e].classList.remove("is-pause"), r.videoListItems[e].classList.remove("is-active"), r.videoListItems[e].classList.add("is-ready"), r.videoSource[e].pause(), (r.videoSource[e].currentTime = 0), (r.videoControlTxt[e].innerHTML = "Play"), (r.videoControls[e].isPaused = !0), g.call(r.videoControls[e])); }), (f = function () { var t = this; setTimeout(function () { for (var e = 0; e < t.slides.length; e++) e != t.activeIndex ? i.onAccessibility(t.slides[e]) : i.offAccessibility(t.slides[e]); }, 500); }), (g = function () { var t = this, i = r.videoControls.indexOf(t), s = { "data-omni": t.getAttribute("data-omni"), "ga-la": t.getAttribute("ga-la"), }; setTimeout(function () { Object.keys(s).forEach(function (e) { !1 === r.videoControls[i].isPaused ? t.setAttribute(e, s[e].replace(":play", ":pause")) : t.setAttribute(e, s[e].replace(":pause", ":play")); }); }, 50); }), (w = function () { var t = this; Array.prototype.slice .call(this.pagination.bullets) .forEach(function (i, e) { var e = n(t.slides, e).split("&"), s = (e[0] + "n" + e[1]).toLowerCase().replace(/ /gi, "-"); Object.keys(r.paginationTagging).forEach(function (e) { var t; "data-omni" == e || "ga-la" == e ? ((t = r.paginationTagging[e] + s), i.setAttribute(e, t)) : i.setAttribute(e, r.paginationTagging[e]); }); }); }), (b = function () { var s = this; Array.prototype.slice .call(this.pagination.bullets) .forEach(function (e, t) { var i = n(s.slides, t); s.realIndex == t ? e.setAttribute("aria-label", i + " selected") : e.setAttribute("aria-label", i); }); }), (y = function () { var s = this; setTimeout(function () { Object.keys(r.navArrowTagging).forEach(function (e) { var t = n(s.slides, s.realIndex + 2).split("&"), i = n(s.slides, s.realIndex + 1).split("&"), t = (t[0] + "n" + t[1]).toLowerCase().replace(/ /gi, "-"), i = (i[0] + "n" + i[1]).toLowerCase().replace(/ /gi, "-"); "data-omni" == e || "ga-la" == e ? (r.prevArrow.setAttribute(e, r.navArrowTagging[e] + t), r.nextArrow.setAttribute(e, r.navArrowTagging[e] + i)) : (r.prevArrow.setAttribute(e, r.navArrowTagging[e]), r.nextArrow.setAttribute(e, r.navArrowTagging[e])); }); }, 100); }), (E = function (e) { e.preventDefault(); e = r.videoControls.indexOf(this); null != r.prevIndex && e != r.prevIndex ? (r.videoControls[r.prevIndex].isPaused || o(r.prevIndex), r.videoControls[e].isPaused && t(e)) : (r.videoControls[e].isPaused ? t : o)(e), (r.prevIndex = e); }), { init: (a = function () { (r.section = document.querySelector( ".sc-buds-recording-video" )), r.section && ((r.swiper = null), (r.prevIndex = null), (r.swiperContainer = r.section.querySelector( ".sc-buds-recording-video__contents-inner" )), (r.prevArrow = r.section.querySelector( ".sc-buds-recording-video__arrow-prev" )), (r.nextArrow = r.section.querySelector( ".sc-buds-recording-video__arrow-next" )), (r.pagination = r.section.querySelector(".swiper-pagination")), (r.videoContent = r.section.querySelector( ".sc-buds-recording-video__contents" )), (r.videoListItems = r.section.querySelectorAll( ".sc-buds-recording-video__item" )), (r.videoControls = i.convertArray( r.section.querySelectorAll( ".sc-buds-recording-video__control" ) )), (r.videoControlTxt = r.section.querySelectorAll( ".sc-buds-recording-video__control span.blind" )), (r.videoSource = i.convertArray( r.section.querySelectorAll( ".sc-buds-recording-video__source" ) )), (r.popupOpenBtn = document.querySelector( ".sc-buds-recording__cta" )), (r.paginationTagging = { "data-omni-type": "microsite_pcontentinter", "data-omni": "galaxy-buds2-pro:highlights:360-audio-recording:dot:", "ga-ca": "indication", "ga-ac": "carousel", "ga-la": "galaxy-buds2-pro:highlights:360-audio-recording:dot:", }), (r.navArrowTagging = { "data-omni-type": "microsite_pcontentinter", "data-omni": "galaxy-buds2-pro:highlights:360-audio-recording:arrow:", "ga-ca": "indication", "ga-ac": "carousel", "ga-la": "galaxy-buds2-pro:highlights:360-audio-recording:arrow:", }), window.addEventListener("load", l), window.addEventListener("resize", d), window.addEventListener("scroll", u), r.videoControls.forEach(function (e) { (e.isPaused = !0), e.addEventListener("click", E); }), r.videoSource.forEach(function (e) { e.addEventListener("ended", p), e.addEventListener("timeupdate", m); }), r.popupOpenBtn.addEventListener("click", h)); }), })); })(), (function () { var t, i, e, s, n, a, o, r; (window.buds2pro = window.buds2pro || {}), (window.buds2pro.sound = window.buds2pro.sound || {}), (buds2pro.sound = ((t = {}), window.buds2pro.common.utils, (i = !1), (e = null), (s = function () { n(), o(), window.removeEventListener("load", s); }), (n = function () { (i = 1024 <= window.innerWidth ? "desktop" : 768 <= window.innerWidth && window.innerWidth < 1024 ? "tablet" : "mobile"), clearTimeout(t.resizeTimeout), (t.resizeTimeout = setTimeout(function () { }, 100)), i != e && (a(), (e = i)); }), (a = function () { r(), null == t.scroller && (t.scroller = SCROLLER({ trackElement: t.section, useFixed: !1, })); }), (o = function () { null != t.scroller && t.scroller.trackAnimation(function () { var e = ANIUTIL.calRange({ targetValue: "mobile" != i ? 20 : 40, progress: this.progress, startPoint: 10, endPoint: "mobile" != i ? 50 : 70, }); TweenMax.to(t.soundKv, 0.2, { y: -e + "%" }); }); }), (r = function () { null != t.scroller && (t.scroller.destroy(!0), (t.scroller = null)); }), { init: function () { (t.section = document.querySelector( ".sc-buds-sound-experience" )), t.section && ((t.scroller = null), (t.soundKv = t.section.querySelector( ".sc-buds-sound-experience__kv" )), window.addEventListener("load", s), window.addEventListener("resize", n), window.addEventListener("scroll", o)); }, })); })(), window.addEventListener("load", function () { setTimeout(function () { window.GALAXY && window.GALAXY.isGalaxy && buds2pro.subnav.init(); }, 5); }), buds2pro.audioPopup.init(), buds2pro.recordingPopup.init(), buds2pro.video.init(), buds2pro.kv.init(), buds2pro.overview.init(), buds2pro.sound.init(), buds2pro.hifi.init(), buds2pro.anc.init(), buds2pro.audio.init(), buds2pro.easyPairing.init(), buds2pro.ergonomic.init(), buds2pro.howto.init(), buds2pro.colors.init(), buds2pro.excellence.init(), buds2pro.compare.init(), buds2pro.ecosystem.init(), buds2pro.contrast.init(), buds2pro.expert.init(), buds2pro.recording.init(), buds2pro.immersive.init(); }); document.addEventListener("DOMContentLoaded", function () { let anchors = document.querySelectorAll(".sc-buds-ai-list__anchor"); document .querySelector("#tabListId_0") .classList.add("sc-buds-ai-list__anchor--active"); }); const toggleActiveTabPanelAi = (element) => { const anchorId_0 = document.querySelector("#tabListId_0"); const anchorId_1 = document.querySelector("#tabListId_1"); const panelId_0 = document.querySelector("#tabPanelId_0"); const panelId_1 = document.querySelector("#tabPanelId_1"); if (element.id == "tabListId_0") { anchorId_1.setAttribute("aria-selected", "false"); element.setAttribute("aria-selected", "true"); onActiveAi(element); onInActiveAi(anchorId_1); panelId_1.classList.remove("sc-buds-ai-panel--active"); panelId_1.setAttribute("aria-hidden", "true"); panelId_0.classList.add("sc-buds-ai-panel--active"); panelId_0.setAttribute("aria-hidden", "false"); } else if (element.id == "tabListId_1") { anchorId_0.setAttribute("aria-selected", "false"); element.setAttribute("aria-selected", "true"); onActiveAi(element); onInActiveAi(anchorId_0); panelId_0.classList.remove("sc-buds-ai-panel--active"); panelId_0.setAttribute("aria-hidden", "true"); panelId_1.classList.add("sc-buds-ai-panel--active"); panelId_1.setAttribute("aria-hidden", "false"); } }; const onActiveAi = (anchor) => { anchor.classList.add("sc-buds-ai-list__anchor--active"); let anchorId = anchor.getAttribute("id"); let activeImage = document.querySelector( "#" + anchorId + " .sc-buds-ai-list__image--active" ); let defaultImage = document.querySelector( "#" + anchorId + " .sc-buds-ai-list__image--default" ); activeImage.style.display = "block"; defaultImage.style.display = "none"; }; const onInActiveAi = (anchor) => { if (anchor.getAttribute("aria-selected") == "true") return; let anchorId = anchor.getAttribute("id"); let activeImage = document.querySelector( "#" + anchorId + " .sc-buds-ai-list__image--active" ); let defaultImage = document.querySelector( "#" + anchorId + " .sc-buds-ai-list__image--default" ); activeImage.style.display = "none"; defaultImage.style.display = "block"; anchor.classList.remove("sc-buds-ai-list__anchor--active"); };