(function() { function bxBootstrap() { var re = /bot|crawl|slurp|spider|mediapartners|headlesschrome|snap-prefetch|remotasks|woorank|uptime\.com|facebookexternalhit|facebookcatalog/i; if (re.test(navigator.userAgent) || navigator.userAgent == '') { return; } if (!(window.bouncex&&bouncex.website)) { var pushedData = []; if(window.bouncex && bouncex.push && bouncex.length){ pushedData = bouncex; } window.bouncex = {}; bouncex.pushedData = pushedData; bouncex.website = {"id":2511,"name":"Oakley US","cookie_name":"bounceClientVisit2511","domain":"oakley.com","ct":"fp_local_storage","ally":0,"ei":0,"tcjs":"","cjs":"jQuery('#profile-menu-modal .sign-out').on('click', function(){\n bouncex.setv('logged_in', false);\n setBounceCookie();\n });\n \n// if( bouncex.testmode.bxdev ){\n window.top.bouncex.tealiumTracker = function(campaignName, parentName, eventType) {\n var tealium_data2track = window.top.tealium_data2track || [];\n var speakingString = 'X-X-X-BounceX-'+ eventType;\n tealium_data2track.push({\n 'id': speakingString,\n 'Content_TestCampaign': parentName,\n 'Content_TestVariation': campaignName\n });\n };\n// }\n\nwindow.top.bouncex.tealiumTrackerV2 = function(ca_id, eventType) {\n var campaign = bouncex.campaigns[ca_id];\n\tvar campaignLabel = campaign.ga_i.label.toLowerCase();\n\tvar childString = '';\n\tvar parentString = '';\n\n\tif (campaignLabel.indexOf('email capture') > -1 || campaignLabel.indexOf('capture email') > -1) {\n\t parentString += 'emailCapture ';\n\t} else if (campaignLabel.indexOf('cart') > -1) {\n\t parentString += 'cartRecovery ';\n\t} else if (campaignLabel.indexOf('checkout') > -1) {\n\t parentString += 'checkoutShaping ';\n\t} else {\n\t parentString += 'Campaign ';\n\t}\n\n\tparentString += campaignLabel.indexOf('mobile') > -1 ? 'M ' : 'D ';\n\tparentString += '('+campaign.pid+')';\n\n\tchildString += campaign.ttype === 'variation' ? 'variation ' : 'control ';\n\tchildString += '('+ca_id+')';\n\t\n\tvar tealium_data2track = window.top.tealium_data2track || [];\n\tvar speakingString = 'Bounce-'+ eventType;\n\t\n\ttealium_data2track.push({\n\t\t'id': speakingString,\n\t\t'Tool_Name_Abbreviation': 'BO',\n\t\t'Content_TestCampaign': parentString,\n\t\t'Content_TestVariation': childString\n\t});\n};\n \n (function () {\n window.bouncex = window.bouncex || {};\n \n window.bouncex.bxISR = {\n /* --- INITIALIZATION --- */\n version: 'Version 8.1 | 1/4/17',\n log: function(msg) {\n bouncex.log('%c bx isr: ' + msg, 'color: #9070A1');\n },\n \n init: function () {\n /* MW: init runs per pageview or when color is switched https://www.wrike.com/open.htm?id=243991933 */\n this.getSettings();\n \n if (this.settings.general.productPageIdentifier) {\n if (this.productReadyToTrack()) {\n this.log('product ready');\n this.productMap();\n this.setItemHistoryLengths();\n this.trackProductHistory();\n this.detectVariationSwitch();\n } else {\n bouncex.setTimeout2(function() {\n this.log('product not ready, trying again');\n bouncex.bxISR.init();\n }.bind(this), 1000);\n return false;\n }\n }\n this.trackCategoryHistory();\n this.maxProducts();\n },\n \n detectVariationSwitch: function() {\n /* MW: track variant change https://www.wrike.com/open.htm?id=243991933 */\n bouncex.off(bouncex.document, 'ajaxComplete.bxISR'); // remove previous listener\n bouncex.on(bouncex.document, 'ajaxComplete.bxISR', function(e,x,s) {\n if (x.status === 200 && s.type === 'GET' && s.url.indexOf('?variant=') > -1) {\n var currentProduct = this.settings.currentProduct.variant;\n var requestProduct = bouncex.utils.url.getParam('variant', s.url);\n if (currentProduct !== requestProduct) {\n this.log('variations switch, re-init');\n bouncex.bxISR.init();\n }\n }\n }.bind(this));\n },\n \n getSettings: function() {\n this.startTime = Date.now();\n this.settings = {\n currentProduct: {},\n general: {\n productPageIdentifier: (jQuery('meta[property=\"og:type\"]').attr('content') === \"product\" && jQuery('.outOfStock').length === 0),\n customProductIdentifier: jQuery('body').hasClass('page-customproductpage'),\n maxProducts: 20,\n categoryHistory: JSON.parse(window.localStorage.getItem('bxCatHist')) || [],\n productHistory: JSON.parse(window.localStorage.getItem('bxProdHist')) || [],\n categoryHistoryLength: 0,\n productHistoryLength: 0\n }\n };\n },\n \n productReadyToTrack: function() {\n if (this.settings.general.customProductIdentifier) {\n return typeof jQuery('.fc-display-image.carousel-active').first().find('img').attr('src') !== 'undefined';\n }\n \n return true;\n },\n \n productMap: function () {\n if (!this.settings.general.productPageIdentifier) { return; }\n var productValues = {\n url: (window.location.href),\n name: (jQuery('.pdp-hero-header h1').length > 0 && jQuery('.pdp-hero-header h1').text().trim()),\n sku: (window.utag_data.product_id.toString()),\n variant: bouncex.utils.url.getParam('variant'),\n category: [{ categoryName: (''), categoryUrl: ('') }],\n description: (jQuery('meta[name=\"description\"]').attr('content')),\n price: (jQuery('#salePrice').text().trim()),\n mainImgUrl: window.location.origin + jQuery('.hero-slider').find('picture source').first().attr('srcset'),\n timeStamp: Date.now(),\n viewCount: 1,\n sessionId: window.bouncex.cookie.vid\n };\n \n if (this.settings.general.customProductIdentifier) {\n productValues = this.getCustomProductMap(productValues);\n }\n \n this.log('product - ' + bouncex.stringify(productValues));\n bouncex.bxISR.settings.currentProduct = productValues;\n },\n \n getCustomProductMap: function(product) {\n // overwrite custom product; \n product.mainImgUrl = window.location.protocol + jQuery('.fc-display-image.carousel-active').first().find('img').attr('src');\n product.name = jQuery('.fc-product-name').length > 0 && jQuery('.fc-product-name').text().trim();\n product.price = jQuery('.fc-price-container').text().trim();\n return product;\n },\n \n /* --- END OF INITIALIZATION --- */\n /* --- HELPER FUNCTIONS --- */\n \n addProductToHistory: function (product) {\n var productHistory = this.settings.general.productHistory;\n productHistory.unshift(product);\n this.setProductHistory(productHistory);\n },\n \n addCategoryToHistory: function (currentCategory) {\n var categoryHistory = this.settings.general.categoryHistory;\n var newCategory = {\n category: currentCategory,\n viewCount: 1,\n timeStamp: Date.now()\n };\n \n categoryHistory.unshift(newCategory);\n window.bouncex.bxISR.setCategoryHistory(categoryHistory);\n },\n \n compareProducts: function (productA, productB) {\n // this.log('product a');\n // this.log(JSON.stringify(productA, null, 2));\n // this.log('product b');\n // this.log(JSON.stringify(productB, null, 2));\n if (productA.variant === productB.variant) { return true; }\n if (productA.mainImgUrl === productB.mainImgUrl) { return true; }\n if (productA.url === productB.url) { return true; }\n return false;\n },\n \n trackProductHistory: function () {\n var productHistory = this.settings.general.productHistory;\n if (!this.settings.general.productPageIdentifier) { return; }\n \n if (this.settings.general.productHistoryLength > 0) {\n var historyUpdated = false;\n \n for (var i = 0; i < this.settings.general.productHistoryLength; i++) {\n if (this.compareProducts(productHistory[i], this.settings.currentProduct)) {\n this.log('existing product');\n productHistory[i].viewCount++;\n productHistory[i].timeStamp = Date.now();\n productHistory.unshift(productHistory[i]);\n \n productHistory.splice(i + 1, 1);\n historyUpdated = true;\n this.setProductHistory(productHistory);\n return;\n }\n }\n this.log('new product');\n if (!historyUpdated) {\n this.addProductToHistory(this.settings.currentProduct);\n }\n } else {\n this.addProductToHistory(this.settings.currentProduct);\n }\n },\n \n trackCategoryHistory: function () {\n var categoryHistory = this.settings.general.categoryHistory;\n if (!this.settings.general.productPageIdentifier) { return; }\n \n var currentCategoriesLength = this.settings.currentProduct.category.length;\n for (var i = 0; i < currentCategoriesLength; i++) {\n var currentCategory = this.settings.currentProduct.category[i];\n \n if (this.settings.general.categoryHistoryLength > 0) {\n var historyUpdated = false;\n for (var j = 0; j < this.settings.general.categoryHistoryLength; j++) {\n if (categoryHistory[j].category.categoryName === currentCategory.categoryName) {\n categoryHistory[j].viewCount++;\n categoryHistory[j].timeStamp = Date.now();\n historyUpdated = true;\n this.setCategoryHistory(categoryHistory);\n }\n }\n \n if (!historyUpdated) {\n this.addCategoryToHistory(currentCategory);\n }\n } else {\n this.addCategoryToHistory(currentCategory);\n }\n }\n },\n \n /* --- END OF HELPER FUNCTIONS --- */\n /* --- GETTER FUNCTIONS --- */\n \n getTopCategories: function (criteria, number) {\n var categories = this.settings.general.categoryHistory;\n if (!number) { number = categories.length; }\n \n if (criteria === 'views') {\n return categories.sort(function (a, b) { return b.viewCount - a.viewCount; }).slice(0, number);\n } else if (criteria === 'time') {\n return categories.sort(function (a, b) { return b.timeStamp - a.timeStamp; }).slice(0, number);\n } else if (criteria === 'recency') {\n return categories.sort(function (a, b) { return b.viewCount - a.viewCount; }).slice(0, number).sort(function (c, d) { return d.timeStamp - c.timeStamp; });\n }\n },\n \n getTopProducts: function (criteria, number) {\n var products = this.settings.general.productHistory;\n if (!number) { number = products.length; }\n if (criteria === 'views') {\n return products.sort(function (a, b) { return b.viewCount - a.viewCount; }).slice(0, number);\n } else if (criteria === 'time') {\n return products.sort(function (a, b) { return b.timeStamp - a.timeStamp; }).slice(0, number);\n } else if (criteria === 'recency') {\n return products.sort(function (a, b) { return b.viewCount - a.viewCount; }).slice(0, number).sort(function (c, d) { return d.timeStamp - c.timeStamp; });\n }\n },\n \n maxProducts: function () {\n var maxProducts = this.settings.general.maxProducts;\n if (this.settings.general.productHistoryLength > maxProducts) {\n var topProducts = this.getTopProducts('time', maxProducts);\n this.setProductHistory(topProducts);\n }\n },\n \n /* --- END GETTER FUNCTIONS --- */\n /* --- SETTER FUNCTIONS --- */\n \n setItemHistoryLengths: function () {\n this.settings.general.categoryHistoryLength = this.settings.general.categoryHistory.length;\n this.settings.general.productHistoryLength = this.settings.general.productHistory.length;\n },\n \n setProductHistory: function (productHistory) {\n bouncex.setVarAndReload('products_tracked', productHistory.length);\n window.localStorage.setItem('bxProdHist', JSON.stringify(productHistory));\n this.settings.general.productHistory = productHistory;\n this.settings.general.productHistoryLength = productHistory.length;\n },\n \n setCategoryHistory: function (categoryHistory) {\n window.localStorage.setItem('bxCatHist', JSON.stringify(categoryHistory));\n this.settings.general.categoryHistory = categoryHistory;\n this.settings.general.categoryHistoryLength = categoryHistory.length;\n },\n \n /* --- END SETTER FUNCTIONS --- */\n /* --- CAMPAIGN TEMPLATING --- */\n \n populateCampaignProducts: function (params) {\n if (!params || !params.campaignId || !params.numberProducts || !params.campaignType) { return false; }\n if (!params.sortBy) { params.sortBy = 'time'; }\n if (!params.productAction) { params.productAction = 'link'; }\n if (!params.hoverState) { params.hoverState = false; }\n \n \n var campaign = jQuery('#campaign_' + params.campaignId + '_container_' + params.campaignType);\n var campaignProductArray = [];\n \n for ( var i = 0; i < params.numberProducts; i++ ) {\n var campaignProductObject = {\n img: jQuery('#campaign_' + params.campaignId + '_container_' + params.campaignType + ' a[href*=isr_img' + (i + 1) + ']'),\n link: jQuery('#campaign_' + params.campaignId + '_container_' + params.campaignType + ' a[href*=isr_url' + (i + 1) + ']')\n };\n \n campaignProductArray.push(campaignProductObject);\n }\n \n var productArray = window.bouncex.bxISR.getTopProducts(params.sortBy, params.numberProducts);\n jQuery.each(productArray, function (x, y) {\n var imgSrc = y.mainImgUrl,\n productLink = (y.url.indexOf('http') > -1) ? y.url : window.top.location.origin + y.url,\n productImageElem = jQuery(campaignProductArray[x].img),\n productLinkElem = jQuery(campaignProductArray[x].link);\n \n \n var css = {\n 'background-image': 'url(\\'' + imgSrc + '\\')',\n 'background-size': 'auto 100%',\n 'background-repeat': 'no-repeat',\n 'background-position': 'center'\n };\n \n productImageElem.css(css).addClass('isr-image isr' + x + '');\n if (params.productAction === 'link') {\n if (params.reportClicks) {\n var productAction = 'javascript:(function () { window.bouncex.report(' + params.campaignId + ', \\'clicks\\'); window.top.open(\\''+ productLink +'\\'); })();';\n } else {\n var productAction = 'javascript:(function () { window.top.open(\\''+ productLink +'\\'); })();';\n }\n \n } else if (params.productAction === 'submit') {\n var productAction = 'javascript:void(0);';\n var msg = JSON.stringify({ source: 'bouncex', action: 'submit' });\n productImageElem.on('click', function () {\n window.bouncex.report(params.campaignId, 'clicks');\n XD.postMessage(msg, campaign);\n });\n }\n \n productImageElem.attr('href', productAction);\n \n if (params.reportClicks) {\n var linkAction = 'javascript:(function () { window.bouncex.report(' + params.campaignId + ', \\'clicks\\'); setTimeout(function(){window.top.open(\\''+ productLink +'\\');}, 100); })();';\n } else {\n var linkAction = 'javascript:(function () { window.top.open(\\''+ productLink +'\\'); })();';\n }\n \n productLinkElem.attr('href', linkAction);\n \n if (params.hoverState) {\n if (params.reportClicks) {\n var hoverLinkAction = 'javascript:(function () { window.bouncex.report(' + params.campaignId + ', \\'clicks\\'); setTimeout(function(){window.top.open(\\''+ productLink +'\\');}, 100); })();';\n } else {\n var hoverLinkAction = 'javascript:(function () { window.top.open(\\'' + productLink + '\\'); })();';\n }\n \n productImageElem.parent().append('
' + y.name + '
');\n }\n });\n },\n \n populateCampaignProductsV2: function (params) {\n if (!params || !params.campaignId || !params.numberProducts) { return false; }\n if (!params.sortBy) { params.sortBy = 'time'; }\n if (!params.productAction) { params.productAction = 'link'; }\n if (!params.linkAction) { params.linkAction = 'new'; }\n \n var campaign = jQuery('#bx-campaign-' + params.campaignId);\n var campaignProductArray = [];\n \n campaignProductElements = {};\n jQuery.each(params.campaignSteps, function (x, y) {\n \n campaignStepProductElements = [];\n for ( var i = 0; i < params.numberProducts; i++ ) {\n var campaignStepProductObject = {};\n if (y.productImages) {\n campaignStepProductObject.img = campaign.find('#bx-form-' + params.campaignId + '-step-' + y.stepNumber + ' .bx-group-custom .bx-row-line .bx-lineshape:eq(' + i +')');\n //console.log(campaignStepProductObject.img);\n }\n if (y.productLinkElems) {\n campaignStepProductObject.link = campaign.find('#bx-form-' + params.campaignId + '-step-' + y.stepNumber + ' .bx-group-custom .bx-row-submit:eq('+i+')').find('button');\n //console.log(campaignStepProductObject.link);\n }\n if (y.productHoverStates) {\n campaignStepProductObject.hoverTitle = campaign.find('#bx-form-' + params.campaignId + '-step-' + y.stepNumber + ' .bx-group-custom .bx-row-line-custom:eq(' + i +')').siblings('.bx-row-text').find('div');\n }\n bouncex.log(i + 'campaign --');\n bouncex.log(campaignProductElements);\n campaignStepProductElements.push(campaignStepProductObject);\n }\n \n campaignProductElements['step-' +x] = campaignStepProductElements;\n });\n \n var productArray = window.bouncex.bxISR.getTopProducts(params.sortBy, params.numberProducts);\n \n var self = this;\n jQuery.each(campaignProductElements, function (x, y) {\n var productAction = function () {};\n \n for ( var i = 0; i < y.length; i++ ) {\n if (params.campaignSteps[(x.split('-')[1])].productsLink) {\n var productLink = (productArray[i].url.indexOf('http') > -1) ? productArray[i].url : window.top.location.origin + productArray[i].url;\n productAction = self.makeProductAction(productLink, params);\n }\n \n if (y[i].img) {\n var imgSrc = productArray[i].mainImgUrl,\n productImageElem = jQuery(y[i].img);\n \n productImageElem.css('background-image', 'url(' + imgSrc + ')').addClass('isr-image isr' + x + '').bind('click.bx_' + params.campaignId + '_isr_' + i, productAction);\n }\n \n if (y[i].link) {\n var productLink = (productArray[i].url.indexOf('http') > -1) ? productArray[i].url : window.top.location.origin + productArray[i].url,\n productLinkElem = jQuery(y[i].link);\n \n productLinkElem.attr('bx-href', productLink).bind('click.bx_' + params.campaignId + '_isr_' + i, productAction);\n }\n \n if (y[i].hoverTitle) {\n var productTitle = productArray[i] !== undefined && productArray[i].name,\n productHoverTitleElem = jQuery(y[i].hoverTitle);\n \n productHoverTitleElem.text(productTitle).bind('click.bx_' + params.campaignId + '_isr_' + i, productAction);\n }\n }\n \n });\n },\n \n makeProductAction: function (productLink, campaignParams) {\n var productAction = function () {};\n \n if (campaignParams.productAction === 'link') {\n if (campaignParams.linkAction === 'new') {\n if (campaignParams.reportClicks) {\n productAction = function () {\n window.bouncex.report(campaignParams.campaignId, 'click');\n window.top.open(productLink);\n };\n } else {\n productAction = function () {\n window.top.open(productLink);\n };\n }\n } else if (campaignParams.linkAction === 'current') {\n if (campaignParams.reportClicks) {\n productAction = function () {\n window.bouncex.report(campaignParams.campaignId, 'click');\n setTimeout(function() {\n window.top.location.replace(productLink);\n }, 100);\n };\n } else {\n productAction = function () {\n window.top.location.replace(productLink);\n };\n }\n }\n }\n \n return productAction;\n }\n };\n window.bouncex.bxISR.init();\n })();\n \n bouncex.infoStore = {\n sessionStorageIdentifier: 'bxInfoStore',\n set: function(data) {\n var hashedData = bouncex.lz.compressToURI(JSON.stringify(data));\n try {\n sessionStorage.setItem(this.sessionStorageIdentifier, hashedData);\n } catch(e) {\n bouncex.err('session storage failure');\n }\n },\n \n get: function() {\n var info = sessionStorage.getItem(this.sessionStorageIdentifier);\n return info ? JSON.parse(bouncex.lz.decompressFromURI(info)) : '';\n },\n \n infoIsStored: function() {\n return !!sessionStorage.getItem(this.sessionStorageIdentifier);\n },\n \n populateFields: function(fields) {\n if (!this.infoIsStored()) return;\n \n var data = this.get();\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n fields[field].val(data[field]);\n }\n }\n }\n};\n\nif(bouncex.website.pts === 'checkout'){\n bouncex.infoStore.populateFields({\n email: jQuery('#email1')\n });\n \n bouncex.infoStore.populateFields({\n email: jQuery('#email')\n });\n}\n\nif(bouncex.website.pts === 'cart'){\n jQuery('#promo-code-input').val(bouncex.cookie.promoCode);\n bouncex.infoStore.populateFields({\n promo: jQuery('input[name=\"promoCode\"]')\n });\n \n bouncex.infoStore.populateFields({\n promo: jQuery('input[title=\"promo code\"]')\n });\n}","force_https":false,"waypoints":false,"content_width":0,"gai":"","swids":"","sd":0,"ljq":"auto","campaign_id":0,"is_preview":false,"aco":{"first_party_limit":"10000","local_storage":"1"},"cmp":{"gdpr":1,"gmp":0,"whitelist_check":0},"burls":[{"prop":"contains","val":"qa.oakleysi"},{"prop":"contains","val":"stg.oakleysi"},{"prop":"contains","val":"stg.oakley"},{"prop":"contains","val":"qa.oakley"}],"ple":false,"fbe":true,"mas":2,"map":1,"gar":true,"ete":1,"ettm":false,"etjs":"if (window.location.hostname.indexOf('www.oakley.com') > -1 && jQuery('html').attr('lang') === 'en-US') {\n initTracking();\n}\n\nfunction initializeClickthroughEvent() {\n\tif (getUrl('ibx_source').indexOf('ibx_source') > -1){\n\t\tbouncex.push(['wknd_email_clickthrough']);\n\t}\n}\n\nfunction initTracking() {\n if (bouncex.website.pts === 'product' || getUrl().indexOf('/custom-product')) {\n initPDPEvents();\n }\n if (bouncex.website.pts === 'category') {\n initCategoryEvents();\n }\n if (bouncex.website.pts === 'cart') {\n if (bouncex.vars.cart_set && jQuery('h3.emptycart').length > 0) {\n bouncex.push(['empty_cart', {}]);\n bouncex.setv('cart_set', false);\n bouncex.setBounceCookie();\n }\n initCartImagesRtvChanges();\n }\n initCartEvents();\n trackLoggedInUser();\n initializeClickthroughEvent();\n}\n\n/* -------------- HELPERS ------------- */\nfunction getUrl(param = []) {\n return bouncex.utils.url.allowParams(param);\n}\n\nfunction getItemIdFromUrl(url) {\n var variant = bouncex.utils.url.getParam('variant', url),\n masterId = bouncex.utils.url.allowParams([], url).split('product/').pop();\n\n if (!variant && url.indexOf('custom-product') > -1) {\n variant = 'custom-product';\n }\n\n if (variant && masterId) {\n return masterId + '-' + variant;\n }\n\n return '';\n}\nfunction getItemGroupId(itemId){\n return itemId.split('-')[0];\n}\n\n/* ------------ITEM TRACKING ---------- */\nfunction initPDPEvents() {\n var item;\n bouncex.et.onTrue(\n function () {\n item = getItem();\n return (\n item.id &&\n item.copy &&\n item.category &&\n item.url &&\n item.imageurl && \n item.groupId\n );\n },\n function () {\n item.groupId = getItemGroupId(item.id);\n fireItemEvents(item);\n trackATC(item.id);\n initializeSkuEvents(item.id, item.groupId);\n bouncex.et.onVarChange('item_variant', function (oldVal, newVal) {\n if (newVal) {\n var newItem;\n bouncex.et.onTrue(function () {\n newItem = getItem();\n return newItemLoadedAndNotOldItem(item, newItem);\n }, function () {\n newItem.groupId = getItemGroupId(newItem.id)\n fireItemEvents(newItem);\n trackATC(newItem.id);\n initializeSkuEvents(newItem.id, newItem.groupId);\n item = newItem;\n }, 5);\n }\n });\n },\n 15\n );\n}\n\nfunction newItemLoadedAndNotOldItem(oldItem, newItem) {\n return newItem.id\n && newItem.url\n && newItem.imageurl\n && oldItem.id !== newItem.id\n && oldItem.url !== newItem.url\n && oldItem.imageurl !== newItem.imageurl;\n}\n\n// add custom selector\nfunction getImageUrl(customPdp, itemId) {\n if (!customPdp) {\n var variant = itemId.split('-').pop(),\n imageUrl = bouncex.utils.url.allowParams([], jQuery('.slider-gallery-item-img').attr('srcset'));\n if (imageUrl.indexOf(variant) > -1) {\n return imageUrl;\n }\n\n return imageUrl + '?impolicy=OO_ratio&width=1000';\n }\n\n var $customSelectionImage = jQuery('#configureContainer .carousel-active:first img').first();\n\n if ($customSelectionImage.length) {\n return 'https:' + $customSelectionImage.attr('src');\n }\n\n return '';\n}\n\nfunction getItem() {\n var url = bouncex.utils.url.allowParams(['variant']),\n customPdp = url.indexOf('custom-product') > -1,\n variant = jQuery('input[name=\\'productCodePost\\']').first().attr('value') || '';\n // account for changes in item metadata where URL does not change\n if (!customPdp && variant) {\n url = getUrl() + '?variant=' + variant;\n }\n\n var itemId = getItemIdFromUrl(url);\n return {\n id: itemId,\n copy: bouncex.utils.getNestedProp('panelData.data.frame.name') || jQuery('h1.product-name span').eq(0).text().trim() || jQuery('.fc-product-name').text().trim(),\n category: !customPdp\n ? jQuery('.breadcrumbs li span[itemprop=name]').last().text() ||\n 'product'\n : 'custom',\n url: url,\n imageurl: getImageUrl(customPdp, itemId),\n instock: jQuery('.product-cart-button,.fc-add-to-cart-button').text().toUpperCase().indexOf('ADD TO ') > -1,\n groupId: getItemGroupId(itemId)\n };\n}\n\nfunction fireViewItem(id, groupId) {\n var pushItem = { 'item:id': id };\n\n if (groupId) {\n pushItem['item:itemgroupid'] = groupId;\n }\n bouncex.push(['view item', pushItem]);\n}\n\nfunction fireItemEvents(item) {\n bouncex.push(['item', item]);\n fireViewItem(item.id, item.groupId);\n bouncex.setv('last_viewed_item', JSON.stringify({ 'id': item.id, 'imageUrl': item.imageurl }));\n}\n\n/* ------------------------------ SKU TRACKING ------------------------------ */\n\nfunction initializeSkuEvents(itemId, groupId) {\n var lastSkuFired,\n skuId;\n\n bouncex.et.onTrue(function () {\n skuId = bouncex.vars.item_variant; \n return skuId && skuId !== lastSkuFired;\n }, function () {\n bouncex.push([\n 'select_sku',\n {\n 'item:id': itemId,\n 'item:itemgroupid': groupId,\n 'item:feedid': skuId\n }\n ]);\n lastSkuFired = skuId;\n }, 5);\n\n}\n\n// /* ------------- CATEGORY TRACKING ------------*/\nfunction initCategoryEvents() {\n var categoryObj;\n\n bouncex.et.onTrue(\n function () {\n categoryObj = getCategoryObj();\n return categoryObj['items:ids'].length > 0;\n },\n function () {\n bouncex.push(['view category', categoryObj]);\n },\n 15\n );\n}\n\nfunction getCategoryIds() {\n return jQuery('.prod-tile-wrapper .preview_image-primary:not(.lazyLoad)').map(function () {\n var url = jQuery(this).attr('href') || '',\n id = getItemIdFromUrl(url);\n if (id) { return id; }\n }).toArray().join(',');\n}\n\nfunction getCategoryObj() {\n return {\n 'page:url': getUrl(),\n 'items:ids': getCategoryIds(),\n };\n}\n\n/* |----------- CART INIT AND REPLENISHMENT ----------------| */\nfunction replenish(cart) {\n var deferreds = [];\n\n cart.items.forEach(function (item) {\n deferreds.push(makeReplenItem(item));\n });\n\n deferreds.reduce(function (promise, func) {\n return promise.then(function () {\n return func();\n });\n }, jQuery.Deferred().resolve([]))\n .then(replenComplete);\n}\n\nfunction makeReplenItem(item) {\n return function () {\n return jQuery.ajax({\n method: 'post',\n url: 'https://www.oakley.com/en-us/cart/add',\n data: item.itemData\n });\n };\n}\n\nfunction replenComplete() {\n bouncex.setTimeout2(function () {\n window.location.href = window.location.pathname + '?bx_replen=true';\n }, 0);\n}\n\nfunction cartOnReplen() {\n return window.location.href.indexOf('bx_cart') > -1;\n}\n\nfunction trackATC(itemId) {\n bouncex.off(jQuery(document), 'ajaxComplete.bxatc');\n bouncex.on(jQuery(document), 'ajaxComplete.bxatc', function (e, xhr, settings) {\n // regular items\n if (settings.url.indexOf('/cart/add') > -1) {\n if (!cartOnReplen()) {\n var itemData = settings.data;\n var cart = {\n itemData: itemData\n };\n\n fireATC(itemId, JSON.stringify(cart));\n bouncex.setBounceCookie();\n }\n }\n\n // custom items\n if (settings.url.indexOf('/add-to-cart') > -1 && settings.type === 'POST') {\n if (!cartOnReplen()) {\n fireATC(itemId, '');\n }\n }\n });\n\n bouncex.off(bouncex.document, 'click.customAtc');\n bouncex.et.on(bouncex.document, 'click.customAtc', function (e) {\n var clickedClass = jQuery(e.target).attr('class') || '';\n if (clickedClass.indexOf('addToBagButton') > -1) {\n fireATC(itemId, '');\n }\n });\n}\n\nfunction initCartImagesRtvChanges() {\n var cartItemsFromRtv = bouncex.parseJSON(bouncex.vars.cart_images, {}),\n $cartItems,\n newImages = {};\n\n bouncex.et.onTrue(function () {\n $cartItems = jQuery('.item-wrapper');\n return $cartItems.length;\n }, function () {\n $cartItems.each(function (i, el) {\n var $itemLink = jQuery(el).find('.item-image a'),\n itemId = getItemIdFromUrl($itemLink.attr('href')),\n // default to image on DOM if not in existing RTV\n itemImage = cartItemsFromRtv[itemId] || $itemLink.find('img').attr('src');\n if (itemId && itemImage) {\n newImages[itemId] = itemImage;\n }\n });\n\n bouncex.setv('cart_images', JSON.stringify(newImages));\n }, 5);\n}\n\nfunction initCartEvents() {\n bouncex.et.cart.init({\n replenishmentType: 'ajax',\n replenish: replenish,\n reportReplenishment: function () {\n var cart = this.getCart();\n var bx_cart = bouncex.utils.getParam('bx_cart');\n if (bx_cart) {\n try {\n cart = this.parseCartParam(bx_cart);\n } catch (e) {\n bouncex.err(e);\n }\n }\n\n var properties = {\n 'cart:replentype': this.replenishmentType\n };\n\n if (cart.ids) {\n properties['cart:ids'] = cart.ids;\n }\n\n if (cart.date) {\n properties['cart:date'] = cart.date;\n }\n\n if (cart.items) {\n properties['cart:items'] = JSON.stringify(cart.items);\n }\n\n if (cart.eid) {\n properties['cart:eventid'] = cart.eid;\n }\n\n if (bx_cart) {\n properties['cart:returncode'] = this.returnCode;\n properties['cart:count'] = this.getCount();\n\n if (this.returnCode > 0) {\n if (this.failureMessage) {\n properties['cart:failuremessage'] = this.failureMessage;\n }\n bouncex.push(['cart replenish abort', properties]);\n } else {\n bouncex.push(['cart replenish attempt', properties]);\n }\n\n } else if (this.replenishmentComplete) {\n\n /*\n * Sometimes the cartCount takes a bit to reflect the actual value, so we wait 1.1\n * seconds and grab the latest value\n */\n var reportReplenishmentComplete = function () {\n\n // report success if cart count is greater than 0\n properties['cart:success'] = this.replenishmentSuccessful();\n properties['cart:count'] = this.getCount();\n\n if (!properties['cart:success']) {\n this.setReplenishmentReportingStatus('BX_REPLEN_FAILURE');\n } else {\n this.setReplenishmentReportingStatus('BX_REPLEN_SUCCESS');\n }\n\n if (this.failureMessage) {\n properties['cart:failuremessage'] = this.failureMessage;\n }\n\n properties['cart:returncode'] = this.returnCode;\n\n bouncex.push(['cart replenish', properties]);\n };\n setTimeout(reportReplenishmentComplete.bind(this), 2000);\n }\n }\n });\n}\n\nfunction fireATC(itemId, cartData) {\n if (itemId) {\n bouncex.push([\n 'add to cart',\n {\n 'item:id': itemId,\n 'cart:item': cartData\n },\n ]);\n\n if (!bouncex.vars.cart_set) {\n bouncex.setv('cart_set', true);\n bouncex.setBounceCookie();\n }\n\n var prevImages = bouncex.parseJSON(bouncex.vars.cart_images, {}),\n lastViewedItem = bouncex.parseJSON(bouncex.vars.last_viewed_item, {}),\n lastViewedId = lastViewedItem.id,\n lastViewedImageUrl = lastViewedItem.imageUrl;\n if (lastViewedId === itemId && lastViewedImageUrl) {\n prevImages[lastViewedId] = lastViewedImageUrl;\n bouncex.setv('cart_images', JSON.stringify(prevImages));\n bouncex.setv('last_viewed_item', '{}');\n }\n }\n}\n\n/* ------------- LOGGED IN USER TRACKING ------------ */\nfunction trackLoggedInUser() {\n if (bouncex.vars.logged_in && !bouncex.vars.logged_in_identified) {\n var userEmail = jQuery('#field-view-email').text();\n if (bouncex.utils.validate.email(userEmail)) {\n bouncex.push([\n 'user',\n {\n email: userEmail,\n source: 'LoggedIn',\n },\n ]);\n bouncex.setBounceCookie();\n bouncex.setv('logged_in_identified', true);\n }\n }\n}\n","dge":true,"bxidLoadFirst":false,"pie":true,"cme":true,"gbi_enabled":0,"bpush":false,"pt":{"cart":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/cart"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www-local.oakley.com"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www.oakley.com/en-us/cart/paypalResponse\t"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www.oakley.com/en-us/cart/checkout\t"}]]},"category":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('window.utag_data.page_name', '').indexOf('/shop') > -1;"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('window.utag_data.page_name', '').indexOf('/collections') > -1;\n"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('window.utag_data.page_name', '').indexOf('category') > -1;"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('.product-lister-grid .isCarousel').length > 0"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('.product-tile').length > 0;"},{"activation":"js","prop":"","prop2":"","prop3":"","val":"document.querySelectorAll('.template-collectionspagetemplate').length > 0;"}],[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('window.utag_data.page_name') !== 'Homepage';"}]]},"checkout":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/checkout"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"/orderConfirmation"}]]},"home":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('window.utag_data.page_name') === 'Homepage';"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www-origin.oakley.com"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www-fix.oakley.com/"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www-origin-fix.oakley.com"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www-dev.oakley.com/en-us"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www-local.oakley.com"}],[{"activation":"current_page_url","prop":"not_contains","prop2":"","prop3":"","val":"www.oakley.com/en-us/search"}]]},"product":{"testmode":false,"val":[[{"activation":"js","prop":"","prop2":"","prop3":"","val":"bouncex.utils.getNestedProp('window.utag_data.page_name', '').indexOf('product') > -1;"}]]},"search":{"testmode":false,"val":[[{"activation":"current_page_url","prop":"contains","prop2":"","prop3":"","val":"/search?"}]]}},"els":null,"vars":[{"name":"logged_in","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('.logged-user').length > 0;","trigger":""},{"name":"ever_logged_in","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"bouncex.vars.logged_in || null;","trigger":""},{"name":"cart_qty","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"0","code":"Number(jQuery('.oo-hdr-cart-entries:first').text());","trigger":""},{"name":"cart_total","polling":"all","persist":"visit","page_types":[],"testmode":false,"default":"0","code":"(function(){\n\tif(bouncex.website.pts === 'cart'){\n\t\treturn jQuery('.emptycart:visible').length > 0 ? 0 : Number(jQuery('.subtotal-price').eq(0).text().replace(/[^0-9.]/g, ''));\n\t}\n\n\treturn Number(jQuery('.subtotal, [code=\"Order_Totals_Subtotal\"]').eq(0).text().replace(/[^0-9.]/g, '')) || null;\n})();","trigger":""},{"name":"prod_price","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"Number(jQuery('#salePrice, .price__number').eq(0).text().replace(/[^0-9.]/g, '')) || Number(jQuery('.fc-price').eq(0).text().replace(/[^0-9.]/g, ''));","trigger":""},{"name":"prod_name","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"jQuery('h1.product-name span').eq(0).text().trim().replace(/™/g, '') || jQuery('.fc-product-name').text().replace(/™/g, '');","trigger":""},{"name":"in_stock","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"jQuery('.email-me-available-modal:visible').length < 1;","trigger":""},{"name":"ibx_test","polling":"none","persist":"permanent","page_types":[],"testmode":true,"default":"false","code":"location.href.indexOf('ibx_test')>=0 || null;","trigger":""},{"name":"cart","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":""},{"name":"products_tracked","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":""},{"name":"cart_requested","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":""},{"name":"native_ecap_submitted","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"jQuery('.thanks_message:visible').length > 0 || null;","trigger":""},{"name":"country_tab","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"jQuery('#cs-select-country-label:visible').length > 0; ","trigger":""},{"name":"preprod_test","polling":"none","persist":"permanent","page_types":[],"testmode":true,"default":"false","code":"location.href.indexOf('preprod_test')>=0 || null;","trigger":""},{"name":"page_ready","polling":"all","persist":"no","page_types":[],"testmode":true,"default":"false","code":"(function() {\n /*determines if page is ready for campaigns. defaults to true unless on custom page (could add to this if needed)*/\n if (jQuery('body').hasClass('page-customproductpage') && typeof jQuery('.fc-display-image.carousel-active').first().find('img').attr('src') === 'undefined') {\n /* if we're on custom product page and image has not loaded yet*/\n return false;\n }\n \n return true;\n})();","trigger":"pageload"},{"name":"logged_in_identified","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"mini_cart_empty","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"Number(jQuery('.oo-hdr-cart-entries').text()) === 0;","trigger":"pageload"},{"name":"cart_set","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"added_cart_item","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"item_variant","polling":"all","persist":"no","page_types":["product"],"testmode":false,"default":"false","code":"jQuery('input[name=\\'productCodePost\\']').first().attr('value') ||bouncex.utils.url.getParam(\"variant\");","trigger":"pageload"},{"name":"submitted_onsite","polling":"all","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"jQuery('.footer-top-newsletter .thanks_message:visible').length > 0 || null;","trigger":"pageload"},{"name":"cart_coupon_copied","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"last_viewed_item","polling":"none","persist":"visit","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"cart_images","polling":"none","persist":"permanent","page_types":[],"testmode":false,"default":"false","code":"null;","trigger":"pageload"},{"name":"cookie_acceptance","polling":"all","persist":"no","page_types":[],"testmode":false,"default":"false","code":"(function() {\n var cookies = document.cookie.split(';');\n var consentValue = null;\n for (var i = 0; i < cookies.length; i++) {\n var cookie = cookies[i].trim();\n if (cookie.indexOf('CONSENTMGR=') === 0) {\n consentValue = decodeURIComponent(cookie.substring('CONSENTMGR='.length));\n break;\n }\n }\n\n if (consentValue) {\n var parts = consentValue.split('|');\n for (var j = 0; j < parts.length; j++) {\n if (parts[j].indexOf('consent:') === 0) {\n var consentPart = parts[j].split(':');\n return consentPart[1] === 'true';\n }\n }\n }\n return false;\n})();","trigger":"pageload"}],"dgu":"pixel.cdnwidget.com","dgp":false,"ba":{"enabled":0,"fbte":0},"biu":"assets.bounceexchange.com","bau":"api.bounceexchange.com","beu":"events.bouncex.net","ibx":{"tjs":"","cjs":"","miw":0,"mibcx":1,"te":1,"cart_rep":{"get":"","set":""},"ulpj":{"bxid":"espemailid"},"cus":"","miw_exclude":"","enabled":1},"etjson":null,"osre":true,"osru":"osr.bounceexchange.com/v1/osr/items","checkDfp":false,"gamNetwork":"","spa":0,"spatm":1,"preinit_cjs":"","crs":{"integrations":null,"pageCount":null},"mat":0,"math":0,"cpnu":"coupons.bounceexchange.com","dfpcms":0,"sms":{"optm":"","eventSharing":false,"shqId":"","enabled":0},"pde":true,"fmc":["US"],"fme":true,"fmx":"","sdk":{"android":{"enabled":false,"enabledVersions":[],"eventModifications":null},"ios":{"enabled":false,"enabledVersions":[],"eventModifications":null}},"onsite":{"enabled":1},"ads":{"enabled":0},"pubs":{"enabled":0},"websdk":{"enabled":0},"ga4_property_id":"","ga4_measurement_id":""} ; bouncex.tag = 'tag3'; bouncex.$ = window.jQuery; bouncex.env = 'production'; bouncex.restrictedTlds = {"casl":{"ca":1},"gdpr":{"ad":1,"al":1,"at":1,"ax":1,"ba":1,"be":1,"bg":1,"by":1,"xn--90ais":1,"ch":1,"cy":1,"cz":1,"de":1,"dk":1,"ee":1,"es":1,"eu":1,"fi":1,"fo":1,"fr":1,"uk":1,"gb":1,"gg":1,"gi":1,"gr":1,"hr":1,"hu":1,"ie":1,"im":1,"is":1,"it":1,"je":1,"li":1,"lt":1,"lu":1,"lv":1,"mc":1,"md":1,"me":1,"mk":1,"xn--d1al":1,"mt":1,"nl":1,"no":1,"pl":1,"pt":1,"ro":1,"rs":1,"xn--90a3ac":1,"ru":1,"su":1,"xn--p1ai":1,"se":1,"si":1,"sj":1,"sk":1,"sm":1,"ua":1,"xn--j1amh":1,"va":1,"tr":1}}; bouncex.client = { supportsBrotli: 0 }; bouncex.assets = {"ads":"0109586821763416266dd874f087ef69","creativesBaseStyles":"a53944a2","inbox":"749c9ccd613f1a40075d1e7b59caea42","onsite":"0e56ab6ba004ee080ce3deb3edae35e9","sms":"e39203556bab2366e56296ce42e974a7","websdk":"0704dae1eb637cbeb4a847506058402d"}; bouncex.push = function(pushData) { bouncex.pushedData.push(pushData); } var runtime = document.createElement('script'); runtime.setAttribute('src', '//assets.bounceexchange.com/assets/smart-tag/versioned/runtime_6459738026535cda4232dc813c61447d.js'); runtime.setAttribute('async', 'async'); runtime.setAttribute('onload', 'bouncex.initializeTag()'); bouncex.initializeTag = function() { var script = document.createElement('script'); script.setAttribute('src', '//assets.bounceexchange.com/assets/smart-tag/versioned/main-v2_f63930b37a25405c0fe14c50976210bb.js'); script.setAttribute('async', 'async'); document.body.appendChild(script); var deviceGraphScript = document.createElement('script'); deviceGraphScript.setAttribute('src', '//assets.bounceexchange.com/assets/smart-tag/versioned/cjs_min_3a843477d8e318f67237a66d0a58c542.js'); deviceGraphScript.setAttribute('async', 'async'); var dgAttrs = [{"Key":"id","Value":"c.js"},{"Key":"async","Value":"true"},{"Key":"data-apikey","Value":"2^HIykD"},{"Key":"data-cb","Value":"bouncex.dg.initPostDeviceGraph"},{"Key":"data-bx","Value":"1"},{"Key":"data-gm","Value":"1"},{"Key":"data-fire","Value":"1"}]; if (dgAttrs) { for (var i = 0; i < dgAttrs.length; i++) { deviceGraphScript.setAttribute(dgAttrs[i].Key, dgAttrs[i].Value); } } document.body.appendChild(deviceGraphScript); bouncex.initializeTag = function() {}; }; document.body.appendChild(runtime); } } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", bxBootstrap); } else { bxBootstrap(); }})();