var site=function(t,e,r,s,i){"use strict";function n(e,r,s){this.info=e,this.$element=s,this.data=r,this.rendered="",this.ui={$shadesMask:t(".shade-picker__colors-mask",this.$element)}}return n.prototype.modules={},n.prototype.attachDOM=function(){return this.bindEvents(),this.decorateModules(),this},n.prototype.bindEvents=function(){var e=this;return this.$element.on("product:render_sku",(function(t,e,r,s){})),this.$element.on("product:change_sku",(function(r,s,i){e.setState(s),e.$element.trigger("product:render_sku",[s,i]),t(window).trigger("macproMakeVisible")})),this.$element.on("product:change_shade",(function(t,r,s){e.setState(r),e.$element.trigger("product:change_sku",[r,s])})),this.$element.on("product:add_to_bag",(function(t,e,r){})),this.$element.on("product:add_to_faves",(function(t,e,r){})),this.$element.on("product:shade_picker_open_close",(function(t,e){})),this.$element.on("product:shade_picker_close",(function(t,e){})),this.$element.on("product:rpc_data_updated",(function(t){})),this},n.prototype.setState=function(t,e){var s=!!r.isUndefined(e)||e,i=r.extend(this.getState(),t);return s&&this.$element.data("product",i).attr("data-product",JSON.stringify(i)),this},n.prototype.getState=function(t){return r.isUndefined(t)?this.info:r.result(this.info,t)},n.prototype.setSkuDetails=function(t){var e=this,s=r.has(t,"sku")?r.result(t,"sku"):this.getState("sku");return e.data.SKU_ID=s,r.extend(e.data,e.findSkuObject(s)),this},n.prototype.updateData=function(t){var e,s=this;r.forEach(t.skus,(function(t){e=s.findSkuObject(t.SKU_ID),r.extend(e,t)})),r.extend(s.data,r.omit(t,"skus")),s.setState({rpc_complete:!0});var i=r.map(t.skus,"SKU_ID");return s.$element.trigger("product:rpc_data_updated",[i]),s},n.prototype.showInventoryInformation=function(){var t=["product--shoppable","product--not-shoppable","product--coming-soon","product--not-coming-soon","product--orderable","product--not-orderable","product--single-not-orderable","product--preorder"];r.each(r.range(1,8),(function(e){t.push("prod_inv_status-"+e)})),r.each(r.range(1,4),(function(e){t.push("prod_life_of_product-"+e)})),this.$element.removeClass(t.join(" "));var e=jQuery.grep(this.data.skus,(function(t){return 7==t.INVENTORY_STATUS}));(this.data.skus.length===e.length&&this.$element.addClass("all-shaded-sold-out"),this.info.sku)&&(r.find(this.data.skus,{SKU_ID:this.info.sku}).isPreOrder?(this.$element.addClass("product--preorder"),this.$element.removeClass("product--not-preorder")):(this.$element.addClass("product--not-preorder"),this.$element.removeClass("product--preorder")));this.$element.addClass(r.result(this.data,"isComingSoon")?"product--coming-soon":"product--not-coming-soon").addClass(r.result(this.data,"isOrderable")?"product--orderable":"product--not-orderable").addClass(r.result(this.data,"isShoppable")?"product--shoppable":"product--not-shoppable").addClass("prod_inv_status-"+r.result(this.data,"INVENTORY_STATUS")).attr("data-inv-status",r.result(this.data,"INVENTORY_STATUS")),r.result(this.data,"LIFE_OF_PRODUCT")&&this.$element.addClass("prod_life_of_product-"+r.result(this.data,"LIFE_OF_PRODUCT")),"product__shade-column"!=this.$element.find(".product__shade-column").attr("class")&&this.$element.hasClass("product--not-shoppable")&&this.$element.addClass("product--single-not-orderable")},n.prototype.render=function(i){r.isUndefined(i)&&(i=s.productApp.defaultTemplate),e.settings.hasOwnProperty("enable_power_reviews")&&(this.data.enable_power_reviews=e.settings.enable_power_reviews);var n=t(Mustache.render(s.productApp.templates[i],this.data,s.productApp.templates));return this.rendered=n,this},n.prototype.decorateDrupalBehaviors=function(){return e.attachBehaviors(this.rendered),this},n.prototype.place=function(e){var s={attachPoint:"#product-detail-attach"};return r.extend(s,e),t(s.attachPoint.toString(),this.$element).html(this.rendered),this},n.prototype.decorateModules=function(){var t=this;return r.forEach(this.modules,(function(e){e.call(t,t,t.$element)})),this},n.prototype.findSkuObject=function(t){return r.isEmpty(this.data.skus)?{SKU_ID:null}:r.isUndefined(t)?r.first(this.data.skus):"all"===t?this.data.skus:r.find(this.findSkuObject("all"),"SKU_ID",t)},n.prototype.findProductObject=function(t){return r.isEmpty(this.data)?{PRODUCT_ID:null}:r.isUndefined(t)?r.first(this.data):"all"===t?this.data:r.find(this.findProductObject("all"),"PRODUCT_ID",t)},n.prototype.filterSkusByAttribute=function(t,e){if(!r.isEmpty(e)){var s,i=r.map(e,(function(t){return t.toString().toLowerCase()}));return r.filter(this.findSkuObject("all"),(function(e){var n=r.result(e,t,!1);return!(!n||r.isNull(n))&&r.some(i,(function(t){return null!=(s=t.match(n.toString().toLowerCase().trim()))&&t==s[0]}))}))}},n.prototype.filterProductsByAttribute=function(e,s){if(!r.isEmpty(s)){var i=this.data[e]||null;if(!i||r.isNull(i))return!1;var n,o=r.map(s,(function(t){return t.toString().toLowerCase()}));i=i.split(",");for(var a=0;a=0?1:0;if(1==u)break}return!!u&&this}},n.prototype.hideProductDOM=function(t){r.isEmpty(t)?this.$element.removeClass("js-product-visibility--show").addClass("js-product-visibility--hide js-filtered-product"):this.$element.parents(t).removeClass("js-product-visibility--show").addClass("js-product-visibility--hide js-filtered-product")},n.prototype.showProductDOM=function(t){r.isEmpty(t)?this.$element.removeClass("js-product-visibility--hide js-filtered-product").addClass("js-product-visibility--show"):this.$element.parents(t).removeClass("js-product-visibility--hide js-filtered-product").addClass("js-product-visibility--show")},n.prototype.isShaded=function(){return!!r.parseInt(r.result(this.data,"shaded"))},n.prototype.hexRGB=function(t){return function(t){t=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(t,e,r,s){return e+e+r+r+s+s}));var e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null}(r.isUndefined(t)?r.result(this.findSkuObject(this.getState("sku")),"HEX_VALUE_STRING"):t)},n.prototype.getDefaultSkuObject=function(){var t=r.result(this.data,"defaultSku.SKU_ID");return this.findSkuObject(t)},n.prototype.getFirstShoppableSkuObject=function(){var t=this.getDefaultSkuObject();if(r.result(t,"isShoppable"))return t;var e=r.find(this.findSkuObject("all"),"isShoppable");return r.isUndefined(e)?t:e},n.prototype.getProSkuObject=function(){var t=this.getDefaultSkuObject();if(1==r.result(t,"PRO_FLAG")){var e=r.find(this.findSkuObject("all"),"PRO_FLAG",0);return r.isUndefined(e)?t:e}return t},n.prototype.prouctIsShoppable=function(){return!!r.parseInt(r.result(this.data,"isShoppable"))},n.prototype.productIsOrderable=function(){return!!r.parseInt(r.result(this.data,"isOrderable"))},n.prototype.prouctBadge=function(){var t=this.getDefaultSkuObject();return r.result(t,"MISC_FLAG_TEXT")},n.prototype.getReleaseDate=function(t){var e=null;if(t.RELEASE_DATE){var r=""+t.RELEASE_DATE;if(r.match(/^\d{6}$/)){e=new Date;var s=parseInt("20"+r.substr(0,2)),i=parseInt(r.substr(2,2))-1,n=parseInt(r.substr(4,2));e.setFullYear(s,i,n)}}return e},n.prototype.testPreOrderSku=function(t){var e=0,s=function(t){return r.isDate(t)?(t.setMinutes(0),t.setHours(0),t.setMilliseconds(0),t.setSeconds(0),t):null},i=t.responseDate?new Date(t.responseDate):new Date,n=this.getReleaseDate(t)||new Date(i);i=s(i),n=s(n);var o=15==t.MISC_FLAG;return r.isDate(i)&&r.isDate(n)&&o&&i.getTime()"+eval("skuInfo.ILN_LISTING_"+count)+"":"";return""==ingredientContent?($(".product__ingredients-spp").hide(),$(".product__description--ingredients").hide()):$(".product__ingredients-spp").length>0&&site.client.isMobile?($(".product__ingredients-spp").show(),$(".product__ingredients-spp .expando-block__content").html(ingredientContent)):$(".product__description--ingredients").show(),ingredientContent},Product.prototype.modules.productShadeRoute=function(e,t){if(t.hasClass("product--full")){var o,s=function(o){var s=d(o);e.setState({sku:s}),t.trigger("product:change_shade",[{sku:s}])};Router({"/shade/:shadeName":s}).init();var r,a,i=(r=new RegExp("[?&]"+"shade"+"=([^&#]*)").exec(window.location.href),a=null,r&&(a=decodeURI(r[1])||0),a);i&&d(i),document.referrer.length>0&&window.addEventListener("load",(function(){setTimeout((function(){window.addEventListener("popstate",(function(e){e.target.location.hash.match(/^#BVRR/)||null==e.state||(window.location=document.referrer)}))}),0)})),t.on("product:change_shade",(function(t,r,a){if(!1!==site.productApp.initialShadeInit){var i;Product.prototype.sppAutoReplenishment(),i=e.data.SHADENAME.toString().split(" ").join("_"),o=encodeURIComponent(i).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16)})),history.replaceState({},e.data.SHADENAME,"?shade="+o);var d=$('meta[property*="og"]');d.filter('meta[property="og:image"]').attr("content",window.location.origin+e.data.LARGE_IMAGE[0]),d.filter('meta[property="og:price:amount"]').attr("content",e.data.PRICE),d.filter('meta[property="og:url"]').attr("content",window.location.href),1===e.data.shaded&&d.filter('meta[property="og:title"]').attr("content",e.data.PROD_RGN_NAME+" - "+e.data.SHADENAME)}else if(site.productApp.initialShadeInit=!0,site.productApp.initialShadeRoute)s(site.productApp.initialShadeRoute);else{var n=e.filterSkusByAttribute("DEFAULT_SKU","1");_.result(n[0],"isShoppable")&&s(n[0].SHADENAME)}}))}function d(t){o=decodeURIComponent(t).split("_").join(" ");var s=e.filterSkusByAttribute("SHADENAME",[o]);return skuId=s.length?s[0].SKU_ID:skuId}},Product.prototype.modules.backendVarsOnFrontend=function(e,t){e.data.mac_product_layout={},e.data.mac_img_alts={},t.hasClass("product--shadegrid")&&(e.data.use_shade_grid=!0,e.data.mac_product_layout.shadegrid=!0),t.hasClass("product--teaser")&&(e.data.mac_product_layout.product_teaser=!0),t.hasClass("product--full")&&(e.data.mac_product_layout.product_full=!0),t.hasClass("product--spp-3img")&&(e.data.mac_img_alts.alt_3up=!0),t.hasClass("product--teaser-alt")&&(e.data.mac_img_alts.has_medium_alt=!0),t.hasClass("product--collection-dual")&&(e.data.mac_product_layout.dual_product_layout=!0),t.hasClass("product--remove-sortby")&&(e.data.mac_product_layout.remove_sort_by=!0),t.hasClass("product--filters-complex")&&(e.data.filters_complex=!0),t.data("custom-label")&&(e.data.custom_cta_label=t.data("custom-label")),t.hasClass("product--teaser--tiny")&&(e.data.tiny_teaser=!0),t.hasClass("product--defaultSku")&&(e.data.defaultSku=!0)},Product.prototype.modules.productDetails=function(e,t){1==$("#results-container").length&&t.hasClass("product--shaded")&&e.showInventoryInformation(),t.filter(":not(.product-brief-v2)").on("product:render_sku",(function(o,s,r,a){e.setState({rendered:!0}),e.setSkuDetails(s).render(r).place(a),site.productApp.isRestricted(t,e.findSkuObject(s.sku)),t.hasClass("product--shadegrid")&&1===e.data.MISC_FLAG&&$('').html(site.translations.product.sppprod_new_label).prependTo(".product__product-details-shade-description"),t.hasClass("product--full")&&$(".js-shade-trigger img",t).each((function(){var e=$(this).attr("data-src");$(this).attr("src",e)})),t.find(".js-shipping-overlay").once().click((function(){return $(window).trigger("window:show_shipping_overlay"),!1})),$(".product__footer .js-add-to-bag",t).html(site.translations.product.add_to_bag);var i=_.find(e.data.skus,{SKU_ID:e.info.sku});if(Drupal.settings.globals_variables.display_ingredients&&"undefined"!==Drupal.settings.globals_variables.display_ingredients&&($(".product__ingredients-spp").length>0||$(".product__description--ingredients").length>0)&&(i&&(null!=i.ILN_LISTING_1||i&&null!=i.ILN_LISTING)&&(Product.prototype.ingredientsDisplay(i),ingredientsFlag=1),$(".product__description--ingredients").click((function(){var t=e.findSkuObject($.parseJSON($(".product__add-to-bag").attr("data-product")).sku);if(t){var o=Product.prototype.ingredientsDisplay(t);o="

"+e.data.globals.t.product.ingredients_title+"

"+"
"+o+"
",generic.overlay.launch({content:o,includeBackground:!0,includeCloseLink:!0,initialHeight:0,height:0,width:"50%",onComplete:function(){$(this).colorbox.resize()}})}}))),i){i.isPreOrder=e.testPreOrderSku(i);var d=function(e,t,o){var s=site.translations.product[t];s&&(s=s.replace(/::release_date::/,o),e.html(s))},n=$(".js-product__sticky-container .js-add-to-bag",t);if(i.isPreOrder){$(".product__footer .js-add-to-bag",t).html(site.translations.product.pre_order_btn),$(".js-product-add-to-bag",t).html(site.translations.product.pre_order_btn),n&&n.html(site.translations.product.pre_order_btn);var c=parseInt(site.translations.product.ship_days),l=Drupal.settings.globals_variables.preorder_date_format||"",u=e.getReleaseDate(i),p=new Date(u),h=u.getDate();isNaN(c)||(h+=c,p.setDate(h));var g=function(e){var t="",o=e.getFullYear(),s=("0"+(e.getMonth()+1)).slice(-2),r=("0"+e.getDate()).slice(-2);switch(l){case"YYYY/MM/DD":t=o+"/"+s+"/"+r;break;case"DD/MM":t=r+"/"+s;break;default:t=e.getMonth()+1,t+="/",t+=e.getDate()}return t},f=g(u),k=g(p);i.isShoppable?d($(".js-prod-preorder-desc",t),"sppprod_preorder_ships_by_desc",k):d($(".js-prod-preorder-desc",t),"mpp_preorder_non_shoppable_msg",f),d($(".js-inv-status-preorder-noshop",t),"preorder_noshop_msg",f),d($(".js-msg-preorder-shop",t),"mpp_preorder_shoppable_msg",k),d($(".js-msg-preorder-non-shop",t),"mpp_preorder_non_shoppable_msg",f),d($(".js-product-inventory-status--preorder",t),"mpp_preorder_shoppable_msg",f)}else $(".product__footer .js-add-to-bag",t).html(site.translations.product.add_to_bag),n&&n.html(site.translations.product.add_to_bag)}if(t.hasClass("product--sku-product")){var m=t.find(".product__shade-name > span").first().text();if(m){var v=decodeURIComponent($.trim(m)).split(" ").join("_"),b=t.find(".js-product__link-to-spp").attr("href").split("#")[0]+"?shade="+v;t.find(".js-product__link-to-spp").attr("href",b)}}0==ingredientsFlag&&($(".product__ingredients-spp").hide(),$(".product__description--ingredients").hide())}))},Product.prototype.modules.productAddToFavorites=function(e,t){t.on("product:render_sku",(function(e,o){Drupal.behaviors.favToolTips.attach(t.find(".product__detail"))}))},Product.prototype.modules.productUpdateShareLinks=function(e,t){if(t.hasClass("product--full")){t.on("focusin mouseover",prodShare,(function(){$(".js-product_social_links").addClass("share_show")})).on("focusout",".js-product_social_links > li:last-child",(function(){$(".js-product_social_links").removeClass("share_show")})).on("mouseout",prodShare,(function(){$(".js-product_social_links").removeClass("share_show")}));var o=function(e){Drupal.settings.globals_variables.loyalty_social_earning.includes(e)&&generic.jsonrpc.fetch({method:"user.recordSocialAction",params:[{action:"share",url:window.location.href,platform:e}]})},s=$(".product__share-wrapper--mobile .js-product__share-trigger","body"),r=$(".product__share-wrapper--mobile .product__social-links","body");s.on("click",(function(e){e.preventDefault(),r.toggle()}));var a=$(".product__share-wrapper--mobile .product__social-link--email","body"),i="mailto:?subject="+encodeURIComponent(e.data.PROD_RGN_NAME)+"&body="+encodeURIComponent(window.location.href);t.on("click keydown",".product__social-link--email",(function(e){var t=site.getKeycode(e);13!==t&&1!==t||(window.location.href=i)})),a.on("click",(function(){window.location.href=i}));var d=$(".product__share-wrapper--mobile .product__social-link--twitter","body"),n="https://twitter.com/share/?text="+(encodeURIComponent(e.data.PROD_RGN_NAME)+" %7C "+site.translations.product.mac_comsmetics_name+" %7C "+encodeURIComponent(site.translations.product.official_site))+"&url="+encodeURIComponent(window.location.href);t.on("click keydown",".product__social-link--twitter",(function(e){var t=site.getKeycode(e);13!==t&&1!==t||(window.open(n,"tweet","width=790, height=460"),Array.isArray(Drupal.settings.globals_variables.loyalty_social_earning)&&Drupal.settings.globals_variables.loyalty_social_earning.length&&o("twitter"))})),d.on("click",(function(){window.open(n,"tweet","width=790,height=460"),Array.isArray(Drupal.settings.globals_variables.loyalty_social_earning)&&Drupal.settings.globals_variables.loyalty_social_earning.length&&o("twitter")}));var c=$(".product__share-wrapper--mobile .product__social-link--facebook","body"),l=encodeURIComponent(e.data.PROD_RGN_NAME)+" %7C "+site.translations.product.mac_comsmetics_name+" %7C "+site.translations.product.official_site,u="https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(window.location.href)+"&t="+l;t.on("click keydown",".product__social-link--facebook",(function(e){var t=site.getKeycode(e);13!==t&&1!==t||(window.open(u,"facebook_share","width=790, height=460"),Array.isArray(Drupal.settings.globals_variables.loyalty_social_earning)&&Drupal.settings.globals_variables.loyalty_social_earning.length&&o("facebook"))})),c.on("click",(function(){window.open(u,"facebook_share","width=790,height=460"),Array.isArray(Drupal.settings.globals_variables.loyalty_social_earning)&&Drupal.settings.globals_variables.loyalty_social_earning.length&&o("facebook")}));var p=$(".product__share-wrapper--mobile .product__social-link--pinterest","body"),h="";t.on("product:change_sku",(function(t,o){var s=encodeURIComponent(window.location.href),r=encodeURIComponent(window.location.origin+$(".product__sku-image").attr("src")),a=site.translations.product.mac_comsmetics_name+encodeURIComponent(": "+e.data.PROD_RGN_NAME+" in "+e.data.SHADENAME);h="https://www.pinterest.com/pin/create/button/?url="+s+"&media="+r+"&description="+a})),t.on("click keydown",".product__social-link--pinterest",(function(e){var t=site.getKeycode(e);13!==t&&1!==t||(window.open(h,"pinterest","width=790, height=592"),Array.isArray(Drupal.settings.globals_variables.loyalty_social_earning)&&Drupal.settings.globals_variables.loyalty_social_earning.length&&o("pinterest"))})),p.on("click",(function(){window.open(h,"pinterest","width=790,height=460"),Array.isArray(Drupal.settings.globals_variables.loyalty_social_earning)&&Drupal.settings.globals_variables.loyalty_social_earning.length&&o("pinterest")}))}},Product.prototype.modules.productAddToBag=function(e,t){t.hasClass("product--sku-product")&&t.attr("data-sku-teaser")?t.on("click",".js-add-to-bag",(function(o){o.preventDefault();var s=t.parent().data("sku-target"),r=s?e.findSkuObject(s):e.getDefaultSkuObject(),a=_.result(r,"SKU_BASE_ID");e.setState({SKU_BASE_ID:a}),prodcat.ui.addToCart({skuBaseId:a})})):t.on("click",".js-add-to-bag",(function(t){t.preventDefault();var o=$(this).data("product").sku,s=o?e.findSkuObject(o):e.getDefaultSkuObject(),r=_.result(s,"SKU_BASE_ID");e.setState({SKU_BASE_ID:r}),prodcat.ui.addToCart({skuBaseId:r})}))},Product.prototype.modules.translations=function(e,t){e.data.globals={t:site.translations}},Product.prototype.modules.variables=function(e,t){e.data.globals.variables=Drupal.settings.globals_variables||{}},Product.prototype.modules.sppUltraWidePositioning=function(e,t){t.hasClass("product--full")&&(t.on("product:update_positioning",(function(){var e,o=$(".product__images",t),s=$(".product-carousel__slides",t),r=0,a=s.find(".product-full__img"),i=a.length;!0===Modernizr.mq("(min-width: 1023px)")?($("body").addClass("page--spp-ultra-wide"),$(".product__header",t).length>0&&(e=site.direction.isRTL?$(window).width()-parseInt($(".product__header",t).outerWidth(!0),10)-1:parseInt($(".product__header",t).offset().left,10),$("body, html").removeClass("noscroll").removeClass("fixedpos"),e>0&&(o.css("width",e),0===$(".product-full__3up-images").length&&(s.hasClass("slick-initialized")&&(r=s.slickCurrentSlide()),a.css("width",e),s.hasClass("slick-initialized")&&(s.find(".slick-track").css("width",e*i),s.slickGoTo(r,!0)))),Product.prototype.modulesimageBackgroundURl())):($("body").removeClass("page--spp-ultra-wide"),o.css("width","100%"),a.css("width","100%"),s.hasClass("slick-initialized")&&t.trigger("product:update_carousel",[t]))})),$(window).resize(_.debounce((function(){t.trigger("product:update_positioning",[t])}),150)).resize(),t.on("product:render_sku",(function(e,o,s,r){t.trigger("product:update_positioning",[t])})))},Product.prototype.modules.sppCarousel=function(e,t){t.hasClass("product--full")&&(t.on("product:update_carousel",(function(o,s,r,a){var i=e.data.VIDEO_NAME,d=$(".js-prod-level-video").length;if(i&&i.length>0&&0===d&&$.each(i,(function(t,o){if(i[t]&&-1===i[t].indexOf(".")){var s="//www.youtube.com/embed/"+i[t]+"?autoplay=1&rel=0&showinfo=0",r="/media/export/cms/products/640x600/mac_video_"+e.data.PROD_BASE_ID+"_640x600_"+t+".jpg",a=$("",{class:"video-launcher",href:s,html:''+e.data.PROD_RGN_NAME+''}),d=$("
",{class:"carousel-slide product-full__img product-full__video js-prod-level-video",html:a}).attr("data-thumb",r).attr("data-video",s);$(".js-product-carousel-slides").append(d),site.client.isMobile?$(".video-launcher").colorbox({iframe:!0,fixed:!0,width:"100%",height:"100%",className:"overlay__alt-video",close:''}):$(".video-launcher").click((function(e){e.preventDefault();var t=$(this).attr("href"),o=$(".js-product-thumb-image").width(),s=$(".js-product-thumb-image").height();$(this).html('')}))}})),$(".product-full__img",t).length>1){var n=$(".product-carousel__slides",t),c=site.direction.isRTL&&Drupal?.settings?.forceSlickRTL,l=!c,u=l,p=t.hasClass("product--shadegrid"),h={rtl:c,swipe:l,draggable:u,dots:!p,slidesToShow:1,slidesToScroll:1,accessibility:!1,arrows:p,infinite:!1,appendDots:$(".product__images",t),onAfterChange:function(){var t=n.find(".slick-active").attr("index");$(".js-slick-thumbs").removeClass("slick-current"),$('.js-slick-thumbs[index="'+t+'"]').addClass("slick-current"),$(".slick-slide.slick-active").hasClass("js-prod-level-video")||e.initZoom()}};t.hasClass("product--shadegrid")&&(h.onInit=function(e){e.$slides.find();var o=e.$slides.find(".js-product-thumb-image"),s=$(".product__images",t).find(".slider-nav");if(e.$slides&&0===s.length){var r=$("
",{class:"slider-nav"});$(".product__images").append(r);for(var a=e.slideCount,i=0;i",{class:"thumb-image-slick js-slick-thumbs",html:''});$(".slider-nav",t).append(n)}$(".js-slick-thumbs").removeClass("slick-current"),$(".js-slick-thumbs.slick-active").first().addClass("slick-current")}}),n.unslick().slick(h);var _=$(".slider-nav",t),g=$(".js-slick-thumbs",t);if(_.slick({slidesToShow:5,slidesToScroll:1,focusOnSelect:!0,infinite:!1,arrows:!0,responsive:[{breakpoint:1024,settings:{slidesToShow:3}}]}),g.off().on("click",(function(){n.slickGoTo($(this).attr("index")),g.removeClass("slick-current"),$(this).addClass("slick-current")})),n.on("click","button",(function(){$(this).hasClass("slick-prev")?_.find(".slick-prev").trigger("click"):_.find(".slick-next").trigger("click")})),!0===Modernizr.mq("(max-width: 1022px)"))$(".product-full__3up-images",t).unslick().slick({rtl:c,swipe:l,draggable:u,dots:!0,slidesToShow:1,slidesToScroll:1,arrows:!1,accessibility:!1,appendDots:$(".product__images",t)})}e.initZoom()})),t.on("product:change_sku",(function(e,o,s,r){t.trigger("product:update_carousel",[t])})))},Product.prototype.modules.shadePicker=function(e,t){if(t.hasClass("product--shaded")&&!t.hasClass("product--shadegrid"))if(t.on("click",".js-shade-picker__color",(function(o){if(0===$(o.target).parents(".shade-picker__color-actions").length&&!$(this).hasClass("shade-picker__color--selected")){if(t.hasClass("product--show-mobile-shade-column")){t.removeClass("product--show-mobile-shade-column"),$("body, html").removeClass("noscroll").removeClass("fixedpos"),$(".site-header__fixed-wrapper").removeClass("header-pos");var s=$(".site-header").height(),r=$(".product__footer",t).offset().top;$("body, html").scrollTop(r-s-15)}t.trigger("product:change_shade",[$(this).data("product")]),Drupal.settings.globals_variables.display_ingredients&&"undefined"!==Drupal.settings.globals_variables.display_ingredients&&($(".product__ingredients-spp").length>0||$(".product__description--ingredients").length>0)&&Product.prototype.ingredientsDisplay(e.findSkuObject($.parseJSON($(".product__add-to-bag").attr("data-product")).sku));var a=e.data.SHADENAME;if(a){var i=decodeURIComponent(a).split(" ").join("_"),d=$(this).data("product").prodid,n=$("#product--prod_id-"+d+":not(.product--sku-product)"),c=n.find(".js-product__link-to-spp").attr("href").split("#")[0]+"?shade="+i;n.find(".js-product__link-to-spp").attr("href",c)}}e.initZoom()})),t.on("keydown",".js-shade-picker__color",(function(e){13===site.getKeycode(e)&&$(this).trigger("click")})),t.on("keydown",".js-shade-picker-float",(function(e){var t=$(this),o=t.attr("aria-expanded");if(13===site.getKeycode(e)){var s=t.find(".js-shade-picker-float-colors-mask");"false"===o?(s.addClass("shades-dropdown-visibility"),t.attr("aria-expanded","true")):"true"===o&&(s.removeClass("shades-dropdown-visibility"),t.attr("aria-expanded","false"))}})),t.on("keydown",".js-shade-picker-float .js-shade-picker__color",(function(e){switch(site.getKeycode(e)){case 40:$(this).next().addClass("custom-outline").focus();break;case 38:$(this).prev().addClass("custom-outline").focus();break;case 13:$(this).trigger("click"),t.find(".js-shade-picker-float").focus()}$(this).removeClass("custom-outline")})),t.hasClass("product--full")){t.on("click",".js-trigger-mobile-shade-selector, .js-shade-picker__close, .device-mobile .js-shade-trigger",(function(e){e.preventDefault(),$(".shade-picker__color").hasClass("shade-picker__color--selected")&&Product.prototype.modulesimageBackgroundURl(),t.toggleClass("product--show-mobile-shade-column"),$("body, html").toggleClass("noscroll fixedpos"),$(".site-header__fixed-wrapper").toggleClass("header-pos")})),t.on("click",".js-shade-picker__close",(function(){$("body, html").removeClass("noscroll fixedpos")})),t.hasClass("product--show-mobile-shade-column")&&t.on("product:change_shade",(function(e,o,s){t.removeClass("product--show-mobile-shade-column"),$("body, html").removeClass("noscroll fixedpos")}));var o,s,r=(l=e.ui.$shadesMask.find(".shade-picker__color")).last(),a=l.index(r),i=0,d=180;t.hasClass("product--multishaded")&&(d=240),t.on("product:change_sku",(function(d,c,u){o=$(d.target).find(".shade-picker__color--"+e.getState("sku")),$(".product--shadegrid .shade-picker__color-texture").css("background-image",""),$(".shade-picker__color--selected").removeClass("shade-picker__color--selected"),o.addClass("shade-picker__color--selected"),t.hasClass("product--shadegrid")||(s=o.height(),i=l.index(o),o.hasClass("shade-picker__color--grid-item")||n(),r=o,a=i)}));var n=function(t,n){!0===Modernizr.mq("(min-width: 767px)")&&(r.animate({height:s},600),r.removeClass("shade-picker__color--selected").attr("aria-selected","false"),o.addClass("shade-picker__color--selected").attr("aria-selected","true"),o.animate({height:d},600),e.ui.$shadesMask.scrollTo(o,1e3,{offset:function(){if(i>a)return{top:-(d-s)}}}))}}else{var c=e.filterSkusByAttribute("DEFAULT_SKU","1");if(_.result(c[0],"isShoppable")){var l,u=c[0].SKU_ID;(l=e.ui.$shadesMask.find(".shade-picker__color")).filter(".shade-picker__color--"+u).trigger("click")}}},Product.prototype.modules.shadePickerNav=function(e,t){if(e.isShaded()&&!t.hasClass("product--shadegrid")){e.ui.$shadesMask=$(".shade-picker__colors-mask",t),e.ui.shadesHeight=$(".shade-picker__colors",t).height(),e.ui.itemHeight=$(".shade-picker__color:eq(0)",e.ui.$shadesMask).height(),e.ui.scrollItems=0;var o=_.debounce((function(){var o=$(this).scrollTop();t.removeClass("shade-picker--no-next-controls shade-picker--no-prev-controls"),0===o&&t.addClass("shade-picker--no-prev-controls"),o===e.ui.shadesHeight-e.ui.maskHeight&&t.addClass("shade-picker--no-next-controls")}),250);e.ui.$shadesMask.on("scroll",o);var s=function(o){e.ui.maskHeight=e.ui.$shadesMask.height(),e.ui.shadesHeight=$(".shade-picker__colors",t).height(),e.ui.scrollItems=Math.floor(e.ui.$shadesMask.scrollTop()/e.ui.itemHeight),"next"===o?e.ui.scrollItems+=Math.floor(e.ui.maskHeight/e.ui.itemHeight):e.ui.scrollItems-=Math.floor(e.ui.maskHeight/e.ui.itemHeight),e.ui.scrollItems=Math.max(0,e.ui.scrollItems),e.ui.$shadesMask.scrollTo($(".shade-picker__color:eq("+e.ui.scrollItems+")",e.ui.$shadesMask),500)};t.on("click",".shade-picker__next",(function(e){s("next")})),t.on("click",".shade-picker__previous",(function(e){s("previous")})),$(window).on("load",(function(){var e=$(".shade-picker__colors",t).height(),o=$(".shade-picker__colors-mask",t).height(),s=$(".shade-picker",t),r=$(".shade-picker__colors-mask",t),a=$(".shade-picker__controls-wrapper",t),i=$(".shade-picker__controls",a),d=$(".view-all-shades__wrapper",t);t.hasClass("product--full")&&e<=o?(s.addClass("close_icon_bg"),!0===Modernizr.touch?($(".shade-picker__controls.js-shade-picker__close").removeClass("hidden"),t.find(".js-shade-picker__previous .icon--arrow--up, .js-shade-picker__next").hide()):(i.hide(),d.hide())):(i.add(d).removeClass("hidden"),r.hasClass("js-colors-mask")&&r.removeClass("js-colors-mask"))}))}},Product.prototype.modules.shadePickerShowHide=function(e,t){if(t.hasClass("product--teaser")&&e.isShaded()){var o,s,r,a,i=[],d=[];if(e.ui.$shadesMask=e.ui.$shadesMask?e.ui.$shadesMask:$(".shade-picker__colors-mask",t),e.ui.shadesHeight=e.ui.shadesHeight?e.ui.shadesHeight:$(".shade-picker__colors",t).height(),e.ui.itemHeight=e.ui.itemHeight?e.ui.itemHeight:$(".shade-picker__color:eq(0)",e.ui.$shadesMask).height(),r=e.ui.shadesHeight+55,s=t.height()-90,o=s-85,t.hasClass("product--teaser")){var n=$(".shade-picker__colors",t);$(".js-shade-picker",t).addClass("js-elements-hidden");var c=$(".shade-picker__color",n).sort((function(e,t){var o=$(".shade-picker__color-name",e).text(),s=$(".shade-picker__color-name",t).text();return os?1:0}));$(n).append(c),$(window).on("l2_inv_status:updated",(function(){if($(".shade-picker__color[data-product]",n).each((function(){var t=e.findSkuObject($.parseJSON($(this).attr("data-product")).sku);e.testPreOrderSku(t)&&$(this).addClass("product--preorder"),$(this).addClass("prod_inv_status-"+t.INVENTORY_STATUS)})),!site.client.isMobile){var t=0,o=0;$(".shade-picker__color[data-product]",n).each((function(){t++,$(this).hasClass("prod_inv_status-7")&&o++,0!=t&&t==o?$(this).closest(".product.product--shaded").addClass("product--shop-shades-hidden"):$(this).closest(".product.product--shaded").removeClass("product--shop-shades-hidden")}))}}))}if(e.isShaded()){n=$(".shade-picker__colors",t);$(".shade-picker__color[data-product]",n).each((function(){var t=e.findSkuObject($.parseJSON($(this).attr("data-product")).sku),o=e.hexRGB(t.HEX_VALUE_STRING);_.isNull(o)||(299*o.r+587*o.g+114*o.b)/1e3>230&&$(this).addClass("shade-label--dark")}))}var l=function(){e.ui.maskHeight=e.ui.$shadesMask.height(),e.ui.$shadesMask.trigger("scroll")};e.setState({shadeOpen:!1}),t.on("click keydown",".js-shade-picker__trigger",(function(e){var o=site.getKeycode(e),s=t.find(".js-shade-picker__color"),r=t.find(".js-shade-picker"),a=$(this).attr("aria-expanded"),i=s.first();13!==o&&1!==o||(t.trigger("product:shade_picker_open_close"),t.hasClass("shade-picker--open")&&($(this).attr("aria-expanded","true"),t.find(".js-shade-picker").removeClass("js-elements-hidden"),s.attr("tabindex","0"),t.find(".js-shade-picker__close").attr("tabindex","0"),t.removeAttr("aria-live"))),9===o&&"true"===a&&(i.addClass("custom-outline").focus(),site.restrict_navigation(r))})),t.on("click keydown",".js-shade-picker__close",(function(e){var o=site.getKeycode(e);13!==o&&1!==o||($(".product").removeClass("shade-picker--open"),$(".shade-picker",$(".product--teaser")).animate({height:0},200),t.find(".js-shade-picker__color").removeAttr("tabindex"),$(this).removeAttr("tabindex"),t.find(".js-shade-picker__trigger").attr("aria-expanded","false").focus(),t.removeAttr("aria-live"),t.find(".js-shade-picker").addClass("js-elements-hidden"))})),t.hasClass("product--teaser")&&t.on("click",".js-shade-picker__color",(function(e){($(e.target).hasClass("shade-picker__color-action")||$(e.target).parents(".shade-picker__color-actions").length<1)&&($(".product").removeClass("shade-picker--open"),$(".shade-picker",$(".product--teaser")).animate({height:0},200)),t.find(".js-shade-picker__close").removeAttr("tabindex"),t.find(".js-shade-picker__color").removeAttr("tabindex"),t.find(":tabbable").filter(":last").focus(),t.find(".js-shade-picker").addClass("js-elements-hidden"),t.find(".js-shade-picker__trigger").attr("aria-expanded","false"),t.removeAttr("aria-live")})),t.on("product:shade_picker_open_close",(function(n){a=0,$(".shade-picker",$(".product--teaser")).animate({height:0},50),$(".product").removeClass("shade-picker--open"),e.setState({shadeOpen:!0}),t.addClass("shade-picker--open"),e.ui.shadesHeight=s?s-r:a,e.setState({sppShort:i>=s}),d.css("min-height",o),d.css("height",o)}),250);$(window).on("resize",n),$(document).ready(n)}},Product.prototype.modules.sppBarProductChange=function(e,t){t.hasClass("product--full")&&t.on("product:change_shade",(function(t,o){var s=$(".add-to-bag-bar",$(this)),r=$(".add-to-bag-bar__add-button-button",s),a=e.findSkuObject(_.result(o,"sku")),i=_.result(a,"HEX_VALUE_STRING"),d=(_.result(a,"INVENTORY_STATUS"),_.result(a,"SKU_ID"));if($(".add-to-bag-bar__shade-name",s).html(_.result(a,"SHADENAME")),$(".add-to-bag-bar__shade-desc",s).html(_.result(a,"SHADE_DESCRIPTION")),Drupal.settings.globals_variables.display_tax_price){var n=$(".add-to-bag-bar__price",s).attr("data-with-tax");$(".add-to-bag-bar__price",s).html(n+_.result(a,"formattedTaxedPrice"))}else $(".add-to-bag-bar__price",s).html(_.result(a,"formattedPrice"));r.data("product",{sku:d}),s.removeClass("shade-label--dark").css("background-color",i);var c=e.hexRGB(i);_.isNull(c)||(299*c.r+587*c.g+114*c.b)/1e3>200&&s.addClass("shade-label--dark")}))},Product.prototype.modules.shadePickerDropdown=function(e,t){if(t.hasClass("product--full")){if(t.hasClass("product--shadegrid"))return null;var o=t.find(".shade-picker-dropdown"),s=o.find("#js-shade-picker-dropdown--product-full"),r=o.find("#shade-picker-dropdown--product-full"),a=_.template('');s.html(_.map(_.sortBy(e.findSkuObject("all"),"SHADENAME"),(function(e){return a({id:_.result(e,"SKU_ID"),text:_.result(e,"SHADENAME")})})).join("")).select2({minimumResultsForSearch:-1}),r.html(_.map(_.sortBy(e.findSkuObject("all"),"SHADENAME"),(function(e){return a({id:_.result(e,"SKU_ID"),text:_.result(e,"SHADENAME")})})).join("")),t.on("product:change_shade",(function(t,o){s.val(e.getState("sku")).trigger("change"),Product.prototype.modulesimageBackgroundURl()})),t.on("product:change_shade",(function(t,o){r.val(e.getState("sku")).prop("selected",!0),Product.prototype.modulesimageBackgroundURl()})),s.on("click",(function(o){var s=$(this).select2("data").id,r=e.setState({sku:s}).getState();t.trigger("product:change_shade",[r]),e.initZoom()})),r.on("change",(function(o){var s=$(this).val(),r=e.setState({sku:s}).getState();t.trigger("product:change_shade",[r])}));var i=_.debounce((function(){var e,s=$(".product__footer",t);s.length>0&&(e=s.offset().top);var r,a=$(".product__detail",t);a.length>0&&(r=a.offset().top),e&&r&&o.css("top",e-r).removeClass("hidden")}),250);t.on("product:render_sku",i),$(window).resize(i)}},Product.prototype.modules.gridShadePicker=function(e,t){if(!t.hasClass("product--shadegrid")||!t.hasClass("product--full"))return null;t.on("product:render_sku",(function(t){s(e,$(t.target))}));var o={},s=function(e,t){var s=t.find(".js-shade-picker--v2").first().find("li.shade-picker__color"),r=t.find("li.shade-picker__color");o.facet||(o.skus=[],s.each((function(){o.skus.push({id:$(this).data("sku-id"),"misc-flag":$(this).data("misc-flag"),"color-family":$(this).data("color-family").toLowerCase()})}))),t.off("click","li.shade-picker__color"),t.on("click","li.shade-picker__color",(function(o){var s=$(this).data("sku-id"),r=e.setState({sku:s}).getState();t.trigger("product:change_shade",[r])})),t.off("keydown","li.js-shade-picker__color"),t.on("keydown","li.js-shade-picker__color",(function(e){13==site.getKeycode(e)&&$(this).trigger("click")}));var a=function(e,t){var o=t.sku;i(o)};t.off("product:change_shade",a),t.on("product:change_shade",a);var i=function(e){(r=t.find("li.shade-picker__color")).removeClass("shade-picker__color--selected"),r.find(".shade-picker__color-texture").css("background-image","none");var o=r.filter("[data-sku-id='"+e+"']");o.addClass("shade-picker__color--selected");var s=o.first().find(".shade-picker__color-texture").data("bg-image"),a=o.data("hex");t.find(".shade-picker__smoosh--active").css({backgroundImage:"url("+s+")",backgroundColor:a}),o.find(".shade-picker__color-texture").css("background-image","url("+s+")")},d=t.find(".js-shade-picker-sort--product-full");d.on("change",(function(){o.facet=$(this).val(),l($(this).val())}));var n=t.data("product").sku;i(n);var c=function(){t.find(".js-shade-picker--v2").each((function(){var e=$(this).find(".shade-picker__colors--grid");_.each(o.skus,(function(t,o){var s=e.find("[data-sku-id='"+t.id+"']");e.append(s)}))}))},l=function(e){!function(e){switch(e){case"ATTRIBUTE_COLOR_FAMILY":o.skus.sort((function(e,t){var o=e["color-family"],s=t["color-family"];return os?1:0}));break;case"BEST_SELLERS":o.skus.sort((function(e,t){return 30===parseInt(e["misc-flag"])?-1:1}));break;case"MISC_FLAG":o.skus.sort((function(e,t){return 1===parseInt(e["misc-flag"])?-1:1}))}}(e),c()};o.facet&&(d.val(o.facet),c())};s(e,t)},Product.prototype.modules.gridShadePickerDropdown=function(e,t){if(!t.hasClass("product--shadegrid")||!t.hasClass("product--full"))return null;function o(t){var o=t.find(".shade-picker-dropdown"),s=o.find("#js-shade-picker-dropdown--product-full"),r=s.val(),a=e.findSkuObject("all");a=_.sortBy(a,"SHADENAME"),_.each(a,(function(e,t){var o=s.find("option[value='"+e.SKU_ID+"']");s.append(o)})),e&&e.getState("sku")?s.val(e.getState("sku")):s.val(r),!1===Modernizr.touch&&s.select2({width:"100%",minimumResultsForSearch:-1}),s.on("change",(function(o){console.log($(this).val());var s=$(this).val(),r=e.setState({sku:s}).getState();t.trigger("product:change_shade",[r])})),!1===Modernizr.touch?o.find(".select2-choice").css({color:e.data.HEX_VALUE_STRING}):s.addClass("select-touch__chosen").css({color:e.data.HEX_VALUE_STRING})}t.on("product:render_sku",(function(e){o($(e.target))})),o(t)},Product.prototype.modules.sppShadeFilter=function(e,t){if(t.hasClass("product--full")&&e.isShaded()){var o="#filter-grid-switch",s=$(o,t);e.setState({shadeOverlay:!1}),$(window).on("l2_inv_status:updated",(function(){$(".fav--bag--buttons[data-product]",t).each((function(){var t=e.findSkuObject($.parseJSON($(this).attr("data-product")).sku);$(this).addClass("prod_inv_status-"+t.INVENTORY_STATUS)}))})),t.on("click",o,(function(o){if(r.removeClass("js-elements-hidden"),e.getState("shadeOverlay"))$(window).trigger("product:sppBar:up",[t.parent(".page--spp__product")]),$(window).trigger("product:sppBar:buttonBackRevert",[t.parent(".page--spp__product")]),t.removeClass("filter-grid-open"),$("html").css("overflow","auto");else{a.attr("aria-expanded","true"),$(window).trigger("product:sppBar:down",[t.parent(".page--spp__product")]),$(window).trigger("product:sppBar:buttonBack",[t.parent(".page--spp__product")]),t.find(".product__description-overlay-accordion").css("z-index","1"),t.addClass("filter-grid-open"),$("html").css("overflow","hidden");var s=t.find(".shade-picker-full__colors-mask.js-element-window-height");$(window).resize(_.debounce((function(){s.height($(window).height()-s.offset().top)}),300)).resize()}e.setState({shadeOverlay:!e.getState("shadeOverlay")}),r.removeClass("js-elements-hidden"),$(".js-shade-picker__color:first",r).focus(),site.restrict_navigation(r)}));var r=$(".js-product__sticky-container",t),a=$(".js-view-all-shades--desktop",t);a.on("keydown",(function(e){13===site.getKeycode(e)&&($(o).click(),$(this).attr("aria-expanded","true"),site.restrict_navigation(r))})),t.on("click",".add-to-bag-bar__up",(function(o){r.addClass("js-elements-hidden"),e.getState("shadeOverlay")&&($("html").css("overflow","auto"),s.attr("checked",!1),e.setState({shadeOverlay:!1}),$(window).trigger("product:sppBar:up",[t.parent(".page--spp__product")]),$(window).trigger("product:sppBar:buttonBackRevert",[t.parent(".page--spp__product")]),t.find(".product__description-overlay-accordion").animate({"z-index":"500"},500,(function(){t.trigger("product:update_positioning",[t])})),a.attr("aria-expanded","false").focus())})),t.on("keydown",".js-add-to-bag-bar__up",(function(e){13===site.getKeycode(e)&&($(this).trigger("click"),a.attr("aria-expanded","false").focus(),r.addClass("js-elements-hidden"))})),$(".shade-picker-filter-grid #reset","body").on("click",(function(e){$(".shade-picker-filter-grid").mixItUp("filter",".shade-picker__color"),$('.shade-picker-filter-grid--options input[type="checkbox"]',t).each((function(){$(this).prop("checked")&&$(this).trigger("click")}))}));var i="";$(".shade-picker-filter-grid--options .will-expand").bind("mouseover",(function(){if($(this).find("ul").length>0){$(this).addClass("hover"),$(".shade-picker-full__colors-mask").addClass("subnav-shift");var e=$(this).attr("class").split(" ")[0];i=e.substring(e.lastIndexOf("-")+1),$(".shade-picker-filter-grid").addClass(i)}})).bind("mouseout clickoutside",(function(){$(this).find("ul").length>0&&($(this).removeClass("hover"),$(".shade-picker-full__colors-mask").removeClass("subnav-shift"),$(".shade-picker-filter-grid").removeClass(i))}));var d=function(o){var s,r=$(o.data.filterOptionsSelector,t).filter(":checked").map((function(){var e=$(this).val();return e=e.replace(/-/g," ")})).get(),a=function(){var e=$('.shade-picker-filter-grid--filters--finish input[type="checkbox"]').filter(":checked").map((function(){var e=$(this).val();return(e=e.replace(/-/g," ")).toLowerCase().replace(/\b[a-z]/g,(function(e){return e.toUpperCase()}))})).get(),o=_.extend({},e);e.length>0&&$.each(o,(function(e,o){$('.shade-picker__color[data-finish*="'+o+'"]',t).removeClass("hidden-shade")})),0==e.length&&0==i.length&&$(".shade-picker__color").removeClass("hidden-shade")};if(r.length>0){s=e.filterSkusByAttribute(o.data.filterAttribute,r),$(".shade-picker__color").addClass("hidden-shade"),_.forEach(s,(function(e){$('.shade-picker__color[data-product*="'+e.SKU_ID+'"]',t).removeClass("hidden-shade")}));var i=$('.shade-picker-filter-grid--filters--color input[type="checkbox"]').filter(":checked").map((function(){var e=$(this).val();return e=e.replace(/-/g," ")})).get(),d=_.extend({},i);i.length>0&&$.each(d,(function(e,o){$('.shade-picker__color[data-color*="'+o+'"]',t).removeClass("hidden-shade")})),a(),$(o.data.filterSelector+" .check-count").text("("+s.length+")"),$(".shade-picker-filter-grid--filters--clear").addClass("is-active")}else{$(".shade-picker__color").addClass("hidden-shade");i=$('.shade-picker-filter-grid--filters--color input[type="checkbox"]').filter(":checked").map((function(){var e=$(this).val();return e=e.replace(/-/g," ")})).get();d=_.extend({},i),i.length>0&&$.each(d,(function(e,o){$('.shade-picker__color[data-color*="'+o+'"]',t).removeClass("hidden-shade")})),a();var n=$(o.data.filterSelector+" .check-count").attr("data-default-text");$(o.data.filterSelector+" .check-count").text(n),$(".shade-picker-filter-grid--filters--clear").removeClass("is-active")}$(".shade-picker-filter-grid").mixItUp("filter",".shade-picker__color:not(.hidden-shade)"),!0===Modernizr.touch&&/Mobi/.test(navigator.userAgent)&&$(".shade-picker-filter-grid--options .will-expand").trigger("mouseout")};$('.shade-picker-filter-grid--filters--finish input[type="checkbox"]',"body").on("change",{filterOptionsSelector:'.shade-picker-filter-grid--filters--finish input[type="checkbox"]',filterAttribute:"FINISH",filterSelector:".shade-picker-filter-grid--filters--finish"},d);$('.shade-picker-filter-grid--filters--color input[type="checkbox"]',"body").on("change",{filterOptionsSelector:'.shade-picker-filter-grid--filters--color input[type="checkbox"]',filterAttribute:"ATTRIBUTE_COLOR_FAMILY",filterSelector:".shade-picker-filter-grid--filters--color"},d)}},Product.prototype.modules.sppBar=function(e,t){if(t.hasClass("product--full")&&t.hasClass("product--shaded")){var o=t.parents(".page--spp__product");$(o).once("sppBar-scroll-once",(function(){var o=$(this);o.waypoint((function(t){if(!e.getState("shadeOverlay")){if("down"===t)return $(window).trigger("product:sppBar:down",[o]),!1;$(window).trigger("product:sppBar:up",[o]),$(window).trigger("product:sppBar:buttonBackRevert",[o])}}),{offset:function(){var e=$(".js-add-to-bag-bar__scroll-anchor",t);return e.length>0?-(e.offset().top-o.offset().top+e.height()-120):-300}}),$(window).on("product:sppBar:down",(function(e,t){parseInt(Unison.fetch.now().width,10)>=parseInt(Unison.fetch.all()["usn-medium"],10)&&$(".product__bag-bar",t).addClass("product__bag-bar--sticky")})),$(window).on("product:sppBar:up",(function(e,o){$(".product__bag-bar",o).removeClass("product__bag-bar--sticky"),t.removeClass("filter-grid-open")})),$(window).on("product:sppBar:buttonBack",(function(e,o){var s=$(".product__bag-bar",o).find(".add-to-bag-bar__up span").attr("data-back-text");$(".product__bag-bar",o).addClass("dismissal-back").addClass("product__bag-bar--left-arrow").find(".add-to-bag-bar__up span").text(s),t.removeClass("filter-grid-open")})),$(window).on("product:sppBar:buttonBackRevert",(function(e,t){$(".product__bag-bar",t).removeClass("dismissal-back");var o=setInterval((function(){clearInterval(o);var e=$(".product__bag-bar",t).find(".add-to-bag-bar__up span").attr("data-default-text");$(".product__bag-bar",t).removeClass("product__bag-bar--left-arrow").find(".add-to-bag-bar__up span").text(e)}),500)})),$(window).on("sidewideBanner:down",(function(){$(".product__bag-bar").addClass("product__bag-bar--sticky-banner-down")})),$(window).on("sidewideBanner:up",(function(){$(".product__bag-bar").removeClass("product__bag-bar--sticky-banner-down")}))}))}},Product.prototype.modules.checkInventory=function(e,t){t.on("product:render_sku",(function(s,r){e.showInventoryInformation(),(t.hasClass("prod_life_of_product-1")||t.hasClass("prod_life_of_product-3"))&&(t.hasClass("product--full")||$(".shop-the-collection")[0]||$(".collection-products__list")[0]||t.hasClass("product--teaser"))&&o()}));$("body").hasClass("device-mobile");var o=function(){var e;t[0].id&&(e=$("#"+t[0].id+" .js-shade-description-tooltip")),!e||e.length<1||e.each((function(){var e=$(this);if(e&&!e.hasClass("tooltipstered")&&e.attr("data-title")){var t={arrow:!1,content:e.attr("data-title"),animation:"fade",position:"bottom-left",theme:"mac-tooltip",updateAnimation:!1};1==site.client.isMobile?(t.trigger="click",t.speed=500,t.timer=3e3):t.trigger="hover",e.tooltipster(t),e.on("click",(function(e){e.preventDefault()}))}}))};$(".collection-products__list")[0]&&o("ON LOAD")},Product.prototype.modules.showRPCUpdates=function(e,t){t.on("product:rpc_data_updated",(function(o,s){var r;e.getState("sku")||(r=e.getFirstShoppableSkuObject().SKU_ID,e.setSkuDetails({sku:r}),e.showInventoryInformation()),e.getState("sku")&&_.includes(s,e.getState("sku"))&&(t.hasClass("product--teaser--mini")&&(e.data.mini_teaser=!0),t.hasClass("js-product-show-spp-btn")&&(e.data.show_cta_redirect_spp=!0),t.trigger("product:change_sku",[{sku:e.getState("sku")}]))}))},Product.prototype.modules.personalization=function(e,t){t.hasClass("product--full")&&(e.setState({isPurchased:!1}),t.on("product:change_sku",(function(){var t=e.getState("isPurchased");e.data.isPurchased=t,e.setState({isPurchased:t})})),t.on("click",".product__replenish",(function(t){var o=_.result(e.data,"SKU_BASE_ID");generic.jsonrpc.fetch({method:"user.replenishment_content",params:[{SKU_BASE_ID:o}],onSuccess:function(e){var t=$(e.getValue()),o=$(t[0].output);o.find(".alter_replenishment_form").change((function(e){e.preventDefault(),o.find(".js-add-to-bag").attr("data-freq",$(e.target).val())})),o.find(".js-replenishment-content").once().click((function(){o.find(".replenishment-service__learn_more").toggle(),$.colorbox.resize()})),site.myAccount.overlayLaunched=1,site.myAccount.initAddToBag(o.find(".js-add-to-bag")),generic.overlay.launch({content:o}),$.colorbox.resize()}})})))},Product.prototype.modules.productDefaultState=function(e,t){var o;e.getState("sku")?(o=e.getState("sku"),t.filter(".product--full.product--shaded").trigger("product:change_shade",[{sku:o}])):!e.getState("sku")&&e.isShaded()?(o=_.result(e.findSkuObject(),"SKU_ID"),t.filter(".product--full.product--shaded").trigger("product:change_shade",[{sku:o}])):(o=_.result(e.findSkuObject(),"SKU_ID"),t.filter(".product--full").trigger("product:change_sku",[{sku:o}]))},Product.prototype.modules.sppOverlayAccordion=function(e,t){var o;t.hasClass("product--full")&&(t.on("click",".product__description-desc--trigger",(function(e){e.stopPropagation();var s=$(this).data("tab");if((o=t.find("."+s)).hasClass("active"))o.removeClass("active"),$(this).attr("aria-expanded","false");else{t.find(".product__description-group").removeClass("active");var r=(t.find(".product__size").length?t.find(".product__size").offset().top:0)-o.offset().top-30;o.addClass("active").find(".product__description-group-body").css("min-height",r),$(this).attr("aria-expanded","true")}$(window).one("product:close_description",(function(e){o.removeClass("active"),$(".js-product__description_desc__trigger").attr("aria-expanded","false")})),$("body").one("click",(function(e){$(window).trigger("product:close_description")}))})),t.on("keydown",".js-product__description_desc__trigger",(function(e){13===site.getKeycode(e)&&$(this).trigger("click")})),t.on("focusout",".js-product__description-desc__trigger",(function(){$(window).trigger("product:close_description")})))},Product.prototype.modules.sppEDDtrigger=function(e,t){if(t.hasClass("product--full")){var o=$(".js-delivery-date","body");t.on("product:render_sku",(function(e,o){t.find(".js-product__edd--pc-trigger").colorbox({inline:!0,className:"product__edd--pc__cboxContent",close:'',width:"480px"})})),$(".js-product__edd--mobile-trigger","body").on("click",(function(e){e.preventDefault(),o.show()}))}},Product.prototype.modules.mppComplementary=function(e,t){t.hasClass("product--teaser")&&t.on("product:rpc_data_updated",(function(){var o;o=Drupal.settings.globals_variables.loyalty_landing&&$("body").hasClass(Drupal.settings.globals_variables.loyalty_landing)?e.productIsOrderable()&&e.info.sku:e.prouctIsShoppable()&&e.info.sku,t.parent(".mpp-complementary-products__item").addClass(o?"js-display-ok":"hidden");var s=$(".tabbed-block__content-item.js-tab-content").not(".hidden"),r=$(".mpp-complementary-products__item.js-display-ok",s),a=$(".mpp-complementary-products__item.hidden",s);($(a,s).remove(),t.parent(".mpp-complementary-products__item").hasClass("js-display-ok"))&&(r.length>4&&($(".tabbed-block.tabbed-with-carousel").find(".grid--mpp").unslick(),$(r,s).slice(4).remove()))}))},Product.prototype.modules.mppDisplayBadge=function(e,t){if(t.parents().hasClass("grid--mpp")){var o=e.prouctBadge();s(o),$(document).on("product:skuSelect",".js-product-ui",(function(e,t){var r=prodcat.data.getSku(t);r.MISC_FLAG_TEXT&&s(o=r.MISC_FLAG_TEXT)}))}function s(e){if(e){try{var o=e.replace(/ /g,"_").toLowerCase()}catch(e){}t.attr("data-misc-flag-text",o)}}},Product.prototype.modules.productExpandoBlock=function(e,t){t.on("click",".js-expando-block-trigger",(function(e){$(this).closest(".expando-block").toggleClass("expando-block--expanded")}))},Product.prototype.modules.productStoreCheck=function(e,t){if(Drupal.settings.globals_variables.enable_prod_store_check){if(t.filter(".product--full").length<1)return null;t.on("instore:loaded",(function(e,o){$(".js-check-in-store",t);var s=$(".js-instore-inv-container",t),r=$(".js-add-to-bag",t);$(document).trigger("instore:product:setDisplay",{$container:s,$cartBtn:r,data:o.data})}));t.on("product:render_sku",(function(t,o,s,r){o&&o.sku&&$(document).trigger("invis:init",{skuId:e.data.SKU_ID,product:e.data})}))}},Product.prototype.initZoom=function(){if(!site.client.isMobile){var e=$(".product__sku-details .slick-active .product__sku-image"),t=$(".page--spp__product .product").children().hasClass("product__shade-column"),o=$(".product__sku-details").find(".product-full__3up-images"),s=430;(t||o.length)&&(s=$(".product__sku-details").width()-$(".product__images").width()),e.length||(e=$(".product__sku-details .product__images-inner .product__sku-image")),e.length>0&&($.removeData(e,"ezPlus"),$(".zoomContainer").remove(),e.ezPlus({minZoomLevel:1.9,zoomType:"window",responsive:!0,scrollZoom:!1,showLens:!0,zoomWindowHeight:s,zoomWindowWidth:s,borderSize:1,onShow:function(){$(document).trigger("zoomwin.background","hide")},onDestroy:function(){$(document).trigger("zoomwin.background","show")},onImageClick:function(e){e.preventDefault(),$(document).trigger("zoomwin.toggle")}}))}},Product.prototype.sppAutoReplenishment=function(){generic.overlay=generic.overlay||{},"function"==typeof generic.overlay.initLinks&&generic.overlay.initLinks(),$("select.js-replenishment-select.spp-replenish").not(".selectAdded").select2({width:"100%",minimumResultsForSearch:-1}).addClass("selectAdded");var e=$("select.js-replenishment-select.spp-replenish");e.on("change",(function(){e.attr("data-replenishment",this.value)})),e.attr("data-replenishment",0),$(document).on("click",".js-autoreplenish",(function(){$.colorbox.resize()}))},$(window).on("l2_re-render:complete",(function(){Product.prototype.sppAutoReplenishment()})),$(document).on("zoomwin.toggle",(function(e){var t=$(document.body);t.hasClass("zoom-show")?t.removeClass("zoom-show"):t.addClass("zoom-show")})),$(document).on("zoomwin.background",(function(e,t){var o=$(document.body);"show"==t&&o.removeClass("zoom-hide-background"),"hide"==t&&o.addClass("zoom-hide-background")})),site}(jQuery,Drupal,_,site||{},prodcat||{});$(document).ready((function(){generic.focusErrors($(".js-error-message"),$(".js-giftcard-balance"))})); ; var site=function(t,e,i,r,a,n){"use strict";var o=r.prodProto;return r.productApp={products:[],templates:{},defaultTemplate:"molecules_product_detail",productModules:{},isPL:!1,invStatus:{ACTIVE:1,TEMP_OUT_OF_STOCK:2,COMING_SOON:3,DO_NOT_DISPLAY:4,INACTIVE:5,PROMOTIONAL:6,SOLD_OUT:7,PROMOTIONAL_SOLD_OUT:8},initialShadeRoute:"",init:function(){this.isPL=t("html").hasClass("pl"),this.getPageData(),this.cacheElements(),this.bindEvents(),this.getTemplates(),this.initialShadeRoute="function"==typeof getUrlParam?getUrlParam("shade"):window.location.href.split("?shade=")[1]},initialShadeInit:!1,getPageData:function(){var e=this;t(window).on("prodcat:UiInitialized",(function(r,a){i.forEach(a,(function(t){var r=e.createProduct({prodid:t.prodId},t.$element);i.isEmpty(r)||e.addProduct(r.attachDOM())})),t(window).trigger("productApp:products_added")}))},addProduct:function(t){this.products.push(t)},createProduct:function(t,e,r){var n=i.isUndefined(r)?a.data.getProduct(t.prodid):r;if(i.isNull(n))return{};var s=t?new o(t,n,e):{};return i.isNull(s.$element)||s.setState(s.$element.data("product"),!1),s},nukeProducts:function(){this.products=[]},getTemplates:function(){var a=this;t(".js-inline-template").each((function(e){a.templates[t(this).attr("id")]=t(this).html()})),i.extend(a.templates,e.settings.productAppTemplates),i.forEach(a.templates,(function(t,e){i.isUndefined(r.templates[t])||(a.templates[e]=r.templates[t].content)}))},cacheElements:function(){this.$productApp=t(".js-product-app")},bindEvents:function(){var e=this;e.$productApp.on("quickshop:trigger",e.quickShopTrigger.bind(e)),e.$productApp.on("click",".js-product-render-trigger",(function(i){e.$productApp.trigger("quickshop:trigger",[t(i.currentTarget)])})),t(window).on("l2_inv_status:updated",e.updateProductsData.bind(e)),t(window).on("gnavdata_success",e.personalization.bind(e)),t(window).on("gnavdata_success",e.isPro.bind(e)),t(window).on("prodcat:UiInitialized",e.profile.bind(e))},isPro:function(e,a){var n=this;if(!i.isNull(a)&&!a.IS_PRO){var o=function(t){return!!t.PRO_FLAG};i.forEach(n.products,(function(e){i.forEach(e.data.skus,(function(a){o(a)&&(e.setState({hasProSkus:!0},!1),function(e,a){e.data.skus=i.without(e.data.skus,a);var n=e.getProSkuObject().SKU_ID;e.$element.trigger("product:change_shade",[{sku:n}]);var o=t("body").hasClass("page-products"),s=1===r.client.isMobile&&o?n:a.SKU_ID;t(document).find("[data-product]").each((function(){if(t(this).data("product").sku===s){var i=t(this).parents(".grid--mpp__item").find("#sku_count");i.length>0&&i.html(parseInt(e.data.skus.length));var r=t(this).parents(".page--spp__product").find(".view-all-shades__text #sku_count");if(r.length>0&&r.html(parseInt(e.data.skus.length)),t(this).hasClass("shade-picker__color")){var n=t(this).parents(".product__shade-column").siblings(".view-all-shades__wrapper").find("#sku_count.count");n.length>0&&n.html(parseInt(e.data.skus.length)),t(this).remove(),t("#js-shade-picker-dropdown--product-full option[value='"+a.SKU_ID+"']").remove()}t("body.page-product").hasClass("device-pc")&&t("#shade-picker-float__color--"+a.SKU_ID).remove()}}))}(e,a))})),e.getState("hasProSkus")&&e.data.skus.every(o)&&function(e){n.products=i.without(n.products,e),t(document).find("[data-product]").each((function(){t(this).data("product").prodid===e.data.PRODUCT_ID&&(t(this).parents(".grid--mpp__item").remove(),t(this).remove())}))}(e)}))}},isRestricted:function(t,e){t.parents(".page--spp__custom_palette").length>0||(e&&e.RESTRICT_GROUP?(t.find(".product__restricted-eligible").removeClass("hidden"),1===parseInt(r.userInfoCookie.getValue("is_rewards_eligible"))||1===parseInt(r.userInfoCookie.getValue("is_pro"))?t.find(".product__add-to-bag").removeClass("disabled"):t.find(".product__add-to-bag").addClass("disabled")):(t.find(".product__restricted-eligible").addClass("hidden"),t.find(".product__add-to-bag").removeClass("disabled").addClass("js-add-to-bag")))},lookupProducts:function(t){if(i.isEmpty(this.products))return null;var e=i.filter(this.products,(function(e){return i.result(e.data,"PRODUCT_ID")===i.result(t,"prodid")}));return i.isUndefined(e)?null:(i.forEach(e,(function(e){i.extend(e.info,t)})),e)},findProductsBySkuAttribute:function(t,e){var r=[];return i.filter(this.products,(function(a){return r=a.filterSkusByAttribute(t,e),!i.isEmpty(r)}))},findProductsByProductAttribute:function(t,e){var r=[];return i.filter(this.products,(function(a){return r=a.filterProductsByAttribute(t,e),!i.isEmpty(r)}))},personalization:function(t,e){var r=this,a=i.result(e,"PAST_PURCHASED_SKUS",!1);if(!a)return null;var n=i.chain(a).keys().map((function(t){return"SKU"+t})).value();i.each(n,(function(t){r.findProductsBySkuAttribute("SKU_ID",[t])}))},updateProductsData:function(e,r){var a=this;if(i.isUndefined(r.result.value.products))return null;var n=r.result.value.products,o=i.uniq(n,"PRODUCT_ID");i.forEach(o,(function(t){var e=a.lookupProducts({prodid:t.PRODUCT_ID});i.isUndefined(e)||i.invoke(e,"updateData",t)})),a.sortCustomMPPMobile(),a.sortProductGrids(),t(window).trigger("l2_re-render:complete")},sortCustomMPPMobile:function(){if(r.client.isMobile&&e.settings.globals_variables.sort_custom_mpp){t(window).trigger("customMPP:inventory_sort:started");var a=this.products,n=this.invStatus;t(".js-mobile-collection-single-products-wrapper").each((function(){var e=t(this);a=t.grep(a,(function(t,e){return 1===t.$element.parents(".collection-products__list--item").length}));var r=t(".mobile-collection-products-carousel",e);r.each((function(){var e,o=!1,s=t(this).children(".collection-products__list--item"),d=s.parent(),u=r.index(d);s.each((function(){var r=t(this),d=s.index(r);void 0===i.filter(a,(function(a,u){if(a.$element[0]===t(".product",r)[0]){e=a.data.INVENTORY_STATUS;var c=a.$element.parents(".collection-products__list--item"),p=i.includes([n.TEMP_OUT_OF_STOCK,n.COMING_SOON,n.SOLD_OUT],parseInt(e));return c.data("sku_grid_position",p?1e3*e+s.length+d:d),o=o||!p,!0}}))&&r.data("sku_grid_position",d)})),d.data("grid_position",o?u:1e3*e+r.length+u),s.sort((function(e,i){var r=t(e).data("sku_grid_position"),a=t(i).data("sku_grid_position");return ra?1:0})),d.append(s)})),r.sort((function(e,i){var r=t(e).data("grid_position"),a=t(i).data("grid_position");return ra?1:0})),e.append(r)})),t(window).trigger("customMPP:inventory_sort:completed")}},sortProductGrids:function(){var r=this.products,a=this.invStatus;t(".grid--mpp, .shop-the-collection__carousel-slidee, .shop-the-collection__list-items").each((function(){var n=t(this),o=n.children(".grid--mpp__item, .shop-the-collection__carousel-item, .shop-the-collection__list-item"),s=n.hasClass("grid--mpp"),d=n.parents(".mpp-custom").length>0,u=n.parents(".js-mpp-custom-override-layout").length>0,c=e.settings.globals_variables.allow_backorder&&u?null:a.TEMP_OUT_OF_STOCK,p=u?null:a.COMING_SOON,l=!1;if(t.each(o,(function(u,_){var h=t(_),f=s?t.grep(r,(function(e,i){return e.$element[0]===t(".product",h)[0]}))[0]:t.grep(r,(function(e,i){return e.$element[0]===t(h)[0]}))[0];if(void 0===f)t(".node",h).data("grid_position",u),h.data("skuTarget")||h.data("is-tout",!0).data("tout-position",u);else{var g=!!e.settings.globals_variables.sort_custom_mpp&&d&&f.$element.find(".shade-picker").length<1||f.$element.hasClass("js-sku-as-product"),m=f.$element.hasClass("js-sku-as-product"),v=parseInt(f.data.PRODUCT_ID.replace("PROD","")),P=i.filter(f.data.skus,(function(e){if(e.SKU_BASE_ID===parseInt(t(f.$element).data().skuBaseId))return e.INVENTORY_STATUS})),S=i.sortBy(f.data.skus,(function(t){return t.INVENTORY_STATUS}))[0].INVENTORY_STATUS,T=m?t(P)[0].INVENTORY_STATUS:f.data.INVENTORY_STATUS,O=g?T:S,k=t(i.sortBy(t('[data-product-id="'+f.data.PRODUCT_ID+'"][data-inv-status]',n),(function(e){return t(e).attr("data-inv-status")}))[0]).attr("data-inv-status"),I=s?O:k;i.includes([c,p,a.SOLD_OUT],parseInt(I))?(t(f.$element[0]).data("grid_position",99999*I+t(o).size()+t(o).index(t(this))+(g?2*v:0)),l=!0):t(f.$element[0]).data("grid_position",t(o).index(t(this)))}})),!l)return!0;o.sort((function(e,i){var r=s?t(t(".product, .node",e)[0]).data("grid_position"):t(t(e)[0]).data("grid_position"),a=s?t(t(".product, .node",i)[0]).data("grid_position"):t(t(i)[0]).data("grid_position");return t(e).data("isTout")&&t(e).data("toutPosition")>0&&t(e).addClass("hidden"),ra?1:0})),t(n).append(o),setTimeout((function(){o.each((function(){var e=t(this);return!e.data("isTout")||0===e.data("toutPosition")||!e.data("toutPosition")||(e.removeClass("hidden"),e.data("toutPosition")===e.index()-1||void(e.data("toutPosition")'+i.average_rating+"/5")},f.strip_html_tags=function(e){return null!==e&&""!==e&&(e=e.toString()).replace(/<[^>]*>/g,"")};var D=[];if(o.shaded){!0;for(var k=o.skus,C=k.length,I=0;I0&&(a.empty(),e(document).trigger("powerreviews-init"))}))}(jQuery); ; var site = site || {}; site.onLoadRpc = site.onLoadRpc || {}; site.onLoadRpc.defaults = { motion_point : { language_id: 48, country_id: 1 }, user_gnavData : { DOOR_DATA_LONGITUDE: null, DOOR_ID: null, SHADES: [], RENDERED_DOOR_DATA: null, FAVORITE_PRODUCTS: [], EMAIL_ADDRESS: null, DOOR_DATA_LATITUDE: null, PAST_PURCHASED_SKUS: {}, IS_PRO: 0 }, analytics_userinfo : { from_lbr: 0, hashed_email_address: null, ident: null, is_loyalty_member: 0, is_pro: 0, keylist: 'from_lbr|is_loyalty_member|is_pro|loyalty_level|mobile_email_optin|pc_email_optin|recognized_user|registered_user|signed_in', loyalty_level: 0, mobile_email_optin: 0, pc_email_optin: 0, recognized_user: null, registered_user: 0, session_id: 00000000, signed_in: 0, sorted: '0|0|0|0|0|0|0|0|0' } };; /* Endeca catalog class for products endeca instance. */ var site = site || {}; site.endeca = site.endeca || {}; site.endeca.catalog = site.endeca.catalog || {}; site.endeca.catalog.product = site.endeca.catalog.product || {}; site.endeca.catalog.product = site.endeca.generic.Class.create( site.endeca.catalog.product, { _parseRecord: function( record ) { if ( record.Properties["rec_type"] == 'product') { record.Properties['s_responseDate'] = this.jsonResult.responseDate; record.Properties['p_responseDate'] = this.jsonResult.responseDate; this._super(record); } } });; site.endeca.result.product = jQuery.extend(true, {}, generic.endeca.result.product, { displayResult: function(args) { // add anything new here // this is where we set variables used in mustache, shared product template // for MPP we use php functions to provide these vars in mac_product.module // we must also set theme here so the product template can also be used for search results this.resultData.mac_product_layout = { product_teaser: 1 }; // defaultSku var matchedSKU = $.grep(this.resultData.skus, function(element) { return element.matched === 1; }); this.resultData.defaultSku = jQuery.grep(this.resultData.skus, function(el, idx) { return el.DEFAULT_SKU == 1; })[0] || (matchedSKU.length > 0 ? matchedSKU[0] : this.resultData.skus[0]); this.resultData.SKU_BASE_ID = this.resultData.defaultSku.SKU_BASE_ID; this.resultData.SKU_ID = this.resultData.defaultSku.SKU_ID; this.resultData.MISC_FLAG = this.resultData.defaultSku.MISC_FLAG || ''; // medium image - convert to array this.resultData.defaultSku.MEDIUM_IMAGE = $.makeArray(this.resultData.defaultSku.MEDIUM_IMAGE); this.resultData.MEDIUM_IMAGE = this.resultData.defaultSku.MEDIUM_IMAGE; // convert images to arrays this.makeImageArray('MEDIUM_IMAGE'); this.makeImageArray('IMAGE_LARGE'); this.makeImageArray('IMAGE_MEDIUM'); this.makeImageArray('IMAGE_RESPONSIVE'); this.makeImageArray('IMAGE_SMALL'); if (this.resultData.MEDIUM_IMAGE.length > 1) { this.resultData.mac_img_alts = { has_medium_alt: 1 }; } // custom processing for sku as product, single shaded, sku counts var skuCount = this.resultData.skus.length; var isShaded = this.resultData.shaded; var isSku = this.resultData.sku_as_product; var shadeNameNoSpaces; var UrlRoute; var shadeNameString; var isShadedSKU = false; if (isSku) { this.resultData.product_teaser_mini = 1; this.resultData.mini_teaser = 1; // set a new url for shaded skus so we can target shade on spp load if (isShaded) { isShadedSKU = true; } } else { if (this.resultData.skus.length > 1 && isShaded) { this.resultData.sku_count = this.resultData.skus.length; isShadedSKU = true; } if (this.resultData.skus.length <= 1 && isShaded) { this.resultData.shaded = 0; isShadedSKU = false; } } if (isShadedSKU) { var SkuShadeName = this.resultData.defaultSku.SHADENAME; shadeNameNoSpaces = characterEncode(SkuShadeName); UrlRoute = '?shade=' + shadeNameNoSpaces; this.resultData.url = this.resultData.url + UrlRoute; } // product rating percentage - rating_percentage var var ratingAverage = this.resultData.AVERAGE_RATING; var ratingScale = 5; var ratingCalc = ratingAverage / ratingScale; var ratingPercentage = Math.round(ratingCalc * 100); if (ratingPercentage > 0) { this.resultData.rating_percentage = ratingPercentage; this.resultData.AVERAGE_RATING_PERCENT = ratingPercentage; } // inventory status var invStatus = this.resultData.defaultSku.INVENTORY_STATUS; var isPreOrder = this.resultData.defaultSku.isPreOrder || 0; this.resultData.INVENTORY_STATUS = this.resultData.defaultSku.INVENTORY_STATUS; this.resultData.isComingSoon = 0; this.resultData.isOrderable = 0; this.resultData.isShoppable = this.resultData.defaultSku.shoppable; if (invStatus == 3) { this.resultData.isComingSoon = 1; } if (this.resultData.defaultSku.LIFE_OF_PRODUCT === 2 && invStatus !== 3) { // backorderable this.resultData.isOrderable = 1; this.resultData.isShoppable = 1; } if (this.resultData.INVENTORY_STATUS == 1 || (Drupal.settings.globals_variables.display_notify_tos == 0 && this.resultData.INVENTORY_STATUS == 2)) { this.resultData.isOrderable = 1; this.resultData.isShoppable = 1; } if (Drupal.settings.globals_variables.enable_preorder && isPreOrder && (invStatus === 2 || invStatus === 7)) { this.resultData.isShoppable = this.resultData.defaultSku.shoppable; } // this comes last this._super(args); function characterEncode(str) { shadeNameString = str.toString().split(' ').join('_'); return encodeURIComponent(shadeNameString).replace(/[!'()*]/g, function(c) { return '%' + c.charCodeAt(0).toString(16); }); } }, // after render displayResultCallbackBrand: function() { if (site && site.productApp && site.productApp.addProduct ) { var numberOfOccurrenceList = jQuery.grep(this.resultData.skus, function(sku) { return sku.INVENTORY_STATUS == 7; }); site.productApp.addProduct( site.productApp.createProduct( { prodid: this.resultData.PRODUCT_ID, sku: this.resultData.defaultSku.SKU_ID }, this.node.find('.product') .addClass(this.resultData.skus.length == numberOfOccurrenceList.length ? 'all-shaded-sold-out' : '') .addClass(this.resultData.isComingSoon ? 'product--coming-soon' : 'product--not-coming-soon') .addClass(this.resultData.isOrderable ? 'product--orderable' : 'product--not-orderable') .addClass(this.resultData.isShoppable ? 'product--shoppable' : 'product--not-shoppable') .addClass('prod_inv_status-' + this.resultData.INVENTORY_STATUS) .attr('data-inv-status', this.resultData.INVENTORY_STATUS), this.resultData ).attachDOM() ); } }, makeImageArray: function(fieldName) { this.resultData.defaultSku[fieldName] = $.makeArray(this.resultData.defaultSku[fieldName]); this.resultData[fieldName] = this.resultData.defaultSku[fieldName]; } }); ; site.endeca.results.products = jQuery.extend( true, {}, generic.endeca.results.products, { createResult: function( args ) { if ( args.result.matched ) { //matched on a product property args.templatePath = this.childTemplatePath || "/templates/endeca/products/result.tmpl"; args.result.context = 'product'; this.setRestrictGroup( args.result ); var skus = args.result.skus; for ( var i = 0; i < args.result.skus.length; i++ ) { args.result.skus[i] = this.modifySku(args.result.skus[i]); } this._super( args ); } else { //matched on a sku property args.templatePath = this.childTemplatePathSku || "/templates/endeca/products/sku-result.tmpl"; var product = jQuery.extend( {}, args.result ); var skus = args.result.skus; for ( var i = 0; i < skus.length; i++ ) { if ( this.configuration.limit && this.resultNodes.length >= this.configuration.limit ) { break; } skus[i] = this.modifySku(skus[i]); //sku_as_product product['sku_as_product'] = 1; product['skus'] = [skus[i]]; this.setRestrictGroup( args.result ); args.result = jQuery.extend( {}, product ); this._super( args ); } } }, setPreOrderMessage: function(trKey, dateStr) { var msg = site.translations.product[trKey] || ''; if (msg) { return msg.replace(/::release_date::/, dateStr); } }, modifySku: function(sku) { sku['isPreOrder'] = this.testPreOrderSku(sku); function _isPro() { var is_pro = site.userInfoCookie.getValue('is_pro'); return is_pro == "1"; } function _isRewardsEligible() { // LOYALTY_ACTIVE_FLAG && ACCEPTED_LOYALTY_TERMS var is_rewards_eligible = site.userInfoCookie.getValue('is_rewards_eligible'); return is_rewards_eligible == "1"; } if (sku.RESTRICT_GROUP) { sku['disabled_class'] = !(_isRewardsEligible() || _isPro()) ? 'disabled' : ''; } if(sku['isPreOrder']) { var shipDays = parseInt(site.translations.product.ship_days || '1'); var preorder_date_format = Drupal.settings.globals_variables.preorder_date_format || ''; var relDate = this.getReleaseDate(sku); var shipDate = new Date(relDate); var days = relDate.getDate(); if (!isNaN(shipDays)) { days += shipDays; shipDate.setDate(days); } var getDateStr = function(d) { var formatted_date = ''; var yyyy = d.getFullYear(), mm = ('0' + (d.getMonth() + 1)).slice(-2), dd = ('0' + d.getDate()).slice(-2); switch (preorder_date_format) { case 'YYYY/MM/DD': formatted_date = yyyy + '/' + mm + '/' + dd; break; case 'DD/MM': formatted_date = dd + '/' + mm; break; default : formatted_date = d.getMonth() + 1; formatted_date += '/'; formatted_date += d.getDate(); break; } return formatted_date; }; var relDateStr = getDateStr(relDate); var shipDateStr = getDateStr(shipDate); if (sku.isShoppable) { sku['preorder_desc'] = this.setPreOrderMessage('sppprod_preorder_ships_by_desc', shipDateStr); } else { sku['preorder_desc'] = this.setPreOrderMessage('mpp_preorder_non_shoppable_msg', shipDateStr); } sku['preorder_inv_noshop'] = this.setPreOrderMessage('preorder_noshop_msg', relDateStr); sku['preorder_shop'] = this.setPreOrderMessage( 'mpp_preorder_shoppable_msg', shipDateStr); sku['pre_order_btn'] = this.setPreOrderMessage( 'pre_order_btn', shipDateStr); sku['preorder_non_shop'] = this.setPreOrderMessage( 'mpp_preorder_non_shoppable_msg', relDateStr); } return sku; }, setRestrictGroup: function( result ) { if ( result ) { // unless RESTRICT_GROUP is already set for the product in .Net if ( typeof result.RESTRICT_GROUP == 'undefined' ) { // if at least one sku does not have RESTRICT_GROUP set, product should have RESTRICT_GROUP set to 0 result.RESTRICT_GROUP = 1; for ( var i = 0; i < result.skus.length; i++ ) { if ( !result.skus[i].RESTRICT_GROUP ) { result.RESTRICT_GROUP = 0; break; } } } } }, testPreOrderSku: function(s) { var v = 0; var roundDate = function(d) { if (!_.isDate(d)) return null; d.setMinutes(0); d.setHours(0); d.setMilliseconds(0); d.setSeconds(0); return d; } var curDate = new Date(s.responseDate); var relDate = this.getReleaseDate(s) || new Date(curDate); curDate = roundDate(curDate); relDate = roundDate(relDate); var flag = (s.MISC_FLAG == 15); if (_.isDate(curDate) && _.isDate(relDate) && flag && curDate.getTime() < relDate.getTime() ) { // pre-order state v = 1; } return v; }, getReleaseDate: function(s) { var relDate = null; if (s.RELEASE_DATE) { var rawDateStr = '' + s.RELEASE_DATE; if (rawDateStr.match(/^\d{6}$/)) { relDate = new Date(); var fullyearInt = parseInt('20' + rawDateStr.substr(0,2)); var monthInt = parseInt(rawDateStr.substr(2,2)) - 1; var dayInt = parseInt(rawDateStr.substr(4,2)); relDate.setFullYear(fullyearInt, monthInt, dayInt); } } return relDate; }, reset: function() { if ( site && site.productApp && site.productApp.nukeProducts ) { site.productApp.nukeProducts(); } this._super(); } }); ; site.endeca.results.contentzone.products = jQuery.extend( true, {}, generic.endeca.results.contentzone.products, { displayResults: function ( args ) { var args = args || {}; // give the container template the data for the first product as well as any properties from Endeca. jQuery.extend( this.resultData, args.resultData[0], this.resultData[0].Properties ); this._super( args ); }, createResult: function( args ) { var args = args || {}; if ( args.index == 0 && this.node.find('.first-result').length ) { args.contentNode = this.node.find('.first-result'); } var styleName = ( args.result.Properties && args.result.Properties.Style ) ? args.result.Properties.Style : this.styleName; if ( this.configuration.styles && this.configuration.styles[ styleName ] && this.configuration.styles[ styleName ].displaySku ) { var product = jQuery.extend( {}, args.result ); var skus = args.result.skus; for ( var i = 0; i < skus.length; i++ ) { if ( i > 0 ) { args.contentNode = null; } product['skus'] = [skus[i]]; args.result = jQuery.extend( {}, product ); this._super( args ); } } else { this._super( args ); } } }); ; /* Sitewide Endeca configuration. Anything set here will be used as the default for all settings used by the endeca instances on the page. These can be overwritten in the instance configuration files for each endeca instance. */ var endecaGlobal = endecaGlobal || {}; jQuery(document).ready(function() { site.endeca.configuration = { query: { MDEXHost: 'localhost', MDEXPort: Drupal?.settings?.endeca?.ports?.mdex, logHost: 'localhost', logPort: Drupal?.settings?.endeca?.ports?.log, defaultDimensionIds: [ 8089, 8051, 8053, 8062, 8127 ], configuredRangeFilters: { skuShoppable: 's_shoppable|GT+0', skuPromotional: 's_promotional|GT+0', skuSearchable: 's_searchable|GTEQ+1', productTrFlag: 'p_TR_FLAG|LT+1', productDisplayable: 'p_displayable|GT+0', productShoppable: 'p_shoppable|GT+0' }, defaultRangeFilters: ['skuSearchable'], configuredRecordFilters: { products: 'rec_type:product', content: 'rec_type:content', locale: 'locale:' + ( jQuery.cookie('LOCALE') || Drupal?.settings?.endeca?.locale ), activeSkus: 'NOT(s_INVENTORY_STATUS:5),NOT(s_INVENTORY_STATUS:4)', discontinued: 'NOT(s_discontinued:1)', notPro: 'OR(NOT(s_PRO_FLAG:1),s_MISC_FLAG:33)' }, defaultRecordFilters: !endecaGlobal.ispro ? ['notPro'] : '' }, mustacheMappings: Drupal.settings.productAppTemplates, coremetricsEnabled: false, omnitureEnabled: true, contentzones: {}, mixins: {} }; }); ; site.endeca.query = site.endeca.generic.Class.create( site.endeca.query, { parsedSearchTerm: function( args ) { var args = args || {}; var searchTerm = args.searchTerm || this.searchTerm; searchTerm = searchTerm.replace(/\+/g, " "); var parsedSearchTerm; try { parsedSearchTerm = decodeURIComponent( searchTerm ) } catch (e) { parsedSearchTerm = searchTerm; } return parsedSearchTerm.match(/[<>\/]/) == null ? parsedSearchTerm : ''; }, onComplete: function(t) { this.completed = 1; this.rawResult = t.responseText; this.jsonResult = jQuery.parseJSON( this.rawResult ); this.jsonResult = this.jsonResult || {} this.jsonResult.responseDate = t.getResponseHeader('Date'); this.callbackCompleted(); } });; /* Endeca control class for the typeahead endeca instance. */ var site = site || {}; site.endeca = site.endeca || {}; site.endeca.instances = site.endeca.instances || {}; site.endeca.instances.typeahead = site.endeca.instances.typeahead || {}; site.endeca.instances.typeahead.control = site.endeca.generic.Class.create(site.endeca.control, { initialize: function (args) { this.timer = 0; this._super(args); if (this.nodes.wrapper.length && this.nodes.inputElements.length) { var that = this; this.nodes.inputElements.bind('keyup', that, that.onKeyUp); this._watchToClose(); } }, onKeyUp: function (event) { var $this = jQuery(this); var that = event.data; clearTimeout(that.timer); that.timer = setTimeout(function () { that.currentInputElement = $this; var searchTerm = jQuery.trim($this.val()); if (searchTerm != that.searchTerm && searchTerm.length >= that.configuration.minSearchLength) { searchTerm = searchTerm + '*'; that.searchTerm = searchTerm; /* Adobe Start set or update cookie on search term here */ if (typeof s == 'object') { if (typeof s.c_w == 'function') { s.c_w('TYPEAHEAD', that.searchTerm); } } /* Adobe end */ that.search({ searchTerm: searchTerm }); } }, 175); }, _watchToClose: function () { var that = this; jQuery(document).bind('click', that, function (event) { var tgt = event.target; var that = event.data; if (!jQuery(tgt).parents(that.nodes.wrapper.selector).length && tgt != that.currentInputElement && tgt != that.nodes.wrapper[0]) { that.nodes.wrapper.addClass('hidden'); } }); }, searchCompleted: function () { var $searchType = $('.js-search-type'); var $searchAnalyticTag = $searchType.length > 0 ? '&search_type=' + $searchType.val() : ''; var config = Drupal?.settings?.endeca || {}; var hasPopularTerms = false; var $popularTermsNode = $(); if (!this._super()) { return; } if (this.queries?.product?.jsonResult?.AggrRecords?.length) { var termResultDataRef = {}; var termResultData = []; for (var i = 0; i < this.queries.product.jsonResult.AggrRecords.length; i++) { if (this.queries.product.jsonResult.AggrRecords[i].Properties['DGraph.WhyDidItMatch']) { var matches; if (typeof this.queries.product.jsonResult.AggrRecords[i].Properties['DGraph.WhyDidItMatch'] == 'string') { matches = [this.queries.product.jsonResult.AggrRecords[i].Properties['DGraph.WhyDidItMatch']]; } else { matches = this.queries.product.jsonResult.AggrRecords[i].Properties['DGraph.WhyDidItMatch']; } for (var j = 0; j < matches.length; j++) { if (matches[j] && matches[j].match(/Product Category: (.*)/)) { if (!RegExp.$1.match(/^CAT/)) { if (termResultDataRef[RegExp.$1]) { termResultDataRef[RegExp.$1]++; } else { termResultDataRef[RegExp.$1] = 1; termResultData.push({ term: RegExp.$1, url: this.configuration.fullSearchBaseUrl + encodeURIComponent(RegExp.$1) + $searchAnalyticTag }); } } } } } } // Ensuring term suggestion starts with what is already entered into search bar so auto-complete will look correct if (termResultData[0]) { var term = this.searchTerm.replace('*', ''); var regexTermStart = new RegExp('^' + term, 'i'); var suggestion = termResultData[0].term; if (!suggestion.match(regexTermStart)) { termResultData[0].term = ''; termResultData[0].url = ''; } } if (this.results.terms.configuration.limit && termResultData.length > this.results.terms.configuration.limit) { termResultData.splice(this.results.terms.configuration.limit); } termResultData.sort(function (a, b) { if (termResultDataRef[a] > termResultDataRef[b]) { return -1; } if (termResultDataRef[a] < termResultDataRef[b]) { return 1; } return 0; }); this.results.terms.resultData = termResultData; this.results.terms.displayResults(); this.results.terms.displayResultNodes(); this.results.terms.show(); this.hasResults = true; } else { this.results.terms.hide(); } if (config.usePopularAsSuggestion) { $popularTermsNode = $('.js-esearch-nav__popular-list', '.search-overlay-landing'); hasPopularTerms = $popularTermsNode.length > 0; this.results.terms.parentNode.filter('.js-popular-term-results').each(function () { var $this = $(this); $this.html('').append($popularTermsNode.clone()); }); } this.results.products.resultData = this.catalogs.product.resultList; if (this.results.products.resultData.length) { this.results.products.displayResults(); this.results.products.show(); this.hasResults = true; if (hasPopularTerms) { this.results.terms.show(); } this.nodes.wrapper.removeClass('no-prods'); } else { this.results.products.hide(); this.results.terms.hide(); this.nodes.wrapper.addClass('no-prods'); } this.results.content.contentzones = this.configuration.contentzones; this.results.content.resultData = this.meta.supplementalContent; this.results.content.displayResults(); if (!jQuery.isEmptyObject(this.results.content.resultData)) { this.meta.processSearchInfo({ totalContentRecords: this.results.content.totalResults }); if (this.results.content.hasSoloResults) { this.hasResults = true; } } else { this.results.content.hide(); } if (this.hasResults) { /* Add first search result */ var searchTerm = this.searchTerm.replace('*', ''); var showResults = rb.endeca['show_results']; var prefix = rb.endeca.search_results_totals_prefix; var divider = rb.endeca.search_results_totals_divider; var suffix = rb.endeca.search_results_totals_suffix; var searchSuggestionsTranslation = site.translations?.elc_search?.suggestions || null; var displayorderChange = parseInt(rb.endeca.search_results_order); var count1 = displayorderChange ? this.meta.searchInfo.totalRecords : (this.results.products.resultNodes.length + this.results.content.totalResults); var count2 = displayorderChange ? this.results.products.resultNodes.length : this.meta.searchInfo.totalRecords; var resultsDataTerm = '' + prefix + ' ' + count1 + ' ' + divider + ' ' + count2 + ' ' + suffix + ' ' + showResults + ''; showResults = showResults.replace('::term::', searchTerm); this.results.seeResults.resultData = [ { term: searchSuggestionsTranslation ? '' + searchSuggestionsTranslation + '' + resultsDataTerm : resultsDataTerm, url: this.configuration.fullSearchBaseUrl + searchTerm + $searchAnalyticTag } ]; this.results.seeResults.displayResults(); this.results.seeResults.displayResultNodes(); this.results.seeResults.show(); } this.nodes.wrapper.removeClass('hidden'); /* Code to handle tracking eneca product clicks Using a namespaced click handler to make sure it's bound only once */ this.nodes.wrapper.find('.js-product-results') .off('click.js-typeahead-gap-tag') .on('click.js-typeahead-gap-tag', function () { if (this.parentElement.classList.contains('js-typeahead-gap-tag')) { site.endeca.omniture.productClick(); } }); this.processOmniture(); this.hideLoading(); } }); ; /* Endeca configuration for the typeahead endeca instance. See comments in site.endeca.instances.search.configuration */ var site = site || {}; site.endeca = site.endeca || {}; site.endeca.instances = site.endeca.instances || {}; site.endeca.instances.typeahead = site.endeca.instances.typeahead || {}; jQuery(document).ready(function(){ site.endeca.instances.typeahead.configuration = jQuery.extend( true, {}, site.endeca.configuration, { searchType : "typeahead", followRedirects: false, minSearchLength: 3, fullSearchBaseUrl: "/" + Drupal.settings.pathPrefix + "esearch?search=", contentzones: { "Predictive Content": { "node": jQuery('.js-content-results', '.js-typeahead-wrapper'), "templatePath": "/templates/endeca/typeahead/content-result.tmpl", "solo" : 1, "counted" : 1 } }, nodes: { wrapper: jQuery('.js-typeahead-wrapper'), inputElements: jQuery('.js-search-field'), loading: jQuery('.loading', '.js-typeahead-wrapper') }, queries: { product: { //searchKey: 'typeahead', recordsPerPage: 4, recordFilters: ['discontinued', 'activeSkus', 'products'] } }, results: { products: { baseClass: 'site.endeca.results', instanceArgs: { parentNode: jQuery('.js-product-results', '.js-typeahead-wrapper'), childTemplatePath: '/templates/endeca/typeahead/product-result.tmpl', childTemplatePathSku: '/templates/endeca/typeahead/product-sku-result.tmpl' }, configuration: { limit: 4 } }, terms: { baseClass: 'site.endeca.results', instanceArgs: { parentNode: jQuery('.js-term-results', '.js-typeahead-wrapper'), templatePath: '/templates/endeca/typeahead/term-result.tmpl' }, configuration: { limit: 1 } }, content: { baseClass: 'site.endeca.resultsgroup', childClass: 'site.endeca.resultsgroup.contentzones' }, seeResults: { baseClass: 'site.endeca.results', instanceArgs: { parentNode: jQuery('.js-see-results', '.js-typeahead-wrapper'), templatePath: '/templates/endeca/typeahead/term-result.tmpl' } } } }); new site.endeca.instances.typeahead.control( site.endeca.instances.typeahead.configuration ); }); ;