typeof window.initSmartrr=="undefined"&&(window.initSmartrr=function(uniqueId){function UIHandler(productInfo){if(productInfo.ui=this,this.productInfo=productInfo,productInfo.logic=new LogicHandler(productInfo),this.logic=productInfo.logic,this.tagList=this.apiSetupTagList(),this.$form=this.apiQuerySelectorDataTag(this.tagList.FORM.tag,document,this.tagList.FORM.value),this.$form===null){var fieldset=this.apiQuerySelectorDataTag(this.tagList.PURCHASE_OPTIONS,document,this.tagList.FORM.value);if(fieldset&&typeof fieldset.closest!="undefined"){var newForm=fieldset.closest("form");newForm&&(this.$form=newForm)}}this.$form||console.log("Smartrr could not find the form. Please add data-smartrr-form-id to the
"),productInfo.uiImplementDetectChange(this);var that=this,groupInputs=this.apiQuerySelectorAllDataTag(this.tagList.SELLING_PLAN_GROUP_INPUT,this.$form);groupInputs.forEach(function(input){input.addEventListener("click",function(){that.logic.apiChangeGroup(input.value)})})}UIHandler.prototype=Object.assign({},UIHandler.prototype,{apiSetupTagList:function(){var tagList={FORM:{tag:String(this.productInfo.formTag),value:String(this.productInfo.uniqueId)},SELLING_PLAN_INPUT:"data-smartrr-selling-plan-input",PURCHASE_OPTIONS:"data-smartrr-purchase-options",NO_PLANS:"data-smartrr-no-plans",SELLING_PLAN_GROUPS:"data-smartrr-selling-plan-groups",SELLING_PLAN_GROUP:"data-smartrr-selling-plan-group-id",SELLING_PLAN_GROUP_INPUT:"data-smartrr-selling-plan-group-input",SELLING_PLAN_GROUP_FREQUENCY_INPUT:"data-smartrr-selling-plan-select-label-input",SELLING_PLAN_GROUP_CONTENT:"data-smartrr-selling-plan-group-contents",PRICING:{PRODUCT_ID:"data-smartrr-product-id",SELECTOR:"data-smartrr-price-style",CONSTANT:"data-smartrr-constant",COMPARE:"data-smartrr-compare-price",REGULAR:"data-smartrr-regular-price",SUBSCRIBE:"data-smartrr-subscribe-price",QUANTITY:"data-use-quantity"}};return tagList},apiSetupNiceSelect:function(nice,onActiveCallback){var displayDiv=this.apiQuerySelectorDataTag("data-smartrr-ns-display",nice),list=this.apiQuerySelectorAllDataTag("data-smartrr-ns-plan",nice),defaultLi=this.apiQuerySelectorDataTag("data-ns-plan-default",nice);function useNiceCallback(_li){for(;displayDiv.firstChild;)displayDiv.removeChild(displayDiv.firstChild);displayDiv.appendChild(_li.cloneNode(!0)),onActiveCallback(_li,nice)}defaultLi?useNiceCallback(defaultLi,nice):list.length>0&&useNiceCallback(list[0],nice),list.forEach(function(li){li.addEventListener("click",function(){useNiceCallback(li,nice)})}),typeof window.smartrrNiceSelectList=="undefined"&&(window.smartrrNiceSelectList={current:null,list:[]},document.addEventListener("click",function(event){var prevCurrent=window.smartrrNiceSelectList.current;prevCurrent&&(prevCurrent.classList.remove("smartrr-ns-open"),window.smartrrNiceSelectList.current=null),window.smartrrNiceSelectList.list.forEach(function(container){if(prevCurrent!==container&&(container===event.target||container.contains(event.target))){window.smartrrNiceSelectList.current=container,container.classList.add("smartrr-ns-open");return}})})),window.smartrrNiceSelectList.list.push(nice)},apiQuerySelectorDataTag:function(dataTag,parent,value){var selector="["+dataTag+"]";return value&&(selector="["+dataTag+'="'+String(value)+'"]'),parent?parent.querySelector(selector):document.querySelector(selector)},apiQuerySelectorAllDataTag:function(dataTag,parent,value){var selector="["+dataTag+"]";return value&&(selector="["+dataTag+'="'+String(value)+'"]'),Array.from(parent?parent.querySelectorAll(selector):document.querySelectorAll(selector))},apiGetValue:function(elem){return elem.value},apiSetValue:function(elem,value){elem.value=value},apiGetAttribute:function(elem,attribute){return elem.getAttribute(attribute)},apiSetText:function(elem,text){elem.textContent=text},apiOnPlanChanged:function(currentInfo){this.apiSetValue(this.apiQuerySelectorDataTag(this.tagList.SELLING_PLAN_INPUT,this.$form),currentInfo.planId),this.productInfo.uiOnPlanChange&&this.productInfo.uiOnPlanChange(this,currentInfo),this.apiUpdatePrices(currentInfo)},apiOnGroupChanged:function(currentInfo){var inputs=this.apiQuerySelectorAllDataTag(this.tagList.SELLING_PLAN_GROUP_INPUT,this.$form),that=this;inputs&&inputs.forEach(function(input){that.apiGetValue(input)===currentInfo.groupId&&(input.checked=!0)});var groups2=this.apiQuerySelectorAllDataTag(this.tagList.SELLING_PLAN_GROUP,this.$form),groupContents=this.apiQuerySelectorAllDataTag(this.tagList.SELLING_PLAN_GROUP_CONTENT,this.$form);if(groupContents.forEach(function(group){var groupId=that.apiGetAttribute(group,that.tagList.SELLING_PLAN_GROUP_CONTENT);groupId===currentInfo.groupId?that.apiShow(group):that.apiHide(group)}),groups2.forEach(function(group){var groupId=that.apiGetAttribute(group,that.tagList.SELLING_PLAN_GROUP);if(groupId!==""){var spa=that.logic.apiGetAnySellingPlanAllocationByVariantGroupId(currentInfo.variantId,groupId);spa?that.apiShow(group):that.apiHide(group)}}),this.productInfo.uiOnGroupChange&&this.productInfo.uiOnGroupChange(this,currentInfo),currentInfo=this.logic.apiGetCurrentCopy(),currentInfo.groupId===""){this.logic.apiChangePlan("");return}if(currentInfo.planId===""){var firstPlan=this.apiGetFirstPlan(currentInfo);this.logic.apiChangePlan(firstPlan)}else this.logic.apiChangePlan(currentInfo.planId)},apiOnVariantChanged:function(currentInfo){if(currentInfo.groupId===""){var firstGroup=this.apiGetFirstGroup(currentInfo);this.logic.apiChangeGroup(firstGroup)}else this.logic.apiChangeGroup(currentInfo.groupId);this.productInfo.uiOnVariantChange&&this.productInfo.uiOnVariantChange(this,currentInfo)},apiGetFirstPlan:function(currentInfo){if(currentInfo.groupId==="")return"";var plans=this.apiQuerySelectorAllDataTag(this.tagList.SELLING_PLAN_GROUP_FREQUENCY_INPUT,this.$form,currentInfo.groupId);if(plans.length)return this.apiGetValue(plans[0]);var firstPlan=this.logic.apiGetAnySellingPlanAllocationByVariantGroupId(currentInfo.variantId,currentInfo.groupId);return firstPlan?String(firstPlan.selling_plan_id):""},apiGetFirstGroup:function(currentInfo){var allGroups=this.apiQuerySelectorAllDataTag(this.tagList.SELLING_PLAN_GROUP,this.$form),that=this;return groups=allGroups.filter(function(group){var groupId=that.apiGetAttribute(group,that.tagList.SELLING_PLAN_GROUP);if(groupId==="")return!0;var spa=that.logic.apiGetAnySellingPlanAllocationByVariantGroupId(currentInfo.variantId,groupId);return!!spa}),groups.length?this.apiGetAttribute(groups[0],this.tagList.SELLING_PLAN_GROUP):""},apiHide:function($el){$el&&$el.classList.add("hide")},apiShow:function($el){$el&&$el.classList.remove("hide")},apiGetRelevantPriceElements:function(){var $pricedivs=this.apiQuerySelectorAllDataTag(this.tagList.PRICING.SELECTOR),that=this;return $pricedivs=$pricedivs.filter(function($div){return String(that.apiGetAttribute($div,that.tagList.PRICING.PRODUCT_ID))===String(that.productInfo.uniqueId)}),$pricedivs},apiUpdatePrices:function(currentInfo){var that=this,$pricedivs=this.apiGetRelevantPriceElements();$pricedivs.forEach(function($div){var style=that.apiGetAttribute($div,that.tagList.PRICING.SELECTOR),constant=that.apiGetAttribute($div,that.tagList.PRICING.CONSTANT),regular=that.apiQuerySelectorDataTag(that.tagList.PRICING.REGULAR,$div),subscribe=that.apiQuerySelectorDataTag(that.tagList.PRICING.SUBSCRIBE,$div),compare=that.apiQuerySelectorDataTag(that.tagList.PRICING.COMPARE,$div),priceEditCallback=that.productInfo.uiModifyPrice,useQuantity=that.apiGetAttribute($div,that.tagList.PRICING.QUANTITY),qty=Number(useQuantity?that.productInfo.uiGetQuantity(that):1);switch(that.apiSetText(compare,that.logic.apiGetComparePrice(qty)),that.apiHide(compare),style){case"original":case"original-compare":that.apiHide(regular),style.includes("compare")&&that.logic.apiShowComparePrice()&&that.apiShow(compare),that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,"","",qty));break;case"strike":case"strike-compare":currentInfo.groupId===""?(style.includes("compare")&&that.logic.apiShowComparePrice()&&that.apiShow(compare),constant?(that.apiSetText(regular,that.logic.apiGetRegularPrice($div,priceEditCallback,currentInfo.variantId,constant,"",qty)),that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,constant,"",qty)),that.apiShow(regular)):(that.apiHide(regular),that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,"","",qty)))):(constant?constant===currentInfo.groupId?(that.apiSetText(regular,that.logic.apiGetRegularPrice($div,priceEditCallback,currentInfo.variantId,currentInfo.groupId,currentInfo.planId,qty)),that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,currentInfo.groupId,currentInfo.planId,qty))):(that.apiSetText(regular,that.logic.apiGetRegularPrice($div,priceEditCallback,currentInfo.variantId,constant,"",qty)),that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,constant,"",qty))):(that.apiSetText(regular,that.logic.apiGetRegularPrice($div,priceEditCallback,currentInfo.variantId,currentInfo.groupId,currentInfo.planId,qty)),that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,currentInfo.groupId,currentInfo.planId,qty))),that.apiShow(regular));break;case"overwrite":case"overwrite-compare":that.apiHide(regular),currentInfo.groupId===""?(style.includes("compare")&&that.logic.apiShowComparePrice()&&that.apiShow(compare),constant?that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,constant,"",qty)):that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,"","",qty))):constant?constant===currentInfo.groupId?that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,currentInfo.groupId,currentInfo.planId,qty)):that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,constant,"",qty)):that.apiSetText(subscribe,that.logic.apiGetDiscountPrice($div,priceEditCallback,currentInfo.variantId,currentInfo.groupId,currentInfo.planId,qty));break}})}});function LogicHandler(productInfo){this.ui=productInfo.ui,this.productInfo=productInfo,this.current={variantId:"",groupId:"",planId:""}}LogicHandler.prototype=Object.assign({},LogicHandler.prototype,{apiGetCurrentCopy:function(){return JSON.parse(JSON.stringify(this.current))},apiGetVariants:function(){return this.productInfo.product.variants},apiGetVariantByName:function(name){return this.apiGetVariants().find(function(variant){return variant.title===name})},apiGetVariantById:function(id){return this.apiGetVariants().find(function(variant){return String(variant.id)===String(id)})},apiGetSellingPlanGroups:function(){var spg=this.productInfo.product.selling_plan_groups,that=this;if(spg&&spg.length>0)return spg.filter(function(group){return group.app_id===that.productInfo.appId&&!group.name.includes(that.productInfo.hiddenGroup)})},apiGetSellingPlanGroupById:function(id){var groups2=this.apiGetSellingPlanGroups();if(groups2)return groups2.find(function(group){return String(group.id)===String(id)})},apiGetSellingPlansByGroupId:function(groupId){var group=this.apiGetSellingPlanGroupById(groupId);if(group)return group.selling_plans},apiGetSellingPlanById:function(groupId,sellingPlanId){var plans=this.apiGetSellingPlansByGroupId(groupId);if(plans)return plans.find(function(plan){return String(plan.id)===String(sellingPlanId)})},apiGetSellingPlanAllocationsByVariantId:function(variantId){var variant=this.apiGetVariantById(variantId);if(variant)return variant.selling_plan_allocations},apiGetAnySellingPlanAllocationByVariantGroupId:function(variantId,groupId){var spas=this.apiGetSellingPlanAllocationsByVariantId(variantId);if(spas)return spas.find(function(plan){return String(plan.selling_plan_group_id)===String(groupId)})},apiGetSellingPlanAllocationByVariantGroupPlanId:function(variantId,groupId,planId){var spa=this.apiGetSellingPlanAllocationsByVariantId(variantId);if(spa)return spa.find(function(plan){return String(plan.selling_plan_group_id)===String(groupId)&&String(plan.selling_plan_id)===String(planId)})},apiHasValidSellingPlanAllocations:function(variantId){var hasValidSPA=!1,SPAList=this.apiGetSellingPlanAllocationsByVariantId(variantId),that=this;return SPAList.forEach(function(SPA){var groupId=SPA.selling_plan_group_id;that.apiGetSellingPlanGroupById(groupId)&&(hasValidSPA=!0)}),hasValidSPA},apiIsOTP:function(){return this.current.variantId!==""&&this.current.groupId===""&&this.current.planId===""},apiChangePlan:function(newplanId){return newplanId===""&&this.current.groupId===""?(this.current.planId="",this.ui.apiOnPlanChanged(this.apiGetCurrentCopy()),!0):this.apiGetSellingPlanAllocationByVariantGroupPlanId(this.current.variantId,this.current.groupId,newplanId)?(this.current.planId=String(newplanId),this.ui.apiOnPlanChanged(this.apiGetCurrentCopy()),!0):!1},apiChangeGroup:function(newGroupId){if(newGroupId==="")return this.current.groupId="",this.current.planId="",this.ui.apiOnGroupChanged(this.apiGetCurrentCopy()),!0;if(this.apiGetAnySellingPlanAllocationByVariantGroupId(this.current.variantId,newGroupId)){var plans=this.apiGetSellingPlansByGroupId(newGroupId);if(plans&&plans.length>0)return this.current.groupId=String(newGroupId),this.apiGetSellingPlanAllocationByVariantGroupPlanId(this.current.variantId,this.current.groupId,this.current.planId)?this.ui.apiOnGroupChanged(this.apiGetCurrentCopy()):(this.current.planId="",this.ui.apiOnGroupChanged(this.apiGetCurrentCopy())),!0}return!1},apiChangeVariant:function(newVariantId){var variant=this.apiGetVariantById(newVariantId);variant&&(this.current.variantId=String(newVariantId),this.apiGetAnySellingPlanAllocationByVariantGroupId(this.current.variantId,this.current.groupId)?this.current.groupId=this.current.groupId:(this.current.groupId="",this.current.planId=""),this.ui.apiOnVariantChanged(this.apiGetCurrentCopy()))},apiSetupVariantAndGroup:function(newVariantId,newGroupId){if(String(newGroupId)!==""&&this.apiGetAnySellingPlanAllocationByVariantGroupId(newVariantId,newGroupId)){this.current.variantId=String(newVariantId),this.current.groupId=String(newGroupId),this.apiChangeVariant(newVariantId);return}this.current.variantId=String(newVariantId),this.apiChangeVariant(newVariantId)},apiShowComparePrice:function(){var variant=this.apiGetVariantById(this.current.variantId);return variant&&variant.compare_at_price&&variant.compare_at_price>variant.price},apiGetComparePriceUnformatted:function(_qty){var variant=this.apiGetVariantById(this.current.variantId);return variant&&variant.compare_at_price?variant.compare_at_price*_qty:void 0},apiGetComparePrice:function(_qty){var variant=this.apiGetVariantById(this.current.variantId);return this.apiFormatMoney(variant&&variant.compare_at_price?variant.compare_at_price*_qty:void 0)},apiCalculateDiscount:function(compare,current){return typeof compare!="undefined"?(compare-current)*100/compare:0},apiCalculateSaveAmount:function(compare,current){return typeof compare!="undefined"?compare-current:0},apiAddDiscountPercentage:function(money){var self=this;return money.discount={regular:self.apiCalculateDiscount(money.regular,money.regular),subscribe:self.apiCalculateDiscount(money.regular,money.subscribe),adjustment:money.adjustment.map(function(adj){return self.apiCalculateDiscount(money.regular,adj)})},money},apiAddSaveValue:function(money){var self=this;return money.save={regular:self.apiCalculateSaveAmount(money.regular,money.regular),subscribe:self.apiCalculateSaveAmount(money.regular,money.subscribe),adjustment:money.adjustment.map(function(adj){return self.apiCalculateSaveAmount(money.regular,adj)})},money},apiGetPriceDetails:function(_variantId,_groupId,_planId,_qty){var self=this;if(_variantId==="")return self.apiAddSaveValue(self.apiAddDiscountPercentage({regular:void 0,subscribe:void 0,adjustment:[]}));if(_groupId==="")return self.apiAddSaveValue(self.apiAddDiscountPercentage({regular:void 0,subscribe:this.apiGetVariantById(_variantId).price*_qty,adjustment:[]}));if(_planId===""){var spa=this.apiGetAnySellingPlanAllocationByVariantGroupId(_variantId,_groupId);return self.apiAddSaveValue(self.apiAddDiscountPercentage({regular:this.apiGetVariantById(_variantId).price*_qty,subscribe:spa?spa.price*_qty:void 0,adjustment:spa?spa.price_adjustments.map(function(adj){return adj.price*_qty}):[]}))}var spa=this.apiGetSellingPlanAllocationByVariantGroupPlanId(_variantId,_groupId,_planId);return self.apiAddSaveValue(self.apiAddDiscountPercentage({regular:spa?spa.compare_at_price*_qty:void 0,subscribe:spa?spa.price*_qty:void 0,adjustment:spa?spa.price_adjustments.map(function(adj){return adj.price*_qty}):[]}))},apiGetFormattedPriceDetails:function(money){return{regular:this.apiFormatMoney(money.regular),subscribe:this.apiFormatMoney(money.subscribe)}},apiFormatMoney:function(value){return value||value===0?typeof Shopify!="undefined"?Intl.NumberFormat(Shopify.locale,{style:"currency",currency:Shopify.currency.active,minimumFractionDigits:2}).format(value/100):"$"+String(value/100):"$INVALID"},apiGetRegularPrice:function($div,priceEditCallback,_variantId,_groupId,_planId,_qty){var priceDetails=this.apiGetPriceDetails(_variantId,_groupId,_planId,_qty);return priceDetails=priceEditCallback(this.productInfo.ui,$div,priceDetails),this.apiGetFormattedPriceDetails(priceDetails).regular},apiGetDiscountPrice:function($div,priceEditCallback,_variantId,_groupId,_planId,_qty){var priceDetails=this.apiGetPriceDetails(_variantId,_groupId,_planId,_qty);return priceDetails=priceEditCallback(this.productInfo.ui,$div,priceDetails),this.apiGetFormattedPriceDetails(priceDetails).subscribe}}),document.addEventListener("DOMContentLoaded",function(){window.smartrrProductList&&window.smartrrProductList[uniqueId]&&new UIHandler(window.smartrrProductList[uniqueId])}),window.smartrrProductList&&window.smartrrProductList[uniqueId]&&new UIHandler(window.smartrrProductList[uniqueId]),window.addEventListener("pageshow",function(){if(window.smartrrProductList&&window.smartrrProductList[uniqueId]){var productInfo=window.smartrrProductList[uniqueId],current=productInfo.ui.logic.apiGetCurrentCopy();(current.groupId===""&¤t.planId===""||productInfo.ui.logic.apiGetSellingPlanAllocationByVariantGroupPlanId(current.variantId,current.groupId,current.planId))&&(productInfo.ui.logic.apiChangeVariant(current.variantId),productInfo.ui.logic.apiChangeGroup(current.groupId),productInfo.ui.logic.apiChangePlan(current.planId))}})}); //# sourceMappingURL=/cdn/shop/t/264/assets/smartrr-product-script.js.map?v=85477765075784891401691264625