Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (2025)

Galaxy S24 | S24+

  • SPECIFICATIES
  • SUPPORT
  • REVIEWS

Koop nu

  • Functies
  • Switch to Galaxy
  • Accessoires
  • SPECIFICATIES
  • SUPPORT
  • REVIEWS
Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (1) Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (2)
  • *Accessoires apart verkrijgbaar. De beschikbaarheid van een bepaald model of een bepaalde kleur kan per regio verschillen.

  • *Gesimuleerde afbeelding voor illustratieve doeleinden.

Alles wat je nodig hebt

  • Hoesjes
  • Galaxy Watch
  • Galaxy Buds

Aan jou de keuze

Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (3)

Maak kennis met de nieuwe hoesjes voor de Galaxy S24-serie

  • Flipsuit Case

    Maak kennis met de interactieve case en geef je vergrendelscherm en Always On-Display met de verwisselbare kaarten een stijlvolle andere look.,,,,,

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (4)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (5)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (6)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (7)

    Yellow

  • Standing Grip Case

    Handsfree kijken en gemakkelijk meenemen. Met deze veelzijdige cover kun je alle kanten op.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (8)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (9)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (10)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (11)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (12)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (13)

    Light Blue

  • Clear Gadget Case

    De unieke kleur van je telefoon mag gezien worden in dit hoesje. Inclusief verwisselbaar bandje en een uitklapbare steun.,

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (14)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (15)

    Transparant

  • Smart View Wallet Case

    Pauzeer je afspeellijst en reageer op je oproepen zonder de cover te openen. Ook heel fijn, het hoesje heeft een handig vakje voor je pasjes!,

    Koop nu

  • Silicone Case

    Met deze prachtige kleuren is het nog lastig kiezen. Maar gelukkig grijp je nooit mis.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (24)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (25)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (26)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (27)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (28)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (29)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (30)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (31)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (32)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (33)

    Violet

  • Vegan Leather Case

    Chique, zacht en luxueus. Dit hoesje van kunstleer benadrukt de eigentijdse elegantie van jouw telefoon.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (34)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (35)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (36)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (37)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (38)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (39)

    Dark Violet

  • Shield Case

    Wie zegt dat bescherming niet stijlvol kan zijn? Met dit hoesje geef je je telefoon een opvallende look en optimale bescherming.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (40)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (41)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (42)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (43)

    Light Gray

  • Clear Case

    Laat je telefoon volledig tot zijn recht komen met optimale bescherming. Bij dit hoesje draait alles om het design van je telefoon.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (44)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (45)

    Transparant

  • Anti-Reflecting Screen Protector

    Voorkom krassen met een aanraakgevoelige transparante Screen Protector, gemaakt voor een perfecte schermweergave.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (46)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (47)

    Transparant

Tag it. Find it.

Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (48)

  • Galaxy SmartTag2

    Tag de spullen die je gemakkelijk uit het oog verliest en je hebt alles zo gevonden.

    Ontdek meer

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (49)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (50)

    Black

  • 25W Power Adapter

    Met Super Fast Charging laad je je batterij in een handomdraai op. Je kunt rekenen op deze oplader. En dankzij het compacte formaat past hij altijd in je tas.

    Ontdek meer

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (51)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (52)

    Black

  • Super Fast Wireless Charger Duo

    Laad twee toestellen tegelijk op met een Watch-magneet aan één kant en een Fast Wireless Charging-pad aan de andere.

    Ontdek meer

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (53)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (54)

    Black

  • Battery Pack

    Deze batterij van 10.000 mAh levert tot wel 25W Super Fast Charging en beschikt over twee USB-C poorten.,,

    Ontdek meer

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (55)

    Beige

Horloges die passen bij jouw persoonlijke stijl en levensstijl

Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (56)

  • Galaxy Watch6

    De Galaxy Watch6 is jouw persoonlijke gezondheidscoach om je pols.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (57)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (58)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (59)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (60)

    Graphite

  • Galaxy Watch6 Classic

    Onze iconische roterende rand is nu 15% dunner.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (61)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (62)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (63)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (64)

    Black

Oordopjes die recht doen aan je favoriete muziek

Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (65)

  • Galaxy Buds2 Pro

    Je playlists klinken nog beter dankzij Active Noise Cancelling (ANC). Geniet van kristalhelder geluid en optimaal draagcomfort.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (66)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (67)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (68)

    Bora Purple

  • Galaxy Buds2

    Van work-outs tot games en de telefoontjes tussendoor: dankzij de intelligente ANC blijf je altijd in het moment.

    Koop nu

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (69)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (70)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (71)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (72)

    Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (73)

    Olive

Accessoires voor smartphones

Ontdek de nieuwe accessoires voor de Galaxy S24 | S24+ en S24 Ultra en trakteer jezelf op een stijl-make-over.

*Accessoires apart verkrijgbaar. De beschikbaarheid van een bepaald model of een bepaalde kleur kan per regio verschillen.

Bekijk alles

Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (74)

Galaxy S24 Ultra

Ontdek meer

Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (75)

Ontdek hoe je jouw Galaxy S24 of S24+ kunt bemachtigen

Koop nu Bestel nu Koop nu Verkooppunten

Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (76)

Bekijk de Galaxy S24 | S24+ in AR Bekijk in AR

Life opens up with Galaxy

Ontdek meer

Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (80)

*De hier vermelde specificaties en beschrijvingen kunnen verschillen van de werkelijke productspecificaties en beschrijvingen. Samsung behoudt zich het recht voor dit document en het product te allen tijde te wijzigen, zonder voorafgaande aankondiging. Alle functies, features, specificaties, GUI en andere productinformatie in dit document wat betreft de voordelen, het design, de prijs, de onderdelen, prestaties, beschikbaarheid en functies van het product kunnen worden gewijzigd zonder voorafgaande waarschuwing. De afbeeldingen op de schermen zijn gesimuleerde beelden en louter illustratief.

  1. Alle accessoires voor de Galaxy S24, S24+ en S24 Ultra zijn apart verkrijgbaar.
  2. De beschikbaarheid van kleuren, modellen en accessoires kan per regio verschillen.
  3. Er wordt één soort content per kaart weergegeven.
  4. De special edition merkedities van de Flipsuit Case bevatten één Flipsuit-themacard.
  5. De daadwerkelijke kleur, het ontwerp en de content van de Flipsuit Case-themakaart kunnen verschillen.
  6. De content voor de Flipsuit Case-themakaarten moet apart worden gedownload voor gebruik. Voor het downloaden is een netwerkverbinding vereist.
  7. De Grip- en Cap-accessoires zijn afneembaar en verwisselbaar.
  8. Meegeleverd in doos: Clear Gadget Case inclusief steun en bandje.
  9. Drie features 'tijd, meldingen en muziekbediening' kunnen worden bediend zonder het hoesje te openen.
  10. Gesimuleerde afbeelding voor illustratieve doeleinden. Daadwerkelijke gebruikersinterface kan afwijken van de afbeelding.
  11. De beschikbaarheid van bepaalde kleuren kan verschillen per regio.
  12. Vereist Samsung Galaxy-smartphones of -tablets met Android 11.0 of hoger met 3GB of meer gratis RAM; de gebruiker moet zich aanmelden bij de SmartThings Find-app en ingelogd zijn op hun Samsung Account. Bluetooth LE-bereik tot 120 m zonder obstakels; als Galaxy SmartTag2 buiten bereik is, wordt Galaxy Find Network gebruikt om te volgen (nauwkeurigheid Galaxy Find Network op basis van opt-in Galaxy-gebruikers die zich binnen het bereik van de SmartTag bevinden).
  13. Super Fast Charging (SFC) vereist een USB Power Delivery 3.0-compatibel apparaat dat Direct Charging ondersteunt. Apparaten die geen USB Power Delivery 3.0-standaard of Direct Charging ondersteunen, worden in een lager tempo dan SFC-snelheid opgeladen.
  14. Voor de draadloze oplader is een stroomaansluiting vereist. Laadsnelheden kunnen per apparaat verschillen. Werkelijke oplaadtijd hangt af van gebruik, oplaadcondities en andere factoren.
  15. 25W Super Fast Charging is alleen beschikbaar als deze is verbonden met één toestel.
  16. Kabels dienen mogelijk apart te worden aangeschaft, afhankelijk van het land of de regio.
  17. De Galaxy Watch6 Small (40mm) heeft een 30 procent dunnere rand dan de Galaxy Watch5 Small (40mm) en de Galaxy Watch6 Classic heeft een 15 procent dunnere roterende rand dan de Galaxy Watch4 Classic.

')); } } }; return { setLownetworkClass: setLownetworkClass, setScrollControl: setScrollControl, setResolution: setResolution, onClickSup: onClickSup, centeredFocus: centeredFocus, setArBanner:setArBanner, }})();(function () { const utils = window.flagship.common.utils; const resize = window.flagship.common.resize; const common = window.flagship.accessories.common; let agent = navigator.userAgent.toLowerCase(); let maxOs = agent.indexOf('mac os') > -1; let touchDevice = ('ontouchstart' in window || (window.DocumentTouch && document instanceof window.DocumentTouch)); let els = {}; const init = function () { els.isGlobal = document.documentElement.classList.contains('global'); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', anchorPosition, {once : true}); window.addEventListener('hashchange', anchorPosition); }; const setResize = function () { resize.init([{ resolution: 1920, resolutionName: 'desktop', eventFunction: '' }, { resolution: 1023, resolutionName: 'tablet', eventFunction: '' }, { resolution: 767, resolutionName: 'mobile', eventFunction: '' }, { resolution: 360, resolutionName: 'mobileS', eventFunction: '' }, { resolution: 320, resolutionName: 'mobileXs', eventFunction: '' }], 200); resize.add(common.setResolution); }; const setScrollControl = function () { window.scrollController = ANIUTIL.scrollController(); scrollController.init({ speed: 120, duration: 0.5 }); }; const setImageLoader = function () { window.imageLoader = ANIUTIL.mediaLoader({ lazyClass: '.js-img-src', responsiveClass: '.js-res-img', preset: els.isGlobal ? '' : '?imbypass=true', loadOption: [{ resolution: 1920, attribute: 'data-src-pc' }, { resolution: 1023, attribute: 'data-src-tb' }, { resolution: 767, attribute: 'data-src-mo' }, { resolution: 360, attribute: 'data-src-mo-s' }], visiblePoint: 1 }); window.bgLoader = ANIUTIL.mediaLoader({ type: 'bgImage', lazyClass: '.js-bg-img', loadOption: [{ resolution: 1920, attribute: '', bgOpts: '' }], visiblePoint: 1 }); }; const setDisclaimer = function(){ els.supClicker = document.querySelectorAll('a.click_sup'); for(let i=0;i

-1) { supTag[j].innerText = btmDiclArr.indexOf(dataSupTag) + 1; } else { if (supChildCount == 1) { supTag[j].parentElement.remove(); } else { let supParent = supTag[j].parentElement.childNodes; let supArr = []; for (let supIndex = 0; supIndex < supParent.length; supIndex++) { supArr.push(supParent[supIndex]); } let index = supArr.indexOf(supTag[j]); if (index != 0 && index % 2 == 0) { supParent[index].remove(); supParent[index - 1].remove(); } else { if (index != supArr.length) supParent[index + 1].remove(); supParent[index].remove(); } } } } }; const anchorPosition = function () { if (window.location.hash != '' && !!document.querySelector(window.location.hash)) { let hash = location.hash.split('#')[1], hashSection = document.querySelector('#' + hash), hashTimeout = null; clearTimeout(hashTimeout); hashTimeout = setTimeout(function () { let sectionTop = hashSection.getBoundingClientRect().top, navHeight = utils.getNavHeight(), hashScroll = window.pageYOffset + sectionTop - navHeight; window.scrollTo(0, hashScroll); }, 300); } }; const onLoadHandler = function () { common.setLownetworkClass(); common.setArBanner(); init(); bindEvents(); setResize(); if (!maxOs && !touchDevice) { setScrollControl(); } setCenteredfocus(); setDisclaimerNumber(); setDisclaimer(); setImageLoader(); }; onLoadHandler();})();(function () { window.flagship.accessories = window.flagship.accessories || {}; flagship.accessories.buyable = (function () { var self = {}; // should change the below to use self to be consisitent var utils = window.flagship.common.utils; var site = null; var makeBuyable = false; var comingSoonCopy = null; var outOfStockCopy = null; var shopIntegrationFlag = null; var isOldHybris = false; var isNewHybris = false; var init = function () { site = $("meta[name=sitecode]").attr("content"); // get the coming soon copy ... var comingSoonDiv = $("#makeAccessoriesBuyable_ComingSoon"); // if coming soon copy exists - makeBuyable makeBuyable = $(comingSoonDiv).length > 0; console.log("buyable.init - " + site + " " + makeBuyable); if (makeBuyable) { shopIntegrationFlag = $("#shopIntegrationFlag").val(); isOldHybris = shopIntegrationFlag === "Hybris" || shopIntegrationFlag === "Hybris-intg"; isNewHybris = shopIntegrationFlag === "Hybris-new"; // get the coming soon copy ... comingSoonCopy = $(comingSoonDiv).text(); outOfStockCopy = $(comingSoonDiv).attr("data-outOfStock"); console.log( "buyable.init - " + comingSoonCopy + " " + outOfStockCopy + " " + isOldHybris + " " + isNewHybris ); // doIt(); $( ".accessories-product__item .accessories-product__cta .common-cta-encased" ).on("click", function (e) { // check if linking or if adding to cart - href vs sku var sku = $(this).data("sku"); var href = $(this).attr("href"); console.log(sku + " " + href); if (sku) { e.preventDefault(); // console.log('add to Basket - ' + sku); doAddToCart(sku); } else { // console.log('go to ' + href); } }); } else { console.log("buyable.init OFF"); } }; var doIt = function () { console.log("buyable.doIt"); }; var doAddToCart = function (sku) { doAddToCartHybris(sku); }; var doAddToCartHybris = function (sku) { console.log("doAddToCartHybris - " + sku); // doAddToCartHybrisOld - not being used ... not checking isOldHybris / isNewHybris doAddToCartHybrisNew(sku, function () { console.log("doAddToCartHybrisNew - done"); }); }; var doAddToCartHybrisNew = function (sku, cb) { var url = // "https://shop.samsung.com/" + site + "/servicesv2/addToCart"; "https://api.shop.samsung.com/tokocommercewebservices/v2/" + site + "/addToCart/multi/?fields=BASIC"; // var postParam = { products: [{ productCode: sku, quantity: 1 }] }; var postParam = [{ productCode: sku, quantity: 1 }]; console.log("url", url); console.log("postParam", postParam); doShowProgress(); $.ajax({ url: url, type: "POST", data: JSON.stringify(postParam), dataType: "json", xhrFields: { withCredentials: true }, contentType: "application/json", timeout: 20000, beforeSend: function () { doShowProgress(); }, success: function (data) { console.log("data", data); // if (data.resultCode == "0000") { if (data && data.length && data[0].statusCode == "success") { // don't show popup - go straight to cart ... doShowProgress(); window.location.href = "https://shop.samsung.com" + "/" + site + "/cart"; } else { console.log("fail!"); } }, error: function (o) { doHideProgress(); console.log("error!"); }, complete: function (x) { cb(); }, }); }; var doAddToCartHybrisOld = function (sku, cb) { var params = "products[0].productCode=" + sku + "&products[0].quantity=1"; doShowProgress(); $.ajax({ url: "https://shop.samsung.com" + "/" + site + "/ng/p4v1/addToCart?" + params, // type: "GET", // data: {}, // dataType: "jsonp", // jsonp: "callback", // async: !1, // timeout: 1e4, cache: false, crossDomain: true, xhrFields: { withCredentials: true }, dataType: "json", timeout: 20000, beforeSend: function () { doShowProgress(); }, success: function (s) { doHideProgress(); if ("0000" == s.resultCode) { // don't show popup - go straigh to cart ... doShowProgress(); window.location.href = "https://shop.samsung.com" + "/" + site + "/cart"; } else { console.log("fail!"); } }, error: function (o) { doHideProgress(); console.log("error!"); }, complete: function (x) { cb(); }, }); }; var doShowProgress = function () { // console.log('show progress'); $(".cm-configurator-loader").stop(true, true).show(); }; var doHideProgress = function () { // console.log('hide progress'); $(".cm-configurator-loader").hide(); }; var doSku = function (that) { var sku = that.getAttribute("data-sku"); var url = that.getAttribute("data-url");console.log('TAH - doSku', sku, url) var product = that.closest(".accessories-product__item"); var cta = product.querySelector(".accessories-product__cta"); // hide the button and remove the price - these will be reshown/added based on sku info $(cta).addClass("off"); $(cta).find(".price").remove(); if (sku && makeBuyable) { console.log(sku + " - need to get price/stock etc"); var ctaBtn = product.querySelector(".common-cta-encased"); ctaBtn.setAttribute("data-sku", sku); // to be used for a2b doGetSkuInfo(sku, cta); } else if (url) { console.log(url + " - url so display the CTA"); $(cta).removeClass("off"); } else { console.log("no sku OR url OR turned off"); } }; var doGetSkuInfo = function (sku, cta) { // hide the button and remove the price - these will be reshown/added based on sku info $(cta).addClass("off"); $(cta).find(".price").remove(); doGetSkuInfoHybris(sku, cta, function (data) { doDisplaySkuInfo(sku, cta, data); }); }; var doGetSkuInfoHybris = function (sku, cta, cb) { if (isOldHybris) { doGetSkuInfoHybrisOld(sku, cta, cb); } else if (isNewHybris) { doGetSkuInfoHybrisNew(sku, cta, cb); } else if (site == "ie") { console.log("TODO - exertis - " + sku); } }; var doGetSkuInfoHybrisOld = function (sku, cta, cb) { console.log("hybris old - " + sku); var result = {}; var params = "productCodes=" + sku; $.ajax({ url: "https://shop.samsung.com/" + site + "/servicesv2/getSimpleProductsInfo?" + params, type: "GET", data: {}, dataType: "jsonp", jsonpCallback: "jQuery12345678901234567890_" + sku.toString().toLowerCase().replace("-", "").replace("/", ""), cache: !0, crossDomain: !0, timeout: 1e4, success: function (s) { if ( "0000" == s.resultCode && s.productDatas && s.productDatas.length == 1 ) { var data = s.productDatas[0]; // console.log(data); if ("0000" == data.resultCode) { // console.log('success workings - ' + data.productCode); result.productCode = data.productCode; result.price = data.price; result.priceFormatted = data.priceFormatted; result.promotionPrice = data.promotionPrice; result.promotionPriceFormatted = data.promotionPriceFormatted; result.stockLevelStatus = data.stockLevelStatus; result.stockLevelStatusDisplay = data.stockLevelStatusDisplay; // KD 20220805 force OOS copy if (data.stockLevelStatus == "outOfStock") { result.stockLevelStatusDisplay = outOfStockCopy; } cb(result); } else { console.log("fail sku!"); cb(result); } } else { console.log("fail!"); cb(result); } }, error: function (o) { console.log("error! " + sku, o); cb(result); }, }); }; var doGetSkuInfoHybrisNew = function (sku, cta, cb) { console.log("hybris new - " + sku); var result = {}; var params = "productCodes=" + sku + "&fields=SIMPLE_INFO"; $.ajax({ url: "https://shop.samsung.com/tokocommercewebservices/v2/" + site + "/products?" + params, type: "GET", data: {}, dataType: "json", cache: !0, crossDomain: !0, timeout: 1e4, success: function (s) { if (s && s.length == 1) { var data = s[0]; // console.log(data); var productCode = data.code; var price = null; var priceFormatted = null; var promotionPrice = null; var promotionPriceFormatted = null; if (data.price) { price = data.price.value; priceFormatted = data.price.formattedValue; } if (data.promotionPrice) { promotionPrice = data.promotionPrice.value; promotionPriceFormatted = data.promotionPrice.formattedValue; } var stockLevelStatus = "outOfStock"; var stockLevelStatusDisplay = outOfStockCopy; if ( data.stock && data.stock.stockLevelStatus && (data.stock.stockLevelStatus.toLowerCase() == "instock" || data.stock.stockLevelStatus.toLowerCase() == "backorder" || data.stock.stockLevelStatus.toLowerCase() == "preorder") ) { stockLevelStatus = "inStock"; stockLevelStatusDisplay = ""; // not used if not outOfStock } result.productCode = productCode; result.price = price; result.priceFormatted = priceFormatted; result.promotionPrice = promotionPrice; result.promotionPriceFormatted = promotionPriceFormatted; result.stockLevelStatus = stockLevelStatus; result.stockLevelStatusDisplay = stockLevelStatusDisplay; cb(result); } else { console.log("fail!"); cb(result); } }, error: function (o) { console.log("error! " + sku, o); cb(result); }, }); }; var doDisplaySkuInfo = function (sku, cta, data) { console.log(data); // hide the button and remove the price - these will be reshown/added based on sku info $(cta).addClass("off"); $(cta).find(".price").remove(); if (data.price) { var text = ""; if (data.stockLevelStatus == "outOfStock") { text += "" + data.stockLevelStatusDisplay + ""; } if (data.promotionPrice) { if ( data.priceFormatted != null && data.promotionPriceFormatted != null ) { text += '' + data.priceFormatted + '' + data.promotionPriceFormatted + ""; } } else { if (data.priceFormatted != null) { text += "" + data.priceFormatted + ""; } } if (data.stockLevelStatus != "outOfStock") { // sku exists AND product is REAL AND != outOfStock - show the button $(cta).removeClass("off"); // TRACKING ... TODO } $(cta).append('

' + text + "

"); } else { $(cta).append( '

' + comingSoonCopy + "

" ); } }; return { init: init, doSku: doSku, }; })(); flagship.accessories.colorchip = (function () { const resize = window.flagship.common.resize; const utils = window.flagship.common.utils; let els = {}; let status = {}; let prevDevice = null; let currDevice = resize.checkResolution(); const init = function () { els.section = document.querySelector('#accessories'); if (!!els.section) { flagship.accessories.buyable.init(); // tah setElements(); setProperty(); setStatus(); setCta(); bindEvents(); } }; const setElements = function () { els.swiper = null; els.productItems = els.section.querySelectorAll('.accessories-product__item'); els.oneProductItemList = []; els.notSlideColorchipList = []; }; const setStatus = function () { status.isClick = false; status.isOptionClick = false; }; const setProperty = function () { //colorchip button property const _colorchipProperty = function (productItems) { let colorchipList = productItems.querySelectorAll('.accessories__colorchip'); if (colorchipList.length < 2) { els.oneProductItemList.push(productItems); } for (let i = 0; i < colorchipList.length; i++) { const accColorchipProperty = { parentWrap: productItems, ctaWrap: productItems.querySelector('.accessories-product__cta'), cta: productItems.querySelector('.accessories-product__cta>a'), currentColor: productItems.querySelector('.accessories-product__current') }; colorchipList[i].accColorchipProperty = accColorchipProperty; } }; //option button property const _optionProperty = function (productItems) { let optionBtnList = productItems.querySelectorAll('.accessories-product__option-btn'); for (let i = 0; i < optionBtnList.length; i++) { let accOptionProperty = { parentWrap: productItems, optionBtnWrap: productItems.querySelectorAll('.accessories-product__option-item')[i], colorchipList: productItems.querySelectorAll('.swiper-pagination-wrap')[i], activeColorchip: productItems.querySelector('.accessories-colors .is-active'), activeSwiperWrap: productItems.querySelectorAll('.swiper-container-wrap')[i], activeSwiperContainer: productItems.querySelectorAll('.swiper-container-wrap .swiper-container')[i], activeColorchipSwiper: productItems.querySelectorAll('.swiper-pagination-wrap .swiper-container')[i], }; optionBtnList[i].accOptionProperty = accOptionProperty; if (!!optionBtnList[i].accOptionProperty.activeSwiperContainer) { let optionFirstImg = optionBtnList[i].accOptionProperty.activeSwiperContainer.querySelector('.swiper-slide img'); if (!!optionFirstImg && !optionFirstImg.classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia([optionFirstImg]); } } } }; // swiperContainer property : default const _swiperContainerProperty = function (productItems) { let swiperContainer; if (productItems.querySelector('.accessories-options')) { swiperContainer = productItems.querySelectorAll('.swiper-container-wrap .swiper-container'); } else { swiperContainer = productItems.querySelectorAll('.accessories-product__contents>.swiper-container'); } for (let i = 0; i < swiperContainer.length; i++) { let swiperSlides = swiperContainer[i].querySelectorAll('.swiper-slide'); if (swiperSlides.length >= 2) { let swiperProperty = { nextArrow: swiperContainer[i].parentElement.querySelector('.swiper-button-next'), prevArrow: swiperContainer[i].parentElement.querySelector('.swiper-button-prev'), pagination: productItems.querySelectorAll('.swiper-pagination-wrap')[i], parentWrap: productItems, }; swiperContainer[i].swiperProperty = swiperProperty; } } }; // swiperContainer property : (option) one-slide const _optionOneSlideSwiperContainerProperty = function (productItems) { var options = productItems.querySelector('.accessories-options'); if (options != null) { let paginationWrap = options.querySelectorAll('.swiper-pagination-wrap'); let paginationWrap_1 = paginationWrap[0].querySelectorAll('.accessories__colorchip'); let paginationWrap_2 = paginationWrap[1].querySelectorAll('.accessories__colorchip'); if ((paginationWrap_1.length != paginationWrap_2.length) || (paginationWrap_1.length == 1 && paginationWrap_2.length == 1)) { var swiperContainerWrap = options.querySelectorAll('.swiper-container-wrap'); for (let i = 0; i < swiperContainerWrap.length; i++) { let swiperSlides = swiperContainerWrap[i].querySelectorAll('.swiper-slide'); if (swiperSlides.length <= 1) { swiperContainerWrap[i].querySelector('.swiper-container').classList.add('is-one-slide'); swiperContainerWrap[i].style.pointerEvents = 'none'; if (swiperContainerWrap[i].querySelector('.accessories-product__arrow')) swiperContainerWrap[i].querySelector('.accessories-product__arrow').style.display = 'none'; let swiperProperty = { nextArrow: '', prevArrow: '', pagination: paginationWrap[i], parentWrap: productItems }; swiperContainerWrap[i].querySelector('.swiper-container').swiperProperty = swiperProperty; } } } } }; // colorchipSwiperContainer property const _colorchipSwiperContainerProperty = function (productItems) { let paginationWrap = productItems.querySelectorAll('.swiper-pagination-wrap'); let colorchipContainer = productItems.querySelectorAll('.swiper-pagination-wrap .swiper-container'); for (let i = 0; i < colorchipContainer.length; i++) { let colorchip = colorchipContainer[i].querySelectorAll('.accessories-colors__item'); if (colorchip.length >= 5) { let colorchipSwiperProperty = { nextArrow: paginationWrap[i].querySelector('.swiper-button-next'), prevArrow: paginationWrap[i].querySelector('.swiper-button-prev'), parentWrap: productItems, }; colorchipContainer[i].swiperProperty = colorchipSwiperProperty; } else { els.notSlideColorchipList.push(paginationWrap[i]); } } }; for (let i = 0; i < els.productItems.length; i++) { _colorchipProperty(els.productItems[i]); _optionProperty(els.productItems[i]); _swiperContainerProperty(els.productItems[i]); _optionOneSlideSwiperContainerProperty(els.productItems[i]); _colorchipSwiperContainerProperty(els.productItems[i]); } }; const setCta = function () { for (let i = 0; i < els.productItems.length; i++) { let activeColorchip = els.productItems[i].querySelector('.accessories__colorchip.is-active'), activeColorchipUrl = activeColorchip.getAttribute('data-url'), activeItemCta = els.productItems[i].querySelector('.accessories-product__cta'); if (!!activeItemCta) { if (activeColorchipUrl == '#') { activeItemCta.style.visibility = 'hidden'; activeItemCta.setAttribute('tabindex', -1); activeItemCta.setAttribute('aria-hidden', true); } else { activeItemCta.style.visibility = ''; activeItemCta.removeAttribute('tabindex'); activeItemCta.removeAttribute('aria-hidden'); } flagship.accessories.buyable.doSku(activeColorchip); // tah } } }; const setSwiper = { product: function (target) { let targetProperty = target.swiperProperty; let swiper; if (targetProperty && !target.swiper) { if (target.classList.contains('is-one-slide')) { let oneSlideSwiper = new Swiper(target, { init: false, slidesPerView: 'auto', loop: true, loopedSlides: 1, allowTouchMove: false }); swiper = oneSlideSwiper; } else { let defaultSwiper = new Swiper(target, { init: false, slidesPerView: 'auto', loop: true, loopedSlides: 1, navigation: { nextEl: targetProperty.nextArrow, prevEl: targetProperty.prevArrow }, touchRatio: 0.5, allowTouchMove: (utils.detector.isTouchDevice || (currDevice && currDevice.indexOf('mobile') > -1)) ? true : false }); swiper = defaultSwiper; } swiper.on('init', swiperEvents.product.init); swiper.on('slideChange', swiperEvents.product.slideChange); swiper.on('slideChangeTransitionEnd', swiperEvents.product.slideChangeTransitionEnd); swiper.init(); } }, colorchip: function (target) { let targetProperty = target.swiperProperty; let colorchipSwiper = null; if (targetProperty && !target.swiper) { colorchipSwiper = new Swiper(target, { init: false, slidesPerView: 'auto', loop: false, navigation: { nextEl: targetProperty.nextArrow, prevEl: targetProperty.prevArrow }, touchRatio: 0, allowTouchMove: false, }); colorchipSwiper.on('init', swiperEvents.colorchip.init); colorchipSwiper.on('slideChange', swiperEvents.colorchip.slideChange); colorchipSwiper.init(); } } }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once: true}); window.addEventListener('scroll', scrollHandler); resize.add(resizeEvent); els.section.addEventListener('click', onClickEvents.clickItem); els.section.addEventListener('keydown', onClickEvents.keydownItem); }; const resizeEvent = function (currRes) { if (currRes) currDevice = currRes; let activeSwiper = els.section.querySelectorAll('.swiper-container-initialized'); if (activeSwiper) { for (let i = 0; i < activeSwiper.length; i++) { if (activeSwiper[i].parentElement.classList.contains('swiper-container-wrap')) { if ((currDevice && ((currDevice.indexOf('mobile') > -1) || currDevice == 'tablet'))) { activeSwiper[i].swiper.allowTouchMove = true; } else { activeSwiper[i].swiper.allowTouchMove = false; } } else if (activeSwiper[i].parentElement.classList.contains('swiper-pagination-wrap')) { if (currDevice.indexOf('mobile') < 0) { activeSwiper[i].swiper.destroy(); } } } } }; const onLoadHandler = function () { scrollHandler(); resizeEvent(); productItemElementsEvents.arrowHide(); }; const scrollHandler = function () { for (let i = 0; i < els.productItems.length; i++) { let targetElement = els.productItems[i], scrollTop = window.pageYOffset, scrollBottom = scrollTop + window.innerHeight, targetOffsetTop = scrollTop + targetElement.getBoundingClientRect().top, targetOffsetBottom = scrollTop + targetElement.getBoundingClientRect().bottom, swiperContainer, colorchipContainer; // swiperContainer if (els.productItems[i].querySelector('.accessories-options')) { swiperContainer = els.productItems[i].querySelector('.swiper-container-wrap.is-active .swiper-container'); } else { swiperContainer = els.productItems[i].querySelector('.accessories-product__contents .swiper-container'); } // colorchipContainer if (els.productItems[i].querySelector('.accessories-options')) { colorchipContainer = els.productItems[i].querySelector('.swiper-pagination-wrap.is-active .swiper-container'); } else { colorchipContainer = els.productItems[i].querySelector('.swiper-pagination-wrap .swiper-container'); } if ((scrollTop + 50) < targetOffsetBottom && (scrollBottom - 50) > targetOffsetTop) { setSwiper.product(swiperContainer); if (currDevice.indexOf('mobile') > -1) { setSwiper.colorchip(colorchipContainer); } } } }; const productItemElementsEvents = { optionChange: function (targetOption) { status.isOptionClick = true; let targetProperty = targetOption.accOptionProperty; let targetParent = targetProperty.parentWrap; let targetSwiperContainer = targetProperty.activeSwiperContainer; let oldSwiper = targetParent.querySelector('.swiper-container.swiper-container-initialized'); let optionList = targetParent.querySelectorAll('.accessories-product__option-item'); let targetColorchipSwiper = targetProperty.activeColorchipSwiper; let oldOption = targetParent.querySelector('.accessories-product__option-item.is-active'); let oldColorchipWrap = targetParent.querySelector('.swiper-pagination-wrap.is-active'); let oldSwiperWrap = targetParent.querySelector('.swiper-container-wrap.is-active'); let oldColorchipSwiper = oldColorchipWrap.querySelector('.swiper-container-initialized'); const _currentOptionItem = function () { // optBtn if (!targetProperty.optionBtnWrap.classList.contains('is-active')) { oldOption.classList.remove('is-active'); oldOption.querySelector('button').removeAttribute('title'); targetProperty.optionBtnWrap.classList.add('is-active'); if (typeof LOCAL_VARI != 'undefined' && !!LOCAL_VARI) { targetProperty.optionBtnWrap.querySelector('button').setAttribute('title', LOCAL_VARI.selected); } else { targetProperty.optionBtnWrap.querySelector('button').setAttribute('title', 'Selected'); } } // colorchipWrap if (!targetProperty.colorchipList.classList.contains('is-active')) { oldColorchipWrap.classList.remove('is-active'); targetProperty.colorchipList.classList.add('is-active'); } // swiperContainer if (!targetProperty.activeSwiperWrap.classList.contains('is-active')) { oldSwiperWrap.classList.remove('is-active'); targetProperty.activeSwiperWrap.classList.add('is-active'); } }; const _setCurrentOptionColorchip = function () { let oldColorchip = oldColorchipWrap.querySelector('.accessories__colorchip.is-active'); let activeColorchip = targetProperty.colorchipList.querySelectorAll('button'); let prevColor = oldColorchip.getAttribute('data-color'); let currentOptionColorchip = null; for (let i = 0; i < activeColorchip.length; i++) { if (prevColor == activeColorchip[i].getAttribute('data-color')) { currentOptionColorchip = activeColorchip[i]; } } if (currentOptionColorchip == null) { currentOptionColorchip = targetProperty.colorchipList.querySelector('button.is-active'); } return currentOptionColorchip; }; const _activeSlideTo = function () { let pagination = targetSwiperContainer.swiperProperty.pagination; let colorchips = pagination.querySelectorAll('.accessories__colorchip'); let colorchipIndex = [].indexOf.call(colorchips, _setCurrentOptionColorchip()); if (targetColorchipSwiper.classList.contains('swiper-container-initialized')) { targetColorchipSwiper.swiper.slideTo((colorchipIndex + 1), false); } targetSwiperContainer.swiper.slideTo((colorchipIndex + 1), 0, false); }; if (optionList.length > 1) { _currentOptionItem(); if (oldSwiper && oldSwiper.swiper != null) { swiperEvents.product.destroy(oldSwiper.swiper); } setSwiper.product(targetSwiperContainer); if (oldColorchipSwiper && oldColorchipSwiper.swiper != null) { swiperEvents.colorchip.destroy(oldColorchipSwiper.swiper); } setSwiper.colorchip(targetColorchipSwiper); var swiperInit = targetSwiperContainer.classList.contains('swiper-container-initialized'); if (swiperInit) { _activeSlideTo(); } else { let targetImg = activeSwiper.querySelectorAll('.accessories-product__image>img'); if (!targetImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(targetImg); } } productItemElementsEvents.colorChange(_setCurrentOptionColorchip()); } }, colorChange: function (targetColorchip) { let targetProperty = targetColorchip.accColorchipProperty; let targetParent = targetProperty.parentWrap; let optionList = targetParent.querySelectorAll('.accessories-product__option-item'); let activeColor = targetColorchip.getAttribute('aria-label'); let oldColorchip; if (optionList.length > 1) { oldColorchip = targetParent.querySelector('.swiper-pagination-wrap.is-active .is-active'); } else { oldColorchip = targetParent.querySelector('.swiper-pagination-wrap .is-active'); } els.oldColorchip = oldColorchip; if (!targetColorchip.classList.contains('is-active')) { oldColorchip.classList.remove('is-active'); oldColorchip.setAttribute('aria-selected', false); targetColorchip.classList.add('is-active'); targetColorchip.setAttribute('aria-selected', true); } targetProperty.currentColor.innerText = activeColor; this.ctaChange(targetColorchip); }, ctaChange: function (targetColorchip) { let targetProperty = targetColorchip.accColorchipProperty; let activeColorCtaUrl = targetColorchip.getAttribute('data-url'); if (!!targetProperty.cta) { if (activeColorCtaUrl == '#') { targetProperty.ctaWrap.style.visibility = 'hidden'; targetProperty.ctaWrap.setAttribute('tabindex', -1); targetProperty.ctaWrap.setAttribute('aria-hidden', true); } else { targetProperty.ctaWrap.style.visibility = ''; targetProperty.ctaWrap.removeAttribute('tabindex'); targetProperty.ctaWrap.removeAttribute('aria-hidden'); } flagship.accessories.buyable.doSku(targetColorchip); // tah } const _setTagging = function () { if (!!targetProperty.cta) { let dataOmni = targetProperty.cta.getAttribute('data-omni').split(':')[4], gala = targetProperty.cta.getAttribute('ga-la').split(':')[4], currColor = targetColorchip.getAttribute('data-color'); if (status.isOptionClick && targetProperty.parentWrap.querySelector('.accessories-product__option')) { let optionDataOmni = targetProperty.cta.getAttribute('data-omni').split(':')[2].split('^').reverse()[0], optionGala = targetProperty.cta.getAttribute('data-omni').split(':')[2].split('^').reverse()[0], currOption = targetProperty.parentWrap.querySelector('.accessories-product__option .is-active').innerText, currOptionText; if (currOption.toLowerCase().indexOf('galaxy') > -1) { currOption = currOption.split(' ')[1].toLowerCase(); if (currOption.indexOf('+') > -1) { currOption = currOption.replace('+', '-plus'); currOptionText = optionDataOmni.split('s24')[0] + currOption; } else { currOptionText = optionDataOmni.split('s24-plus')[0] + currOption; } } else { if (optionDataOmni.indexOf('classic') > -1) { currOptionText = optionDataOmni.split('classic')[0] + `classic-${currOption}`; } else { currOptionText = optionDataOmni.split('watch6')[0] + `watch6-${currOption}`; } } targetProperty.cta.setAttribute('data-omni', targetProperty.cta.getAttribute('data-omni').replace(optionDataOmni, currOptionText)); targetProperty.cta.setAttribute('ga-la', targetProperty.cta.getAttribute('ga-la').replace(optionGala, currOptionText)); status.isOptionClick = false; } targetProperty.cta.setAttribute('href', activeColorCtaUrl); targetProperty.cta.setAttribute('data-omni', targetProperty.cta.getAttribute('data-omni').replace(dataOmni, currColor)); targetProperty.cta.setAttribute('ga-la', targetProperty.cta.getAttribute('ga-la').replace(gala, currColor)); } }; _setTagging(); }, slideTo: function (targetColorchip) { let targetProperty = targetColorchip.accColorchipProperty, targetParent = targetProperty.parentWrap, colorchipList, swiperContainer, colorchipSwiperContainer; if (targetParent.querySelector('.accessories-options')) { swiperContainer = targetParent.querySelector('.swiper-container-wrap.is-active .swiper-container'); colorchipSwiperContainer = targetParent.querySelector('.swiper-pagination-wrap.is-active .swiper-container'); } else { swiperContainer = targetParent.querySelector('.accessories-product__contents>.swiper-container'); colorchipSwiperContainer = targetParent.querySelector('.swiper-pagination-wrap .swiper-container'); } if (swiperContainer.swiper != null) { if (targetParent.querySelector('.accessories-colors__wrap')) { let colorchipListWrap = targetParent.querySelector('.accessories-colors__wrap .swiper-pagination-wrap.is-active') colorchipList = Array.prototype.slice.call(colorchipListWrap.querySelectorAll('.accessories__colorchip')); } else { colorchipList = Array.prototype.slice.call(targetParent.querySelectorAll('.accessories__colorchip')); } let index = colorchipList.indexOf(targetColorchip); let oldColorchipIndex = colorchipList.indexOf(els.oldColorchip); swiperContainer.swiper.slideTo((index+1), 500, false); status.isClick = false; if (colorchipSwiperContainer.classList.contains('swiper-container-initialized')) { if (oldColorchipIndex < index && index >= 3 && index != (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slideNext(); } else if (index != 0 && oldColorchipIndex > index && index <= (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slidePrev(); } } } }, arrowHide: function () { if (els.oneProductItemList.length > 0) { for (let i = 0; i < els.oneProductItemList.length; i++) { let arrow = els.oneProductItemList[i].querySelector('.accessories-product__arrow'); if (arrow) arrow.style.display = 'none'; } } if (els.notSlideColorchipList.length > 0) { for (let i = 0; i < els.notSlideColorchipList.length; i++) { let arrow = els.notSlideColorchipList[i].querySelector('.accessories-colors__arrow'); if (arrow) arrow.style.display = 'none'; } } }, colorchipSwiperMove: function (targetColorchip) { let targetProperty = targetColorchip.accColorchipProperty, targetParent = targetProperty.parentWrap, colorchipList, colorchipSwiperContainer; if (targetParent.querySelector('.accessories-options')) { colorchipSwiperContainer = targetParent.querySelector('.swiper-pagination-wrap.is-active .swiper-container'); } else { colorchipSwiperContainer = targetParent.querySelector('.swiper-pagination-wrap .swiper-container'); } let colorchipListWrap = colorchipSwiperContainer; colorchipList = Array.prototype.slice.call(colorchipListWrap.querySelectorAll('.accessories__colorchip')); let index = colorchipList.indexOf(targetColorchip); let oldColorchipIndex = colorchipList.indexOf(els.oldColorchip); if (colorchipSwiperContainer.classList.contains('swiper-container-initialized')) { if (oldColorchipIndex < index && index >= 3 && index != (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slideNext(); } else if (index != 0 && oldColorchipIndex > index && index < (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slidePrev(); } else if (index == 0 || index == (colorchipList.length - 1)) { colorchipSwiperContainer.swiper.slideTo(index, false); } } } }; const onClickEvents = { clickItem: function (e) { if (e.target.matches('.accessories-product__option-btn')) { productItemElementsEvents.optionChange(e.target); } else if (e.target.matches('.accessories__colorchip')) { if (!e.target.classList.contains('accessories__colorchip--slide')) { status.isClick = true; productItemElementsEvents.colorChange(e.target); productItemElementsEvents.slideTo(e.target); productItemElementsEvents.colorchipSwiperMove(e.target); } } else if (e.target.matches('.accessories__radio')) { if (!e.target.parentElement.classList.contains('accessories__colorchip--slide')) { status.isClick = true; productItemElementsEvents.colorChange(e.target.parentElement); productItemElementsEvents.slideTo(e.target.parentElement); productItemElementsEvents.colorchipSwiperMove(e.target.parentElement); } } else if (e.target.matches('.accessories__radio-half')) { if (!e.target.parentElement.parentElement.classList.contains('accessories__colorchip--slide')) { status.isClick = true; productItemElementsEvents.colorChange(e.target.parentElement.parentElement); productItemElementsEvents.slideTo(e.target.parentElement.parentElement); productItemElementsEvents.colorchipSwiperMove(e.target.parentElement.parentElement); } } }, keydownItem: function (e) { if (e.keyCode == 13) { if (e.target.matches('.accessories-product__option-btn')) { e && e.preventDefault(); productItemElementsEvents.optionChange(e.target); } else if (e.target.matches('.accessories__colorchip')) { if (!e.target.classList.contains('accessories__colorchip--slide')) { e && e.preventDefault(); status.isClick = true; productItemElementsEvents.colorChange(e.target); productItemElementsEvents.slideTo(e.target); productItemElementsEvents.colorchipSwiperMove(e.target); } } } } }; const swiperEvents = { product: { init: function () { let notification = this.el.querySelector('.swiper-notification'); let self = this; if (!!notification) this.el.removeChild(notification); let cloneSlides = this.el.querySelectorAll('.swiper-slide-duplicate'); for (let i = 0; i < cloneSlides.length; i++) { let cloneId = cloneSlides[i].getAttribute('id'); cloneSlides[i].setAttribute('id', cloneId + '-clone'); } let pagination = this.el.swiperProperty.pagination, colorchips = pagination.querySelectorAll('.accessories__colorchip'), activeColorchip = pagination.querySelector('.accessories__colorchip.is-active'), colorchipIndex = [].indexOf.call(colorchips, activeColorchip); if (colorchipIndex != 0) { this.slideTo((colorchipIndex + 1), 0, false); } const _setImgLoader = function () { let activeSlideImg = self.slides[self.activeIndex].querySelectorAll('img'), prevSlideImg = self.slides[self.activeIndex - 1].querySelectorAll('img'), nextIndex = (self.activeIndex < self.slides.length - 1) ? (self.activeIndex + 1) : 0, nextSlide = self.slides[nextIndex], nextSlideImg = nextSlide.querySelectorAll('img'); if (activeSlideImg[0] && !activeSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(activeSlideImg); } if (prevSlideImg[0] && !prevSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(prevSlideImg); } if (nextSlideImg[0] && !nextSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(nextSlideImg); } }; _setImgLoader(); accessibility.productSlide.call(this); if (this.navigation.prevEl) this.navigation.prevEl.removeAttribute('aria-label'); if (this.navigation.nextEl) this.navigation.nextEl.removeAttribute('aria-label'); }, slideChange: function () { let self = this; if (this && !status.isClick) { let activeIndex = this.realIndex, activeColorchipWrap = this.el.swiperProperty.pagination, activeColorchip = activeColorchipWrap.querySelectorAll('.accessories__colorchip'); productItemElementsEvents.colorChange(activeColorchip[activeIndex]); productItemElementsEvents.colorchipSwiperMove(activeColorchip[activeIndex]); } const _setImgLoader = function () { let activeSlideImg = self.slides[self.activeIndex].querySelectorAll('img'), nextIndex = (self.activeIndex < self.slides.length - 1) ? (self.activeIndex + 1) : 0, nextSlide = self.slides[nextIndex], nextSlideImg = nextSlide.querySelectorAll('img'); if (activeSlideImg[0] && !activeSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(activeSlideImg); } if (nextSlideImg[0] && !nextSlideImg[0].classList.contains('is-img-load-complete')) { imageLoader.setResponsiveMedia(nextSlideImg); } }; _setImgLoader(); accessibility.productSlide.call(this); }, slideChangeTransitionEnd: function () { status.isClick = false; }, destroy: function (target) { target.destroy(); } }, colorchip: { init: function () { let notification = this.el.querySelector('.swiper-notification'); if (!!notification) this.el.removeChild(notification); accessibility.colorchipSlide.call(this); if (this.navigation.prevEl) this.navigation.prevEl.removeAttribute('aria-label'); if (this.navigation.nextEl) this.navigation.nextEl.removeAttribute('aria-label'); }, slideChange: function () { accessibility.colorchipSlide.call(this); }, destroy: function (target) { target.destroy(); } } }; const accessibility = { productSlide: function () { for (let i = 0; i < this.slides.length; i++) { if (i != this.activeIndex) { this.slides[i].setAttribute('aria-hidden', true); this.slides[i].setAttribute('tabindex', -1); } else { this.slides[i].setAttribute('aria-hidden', false); this.slides[i].removeAttribute('tabindex'); } } }, colorchipSlide: function () { let isNotActivedColorchips = null; for (let i = 0; i < this.slides.length; i++) { isNotActivedColorchips = (i != this.activeIndex) && (i > (this.activeIndex + 3) || (i < (this.activeIndex))); if (isNotActivedColorchips) { this.slides[i].setAttribute('aria-hidden', true); this.slides[i].setAttribute('tabindex', -1); } else { this.slides[i].setAttribute('aria-hidden', false); this.slides[i].removeAttribute('tabindex'); } } } }; return { init: init } })();})();;(function () { window.flagship.accessories = window.flagship.accessories || {}; flagship.accessories.matchHeight = (function () { const resize = window.flagship.common.resize; let els = {}; let currDevice = resize.checkResolution(); const arrays = { productItemArr: [] }; const init = function () { els.section = document.querySelector('#accessories'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.productList = els.section.querySelectorAll('.accessories-product__list'); els.productLists = Array.prototype.slice.call(els.productList); }; const bindEvents = function () { window.addEventListener('DOMContentLoaded', onLoadHandler, {once: true}); resize.add(onResizeHandler); }; const onResizeHandler = function (currRes) { currDevice = currRes; if (currDevice == null || currDevice.indexOf('mobile') < 0) { matchHeight.setHeight(); } }; const onLoadHandler = function () { if (currDevice == null || currDevice.indexOf('mobile') < 0) { matchHeight.setHeight(); } }; const matchHeight = { setList: function () { let listItems = null; for (let i = 0; i < els.productLists.length; i++) { listItems = Array.prototype.slice.call(els.productLists[i].querySelectorAll('.accessories-product__item')); arrays.productItemArr.push(listItems); } }, setHeight: function () { matchHeight.setList(); let title = null, desc = null, lineCta = null; arrays.productItemArr.forEach(function (productItem) { let itemArr = [], titleArr = [], descArr = [], lineCtaArr = [], maxTitle = 0, maxDesc = 0, maxLineCta = 0; productItem.forEach(function (item) { title = item.querySelector('.accessories-product__title'); desc = item.querySelector('.accessories-product__description'); lineCta = item.querySelector('.accessories-product__cta--underline'); itemArr.push(item); if (title != null) { title.style.height = ''; titleArr.push(title.clientHeight); } if (desc != null) { desc.style.height = ''; descArr.push(desc.clientHeight); } if (lineCta != null) { lineCta.style.height = ''; lineCtaArr.push(lineCta.clientHeight); } }); itemArr = itemSlice(itemArr, 2); titleArr = itemSlice(titleArr, 2); descArr = itemSlice(descArr, 2); lineCtaArr = itemSlice(lineCtaArr, 2); for (let i = 0; i < itemArr.length; i++) { maxTitle = titleArr[i].reduce(function (prev, titleArr) { return Math.max(prev, titleArr); }); maxDesc = descArr[i].reduce(function (prev, descArr) { return Math.max(prev, descArr); }); if (lineCtaArr[i] != null) { maxLineCta = lineCtaArr[i].reduce(function (prev, lineCtaArr) { return Math.max(prev, lineCtaArr); }); } for (let j = 0; j < itemArr[i].length; j++) { if (maxTitle != itemArr[i][j].querySelector('.accessories-product__title').clientHeight) { itemArr[i][j].querySelector('.accessories-product__title').style.height = maxTitle + 'px'; } if (maxDesc != itemArr[i][j].querySelector('.accessories-product__description').clientHeight) { itemArr[i][j].querySelector('.accessories-product__description').style.height = maxDesc + 'px'; } if (itemArr[i][j].querySelector('.accessories-product__cta--underline') != null && maxLineCta != itemArr[i][j].querySelector('.accessories-product__cta--underline').clientHeight) { itemArr[i][j].querySelector('.accessories-product__cta--underline').style.height = maxLineCta + 'px'; } } } }); } }; const itemSlice = function (data, size) { let arr = []; for (let i = 0; i < data.length; i += size) { arr.push(data.slice(i, i + size)); } return arr; }; return { init: init } })();})();;(function () { window.flagship.accessories = window.flagship.accessories || {}; flagship.accessories.overview = (function () { const utils = window.flagship.common.utils; let els = {}; const init = function () { els.section = document.querySelector('.accessories-overview'); if (!!els.section) { setElements(); bindEvents(); } }; const setElements = function () { els.overviewBtn = els.section.querySelectorAll('.accessories-overview__item a'); }; const bindEvents = function () { for (let i = 0; i < els.overviewBtn.length; i++) { els.overviewBtn[i].addEventListener('click', onClickoverviewBtn); } }; const onClickoverviewBtn = function (e) { e.preventDefault(); let navHeight = utils.getNavHeight(); let sectionId = this.getAttribute('href').split('#')[1]; let section = document.querySelector('#' + sectionId); let sectionTop = section.getBoundingClientRect().top; let sectionScroll = window.pageYOffset + sectionTop - navHeight; let sectionTimeout = null; clearTimeout(sectionTimeout); sectionTimeout = setTimeout(function () { section.querySelector('.accessories-visual__headline').setAttribute('tabindex', 0); section.querySelector('.accessories-visual__headline').focus(); window.scrollTo(0, sectionScroll); }, 30); section.querySelector('.accessories-visual__headline').addEventListener('focusout', function () { section.querySelector('.accessories-visual__headline').removeAttribute('tabindex'); }); }; return { init: init } })();})();(function () { window.flagship = window.flagship || {}; window.flagship.accessories = window.flagship.accessories || {}; window.flagship.accessories.ytPopup = (function () { let els = {}; const utils = window.flagship.common.utils; const init = function () { els.layerPopup = document.querySelector('.common-youtube-popup'); if(!!els.layerPopup) { setElements(); setPopup(); } }; const setElements = function () { els.contents = document.querySelector('#contents'); els.openCtas = document.querySelectorAll('.js-youtube-popup'); els.closeCta = document.querySelector('.common-youtube-popup__close-cta'); els.ytIframe = els.layerPopup.querySelector('.common-youtube-popup__iframe > iframe'); els.ytDesc = els.layerPopup.querySelector('.youtube-player__desc'); els.dimmed = els.layerPopup.querySelector('.common-youtube-popup__close-area'); }; const setPopup = function () { for (let i = 0; i < els.openCtas.length; i++) { utils.layerPopup({ layerPopup: els.layerPopup, layerPopupClass: '.common-youtube-popup', openerEvent: { element: els.openCtas[i], }, closeCtas: [els.closeCta], dimmed: els.dimmed, moveTarget: document.documentElement, contents: els.contents, show: { start: function () { els.layerPopup.classList.add('is-yt-open'); }, end: function (target) { eventList.setYoutube(target); } }, hide: { start: function () { els.layerPopup.classList.remove('is-yt-open'); }, end: function () { eventList.clearYoutube(); } } }); } }; const eventList = { setYoutube: function (target) { let opener = target.openerCta, ytSrc = 'htt' + 'ps://www.youtube.com/embed/' + opener.getAttribute('data-youtube-id') + '?wmode=opaque&rel=0&enablejsapi=1&version=3&autoplay=1', ytTitle = opener.getAttribute('data-youtube-title'), ytBlind = opener.querySelector('.blind').innerHTML; els.ytIframe.setAttribute('src', ytSrc); els.ytIframe.setAttribute('title', ytTitle); els.ytDesc.innerHTML = ytBlind; els.OpenerTarget = opener; }, clearYoutube: function () { els.ytIframe.removeAttribute('src'); els.ytDesc.innerHTML = ''; } }; return { init: init, } })();})();(function () { window.flagship.common.resize.bindEvent(); const initComponents = function () { flagship.accessories.overview.init(); flagship.accessories.colorchip.init(); flagship.accessories.matchHeight.init(); flagship.accessories.ytPopup.init(); }; initComponents();})(); });
Accessoires & Hoesjes | Galaxy S24 & S24 Plus | Samsung NL (2025)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Jerrold Considine

Last Updated:

Views: 6218

Rating: 4.8 / 5 (78 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Jerrold Considine

Birthday: 1993-11-03

Address: Suite 447 3463 Marybelle Circles, New Marlin, AL 20765

Phone: +5816749283868

Job: Sales Executive

Hobby: Air sports, Sand art, Electronics, LARPing, Baseball, Book restoration, Puzzles

Introduction: My name is Jerrold Considine, I am a combative, cheerful, encouraging, happy, enthusiastic, funny, kind person who loves writing and wants to share my knowledge and understanding with you.