Gegevens verplaatsen
snel en gemakkelijk
met Smart Switch
De inhoud van je vorige telefoon of tablet − favoriete foto's, contacten, agenda-evenementen, notities, apparaatinstellingen en meer
− blijft bij je wanneer je overschakelt naar een nieuwe Samsung Galaxy.
* Overdraagbare gegevens kunnen variëren afhankelijk van het besturingssysteem van het apparaat (Android of iOS), de versie van het besturingssysteem en/of de verbindingsoptie.
Waarom Samsung Smart Switch?
Smart Switch brengt naadloos meerdere soorten gegevens over naar je nieuwe Samsung Galaxy vanaf verschillende apparaten op de manier die het beste werkt voor jou.
Gegevens verplaatsen van een ander besturingssysteem
Ongeacht of je van een andere Galaxy, iOS of ander Android-apparaat komt; de gegevens waar het je om te doen is, kunnen nu moeiteloos naar je nieuwe Galaxy worden verplaatst.
* Raadpleeg de technische vereisten voor Smart Switch-compatibele apparaten in het gedeelte Veelgestelde vragen.
Switch op vele manieren
Met Smart Switch kun je kiezen uit vele opties om je apparaten aan te sluiten - van een USB-kabel, draadloze verbinding, opslagapparaat tot pc en meer.
* De beschikbare verbindingsoptie kan variëren afhankelijk van het besturingssysteem van het apparaat, de fabrikant of de beschikbaarheid van uitbreidbare opslag op het apparaat.
Verschillende soorten gegevens wisselen
Smart Switch migreert verschillende soorten bestanden naar je nieuwe Galaxy, inclusief foto's, video's, notities, agenda-evenementen en zelfs apparaatinstellingen.
* Overdraagbare gegevens kunnen variëren afhankelijk van het besturingssysteem van het apparaat (Android of iOS), de versie van het besturingssysteem en/of de verbindingsoptie.
Hoe gegevens over te dragen
Klaar om gegevens over te dragen? Bereid eerst je vorige apparaat voor en selecteer vervolgens de gewenste manier om je nieuwe Samsung Galaxy te verbinden.
Wat is je vorige apparaat?
GALAXY
Hoe wil je verbinding maken?
Wi-Fi of een USB-kabel gebruiken
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op beide apparaten hebt geïnstalleerd. De app is vooraf geïnstalleerd, maar kan ook worden gedownload vanuit de Galaxy Store.
Smart Switch werkt wanneer apparaten ten minste 20% opgeladen zijn om een veilige gegevensoverdracht te garanderen.
Stap 1: Opstarten
Start op je nieuwe Galaxy-apparaat de Smart Switch-app en tik op Gegevens ontvangen. Tik vervolgens op Galaxy.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
Stap 2: Verbinding maken
Selecteer een draadloze verbinding of gebruik een USB-kabel om je oude apparaat aan te sluiten op je nieuwe Galaxy-apparaat.
- * Als je een grote hoeveelheid gegevens moet overdragen, wordt een bedrade verbinding aanbevolen omdat deze relatief sneller is. Zorg ervoor dat je apparaten van tevoren correct zijn opgeladen, omdat het aansluiten op een lader niet beschikbaar is tijdens een dergelijke overdracht.
- * Als je een grote hoeveelheid gegevens moet overdragen, wordt een bedrade verbinding aanbevolen omdat deze relatief sneller is. Zorg ervoor dat je apparaten van tevoren correct zijn opgeladen, omdat het aansluiten op een lader niet beschikbaar is tijdens een dergelijke overdracht.
Stap 3: Selecteren
Selecteer de gegevens die je wilt overdragen. Wanneer je klaar bent om te beginnen, tik je op Overzetten.
Stap 4: Overzetten
De overdracht begint binnenkort. Tik op Gereed als het klaar is.
Back-up maken en herstellen vanaf externe opslag
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op je apparaten hebt geïnstalleerd. De app is vooraf geïnstalleerd, maar kan ook worden gedownload vanuit de Galaxy Store.
Plaats vervolgens de microSD-kaart of sluit het USB-opslagapparaat aan op je Galaxy-telefoon of -tablet.
Stap 1: Opstarten
Start op je telefoon de Smart Switch-app en tik op het SD-kaartpictogram in de rechterbovenhoek.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
Stap 2: Selecteren
Tik op SD-kaart onder Back-up maken naar en selecteer de gegevens waarvan je een back-up wilt maken vanaf je oude apparaat.
- * Als er niet genoeg ruimte is op je externe opslag, moet je mogelijk sommige items deselecteren. Of je kunt de externe opslag wissen om voldoende ruimte te krijgen voor de gegevens om over te dragen
- * Als er niet genoeg ruimte is op je externe opslag, moet je mogelijk sommige items deselecteren. Of je kunt de externe opslag wissen om voldoende ruimte te krijgen voor de gegevens om over te dragen
Stap 3: Back-up maken
Volg de instructies op het scherm. Wanneer je klaar bent, tik je op Gereed en verwijder je vervolgens de externe opslag van het oude apparaat.
Stap 4: Verbinding maken
Plaats vervolgens de externe opslag in het nieuwe Galaxy-apparaat om gegevens te ontvangen. Start de Smart Switch-app en tik op het SD-kaartpictogram.
Stap 5: Herstellen
Tik op Herstellen. Selecteer wat je wilt herstellen en tik vervolgens op Volgende.
Stap 6: Overdragen
De overdracht begint binnenkort. Tik op Volgende en vervolgens op Gereed als het klaar is.
Back-up maken en herstellen vanaf PC of Mac
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op je apparaten hebt geïnstalleerd.
De app voor Galaxy-telefoon of -tablet is vooraf geïnstalleerd, maar kan ook worden gedownload vanuit de Galaxy Store. Download en installeer de Smart Switch PC-app op je Windows-pc of Mac.
Downloadlink Smart Switch PC:
Windows Mac
- * Smart Switch wordt uitgevoerd wanneer apparaten ten minste 20% opgeladen zijn om een veilige gegevensoverdracht te garanderen.
- * Smart Switch wordt uitgevoerd wanneer apparaten ten minste 20% opgeladen zijn om een veilige gegevensoverdracht te garanderen.
Stap 1: Verbinden en starten
Sluit je vorige telefoon of tablet aan op je pc met een USB-kabel.
Start op je pc de Smart Switch-app en tik op Back-up om gegevens van het oude apparaat op te slaan.
Stap 2 : Selecteer om een back-up te maken
Kies de gegevens waarvan je een back-up wilt maken. "Alles selecteren" is de standaardoptie, maar je kunt sommige items deselecteren als je dat wilt. Als je op een categorie klikt, kun je specifieke items in die categorie selecteren. Tik op Back-up maken wanneer je klaar bent.
Stap 3: Back-up maken
De overdracht begint binnenkort. Tik op Gereed als het klaar is.
Stap 4: Verbinden en herstellen
Sluit vervolgens je nieuwe Galaxy-apparaat aan op je pc met een USB-kabel.
Start Smart Switch op je pc en tik op Herstellen om gegevens over te brengen naar het nieuwe apparaat.
Stap 5 : Selecteer om te herstellen
Selecteer de gegevens die je wilt herstellen en tik op Herstellen.
Stap 6: Overdragen
De overdracht begint binnenkort. Tik op OK wanneer het herstellen is voltooid.
IOS
Hoe wil je verbinding maken?
Een USB-kabel gebruiken
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op het Galaxy-apparaat hebt geïnstalleerd. De app is vooraf geïnstalleerd, maar kan ook worden gedownload vanuit de Galaxy Store. Je hoeft de app niet op een iOS-apparaat te installeren.
Controleer of beide apparaten correct zijn opgeladen voordat je ze aansluit op een USB-kabel, omdat er geen verbinding met een lader beschikbaar is tijdens de overdracht.
Stap 1: Opstarten
Start de Smart Switch-app op je nieuwe Galaxy-apparaat. Tik op Gegevens ontvangen en tik vervolgens op iPhone/iPad.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
Stap 2: Verbinding maken
Gebruik een Lightning-naar-USB-C- of USB-C-naar-USB-C-kabel om je vorige iOS-apparaat aan te sluiten op je nieuwe Galaxy-apparaat. Als je een USB-A-kabel gebruikt zoals veel standaard oplaadkabels, kun je de OTG-adapter gebruiken om in de USB-C-poort te steken.
Wanneer de waarschuwing "Deze computer vertrouwen?" op je iPhone of iPad verschijnt, tik je op "Vertrouwen".
- * OTG-adapter apart verkrijgbaar
- * OTG-adapter apart verkrijgbaar
Stap 3: Selecteren
Selecteer de gegevens die je wilt overdragen. Wanneer je klaar bent om te beginnen, tik je op Doorverbinden.
Stap 4: Overdragen
De overdracht begint binnenkort. Tik op Gereed als het klaar is.
Aanvullende tips
Je kunt ook je WhatsApp-chats en foto's op je iOS-apparaat overzetten naar je nieuwe Samsung Galaxy.
Voer de volgende stappen uit:
- 1. Wanneer je de over te dragen gegevens selecteert, kies je "WhatsApp" in het menu Apps en tik je op Overdragen.
- 2. Scan de QR-code en tik op Start op je iPhone.
- * Vereist de nieuwste versie van WhatsApp op iOS-apparaat.
- * De WhatsApp-chatgeschiedenis kan alleen worden overgedragen voordat je je aanmeldt bij WhatsApp op het nieuwe apparaat. Als WhatsApp is aangemeld vóór de migratie of voordat Smart Switch klaar is met het overdragen van de gegevens, kunnen de app-gegevens niet worden overgedragen.
- * Vereist de nieuwste versie van WhatsApp op iOS-apparaat.
- * De WhatsApp-chatgeschiedenis kan alleen worden overgedragen voordat je je aanmeldt bij WhatsApp op het nieuwe apparaat. Als WhatsApp is aangemeld vóór de migratie of voordat Smart Switch klaar is met het overdragen van de gegevens, kunnen de app-gegevens niet worden overgedragen.
Wi-Fi gebruiken
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op beide apparaten hebt geïnstalleerd. De app is vooraf geïnstalleerd op nieuwe Galaxy-apparaten, maar kan ook worden gedownload vanuit de Galaxy Store. Download de Smart Switch-app uit de App Store van Apple en installeer deze op je oude iPhone of iPad.
Smart Switch werkt wanneer apparaten ten minste 20% opgeladen zijn om een veilige gegevensoverdracht te garanderen.
Downloadlink Smart Switch mobiel:
Stap 1: Starten
Start de Smart Switch-app op je nieuwe Galaxy-apparaat. Tik op 'Gegevens ontvangen' en tik vervolgens op 'iPhone/iPad'.
- * Je kunt de Smart Switch-app op je Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
- * Je kunt de Smart Switch-app op je Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
Stap 2: Verbinden
Tik op 'Draadloos overdragen' om je iOS-apparaat te verbinden met je nieuwe Galaxy-apparaat.
- * Als je een grote hoeveelheid gegevens moet overdragen, wordt aanbevolen om een bedrade verbinding te gebruiken, omdat deze een grotere hoeveelheid gegevens in één keer kan overdragen. Zorg ervoor dat je apparaten van tevoren goed zijn opgeladen, omdat het aansluiten op een lader niet beschikbaar is tijdens een dergelijke overdracht.
- * Als je een grote hoeveelheid gegevens moet overdragen, wordt aanbevolen om een bedrade verbinding te gebruiken, omdat deze een grotere hoeveelheid gegevens in één keer kan overdragen. Zorg ervoor dat je apparaten van tevoren goed zijn opgeladen, omdat het aansluiten op een lader niet beschikbaar is tijdens een dergelijke overdracht.
Stap 2: Verbinden
Download de Smart Switch-app door op 'Smart Switch op je iPhone of iPad downloaden' te tikken en de QR-code te scannen.
Stap 2: Verbinden
Open de Smart Switch-app op je iPhone of iPad en tik op 'Draadloos overdragen'.
Scan vervolgens de QR-code op je nieuwe Samsung Galaxy-telefoon.
Stap 3: Selecteren
Selecteer de gegevens die je wilt overdragen. Wanneer je klaar bent om te beginnen, tik je op 'Overdragen'.
Je kunt je contactpersonen, agenda, beelden en video's overdragen.
Stap 4: Overdracht
De overdracht begint binnenkort. Tik op Gereed als het klaar is.
- * Houd Smart Switch open op je iPhone of iPad tijdens het overdragen
- * Houd Smart Switch open op je iPhone of iPad tijdens het overdragen
Back-upgegevens van iTunes (Finder) overdragen vanaf pc of Mac
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op je apparaten hebt geïnstalleerd.
De app voor Galaxy-telefoon of -tablet is vooraf geïnstalleerd en kan ook worden gedownload vanuit de Galaxy Store. Download en installeer de Smart Switch PC-app op je Windows-pc of Mac.
Downloadlink Smart Switch PC:
Windows Mac
Stap 1: Back-up maken
Maak een back-up van je iOS-apparaat met iTunes (Finder) op je pc of Mac om ervoor te zorgen dat al je nieuwste gegevens klaar zijn voor Smart Switch.
Stap 2: Verbinding maken
Sluit je telefoon aan op je pc met een USB-kabel. Start Smart Switch op je pc en tik op Herstellen.
Stap 3 : Herstellen
Selecteer de back-upgegevens van iTunes (Finder) die je wilt herstellen en tik op Herstellen.
Stap 4: Overdragen
De overdracht begint binnenkort. Tik op Gereed als het klaar is.
iCloud-gegevens verplaatsen
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op je Galaxy-telefoon of -tablet hebt geïnstalleerd. De app is vooraf geïnstalleerd, maar kan ook worden gedownload vanuit de Galaxy Store.
Smart Switch werkt wanneer apparaten ten minste 20% opgeladen zijn om een veilige gegevensoverdracht te garanderen.
Stap 1: Synchroniseren met iCloud
Synchroniseer je iOS-apparaat met iCloud om ervoor te zorgen dat al je nieuwste gegevens klaar zijn voor Smart Switch.
- 1. Ga op je iPhone of iPad naar Instellingen, tik op je naam en tik vervolgens op iCloud. Tik vervolgens op Alles weergeven.
- 2. Selecteer Foto's en schakel Synchroniseer deze iPhone (of iPad) in.
- 3. Ga terug naar iCloud en selecteer iCloud Drive, en schakel vervolgens Synchroniseer deze iPhone (of iPad) in.
- 4. Ga terug naar iCloud en schakel Pagina's, Numbers en Keynote in.
- 5. Ga terug naar iCloud en selecteer Notities en schakel vervolgens Synchroniseer deze iPhone (of iPad) in.
- 6. Ga terug naar iCloud en schakel Contacten, Agenda's en Herinneringen in.
Stap 2: Opstarten
Start op je nieuwe apparaat de Smart Switch-app en tik op Gegevens ontvangen. Tik vervolgens op iPhone/iPad.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
Stap 3: Verbinding maken
Tik in plaats daarvan op Gegevens ophalen van iCloud. Voer je Apple ID of e-mailadres en wachtwoord in en tik op Aanmelden bij iCloud.
Stap 4: Selecteren
Selecteer de iCloud-gegevens die je wilt overdragen en tik vervolgens op Overdragen.
Stap 5: Overdragen
De overdracht begint binnenkort. Tik op Gereed als het klaar is.
Andere Android
Hoe wil je verbinding maken?
Wi-Fi of een USB-kabel gebruiken
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op beide apparaten hebt geïnstalleerd. De app is vooraf geïnstalleerd op het nieuwe Galaxy-apparaat, maar kan ook worden gedownload vanuit de Galaxy Store of de Google Play Store.
Smart Switch werkt wanneer apparaten ten minste 20% opgeladen zijn om een veilige gegevensoverdracht te garanderen.
Stap 1: Opstarten
Start op je nieuwe Galaxy-telefoon de Smart Switch-app en tik op Gegevens ontvangen. Tik vervolgens op Galaxy/Android.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
- * Je kunt de Smart Switch-app op de Galaxy-telefoon of -tablet vinden door naar de Samsung-map op het Apps-scherm te navigeren, of naar Instellingen > Accounts en back-up > Smart Switch te gaan.
Stap 2: Verbinding maken
Selecteer een draadloze verbinding of gebruik een USB-kabel om je oude toestel op je nieuwe Galaxy-telefoon aan te sluiten.
- * Als je een grote hoeveelheid gegevens moet overdragen, wordt een bedrade verbinding aanbevolen omdat deze relatief sneller is. Zorg ervoor dat je apparaten van tevoren correct zijn opgeladen, omdat het aansluiten op een lader niet beschikbaar is tijdens een dergelijke overdracht.
- * Als je een grote hoeveelheid gegevens moet overdragen, wordt een bedrade verbinding aanbevolen omdat deze relatief sneller is. Zorg ervoor dat je apparaten van tevoren correct zijn opgeladen, omdat het aansluiten op een lader niet beschikbaar is tijdens een dergelijke overdracht.
Stap 3: Selecteren
Selecteer de gegevens die je wilt overdragen. Wanneer je klaar bent om te beginnen, tik je op Doorverbinden.
Stap 4: Overdragen
De overdracht begint binnenkort. Tik op Gereed als het klaar is.
Back-up maken en herstellen vanaf externe opslag
Voordat je begint
Zorg ervoor dat je de meest actuele versie van de Smart Switch-app op je apparaten hebt geïnstalleerd. De app is vooraf geïnstalleerd op het nieuwe Galaxy-apparaat, maar kan ook worden gedownload vanuit de Galaxy Store of de Google Play Store.
Plaats vervolgens de microSD-kaart of sluit het USB-opslagapparaat aan op je oude apparaat.
Stap 1: Opstarten
Start op je oude apparaat de Smart Switch-app en tik op het SD-kaartpictogram in de rechterbovenhoek. Tik vervolgens op SD-kaart onder Back-up maken tot.
- * Download de nieuwste Smart Switch van de Galaxy Store of Google Play Store.
- * Download de nieuwste Smart Switch van de Galaxy Store of Google Play Store.
Stap 2 : Selecteren en back-up maken
Selecteer de gegevens waarvan je een back-up wilt maken en tik op Volgende. Tik op Gereed als de overdracht is voltooid.
- * Als er niet genoeg ruimte is op je externe opslag, moet je mogelijk sommige items deselecteren. Of je kunt de externe opslag wissen om voldoende ruimte te krijgen voor de gegevens om over te dragen
- * Als er niet genoeg ruimte is op je externe opslag, moet je mogelijk sommige items deselecteren. Of je kunt de externe opslag wissen om voldoende ruimte te krijgen voor de gegevens om over te dragen
Stap 3: Verbinding maken
Plaats vervolgens een SD-kaart of sluit een USB-opslagapparaat aan op je nieuwe Galaxy-telefoon. Start de Smart Switch-app en tik op het SD-kaartpictogram in de rechterbovenhoek.
Stap 4 : Herstellen
Tik op Herstellen. Selecteer wat je wilt herstellen en tik vervolgens op Volgende.
Stap 5: Overdragen
De overdracht begint binnenkort. Tik op Gereed als het klaar is.
').addClass(s.options.dotsClass), e = 0; e <= s.getDotCount(); e += 1) i.find("ul").append(t('
').append(s.options.customPaging.call(this, s, e))); s.$dots = i.appendTo(s.options.appendDots) } }, e.prototype.buildOut = function () { var e = this; e.$slides = e.$slider.children(e.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), e.slideCount = e.$slides.length, e.$slides.each(function (e, i) { t(i).attr("data-slick-index", e).data("originalStyling", t(i).attr("style") || "") }), e.$slider.addClass("slick-slider"), e.$slideTrack = 0 === e.slideCount ? t('
').appendTo(e.$slider) : e.$slides.wrapAll('
').parent(), e.$list = e.$slideTrack.wrap('
').parent(), e.$slideTrack.css("opacity", 0), (e.options.centerMode === !0 || e.options.swipeToSlide === !0) && (e.options.slidesToScroll = 1), t("img[data-lazy]", e.$slider).not("[src]").addClass("slick-loading"), e.setupInfinite(), e.buildArrows(), e.buildDots(), e.updateDots(), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), e.options.draggable === !0 && e.$list.addClass("draggable") }, e.prototype.buildRows = function () { var t, e, i, s, n, r, o, a = this; if (s = document.createDocumentFragment(), r = a.$slider.children(), a.options.rows > 1) { for (o = a.options.slidesPerRow * a.options.rows, n = Math.ceil(r.length / o), t = 0; n > t; t++) { var l = document.createElement("div"); for (e = 0; e < a.options.rows; e++) { var h = document.createElement("div"); for (i = 0; i < a.options.slidesPerRow; i++) { var c = t * o + (e * a.options.slidesPerRow + i); r.get(c) && h.appendChild(r.get(c)) } l.appendChild(h) } s.appendChild(l) } a.$slider.empty().append(s), a.$slider.children().children().children().css({ width: 100 / a.options.slidesPerRow + "%", display: "inline-block" }) } }, e.prototype.checkResponsive = function (e, i) { var s, n, r, o = this, a = !1, l = o.$slider.width(), h = window.innerWidth || t(window).width(); if ("window" === o.respondTo ? r = h : "slider" === o.respondTo ? r = l : "min" === o.respondTo && (r = Math.min(h, l)), o.options.responsive && o.options.responsive.length && null !== o.options.responsive) { n = null; for (s in o.breakpoints) o.breakpoints.hasOwnProperty(s) && (o.originalSettings.mobileFirst === !1 ? r < o.breakpoints[s] && (n = o.breakpoints[s]) : r > o.breakpoints[s] && (n = o.breakpoints[s])); null !== n ? null !== o.activeBreakpoint ? (n !== o.activeBreakpoint || i) && (o.activeBreakpoint = n, "unslick" === o.breakpointSettings[n] ? o.unslick(n) : (o.options = t.extend({}, o.originalSettings, o.breakpointSettings[n]), e === !0 && (o.currentSlide = o.options.initialSlide), o.refresh(e)), a = n) : (o.activeBreakpoint = n, "unslick" === o.breakpointSettings[n] ? o.unslick(n) : (o.options = t.extend({}, o.originalSettings, o.breakpointSettings[n]), e === !0 && (o.currentSlide = o.options.initialSlide), o.refresh(e)), a = n) : null !== o.activeBreakpoint && (o.activeBreakpoint = null, o.options = o.originalSettings, e === !0 && (o.currentSlide = o.options.initialSlide), o.refresh(e), a = n), e || a === !1 || o.$slider.trigger("breakpoint", [o, a]) } }, e.prototype.changeSlide = function (e, i) { var s, n, r, o = this, a = t(e.currentTarget); switch (a.is("a") && e.preventDefault(), a.is("li") || (a = a.closest("li")), r = o.slideCount % o.options.slidesToScroll !== 0, s = r ? 0 : (o.slideCount - o.currentSlide) % o.options.slidesToScroll, e.data.message) { case "previous": n = 0 === s ? o.options.slidesToScroll : o.options.slidesToShow - s, o.slideCount > o.options.slidesToShow && o.slideHandler(o.currentSlide - n, !1, i); break; case "next": n = 0 === s ? o.options.slidesToScroll : s, o.slideCount > o.options.slidesToShow && o.slideHandler(o.currentSlide + n, !1, i); break; case "index": var l = 0 === e.data.index ? 0 : e.data.index || a.index() * o.options.slidesToScroll; o.slideHandler(o.checkNavigable(l), !1, i), a.children().trigger("focus"); break; default: return } }, e.prototype.checkNavigable = function (t) { var e, i, s = this; if (e = s.getNavigableIndexes(), i = 0, t > e[e.length - 1]) t = e[e.length - 1]; else for (var n in e) { if (t < e[n]) { t = i; break } i = e[n] } return t }, e.prototype.cleanUpEvents = function () { var e = this; e.options.dots && null !== e.$dots && t("li", e.$dots).off("click.slick", e.changeSlide).off("mouseenter.slick", t.proxy(e.interrupt, e, !0)).off("mouseleave.slick", t.proxy(e.interrupt, e, !1)), e.$slider.off("focus.slick blur.slick"), e.options.arrows === !0 && e.slideCount > e.options.slidesToShow && (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide), e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide)), e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler), e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler), e.$list.off("touchend.slick mouseup.slick", e.swipeHandler), e.$list.off("touchcancel.slick mouseleave.slick", e.swipeHandler), e.$list.off("click.slick", e.clickHandler), t(document).off(e.visibilityChange, e.visibility), e.cleanUpSlideEvents(), e.options.accessibility === !0 && e.$list.off("keydown.slick", e.keyHandler), e.options.focusOnSelect === !0 && t(e.$slideTrack).children().off("click.slick", e.selectHandler), t(window).off("orientationchange.slick.slick-" + e.instanceUid, e.orientationChange), t(window).off("resize.slick.slick-" + e.instanceUid, e.resize), t("[draggable!=true]", e.$slideTrack).off("dragstart", e.preventDefault), t(window).off("load.slick.slick-" + e.instanceUid, e.setPosition), t(document).off("ready.slick.slick-" + e.instanceUid, e.setPosition) }, e.prototype.cleanUpSlideEvents = function () { var e = this; e.$list.off("mouseenter.slick", t.proxy(e.interrupt, e, !0)), e.$list.off("mouseleave.slick", t.proxy(e.interrupt, e, !1)) }, e.prototype.cleanUpRows = function () { var t, e = this; e.options.rows > 1 && (t = e.$slides.children().children(), t.removeAttr("style"), e.$slider.empty().append(t)) }, e.prototype.clickHandler = function (t) { var e = this; e.shouldClick === !1 && (t.stopImmediatePropagation(), t.stopPropagation(), t.preventDefault()) }, e.prototype.destroy = function (e) { var i = this; i.autoPlayClear(), i.touchObject = {}, i.cleanUpEvents(), t(".slick-cloned", i.$slider).detach(), i.$dots && i.$dots.remove(), i.$prevArrow && i.$prevArrow.length && (i.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), i.htmlExpr.test(i.options.prevArrow) && i.$prevArrow.remove()), i.$nextArrow && i.$nextArrow.length && (i.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), i.htmlExpr.test(i.options.nextArrow) && i.$nextArrow.remove()), i.$slides && (i.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function () { t(this).attr("style", t(this).data("originalStyling")) }).find("button").removeAttr("title"), i.$slideTrack.children(this.options.slide).detach(), i.$slideTrack.detach(), i.$list.detach(), i.$slider.append(i.$slides)), i.cleanUpRows(), i.$slider.removeClass("slick-slider"), i.$slider.removeClass("slick-initialized"), i.$slider.removeClass("slick-dotted"), i.unslicked = !0, e || i.$slider.trigger("destroy", [i]) }, e.prototype.disableTransition = function (t) { var e = this, i = {}; i[e.transitionType] = "", e.options.fade === !1 ? e.$slideTrack.css(i) : e.$slides.eq(t).css(i) }, e.prototype.fadeSlide = function (t, e) { var i = this; i.cssTransitions === !1 ? (i.$slides.eq(t).css({ zIndex: i.options.zIndex }), i.$slides.eq(t).animate({ opacity: 1 }, i.options.speed, i.options.easing, e)) : (i.applyTransition(t), i.$slides.eq(t).css({ opacity: 1, zIndex: i.options.zIndex }), e && setTimeout(function () { i.disableTransition(t), e.call() }, i.options.speed)) }, e.prototype.fadeSlideOut = function (t) { var e = this; e.cssTransitions === !1 ? e.$slides.eq(t).animate({ opacity: 0, zIndex: e.options.zIndex - 2 }, e.options.speed, e.options.easing) : (e.applyTransition(t), e.$slides.eq(t).css({ opacity: 0, zIndex: e.options.zIndex - 2 })) }, e.prototype.filterSlides = e.prototype.slickFilter = function (t) { var e = this; null !== t && (e.$slidesCache = e.$slides, e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.filter(t).appendTo(e.$slideTrack), e.reinit()) }, e.prototype.focusHandler = function () { var e = this; e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*:not(.slick-arrow)", function (i) { i.stopImmediatePropagation(); var s = t(this); setTimeout(function () { e.options.pauseOnFocus && (e.focussed = s.is(":focus"), e.autoPlay()) }, 0) }) }, e.prototype.getCurrent = e.prototype.slickCurrentSlide = function () { var t = this; return t.currentSlide }, e.prototype.getDotCount = function () { var t = this, e = 0, i = 0, s = 0; if (t.options.infinite === !0) for (; e < t.slideCount;) ++s, e = i + t.options.slidesToScroll, i += t.options.slidesToScroll <= t.options.slidesToShow ? t.options.slidesToScroll : t.options.slidesToShow; else if (t.options.centerMode === !0) s = t.slideCount; else if (t.options.asNavFor) for (; e < t.slideCount;) ++s, e = i + t.options.slidesToScroll, i += t.options.slidesToScroll <= t.options.slidesToShow ? t.options.slidesToScroll : t.options.slidesToShow; else s = 1 + Math.ceil((t.slideCount - t.options.slidesToShow) / t.options.slidesToScroll); return s - 1 }, e.prototype.getLeft = function (t) { var e, i, s, n = this, r = 0; return n.slideOffset = 0, i = n.$slides.first().outerHeight(!0), n.options.infinite === !0 ? (n.slideCount > n.options.slidesToShow && (n.slideOffset = n.slideWidth * n.options.slidesToShow * -1, r = i * n.options.slidesToShow * -1), n.slideCount % n.options.slidesToScroll !== 0 && t + n.options.slidesToScroll > n.slideCount && n.slideCount > n.options.slidesToShow && (t > n.slideCount ? (n.slideOffset = (n.options.slidesToShow - (t - n.slideCount)) * n.slideWidth * -1, r = (n.options.slidesToShow - (t - n.slideCount)) * i * -1) : (n.slideOffset = n.slideCount % n.options.slidesToScroll * n.slideWidth * -1, r = n.slideCount % n.options.slidesToScroll * i * -1))) : t + n.options.slidesToShow > n.slideCount && (n.slideOffset = (t + n.options.slidesToShow - n.slideCount) * n.slideWidth, r = (t + n.options.slidesToShow - n.slideCount) * i), n.slideCount <= n.options.slidesToShow && (n.slideOffset = 0, r = 0), n.options.centerMode === !0 && n.options.infinite === !0 ? n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2) - n.slideWidth : n.options.centerMode === !0 && (n.slideOffset = 0, n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2)), e = n.options.vertical === !1 ? t * n.slideWidth * -1 + n.slideOffset : t * i * -1 + r, n.options.variableWidth === !0 && (s = n.slideCount <= n.options.slidesToShow || n.options.infinite === !1 ? n.$slideTrack.children(".slick-slide").eq(t) : n.$slideTrack.children(".slick-slide").eq(t + n.options.slidesToShow), e = n.options.rtl === !0 ? s[0] ? -1 * (n.$slideTrack.width() - s[0].offsetLeft - s.width()) : 0 : s[0] ? -1 * s[0].offsetLeft : 0, n.options.centerMode === !0 && (s = n.slideCount <= n.options.slidesToShow || n.options.infinite === !1 ? n.$slideTrack.children(".slick-slide").eq(t) : n.$slideTrack.children(".slick-slide").eq(t + n.options.slidesToShow + 1), e = n.options.rtl === !0 ? s[0] ? -1 * (n.$slideTrack.width() - s[0].offsetLeft - s.width()) : 0 : s[0] ? -1 * s[0].offsetLeft : 0, e += (n.$list.width() - s.outerWidth()) / 2)), e }, e.prototype.getOption = e.prototype.slickGetOption = function (t) { var e = this; return e.options[t] }, e.prototype.getNavigableIndexes = function () { var t, e = this, i = 0, s = 0, n = []; for (e.options.infinite === !1 ? t = e.slideCount : (i = -1 * e.options.slidesToScroll, s = -1 * e.options.slidesToScroll, t = 2 * e.slideCount); t > i;) n.push(i), i = s + e.options.slidesToScroll, s += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow; return n }, e.prototype.getSlick = function () { return this }, e.prototype.getSlideCount = function () { var e, i, s, n = this; return s = n.options.centerMode === !0 ? n.slideWidth * Math.floor(n.options.slidesToShow / 2) : 0, n.options.swipeToSlide === !0 ? (n.$slideTrack.find(".slick-slide").each(function (e, r) { if(n.options.rtl === true) return (t(n.$slideTrack[0]).outerWidth() - r.offsetLeft) - s - t(r).outerWidth() / 2 > -1 * n.swipeLeft ? (i = r, !1) : void 0; if(n.options.rtl === false) return r.offsetLeft - s + t(r).outerWidth() / 2 > -1 * n.swipeLeft ? (i = r, !1) : void 0; }), e = Math.abs(t(i).attr("data-slick-index") - n.currentSlide) || 1) : n.options.slidesToScroll }, e.prototype.goTo = e.prototype.slickGoTo = function (t, e) { var i = this; i.changeSlide({ data: { message: "index", index: parseInt(t) } }, e) }, e.prototype.init = function (e) { var i = this; t(i.$slider).hasClass("slick-initialized") || (t(i.$slider).addClass("slick-initialized"), i.buildRows(), i.buildOut(), i.setProps(), i.startLoad(), i.loadSlider(), i.initializeEvents(), i.updateArrows(), i.updateDots(), i.checkResponsive(!0), i.focusHandler()), e && i.$slider.trigger("init", [i]), i.options.accessibility === !0 && i.initADA(), i.options.autoplay && (i.paused = !1, i.autoPlay()) }, e.prototype.initADA = function () { var e = this; e.$slideTrack.find(".slick-cloned").attr({ tabindex: "-1" }), e.$slideTrack.attr("data-role", "listbox"), e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function (e) { t(this).attr({ "data-role": "option" }) }), null !== e.$dots && e.$dots.attr("data-role", "tablist").find("li").each(function (i) { t(this).attr({ "data-role": "presentation", id: "slick-slide" + e.instanceUid + i }) }).find("button").attr("data-role", "button").end().closest("div").attr("data-role", "toolbar"), e.activateADA() }, e.prototype.initArrowEvents = function () { var t = this; t.options.arrows === !0 && t.slideCount > t.options.slidesToShow && (t.$prevArrow.off("click.slick").on("click.slick", { message: "previous" }, t.changeSlide), t.$nextArrow.off("click.slick").on("click.slick", { message: "next" }, t.changeSlide)) }, e.prototype.initDotEvents = function () { var e = this; e.options.dots === !0 && e.slideCount > e.options.slidesToShow && t("li", e.$dots).on("click.slick", { message: "index" }, e.changeSlide), e.options.dots === !0 && e.options.pauseOnDotsHover === !0 && t("li", e.$dots).on("mouseenter.slick", t.proxy(e.interrupt, e, !0)).on("mouseleave.slick", t.proxy(e.interrupt, e, !1)) }, e.prototype.initSlideEvents = function () { var e = this; e.options.pauseOnHover && (e.$list.on("mouseenter.slick", t.proxy(e.interrupt, e, !0)), e.$list.on("mouseleave.slick", t.proxy(e.interrupt, e, !1))) }, e.prototype.initializeEvents = function () { var e = this; e.initArrowEvents(), e.initDotEvents(), e.initSlideEvents(), e.$list.on("touchstart.slick mousedown.slick", { action: "start" }, e.swipeHandler), e.$list.on("touchmove.slick mousemove.slick", { action: "move" }, e.swipeHandler), e.$list.on("touchend.slick mouseup.slick", { action: "end" }, e.swipeHandler), e.$list.on("touchcancel.slick mouseleave.slick", { action: "end" }, e.swipeHandler), e.$list.on("click.slick", e.clickHandler), t(document).on(e.visibilityChange, t.proxy(e.visibility, e)), e.options.accessibility === !0 && e.$list.on("keydown.slick", e.keyHandler), e.options.focusOnSelect === !0 && t(e.$slideTrack).children().on("click.slick", e.selectHandler), t(window).on("orientationchange.slick.slick-" + e.instanceUid, t.proxy(e.orientationChange, e)), t(window).on("resize.slick.slick-" + e.instanceUid, t.proxy(e.resize, e)), t("[draggable!=true]", e.$slideTrack).on("dragstart", e.preventDefault), t(window).on("load.slick.slick-" + e.instanceUid, e.setPosition), t(document).on("ready.slick.slick-" + e.instanceUid, e.setPosition) }, e.prototype.initUI = function () { var t = this; t.options.arrows === !0 && t.slideCount > t.options.slidesToShow && (t.$prevArrow.show(), t.$nextArrow.show()), t.options.dots === !0 && t.slideCount > t.options.slidesToShow && t.$dots.show() }, e.prototype.keyHandler = function (t) { var e = this; t.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === t.keyCode && e.options.accessibility === !0 ? e.changeSlide({ data: { message: e.options.rtl === !0 ? "next" : "previous" } }) : 39 === t.keyCode && e.options.accessibility === !0 && e.changeSlide({ data: { message: e.options.rtl === !0 ? "previous" : "next" } })) }, e.prototype.lazyLoad = function () { function e(e) { t("img[data-lazy]", e).each(function () { var e = t(this), i = t(this).attr("data-lazy"), s = document.createElement("img"); s.onload = function () { e.animate({ opacity: 0 }, 100, function () { e.attr("src", i).animate({ opacity: 1 }, 200, function () { e.removeAttr("data-lazy").removeClass("slick-loading") }), o.$slider.trigger("lazyLoaded", [o, e, i]) }) }, s.onerror = function () { e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), o.$slider.trigger("lazyLoadError", [o, e, i]) }, s.src = i }) } var i, s, n, r, o = this; o.options.centerMode === !0 ? o.options.infinite === !0 ? (n = o.currentSlide + (o.options.slidesToShow / 2 + 1), r = n + o.options.slidesToShow + 2) : (n = Math.max(0, o.currentSlide - (o.options.slidesToShow / 2 + 1)), r = 2 + (o.options.slidesToShow / 2 + 1) + o.currentSlide) : (n = o.options.infinite ? o.options.slidesToShow + o.currentSlide : o.currentSlide, r = Math.ceil(n + o.options.slidesToShow), o.options.fade === !0 && (n > 0 && n--, r <= o.slideCount && r++)), i = o.$slider.find(".slick-slide").slice(n, r), e(i), o.slideCount <= o.options.slidesToShow ? (s = o.$slider.find(".slick-slide"), e(s)) : o.currentSlide >= o.slideCount - o.options.slidesToShow ? (s = o.$slider.find(".slick-cloned").slice(0, o.options.slidesToShow), e(s)) : 0 === o.currentSlide && (s = o.$slider.find(".slick-cloned").slice(-1 * o.options.slidesToShow), e(s)) }, e.prototype.loadSlider = function () { var t = this; t.setPosition(), t.$slideTrack.css({ opacity: 1 }), t.$slider.removeClass("slick-loading"), t.initUI(), "progressive" === t.options.lazyLoad && t.progressiveLazyLoad() }, e.prototype.next = e.prototype.slickNext = function () { var t = this; t.changeSlide({ data: { message: "next" } }) }, e.prototype.orientationChange = function () { var t = this; t.checkResponsive(), t.setPosition() }, e.prototype.pause = e.prototype.slickPause = function () { var t = this; t.autoPlayClear(), t.paused = !0 }, e.prototype.play = e.prototype.slickPlay = function () { var t = this; t.autoPlay(), t.options.autoplay = !0, t.paused = !1, t.focussed = !1, t.interrupted = !1 }, e.prototype.postSlide = function (t) { var e = this; e.unslicked || (e.$slider.trigger("afterChange", [e, t]), e.animating = !1, e.setPosition(), e.swipeLeft = null, e.options.autoplay && e.autoPlay(), e.options.accessibility === !0 && e.initADA()) }, e.prototype.prev = e.prototype.slickPrev = function () { var t = this; t.changeSlide({ data: { message: "previous" } }) }, e.prototype.preventDefault = function (t) { t.preventDefault() }, e.prototype.progressiveLazyLoad = function (e) { e = e || 1; var i, s, n, r = this, o = t("img[data-lazy]", r.$slider); o.length ? (i = o.first(), s = i.attr("data-lazy"), n = document.createElement("img"), n.onload = function () { i.attr("src", s).removeAttr("data-lazy").removeClass("slick-loading"), r.options.adaptiveHeight === !0 && r.setPosition(), r.$slider.trigger("lazyLoaded", [r, i, s]), r.progressiveLazyLoad() }, n.onerror = function () { 3 > e ? setTimeout(function () { r.progressiveLazyLoad(e + 1) }, 500) : (i.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), r.$slider.trigger("lazyLoadError", [r, i, s]), r.progressiveLazyLoad()) }, n.src = s) : r.$slider.trigger("allImagesLoaded", [r]) }, e.prototype.refresh = function (e) { var i, s, n = this; s = n.slideCount - n.options.slidesToShow, !n.options.infinite && n.currentSlide > s && (n.currentSlide = s), n.slideCount <= n.options.slidesToShow && (n.currentSlide = 0), i = n.currentSlide, n.destroy(!0), t.extend(n, n.initials, { currentSlide: i }), n.init(), e || n.changeSlide({ data: { message: "index", index: i } }, !1) }, e.prototype.registerBreakpoints = function () { var e, i, s, n = this, r = n.options.responsive || null; if ("array" === t.type(r) && r.length) { n.respondTo = n.options.respondTo || "window"; for (e in r) if (s = n.breakpoints.length - 1, i = r[e].breakpoint, r.hasOwnProperty(e)) { for (; s >= 0;) n.breakpoints[s] && n.breakpoints[s] === i && n.breakpoints.splice(s, 1), s--; n.breakpoints.push(i), n.breakpointSettings[i] = r[e].settings } n.breakpoints.sort(function (t, e) { return n.options.mobileFirst ? t - e : e - t }) } }, e.prototype.reinit = function () { var e = this; e.$slides = e.$slideTrack.children(e.options.slide).addClass("slick-slide"), e.slideCount = e.$slides.length, e.currentSlide >= e.slideCount && 0 !== e.currentSlide && (e.currentSlide = e.currentSlide - e.options.slidesToScroll), e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0), e.registerBreakpoints(), e.setProps(), e.setupInfinite(), e.buildArrows(), e.updateArrows(), e.initArrowEvents(), e.buildDots(), e.updateDots(), e.initDotEvents(), e.cleanUpSlideEvents(), e.initSlideEvents(), e.checkResponsive(!1, !0), e.options.focusOnSelect === !0 && t(e.$slideTrack).children().on("click.slick", e.selectHandler), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), e.setPosition(), e.focusHandler(), e.paused = !e.options.autoplay, e.autoPlay(), e.$slider.trigger("reInit", [e]) }, e.prototype.resize = function () { var e = this; t(window).width() !== e.windowWidth && (clearTimeout(e.windowDelay), e.windowDelay = window.setTimeout(function () { e.windowWidth = t(window).width(), e.checkResponsive(), e.unslicked || e.setPosition() }, 50)) }, e.prototype.removeSlide = e.prototype.slickRemove = function (t, e, i) { var s = this; return "boolean" == typeof t ? (e = t, t = e === !0 ? 0 : s.slideCount - 1) : t = e === !0 ? --t : t, s.slideCount < 1 || 0 > t || t > s.slideCount - 1 ? !1 : (s.unload(), i === !0 ? s.$slideTrack.children().remove() : s.$slideTrack.children(this.options.slide).eq(t).remove(), s.$slides = s.$slideTrack.children(this.options.slide), s.$slideTrack.children(this.options.slide).detach(), s.$slideTrack.append(s.$slides), s.$slidesCache = s.$slides, void s.reinit()) }, e.prototype.setCSS = function (t) { var e, i, s = this, n = {}; s.options.rtl === !0 && (t = -t), e = "left" == s.positionProp ? Math.ceil(t) + "px" : "0px", i = "top" == s.positionProp ? Math.ceil(t) + "px" : "0px", n[s.positionProp] = t, s.transformsEnabled === !1 ? s.$slideTrack.css(n) : (n = {}, s.cssTransitions === !1 ? (n[s.animType] = "translate(" + e + ", " + i + ")", s.$slideTrack.css(n)) : (n[s.animType] = "translate3d(" + e + ", " + i + ", 0px)", s.$slideTrack.css(n))) }, e.prototype.setDimensions = function () { var t = this; t.options.vertical === !1 ? t.options.centerMode === !0 && t.$list.css({ padding: "0px " + t.options.centerPadding }) : (t.$list.height(t.$slides.first().outerHeight(!0) * t.options.slidesToShow), t.options.centerMode === !0 && t.$list.css({ padding: t.options.centerPadding + " 0px" })), t.listWidth = t.$list.width(), t.listHeight = t.$list.height(), t.options.vertical === !1 && t.options.variableWidth === !1 ? (t.slideWidth = Math.ceil(t.listWidth / t.options.slidesToShow), t.$slideTrack.width(Math.ceil(t.slideWidth * t.$slideTrack.children(".slick-slide").length))) : t.options.variableWidth === !0 ? t.$slideTrack.width(5e3 * t.slideCount) : (t.slideWidth = Math.ceil(t.listWidth), t.$slideTrack.height(Math.ceil(t.$slides.first().outerHeight(!0) * t.$slideTrack.children(".slick-slide").length))); var e = t.$slides.first().outerWidth(!0) - t.$slides.first().width(); t.options.variableWidth === !1 && t.$slideTrack.children(".slick-slide").width(t.slideWidth - e) }, e.prototype.setFade = function () { var e, i = this; i.$slides.each(function (s, n) { e = i.slideWidth * s * -1, i.options.rtl === !0 ? t(n).css({ position: "relative", right: e, top: 0, zIndex: i.options.zIndex - 2, opacity: 0 }) : t(n).css({ position: "relative", left: e, top: 0, zIndex: i.options.zIndex - 2, opacity: 0 }) }), i.$slides.eq(i.currentSlide).css({ zIndex: i.options.zIndex - 1, opacity: 1 }) }, e.prototype.setHeight = function () { var t = this; if (1 === t.options.slidesToShow && t.options.adaptiveHeight === !0 && t.options.vertical === !1) { var e = t.$slides.eq(t.currentSlide).outerHeight(!0); t.$list.css("height", e) } }, e.prototype.setOption = e.prototype.slickSetOption = function () { var e, i, s, n, r, o = this, a = !1; if ("object" === t.type(arguments[0]) ? (s = arguments[0], a = arguments[1], r = "multiple") : "string" === t.type(arguments[0]) && (s = arguments[0], n = arguments[1], a = arguments[2], "responsive" === arguments[0] && "array" === t.type(arguments[1]) ? r = "responsive" : "undefined" != typeof arguments[1] && (r = "single")), "single" === r) o.options[s] = n; else if ("multiple" === r) t.each(s, function (t, e) { o.options[t] = e }); else if ("responsive" === r) for (i in n) if ("array" !== t.type(o.options.responsive)) o.options.responsive = [n[i]]; else { for (e = o.options.responsive.length - 1; e >= 0;) o.options.responsive[e].breakpoint === n[i].breakpoint && o.options.responsive.splice(e, 1), e--; o.options.responsive.push(n[i]) } a && (o.unload(), o.reinit()) }, e.prototype.setPosition = function () { var t = this; t.setDimensions(), t.setHeight(), t.options.fade === !1 ? t.setCSS(t.getLeft(t.currentSlide)) : t.setFade(), t.$slider.trigger("setPosition", [t]) }, e.prototype.setProps = function () { var t = this, e = document.body.style; t.positionProp = t.options.vertical === !0 ? "top" : "left", "top" === t.positionProp ? t.$slider.addClass("slick-vertical") : t.$slider.removeClass("slick-vertical"), (void 0 !== e.WebkitTransition || void 0 !== e.MozTransition || void 0 !== e.msTransition) && t.options.useCSS === !0 && (t.cssTransitions = !0), t.options.fade && ("number" == typeof t.options.zIndex ? t.options.zIndex < 3 && (t.options.zIndex = 3) : t.options.zIndex = t.defaults.zIndex), void 0 !== e.OTransform && (t.animType = "OTransform", t.transformType = "-o-transform", t.transitionType = "OTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (t.animType = !1)), void 0 !== e.MozTransform && (t.animType = "MozTransform", t.transformType = "-moz-transform", t.transitionType = "MozTransition", void 0 === e.perspectiveProperty && void 0 === e.MozPerspective && (t.animType = !1)), void 0 !== e.webkitTransform && (t.animType = "webkitTransform", t.transformType = "-webkit-transform", t.transitionType = "webkitTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (t.animType = !1)), void 0 !== e.msTransform && (t.animType = "msTransform", t.transformType = "-ms-transform", t.transitionType = "msTransition", void 0 === e.msTransform && (t.animType = !1)), void 0 !== e.transform && t.animType !== !1 && (t.animType = "transform", t.transformType = "transform", t.transitionType = "transition"), t.transformsEnabled = t.options.useTransform && null !== t.animType && t.animType !== !1 }, e.prototype.setSlideClasses = function (t) { var e, i, s, n, r = this; i = r.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current"), //r.$slides.eq(t).addClass("slick-current").attr("tabindex", "0"), r.$slides.eq(t).addClass("slick-current"), r.options.centerMode === !0 ? (e = Math.floor(r.options.slidesToShow / 2), r.options.infinite === !0 && (t >= e && t <= r.slideCount - 1 - e ? r.$slides.slice(t - e, t + e + 1).addClass("slick-active") : (s = r.options.slidesToShow + t, i.slice(s - e + 1, s + e + 2).addClass("slick-active")), 0 === t ? i.eq(i.length - 1 - r.options.slidesToShow).addClass("slick-center") : t === r.slideCount - 1 && i.eq(r.options.slidesToShow).addClass("slick-center")), r.$slides.eq(t).addClass("slick-center")) : t >= 0 && t <= r.slideCount - r.options.slidesToShow ? r.$slides.slice(t, t + r.options.slidesToShow).addClass("slick-active") : i.length <= r.options.slidesToShow ? i.addClass("slick-active") : (n = r.slideCount % r.options.slidesToShow, s = r.options.infinite === !0 ? r.options.slidesToShow + t : t, r.options.slidesToShow == r.options.slidesToScroll && r.slideCount - t < r.options.slidesToShow ? i.slice(s - (r.options.slidesToShow - n), s + n).addClass("slick-active") : i.slice(s, s + r.options.slidesToShow).addClass("slick-active")), "ondemand" === r.options.lazyLoad && r.lazyLoad() }, e.prototype.setupInfinite = function () { var e, i, s, n = this; if (n.options.fade === !0 && (n.options.centerMode = !1), n.options.infinite === !0 && n.options.fade === !1 && (i = null, n.slideCount > n.options.slidesToShow)) { for (s = n.options.centerMode === !0 ? n.options.slidesToShow + 1 : n.options.slidesToShow, e = n.slideCount; e > n.slideCount - s; e -= 1) i = e - 1, t(n.$slides[i]).clone(!0).attr("id", "").attr("data-slick-index", i - n.slideCount).prependTo(n.$slideTrack).addClass("slick-cloned"); for (e = 0; s > e; e += 1) i = e, t(n.$slides[i]).clone(!0).attr("id", "").attr("data-slick-index", i + n.slideCount).appendTo(n.$slideTrack).addClass("slick-cloned"); n.$slideTrack.find(".slick-cloned").find("[id]").each(function () { t(this).attr("id", "") }) } }, e.prototype.interrupt = function (t) { var e = this; t || e.autoPlay(), e.interrupted = t }, e.prototype.selectHandler = function (e) { var i = this, s = t(e.target).is(".slick-slide") ? t(e.target) : t(e.target).parents(".slick-slide"), n = parseInt(s.attr("data-slick-index")); return n || (n = 0), i.slideCount <= i.options.slidesToShow ? (i.setSlideClasses(n), void i.asNavFor(n)) : void i.slideHandler(n) }, e.prototype.slideHandler = function (t, e, i) { var s, n, r, o, a, l = null, h = this; return e = e || !1, h.animating === !0 && h.options.waitForAnimate === !0 || h.options.fade === !0 && h.currentSlide === t || h.slideCount <= h.options.slidesToShow ? void 0 : (e === !1 && h.asNavFor(t), s = t, l = h.getLeft(s), o = h.getLeft(h.currentSlide), h.currentLeft = null === h.swipeLeft ? o : h.swipeLeft, h.options.infinite === !1 && h.options.centerMode === !1 && (0 > t || t > h.getDotCount() * h.options.slidesToScroll) ? void(h.options.fade === !1 && (s = h.currentSlide, i !== !0 ? h.animateSlide(o, function () { h.postSlide(s) }) : h.postSlide(s))) : h.options.infinite === !1 && h.options.centerMode === !0 && (0 > t || t > h.slideCount - h.options.slidesToScroll) ? void(h.options.fade === !1 && (s = h.currentSlide, i !== !0 ? h.animateSlide(o, function () { h.postSlide(s) }) : h.postSlide(s))) : (h.options.autoplay && clearInterval(h.autoPlayTimer), n = 0 > s ? h.slideCount % h.options.slidesToScroll !== 0 ? h.slideCount - h.slideCount % h.options.slidesToScroll : h.slideCount + s : s >= h.slideCount ? h.slideCount % h.options.slidesToScroll !== 0 ? 0 : s - h.slideCount : s, h.animating = !0, h.$slider.trigger("beforeChange", [h, h.currentSlide, n]), r = h.currentSlide, h.currentSlide = n, h.setSlideClasses(h.currentSlide), h.options.asNavFor && (a = h.getNavTarget(), a = a.slick("getSlick"), a.slideCount <= a.options.slidesToShow && a.setSlideClasses(h.currentSlide)), h.updateDots(), h.updateArrows(), h.options.fade === !0 ? (i !== !0 ? (h.fadeSlideOut(r), h.fadeSlide(n, function () { h.postSlide(n) })) : h.postSlide(n), void h.animateHeight()) : void(i !== !0 ? h.animateSlide(l, function () { h.postSlide(n) }) : h.postSlide(n)))) }, e.prototype.startLoad = function () { var t = this; t.options.arrows === !0 && t.slideCount > t.options.slidesToShow && (t.$prevArrow.hide(), t.$nextArrow.hide()), t.options.dots === !0 && t.slideCount > t.options.slidesToShow && t.$dots.hide(), t.$slider.addClass("slick-loading") }, e.prototype.swipeDirection = function () { var t, e, i, s, n = this; return t = n.touchObject.startX - n.touchObject.curX, e = n.touchObject.startY - n.touchObject.curY, i = Math.atan2(e, t), s = Math.round(180 * i / Math.PI), 0 > s && (s = 360 - Math.abs(s)), 45 >= s && s >= 0 ? n.options.rtl === !1 ? "left" : "right" : 360 >= s && s >= 315 ? n.options.rtl === !1 ? "left" : "right" : s >= 135 && 225 >= s ? n.options.rtl === !1 ? "right" : "left" : n.options.verticalSwiping === !0 ? s >= 35 && 135 >= s ? "down" : "up" : "vertical" }, e.prototype.swipeEnd = function (t) { var e, i, s = this; if (s.dragging = !1, s.interrupted = !1, s.shouldClick = s.touchObject.swipeLength > 10 ? !1 : !0, void 0 === s.touchObject.curX) return !1; if (s.touchObject.edgeHit === !0 && s.$slider.trigger("edge", [s, s.swipeDirection()]), s.touchObject.swipeLength >= s.touchObject.minSwipe) { switch (i = s.swipeDirection()) { case "left": case "down": e = s.options.swipeToSlide ? s.checkNavigable(s.currentSlide + s.getSlideCount()) : s.currentSlide + s.getSlideCount(), s.currentDirection = 0; break; case "right": case "up": e = s.options.swipeToSlide ? s.checkNavigable(s.currentSlide - s.getSlideCount()) : s.currentSlide - s.getSlideCount(), s.currentDirection = 1 } "vertical" != i && (s.slideHandler(e), s.touchObject = {}, s.$slider.trigger("swipe", [s, i])) } else s.touchObject.startX !== s.touchObject.curX && (s.slideHandler(s.currentSlide), s.touchObject = {}) }, e.prototype.swipeHandler = function (t) { var e = this; if (!(e.options.swipe === !1 || "ontouchend" in document && e.options.swipe === !1 || e.options.draggable === !1 && -1 !== t.type.indexOf("mouse"))) switch (e.touchObject.fingerCount = t.originalEvent && void 0 !== t.originalEvent.touches ? t.originalEvent.touches.length : 1, e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold, e.options.verticalSwiping === !0 && (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold), t.data.action) { case "start": e.swipeStart(t); break; case "move": e.swipeMove(t); break; case "end": e.swipeEnd(t) } }, e.prototype.swipeMove = function (t) { var e, i, s, n, r, o = this; return r = void 0 !== t.originalEvent ? t.originalEvent.touches : null, !o.dragging || r && 1 !== r.length ? !1 : (e = o.getLeft(o.currentSlide), o.touchObject.curX = void 0 !== r ? r[0].pageX : t.clientX, o.touchObject.curY = void 0 !== r ? r[0].pageY : t.clientY, o.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(o.touchObject.curX - o.touchObject.startX, 2))), o.options.verticalSwiping === !0 && (o.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(o.touchObject.curY - o.touchObject.startY, 2)))), i = o.swipeDirection(), "vertical" !== i ? (void 0 !== t.originalEvent && o.touchObject.swipeLength > 4 && t.preventDefault(), n = (o.options.rtl === !1 ? 1 : -1) * (o.touchObject.curX > o.touchObject.startX ? 1 : -1), o.options.verticalSwiping === !0 && (n = o.touchObject.curY > o.touchObject.startY ? 1 : -1), s = o.touchObject.swipeLength, o.touchObject.edgeHit = !1, o.options.infinite === !1 && (0 === o.currentSlide && "right" === i || o.currentSlide >= o.getDotCount() && "left" === i) && (s = o.touchObject.swipeLength * o.options.edgeFriction, o.touchObject.edgeHit = !0), o.options.vertical === !1 ? o.swipeLeft = e + s * n : o.swipeLeft = e + s * (o.$list.height() / o.listWidth) * n, o.options.verticalSwiping === !0 && (o.swipeLeft = e + s * n), o.options.fade === !0 || o.options.touchMove === !1 ? !1 : o.animating === !0 ? (o.swipeLeft = null, !1) : void o.setCSS(o.swipeLeft)) : void 0) }, e.prototype.swipeStart = function (t) { var e, i = this; return i.interrupted = !0, 1 !== i.touchObject.fingerCount || i.slideCount <= i.options.slidesToShow ? (i.touchObject = {}, !1) : (void 0 !== t.originalEvent && void 0 !== t.originalEvent.touches && (e = t.originalEvent.touches[0]), i.touchObject.startX = i.touchObject.curX = void 0 !== e ? e.pageX : t.clientX, i.touchObject.startY = i.touchObject.curY = void 0 !== e ? e.pageY : t.clientY, void(i.dragging = !0)) }, e.prototype.unfilterSlides = e.prototype.slickUnfilter = function () { var t = this; null !== t.$slidesCache && (t.unload(), t.$slideTrack.children(this.options.slide).detach(), t.$slidesCache.appendTo(t.$slideTrack), t.reinit()) }, e.prototype.unload = function () { var e = this; t(".slick-cloned", e.$slider).remove(), e.$dots && e.$dots.remove(), e.$prevArrow && e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove(), e.$nextArrow && e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove(), e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").css("width", "") }, e.prototype.unslick = function (t) { var e = this; e.$slider.trigger("unslick", [e, t]), e.destroy() }, e.prototype.updateArrows = function () { var t, e = this; t = Math.floor(e.options.slidesToShow / 2), e.options.arrows === !0 && e.slideCount > e.options.slidesToShow && !e.options.infinite && (e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === e.currentSlide ? (e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), e.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : e.currentSlide >= e.slideCount - e.options.slidesToShow && e.options.centerMode === !1 ? (e.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : e.currentSlide >= e.slideCount - 1 && e.options.centerMode === !0 && (e.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), e.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"))) }, e.prototype.updateDots = function () { var t = this; null !== t.$dots && (t.$dots.find("li").removeClass("slick-active").find("button").removeAttr("title"), t.$dots.find("li").eq(Math.floor(t.currentSlide / t.options.slidesToScroll)).addClass("slick-active").find("button").attr("title", "selected")) }, e.prototype.visibility = function () { var t = this; t.options.autoplay && (document[t.hidden] ? t.interrupted = !0 : t.interrupted = !1) }, t.fn.slick = function () { var t, i, s = this, n = arguments[0], r = Array.prototype.slice.call(arguments, 1), o = s.length; for (t = 0; o > t; t++) if ("object" == typeof n || "undefined" == typeof n ? s[t].slick = new e(s[t], n) : i = s[t].slick[n].apply(s[t].slick, r), "undefined" != typeof i) return i; return s } }), APPS_PLUGIN = !0; var smartSwitch = { isMobile: $.browser.mobile, areaWidth: 0, areaHeight: 0, prevSizeMode: -1, sizeMode: 0, resizeFunctions: [], initialized: false, eiwafDevice: { TYPE_DESKTOP: "desktop", TYPE_PHONE: "phone", TYPE_TABLET: "tablet", agent: { _mobile: (/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(window.navigator.userAgent)), _tablet: (/iPad|tablet/i.test(window.navigator.userAgent)), _apple: (/iP(hone|od|ad)/i.test(window.navigator.userAgent)) }, detect: function () { var _userAgent = navigator.userAgent.toLowerCase(); _html = document.getElementsByTagName("html")[0]; //default add class _html.classList.add("default-apps"); //samsung-device check if (_userAgent.search("sm-") > -1) { _html.classList.add("samsung-device"); if (this.agent.mobile) _html.classList.add("samsung-mobile-device"); } if (this.agent_apple) { _html.classList.add("apple-mobile-device"); } if (this.type) return; if (this.agent._mobile) { if (_userAgent.search("android") > -1) { if (_userAgent.search("mobile") == -1) this.type = this.TYPE_TABLET; } if (!this.type) this.type = this.TYPE_PHONE; } if (this.agent._tablet) this.type = this.TYPE_TABLET; if (!this.type) this.type = this.TYPE_DESKTOP; switch (this.type) { case "phone": _html.classList.add("apps-device-phone"); break; case "tablet": _html.classList.add("apps-device-tablet"); break; case "desktop": _html.classList.add("apps-device-desktop"); break; default: break; } } }, addViewportEvent: function (param, target) { //해당 섹션에 들어갈때 or 벗어날때 이벤트 적용 var events = 'scroll.addViewportEvent load.addViewportEvent resize.addViewportEvent'; param = $.extend({ parent: window, a11y: false, triggerPosition: false, triggerPositionPercent: false, enter: false, leave: false, progress: false, visiblePercent: false, visible: false, invisible: false, fullVisible: false }, param || {}); if (typeof (param.triggerPosition && param.triggerPositionPercent) == 'number') { return true; } var methods = $.fn.extend({ destroy: function () { $(param.parent).off(events); } }); return target.each(function (idx, obj) { var isEnter = false; var isVisible = false; var isActive = false; var isFullVisible = false; var visiblePercent = 0; var parent = param.parent; //if(param.triggerPosition) $(parent).on(events, function () { var returnValue = { Height: $(obj).outerHeight(), ViewportHeight: $(parent).height(), ScrollTop: $(document).scrollTop(), OffsetTop: $(obj).offset().top }; var visiblePerTopPercent = ((returnValue.ScrollTop + returnValue.ViewportHeight - returnValue.OffsetTop) / returnValue.Height * 100).toFixed(2); var visiblePerBottomPercent = -((returnValue.ScrollTop - returnValue.OffsetTop - returnValue.Height) / returnValue.Height * 100).toFixed(2); var viewPortPosition = returnValue.OffsetTop - returnValue.ScrollTop - param.triggerPosition; var viewPortPositionPercent = (viewPortPosition / returnValue.ViewportHeight * 100 - param.triggerPositionPercent).toFixed(2); isVisible = visiblePerTopPercent >= 0 && visiblePerBottomPercent >= 0; if (viewPortPositionPercent >= 50) viewPortPositionPercent = 50; else if (viewPortPositionPercent <= -50) viewPortPositionPercent = -50; if (isVisible && visiblePerTopPercent <= 100) visiblePercent = visiblePerTopPercent; else if (isVisible && visiblePerBottomPercent <= 100) visiblePercent = visiblePerBottomPercent; else if (isVisible) visiblePercent = 100; else visiblePercent = 0; if (isVisible) { /* Set Property */ obj.isVisible = isVisible; obj.isEnter = isEnter; obj.viewPortPositionPercent = viewPortPositionPercent; obj.viewPortPosition = viewPortPosition; obj.visiblePercent = visiblePercent; } if (isVisible) { /* Set Trigger & Run */ if (!isEnter && (param.triggerPositionPercent !== false && viewPortPositionPercent <= 0) || (param.triggerPosition && viewPortPosition <= 0)) { $(obj).trigger('enter'); if ($.isFunction(param.enter)) param.enter(); } if (isEnter && (param.triggerPositionPercent !== false && viewPortPositionPercent > 0) || (param.triggerPosition && viewPortPosition > 0)) { $(obj).trigger('leave'); if ($.isFunction(param.leave)) param.leave(); } if ($.isFunction(param.progress)) { if (param.triggerPositionPercent) param.progress(Number(viewPortPositionPercent), returnValue); if (param.triggerPosition) param.progress(Number(viewPortPosition), returnValue); } } if (!isActive && visiblePercent > 0) { $(obj).trigger('visible'); if ($.isFunction(param.visible)) param.visible(); } if (isActive && visiblePercent == 0) { $(obj).trigger('invisible'); if ($.isFunction(param.invisible)) param.invisible(); $(obj).trigger('leave'); if ($.isFunction(param.leave)) param.leave(); } if (!isFullVisible && visiblePercent == 100) { $(obj).trigger('fullVisible'); if ($.isFunction(param.fullVisible)) param.fullVisible(); } if ($.isFunction(param.visiblePercent)) param.visiblePercent(Number(visiblePercent), returnValue); isActive = visiblePercent != 0; isEnter = ((param.triggerPositionPercent && viewPortPositionPercent <= 0) && isVisible) || ((param.triggerPosition && viewPortPosition <= 0) && isVisible); isFullVisible = visiblePercent >= 100; }); }); }, pdpImgReplace: function ($this) { //pdp 동적 구현시 해상도에 맞게 이미지 교체 var $pdp = $this, $figure = $pdp.find('figure img'); if (!$('html').hasClass('s1')) { $figure.each(function () { $(this).attr('src', $(this).data('desktop-src')); }); } else { $figure.each(function () { $(this).attr('src', $(this).data('mobile-src')); }); } }, imgLazyLoad: function (target) { function changeSrcPc(target) { if (target.attr("data-desktop-src")) { target.attr("src", target.attr("data-desktop-src")); } } function changeSrcMobile(target) { if (target.attr("data-mobile-src")) { target.attr("src", target.attr("data-mobile-src")); } } target.each(function () { var _this = $(this); var flag = true; smartSwitch.addViewportEvent({ triggerPositionPercent: 75, enter: function () { if (flag) { _this.addClass("lazy-load").find("img").each(function () { var __this = $(this); if (smartSwitch.sizeMode == 1) { if (__this.attr("data-mobile-src")) { __this.attr("src", __this.attr("data-mobile-src")); } else if (__this.attr("data-src")) { __this.attr("src", __this.attr("data-src")); } else { changeSrcPc(__this); } } else { if (__this.attr("data-desktop-src")) { __this.attr("src", __this.attr("data-desktop-src")); } else if (__this.attr("data-src")) { __this.attr("src", __this.attr("data-src")); } else { changeSrcPc(__this); } } }); } flag = false; } }, _this); }); }, resize: function (func, flag) { if (typeof (func) == 'function') { this.resizeFunctions.push(func); return this; } var documentElement = document.documentElement, width, height, sizeMode; width = documentElement.clientWidth; // if (smartSwitch.isPoorBrowser) {width = Math.max(document.getElementById('wrap').offsetWidth, width);} height = $(window).height(); // ignore Mode if (func !== true) { if (!$.browser.mobile && width == smartSwitch.areaWidth && height == smartSwitch.areaHeight) { return; } else if ($.browser.mobile && width == smartSwitch.areaWidth) { return; } } var windowSize = window.innerWidth != undefined ? window.innerWidth : $(window).innerWidth() + 17; sizeMode = windowSize > 1440 ? 3 : windowSize > 767 ? 2 : 1; smartSwitch.prevSizeMode = smartSwitch.sizeMode; if (sizeMode != smartSwitch.sizeMode) { smartSwitch.sizeMode = sizeMode; documentElement.className = documentElement.className.replace(/ *s[1-4][1-4]?/g, '') + ' s' + sizeMode; } documentElement.className = documentElement.className.replace(/ *s0/, '') + (360 > width ? ' s0' : ''); smartSwitch.areaWidth = width; smartSwitch.areaHeight = height; // smartSwitch.sections && smartSwitch.sections.resize && smartSwitch.sections.resize(flag); if (smartSwitch.resizeFunctions.length) { $.each(smartSwitch.resizeFunctions, function () {this();}); } smartSwitch.motion.resize(); }, checkOS : function(){ var mobileArr = new Array("iphone", "ipod", "blackberry", "android", "samsung", "ios", "ipad"); for (var txt in mobileArr) { if (navigator.userAgent.toLowerCase().indexOf(mobileArr[txt]) > -1 && !$('html').hasClass('mobile')) { $('html').addClass('mobile'); } else { $('html').addClass('desktop'); }} }, motion: { smartSwitch: { elem: { _winHoriz: window.innerWidth !== undefined ? window.innerWidth : document.documentElement.clientWidth, _extentionWrap: $(document).find(".smart-switch-how-wrap"), _accordianWrap: $(document).find('.smart-switch-faq-wrap'), _beforeClickDep1Idx : 0, _beforeClickIdx : 0, _beforeSizeMode: null, _afterSizeMode: null, _resizeIdx: 0, _content: null }, event: function () { var _switch = this, wrap = this.elem._extentionWrap, accWrap = this.elem._accordianWrap, accBtn = accWrap.find('.switch-accordion-list button'), tabBtn = wrap.find(".switch-tabs-list-depth1 button.switch-tabs-link"), tabDepBtn = wrap.find(".switch-tabs-list-depth2 button.switch-tabs-link"); accBtn.on('click', function () { let $this = $(this); if($this.closest('li').hasClass('active')){ $this.closest('li').removeClass('active'); $this.closest('li').find('.swicth-accordion-cont').slideUp(); $this.attr('aria-expanded', false); }else{ accBtn.closest('li').siblings().removeClass('active'); $('.swicth-accordion-cont').slideUp(); accBtn.attr('aria-expanded', false) $this.closest('li').addClass('active'); $this.closest('li').find('.swicth-accordion-cont').slideDown(); $this.attr('aria-expanded', true); setTimeout(function(){ $('html, body').stop().animate({scrollTop:$this.closest('li').offset().top}); },450); } }); tabBtn.on("click", function () { let $this = $(this), thisIdx = $this.parent().index(); if($this.hasClass('active')){ return false; } wrap.find(".switch-tabs-body .switch-tabs-conts").eq(thisIdx).find(".switch-tabs-conts-depth2").eq(0).find(".slick-list").removeAttr("style"); _switch.elem._beforeClickDep1Idx = $this.parent().siblings().find('button.active').parent().index(); _switch.elem._beforeClickIdx = 0; _switch.motion.elem._beforeHeight = wrap.find(".switch-slide-wrap").height(); tabBtn.removeClass("active"); $this.addClass("active"); _switch.change(thisIdx, 0,false); _switch.motion.click(thisIdx, 0); _switch.accessibility.click($this); }); tabDepBtn.on("click", function () { let $this = $(this), _thisIdx = $this.parent().index(), dep1Idx = $this.closest('.switch-tabs-conts').index(), contents = wrap.find(".switch-tabs-body > .switch-tabs-conts").eq(dep1Idx).find(".switch-tabs-conts-depth2"), content = contents.eq(_thisIdx); if($this.hasClass('active')){ return false; } content.find(".slick-list").removeAttr("style"); _switch.elem._beforeClickIdx = $this.parent().siblings().find('button.active').parent().index(); tabDepBtn.removeClass("active"); $this.addClass("active"); contents.removeClass('active'); content.addClass('active'); _switch.change(dep1Idx, _thisIdx,false); // _switch.slide(content, false); _switch.motion.click(dep1Idx, _thisIdx); _switch.accessibility.click($this); }); }, motion: { elem : { _beforeSizeMode: 0, _afterSizeMode: 0, _beforeHeight: 0, _afterHeight: 0 }, setting: function (_idx, _idx2) { var _wrap = smartSwitch.motion.smartSwitch.elem._extentionWrap, contents = _wrap.find('.switch-tabs-body > .switch-tabs-conts').eq(_idx), content = contents.find(".switch-tabs-conts-depth2").eq(_idx2); setTimeout(function () { content.find(".slick-list").removeAttr("style"); }, 100); }, click: function (_idx, _idx2) { var _switch = smartSwitch.motion.smartSwitch, _wrap = _switch.elem._extentionWrap, contents = _wrap.find('.switch-tabs-body > .switch-tabs-conts').eq(_idx), content = contents.find(".switch-tabs-conts-depth2").eq(_idx2), list = content.find(".switch-slide-list.slick-current"), _contentWrap = content.find(".slick-list"); content.find(".slick-list").css("height", list.find(".switch-slide-list-inner").outerHeight(true)); content.find(".switch-slide-wrap").on("beforeChange", function (event, slick, idx, nextIdx) { var _slickList = $(slick.$list[0]); _contentWrap.removeAttr("style"); _slickList.css({ "height" : _slickList.find(".switch-slide-list").eq(nextIdx).find(".switch-slide-list-inner").outerHeight(true) }); }); this.elem._afterHeight = _contentWrap.height(); _contentWrap.css("height", this.elem._beforeHeight); setTimeout(function () { _contentWrap.css("height", _switch.motion.elem._afterHeight); }, 0); }, resize: function (_idx, _idx2) { var _switch = smartSwitch.motion.smartSwitch, _wrap = _switch.elem._extentionWrap, contents = _wrap.find('.switch-tabs-body > .switch-tabs-conts').eq(_idx), content = contents.find(".switch-tabs-conts-depth2").eq(_idx2), _sizeMode = smartSwitch.sizeMode > 1 ? 2 : 1; setTimeout(function () { content.find(".slick-list").css({ "height" : content.find(".switch-slide-list.slick-current .switch-slide-list-inner").outerHeight(true) }); _switch.tagging(content); content.find(".switch-slide-wrap").slick("refresh"); }, 1000); this.elem._beforeSizeMode = _sizeMode; if (this.elem._beforeSizeMode != this.elem._afterSizeMode) { this.elem._afterSizeMode = _sizeMode; setTimeout(function () { if (_sizeMode === 1) _wrap.find('.slick-slide').css('visibility', 'visible'); content.find(".slick-list").css({ "height" : content.find(".switch-slide-list.slick-current .switch-slide-list-inner").outerHeight(true) }); _switch.tagging(content); }, 1000); } } }, /* tab contents change event */ change: function (_idx, _idx2,_resizeCheck) { var _switch = this, wrap = this.elem._extentionWrap, contents = wrap.find(".switch-tabs-body > .switch-tabs-conts"), contents_item = contents.eq(_idx), content = contents_item.find('.switch-tabs-conts-depth2').eq(_idx2); contents.removeClass("active"); contents_item.addClass("active"); contents_item.find('.switch-tabs-conts-depth2').removeClass("active"); content.addClass("active"); contents_item.find(".switch-tabs-list-depth2 .switch-tabs-item button").removeClass("active"); contents_item.find(".switch-tabs-list-depth2 .switch-tabs-item:eq("+_idx2+") button").addClass("active"); _switch.slide(content, _resizeCheck); _switch.elem._content = content; }, /* tab contents slide */ slide: function (content, _resizeCheck) {//int slide var _switch = this, _winHoriz = _switch.elem._winHoriz, wrap = _switch.elem._extentionWrap, _type = content.find(".card-list-wrap").data("role-slide"), _contentSlideCheck = content.find(".switch-slide-wrap").is(".slick-initialized"), _slideConfig = { centerMode: true, slidesToShow: 1, slidesToScroll: 1, infinite: false, accessibility: true, speed: 500, dots: true, arrows: true, // adaptiveHeight: true, rtl: $("html").is(".rtl") }, _beforeDep1Content = wrap.find(".switch-tabs-body > .switch-tabs-conts").eq(_switch.elem._beforeClickDep1Idx), _beforeDep1ContentSlideCheck = _beforeDep1Content.find('.switch-tabs-conts-depth2').eq(_switch.elem._beforeClickIdx).find(".switch-slide-wrap").is(".slick-initialized"), _beforeContent = wrap.find(".switch-tabs-body > .switch-tabs-conts.active").find('.switch-tabs-conts-depth2').eq(_switch.elem._beforeClickIdx), _beforeContentSlideCheck = _beforeContent.find(".switch-slide-wrap").is(".slick-initialized"); //before reset if (_beforeDep1ContentSlideCheck === true) { _beforeDep1Content.find('.switch-tabs-conts-depth2').eq(_switch.elem._beforeClickIdx).find(".switch-slide-wrap").slick("unslick"); _beforeDep1Content.find('.switch-tabs-conts-depth2').eq(_switch.elem._beforeClickIdx).find(".switch-slide-wrap").find('.switch-slide-list').not('.switch-slide-list:eq(0)').css({'visibility': 'hidden'}); } if (_beforeContentSlideCheck === true) { _beforeContent.find(".switch-slide-wrap").slick("unslick"); _beforeContent.find(".switch-slide-wrap").find('.switch-slide-list').not('.switch-slide-list:eq(0)').css({'visibility': 'hidden'}); } if (_resizeCheck === true && _contentSlideCheck) { content.find(".switch-slide-wrap").slick("unslick"); content.find('.switch-slide-list').not('.switch-slide-list:eq(0)').css({'visibility': 'hidden'}); } content.find('.switch-slide-list').css({'visibility': 'visible'}); //slide setting _contentSlideCheck = content.find(".switch-slide-wrap").is(".slick-initialized"); if (_contentSlideCheck === false) { if (this.elem._afterSizeMode !== 1) content.find('.switch-slide-list').not('.switch-slide-list:eq(0)').css({'visibility': 'hidden'}); setTimeout(function(){ content.find(".switch-slide-wrap").slick(_slideConfig); content.find(".switch-slide-wrap").slick("refresh"); content.find('.switch-slide-list').css({'visibility': 'visible'}); _switch.tagging(content); },100) } //switch접근성 - 화살표 포커스 이동 content.find(".switch-slide-wrap").on('click', '.slick-arrow', function(){ content.find(".switch-slide-wrap").on("afterChange", function (event, slick, current, next) { content.find(".switch-slide-wrap").find('.switch-slide-list').attr('aria-hidden',true); content.find(".switch-slide-wrap").find('.switch-slide-list.slick-current').attr('aria-hidden',false); if (_switch.elem._winHoriz > 768) { if(current == 0){ content.find('.slick-next.slick-arrow').focus(); } else if(current == (slick.slideCount-1)){ content.find('.slick-prev.slick-arrow').focus(); } } }); }); content.find(".switch-slide-wrap").on("afterChange", function (event, slick, current, next) { content.find(".switch-slide-wrap").find('.switch-slide-list').attr('aria-hidden',true); content.find(".switch-slide-wrap").find('.switch-slide-list.slick-current').attr('aria-hidden',false); content.find(".switch-slide-wrap").find('.switch-slide-list.slick-current').removeAttr('style'); }); }, tagging: function (content) { setTimeout(function(){ content.find(".switch-slide-wrap").find('.switch-slide-list').attr('aria-hidden',true); content.find(".switch-slide-wrap").find('.switch-slide-list.slick-current').attr('aria-hidden',false); content.find(".slick-dots li button").each(function (_i) { var _this = $(this), dotTitle = function() { var titleDom = content.find('.slick-slide').eq(_i).find('.switch-slide-tit') var dataTitle = titleDom.attr('data-switch-slide-tit'); if (dataTitle) return dataTitle; if (!dataTitle) return titleDom.text(); } _this.attr("data-omni-type", "microsite_pcontentinter"); _this.attr("data-omni", "carousel:index:" + (_i + 1)); _this.text(dotTitle); }); },1000) }, accessibility: { click: function (_this) { _this.attr("title", "selected").parent().siblings().find("button").attr("title", ""); } }, init: function () { if (this.elem._extentionWrap.length > 0) { this.event(); this.change(0,0); this.motion.click(0, 0); this.motion.setting(); } }, resize: function () { if (this.elem._extentionWrap.length > 0) { this.elem._winHoriz = window.innerWidth !== undefined ? window.innerWidth : document.documentElement.clientWidth; var _sizeMode = smartSwitch.sizeMode > 1 ? 2 : 1; var _activeIdx = this.elem._extentionWrap.find(".switch-tabs-body > .switch-tabs-conts.active").index(); var _activeIdx2 = this.elem._extentionWrap.find(".switch-tabs-body > .switch-tabs-conts").eq(_activeIdx).find(".switch-tabs-conts-depth2.active").index(); this.elem._beforeSizeMode = _sizeMode; if (this.elem._resizeIdx > 0) this.motion.resize(_activeIdx, _activeIdx2); if (this.elem._beforeSizeMode != this.elem._afterSizeMode && this.elem._resizeIdx > 0) { this.elem._afterSizeMode = _sizeMode; _activeIdx = this.elem._extentionWrap.find(".switch-tabs-body > .switch-tabs-conts.active").index(); _activeIdx2 = this.elem._extentionWrap.find(".switch-tabs-body > .switch-tabs-conts").eq(_activeIdx).find(".switch-tabs-conts-depth2.active").index(); this.elem._beforeClickDep1Idx = _activeIdx; this.elem._beforeClickIdx = _activeIdx2; this.change(_activeIdx, _activeIdx2, true); } else if (this.elem._resizeIdx < 1) { this.elem._afterSizeMode = _sizeMode; this.elem._resizeIdx = this.elem._resizeIdx + 1; } } } }, init: function () { this.smartSwitch.init(); }, resize: function () { this.smartSwitch.resize(); }, scroll: function () { } }, readyInit: function(){ this.eiwafDevice.detect(); this.checkOS(); this.imgLazyLoad($(".smart-switch-how-wrap")); }, loadInit: function () { //전체 스크립트 기본 실행 if (this.initialized) {return;} this.resize(true); this.initialized = true; this.motion.init(); } } $(document).ready(function () { smartSwitch.readyInit(); $(window).off('resize').on('resize', function () { smartSwitch.resize(true, 'resize') $('.smart-switch-how-wrap').each(function(){ if($(this).hasClass('lazy-load')){ smartSwitch.pdpImgReplace($(this)); } }) }); }); if (window.addEventListener) { window.addEventListener('load', smartSwitch.loadInit(), false); } else if (window.attachEvent) { window.attachEvent('onload', smartSwitch.loadInit()); }});