var prodcat = prodcat || {}; (function (site, $) { Drupal.behaviors.analyticsSkuChange = { sppSelectedSkuBaseId: '', sppProductId: '', gridItemSelectedSkuId: '', attach: function (context) { var self = this; function populateSkuDetails(skuData) { var skuObj = { 'product_sku': [skuData.SKU_ID], 'product_id': [skuData.PRODUCT_ID], 'product_product_code': [skuData.PRODUCT_CODE], 'product_price': [skuData.PRICE.toString()] }; if (skuData.SHADENAME !== '' && skuData.SHADENAME !== null) { skuObj.product_shade = [skuData.SHADENAME]; } if (skuData.PRODUCT_SIZE !== '' && skuData.PRODUCT_SIZE !== null) { skuObj.product_size = [skuData.PRODUCT_SIZE]; } return skuObj; } if (site && site.track && site.track.evtLink) { $(document).on('product.skuSelect', '.js-product-ui, .js-product', function (event, skuBaseId) { if (prodcat && prodcat.data) { var skuData = prodcat.data.getSku(skuBaseId); var prodData = {}; var isTrackableEvent = $.cookie('isTrackableEvent') !== 'false'; if (!skuData || skuData.PRODUCT_ID === undefined) { return; } var productId = skuData.PRODUCT_ID.toString(); var skuObj = populateSkuDetails(skuData); prodData = (prodcat.data.getProduct) ? prodcat.data.getProduct(productId) : {}; if (!_.isEmpty(prodData)) { skuObj.product_name = [prodData.PROD_RGN_NAME]; skuObj.product_category = [(prodData.DEFAULT_CAT_ID)?.replace(/\D/g, '')]; skuObj.product_base_id = [prodData.PROD_BASE_ID]; skuObj.product_url = [prodData.url]; } if ($('body').hasClass('section-product') && !$(event.target).hasClass('js-quickshop-launch-overlay') && !$(event.target).hasClass('js-quickshop') && !$(event.target).hasClass('js-access-content-expanded') && !$(event.target).hasClass('js-product_teaser')) { if (self.sppSelectedSkuBaseId === '' && !$(event.target).hasClass('js-product-brief')) { self.sppSelectedSkuBaseId = skuBaseId; self.sppProductId = productId; site.trackingDataLayer.update(skuObj); } else if (self.sppSelectedSkuBaseId !== skuBaseId && self.sppProductId === productId) { site.trackingDataLayer.update(skuObj); isTrackableEvent && site.track.skuChange(skuObj); self.sppSelectedSkuBaseId = skuBaseId; } else if (self.sppSelectedSkuBaseId !== skuBaseId) { self.gridItemSelectedSkuId = skuBaseId; isTrackableEvent && site.track.skuChange(skuObj); } } else if (self.gridItemSelectedSkuId !== skuBaseId && ($(event.delegateTarget.activeElement).hasClass('active') || $(event.delegateTarget.activeElement).hasClass('selected') || $(event.delegateTarget.activeElement).hasClass('js-select-box-option') || $(event.delegateTarget.activeElement).hasClass('shade-active') || $(event.delegateTarget.activeElement).hasClass('SelectBox-active') || $(event.delegateTarget.activeElement).hasClass('js-product-brief-shades-item-link') || (!$(event.target).hasClass('js-quickshop') && $(event.delegateTarget.activeElement).hasClass('js-spp-link')) || $(event.delegateTarget.activeElement).hasClass('js-sku-list__button') || $(event.delegateTarget.activeElement).hasClass('selectBox-active') || $(event.delegateTarget.activeElement).hasClass('quickshop-inline-opened') || ($(event.delegateTarget.activeElement).hasClass('qs-overlay-cbox') && $('#cboxLoadedContent').find('.js-select-box-options.open').length > 0))) { isTrackableEvent && site.track.skuChange(skuObj); self.gridItemSelectedSkuId = skuBaseId; } } }); } } }; }(window.site || {}, jQuery));