/* wtb_sdk.js Author: StackStudio Website: DISM / SDK Updated: 08/10/2019 Last Update: Andreu Rubio */ var wtbManager = function() { // ********** Constructor ********** function init() { var user_interactions = []; var countryCode = null; var languageCode = null; var swn_lang = null; if(document.head.getAttribute("data-countryCode") && document.head.getAttribute("languageCode")) { countryCode = document.head.dataset.countrycode.toUpperCase(); languageCode = document.head.dataset.languagecode.toLowerCase(); swn_lang = languageCode + "-" + countryCode; } var cb = function(data) { var currencyCode = ""; if(document.head.getAttribute("data-currencyCode")) { currencyCode = document.head.dataset.currencycode; } if(typeof track != "undefined") { if(data.action == 'dploy') { var interaction = {}; interaction.swaven = {}; interaction.swaven.action = data.action; var parameters = { 'event': 'storeLocatorOpen', 'interaction': interaction }; track.push(parameters); } if(data.action == 'close') { var interaction = {}; interaction.swaven = {}; interaction.swaven.action = data.action; var parameters = { 'event': 'storeLocatorClose', 'interaction': interaction }; track.push(parameters); } if(data.action == 'clk') { var interaction = {}; interaction.swaven = {}; interaction.swaven.action = data.action; if(data.prd != null) { if(data.prd.pid != null) { interaction.swaven.productId = data.prd.pid; } if(data.prd.pname != null) { interaction.swaven.productName = data.prd.pname; } if(data.prd.ppckg != null) { interaction.swaven.productVariant = data.prd.ppckg; } } var parameters = { 'event': 'storeLocatorProductDetail', 'interaction': interaction }; track.push(parameters); } if(data.action == 'buy') { var interaction = {}; interaction.swaven = {}; interaction.storeLocator = {}; interaction.swaven.action = data.action; if(data.prd != null) { if(data.prd.pid != null) { interaction.swaven.productId = data.prd.pid; } if(data.prd.pname != null) { interaction.swaven.productName = data.prd.pname; } if(data.prd.ppckg != null) { interaction.swaven.productVariant = data.prd.ppckg; } } interaction.swaven.productPrice = data.store.pr; interaction.storeLocator.city = undefined; if(data.store.scity != null) { interaction.storeLocator.city = data.store.scity; } interaction.storeLocator.zipCode = undefined; if(data.store.szc != null) { interaction.storeLocator.zipCode = data.store.szc; } interaction.storeLocator.country = undefined; if(data.store.country != null) { interaction.storeLocator.country = data.store.country; } interaction.storeLocator.storeId = data.store.rid; interaction.storeLocator.storeName = data.store.rname; var parameters = { 'event': 'storeLocatorEtailerClick', 'interaction': interaction }; track.push(parameters); } if(data.action == 'clkloc') { var interaction = {}; interaction.swaven = {}; interaction.storeLocator = {}; interaction.swaven.action = data.action; if(data.prd != null) { if(data.prd.pid != null) { interaction.swaven.productId = data.prd.pid; } if(data.prd.pname != null) { interaction.swaven.productName = data.prd.pname; } if(data.prd.ppckg != null) { interaction.swaven.productVariant = data.prd.ppckg; } } interaction.swaven.productPrice = data.store.pr; interaction.storeLocator.city = undefined; if(data.store.scity != null) { interaction.storeLocator.city = data.store.scity; } interaction.storeLocator.zipCode = undefined; if(data.store.szc != null) { interaction.storeLocator.zipCode = data.store.szc; } interaction.storeLocator.country = undefined; if(data.store.country != null) { interaction.storeLocator.country = data.store.country; } interaction.storeLocator.storeId = data.store.rid; interaction.storeLocator.storeName = data.store.rname; var parameters = { 'event': 'storeLocatorViewInfo', 'interaction': interaction }; track.push(parameters); } if(data.action == 'clkRoute') { var interaction = {}; interaction.swaven = {}; interaction.storeLocator = {}; interaction.swaven.action = data.action; if(data.prd != null) { if(data.prd.pid != null) { interaction.swaven.productId = data.prd.pid; } if(data.prd.pname != null) { interaction.swaven.productName = data.prd.pname; } if(data.prd.ppckg != null) { interaction.swaven.productVariant = data.prd.ppckg; } } interaction.swaven.productPrice = data.store.pr; interaction.storeLocator.city = undefined; if(data.store.scity != null) { interaction.storeLocator.city = data.store.scity; } interaction.storeLocator.zipCode = undefined; if(data.store.szc != null) { interaction.storeLocator.zipCode = data.store.szc; } interaction.storeLocator.country = undefined; if(data.store.country != null) { interaction.storeLocator.country = data.store.country; } interaction.storeLocator.storeId = data.store.rid; interaction.storeLocator.storeName = data.store.rname; var parameters = { 'event': 'storeLocatorGetDirections', 'interaction': interaction }; track.push(parameters); } if(data.action == 'geoloc') { var interaction = {}; interaction.swaven = {}; interaction.swaven.action = data.action; if(data.prd != null) { if(data.prd.pid != null) { interaction.swaven.productId = data.prd.pid; } if(data.prd.pname != null) { interaction.swaven.productName = data.prd.pname; } if(data.prd.ppckg != null) { interaction.swaven.productVariant = data.prd.ppckg; } } var parameters = { 'event': 'storeLocatorSearchSubmission', 'interaction': interaction }; track.push(parameters); } } }; if(swn_lang != null) { window.swnDataLayer.locale = swn_lang; } if(countryCode != null) { window.swnDataLayer.country = countryCode; } (function(e){ try{ var a=window.swnDataLayer=window.swnDataLayer||{};a.appId=e||a.appId,a.eventBuffer=a.eventBuffer||[],a.loadBuffer=a.loadBuffer||[],a.push=a.push||function(e){a.eventBuffer.push(e)},a.load=a.load||function(e){a.loadBuffer.push(e)}; var t=document.getElementsByTagName('script')[0],n=document.createElement('script'); n.async=!0,n.src='//wtb-tag.swaven.com/scripts/'+a.appId+'/tag.min.js',t.parentNode.insertBefore(n,t) }catch(e){ console.log(e)} }('5b10168a7898490f4b119e93') ); swnDataLayer.widget_callback = cb; } return { init: function(){ return init(); } } }; wtbM = wtbManager(); wtbM.init();