define(['jquery','underscore','domReady!'],function(jQuery,_){'use strict';jQuery.widget('bss.category_label',{_create:function(){var self=this,selector=".product-image-container";if(this.options.selector)selector=this.options.selector;jQuery('body').on('click','[class^=swatch-opt-] .swatch-option',function(){var parent=jQuery(this).closest('[class^=swatch-opt-]');if(parent.find('.selected').length>0){self.activeChildLabel(parent);}else{self.activeLabel(parent);}});function appendLabel(){jQuery('.bss-label-productlist').each(function(index){if(jQuery('.catalog-product-compare-index').length||jQuery('.catalog-product_compare-index').length){jQuery(this).closest('td').find(selector).append(jQuery(this));} if(jQuery('.checkout-cart-index').length){jQuery(this).parents('.cart.item').find(selector).append(jQuery(this));} jQuery(this).closest('.product-item').find(selector).append(jQuery(this));});jQuery(selector).css('position','relative');jQuery(selector).find('.bss-label-productlist').show();} jQuery(document).ready(function(){appendLabel();});jQuery('body').on('contentUpdated',function(){appendLabel();});jQuery(document).ajaxSuccess(function(event,request,settings){if(settings.url.indexOf("wishlist")>0){appendLabel();}});},activeChildLabel:function(wrapper){var self=this;var selected_options={};wrapper.find('div.swatch-attribute').each(function(k,v){var attribute_id=self.getAttrValue(jQuery(v),'attribute-id');var option_selected=self.getAttrValue(jQuery(v),'option-selected');if(!attribute_id||!option_selected){return;} selected_options[attribute_id]=option_selected;});var product_id_index=wrapper.data('mageSwatchRenderer').options.jsonConfig.index;var found_id=null;jQuery.each(product_id_index,function(product_id,attributes){var productIsSelected=function(attributes,selected_options){return _.isEqual(attributes,selected_options);};if(productIsSelected(attributes,selected_options)){found_id=product_id;}});self.activeLabel(wrapper,found_id);},activeLabel:function(refElement,product_id){if(refElement!=null){var productWrapper=refElement.closest('.product-item-info');productWrapper.find('.label-image').hide();productWrapper.find('.label-image').attr('data-display','none');if(product_id!=null||typeof product_id!='undefined'){var query='data-product-id='+product_id;productWrapper.find('.label-image['+query+']').fadeIn('fast');productWrapper.find('.label-image['+query+']').attr('data-display','block');}else{productWrapper.find('.label-image[is-main-product="true"]').fadeIn('fast');productWrapper.find('.label-image[is-main-product="true"]').attr('data-display','block');}}},getAttrValue:function($elem,attrCode){if($elem.attr(attrCode)){return $elem.attr(attrCode);} return $elem.attr('data-'+attrCode);}});return jQuery.bss.category_label;});