angular.module("sb").controller("productIndexCtrl",["$backend","$order","$playData","$scope","$filter","$timeout","$personalFields","$http","$overlay","$nosto","$gtm","$user","$vehicle","$url","$cookies","$location","$window","$searchLoop","$productNameService","$trustpilot","$anchorScroll","$campaign","$compile",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k,d,g,nt){function yt(n){var t=document.createElement("textarea");return t.innerHTML=n,t.value}function oi(){var t=!1,f="animation",e="",i="Webkit Moz O ms Khtml".split(" "),r="",u=document.createElement("div"),n;if(u.style.animationName!==undefined&&(t=!0),!t)for(n=0;n<i.length;n++)if(u.style[i[n]+"AnimationName"]!==undefined){r=i[n];f=r+"Animation";e="-"+r.toLowerCase()+"-";t=!0;break}return t}var ht,it,ft,vt,ct,rt,et,lt,dt,gt,pt,kt,ni,st,tt;if(i&&i.product)r.product=i.product,r.singleArtGroup=r.product.articleGroups&&r.product.articleGroups.length===1,r.articleIds=[],r.selectedArticleIds=[],i.personalPrintProducts&&(r.product.personalPrintBrandedProduct=i.personalPrintProducts[0],r.product.personalPrintProduct=i.personalPrintProducts[1]),i.engravingProduct&&(r.product.engravingProduct=i.engravingProduct),r.product.displayName=k.getDisplayName(r.product.name,r.product.isFitMyBike);else return;r.showNosto=!0;r.yotpoProductId=r.product.id;i.product.relatedProductsShow="overlay";i.product.relatedProductsHide=[];i.product.relatedProductsShowAll=!1;i.product.relatedProductsSortBy=[];var at=n.campaignSettings||[],ii=n.context.site.name=="24mx"?61820:83070,ri=n.context.site.name=="24mx"?91011:83072,ut=n.context.site.name=="24mx"?"sb_24mx/tent/":"sb_xlmoto/tent/";for(r.campaign_tent_without_walls=n.context.site.name=="24mx"?4652510:4659757,r.campaign_tent_with_walls=n.context.site.name=="24mx"?4652756:4660478,at.push({name:"tent",productIds:[r.campaign_tent_without_walls,r.campaign_tent_with_walls]}),ht=0;ht<at.length;ht++){if(it=at[ht],it.name==="tent")for(ft=0;ft<it.productIds.length;ft++)if(it.productIds[ft]===r.product.id){r.showCampaign="tent";r.showNosto=!1;r.yotpoProductId=it.productIds[ft]===r.campaign_tent_without_walls?ii:ri;i.product.relatedProductsShow="grid";i.product.relatedProductsHide=[r.campaign_tent_without_walls,r.campaign_tent_with_walls];i.product.relatedProductsSortBy=n.context.site.name=="24mx"?[75376,95588,46281,111570,96158,46485,54450,46278,50116,66913,42985,2315123,97143,3159166,3095748,76485,3159152,95676,46280,75774,76394,3793664,84221,92545,1057]:[56179,84222,2141121,2315123,3095746,3159152,3159166,46281,96158,111570,75376,75774,50119,4030202,92875];r.images=[{id:ut+"1",type:"content"},{id:ut+"2",type:"content"},{id:ut+"3",type:"content"},{id:ut+"4",type:"content"},{id:ut+"5",type:"content"},{id:ut+"6",type:"content"},{id:ut+"7",type:"content"},{id:ut+"8",type:"content"},{id:ut+"9",type:"content"},];nt.blockPopup();r.tentCampaign=it;break}if(it.name==="pirelli-voucher")for(ft=0;ft<it.productIds.length;ft++)if(it.productIds[ft]===r.product.id){r.showPirelliCampaign=!0;r.pirelliCampaign=it;break}}if(r.showPirelliCampaign&&(r.product.currentPrice.priceFlag="CAMPAIGN",f(function(){if($(".label-price-flag-campaign").length>0){var t=u("loc")("labelCampaignVoucherShort"),i=u("sbcurrency")(r.pirelliCampaign.custom["value-"+n.context.domain.currency.name],{v:1});$(".label-price-flag-campaign").html(t.replace("{0}",i))}})),r.showTrustpilot=d.getCurrentBusinessunitId(),vt=0,ct=function(){vt++;vt>=3&&f(function(){typeof yotpo!="undefined"&&yotpo.state==="ready"&&yotpo.initWidgets()},500)},r.showNosto&&(r.recommendedProductsCat=[],h.setDependency("productpage-personal-category-1","recommendedProductsCat",r,function(){angular.forEach(r.recommendedProductsCat,function(n,t){n.id===r.product.id&&r.recommendedProductsCat.splice(t,1)});c.impressions(r.recommendedProductsCat.slice(0,3),"productpage-nosto-cat");ct()}),r.recommendedProductsBrand=[],h.setDependency("productpage-personal-brand-1","recommendedProductsBrand",r,function(){angular.forEach(r.recommendedProductsBrand,function(n,t){n.id===r.product.id&&r.recommendedProductsBrand.splice(t,1)});c.impressions(r.recommendedProductsBrand.slice(0,3),"productpage-nosto-brand");ct()}),r.popularProducts=[],r.outletProducts=[],r.recommendedProducts=[],h.setDependency("frontpage-popular-1","popularProducts",r,function(){c.impressions(r.popularProducts,"Deleted product page recommendations")}),h.setDependency("frontpage-outlet-1","outletProducts",r,function(){c.impressions(r.outletProducts,"Deleted product page recommendations")}),h.setDependency("frontpage-recommendations-1","recommendedProducts",r,function(){c.impressions(r.outletProducts,"Deleted product page recommendations")})),r.product.categoryPath&&(r.product.categoryPath=yt(r.product.categoryPath)),r.product.lastCategoryTitle&&(r.product.lastCategoryTitle=yt(r.product.lastCategoryTitle)),r.showGermanPriceDisclaimer=n.context&&n.context.domain.name==="de",r.product.hasUnitPrice=!r.product.currentPrice.fromPrice,r.showArticleSelect=!1,r.product.stock=r.product.stock&&r.product.stock>=0?r.product.stock:0,r.product.deliveryLow=0,r.product.deliveryHigh=0,r.product.artGroupMinStock=[],r.product.articleGroups&&r.product.stock>0)for(rt=0;rt<r.product.articleGroups.length;rt++)et=r.product.articleGroups[rt],et.title!==""&&(et.isSelectable=!0,r.showArticleSelect=!0,r.articleIds.push(""),et.title=yt(et.title)),angular.forEach(et.articles,function(n){n.stock&&(r.product.stock=n.stock<r.product.stock?n.stock:r.product.stock,n.stock!==r.product.artGroupMinStock[rt]&&(!r.product.artGroupMinStock[rt]||n.stock<r.product.artGroupMinStock[rt])&&(r.product.artGroupMinStock[rt]=n.stock),n.handlingDays&&(n.fromDeliveryDays+=n.handlingDays,n.toDeliveryDays+=n.handlingDays),et.isSelectable?r.product.deliveryLow>0?n.fromDeliveryDays<r.product.deliveryLow&&(r.product.deliveryLow=n.fromDeliveryDays,r.product.deliveryHigh=n.toDeliveryDays):(r.product.deliveryLow=n.fromDeliveryDays,r.product.deliveryHigh=n.toDeliveryDays):(r.articleIds[rt]=n.id.toString(),r.selectedArticleIds[rt]=n.id.toString(),r.product.deliveryLow=n.fromDeliveryDays,r.product.deliveryHigh=n.toDeliveryDays),n.delayDays&&(r.product.delayed=!0,r.product.deliveryLow+=n.delayDays,r.product.deliveryHigh+=n.delayDays))});r.metaAccordion=[];r.metaAccordion.video=!0;r.metaAccordion.description=!0;Date.prototype.addDays=function(n){var t=new Date(this.valueOf());return t.setDate(t.getDate()+n),t};lt=(new Date).addDays(60);r.freeReturnsUntil=("0"+lt.getDate()).slice(-2)+"."+("0"+(lt.getMonth()+1)).slice(-2)+"."+lt.getFullYear();r.vehiclesLoaded=!1;window.location.pathname.split("/")[2]&&(r.checkedVehicle=window.location.pathname.split("/")[2]);a.getVehicles(function(n){r.vehiclesLoaded=!0;r.checkingUserVehicle=n.current&&n.current.urlName===r.checkedVehicle;r.product.vehicleList&&r.product.vehicleList.length===0&&!r.checkingUserVehicle&&(r.product.showFmbWizard=!r.product.fmbFits)});l.getUser(function(n){n.roles&&n.roles.length>0&&(r.authenticated=!0,n.roles.indexOf("poweruser")>-1&&(r.poweruser=!0))});r.getEditLink=function(t){return n.settings.appSettings.editProductLink.replace("{0}",t)};r.accordionToggle=function(n){r.metaAccordion[n]=!r.metaAccordion[n]};r.product.isFitMyBike&&r.checkedVehicle&&(dt=w.location.href.replace("/"+r.checkedVehicle,""),gt=w.location.pathname.replace("/"+r.checkedVehicle,""),c.dataLayer.add({pageUrl:dt,pagePath:gt}));pt=r.product.lastCategoryId?r.product.categoryPath+" ("+r.product.lastCategoryId.toString()+")":"";var wt={name:r.product.name,id:r.product.id.toString(),price:r.product.currentPrice.price.toString(),brand:r.product.brand?r.product.brand:null,category:pt.length>0?pt:null},ot=p.search(),bt={};ot&&ot.list&&(ot.pos&&(wt.position=ot.pos),bt.list=ot.list,(ot.list==="loop54-search-results"||ot.list==="loop54-search-recommendations")&&b.events.click(r.product.id),p.search("p",!0).search("list",null).search("pos",null).replace(),c.dataLayer.add({event:"productClick",ecommerce:{click:{actionField:bt,products:[wt]}}}));c.dataLayer.add({event:"productDetails",ecommerce:{currencyCode:n.context.domain.currency.name,detail:{actionField:bt,products:[wt]}}});r.scrollToComplementaryProducts=function(){return $("html,body").animate({scrollTop:$("#show-accessories").offset().top-80},300),!1};r.getSelectableArticles=function(n){var t=[];return angular.forEach(n.articles,function(n){n.stock>0&&t.push(n)}),t};r.uiHeartbeat=[];r.startTimer=function(n){r.timer=f(function(){r.uiHeartbeat[n]=!1},600)};var ui=function(){var i,e,n,o,s,u,t,h,c,f;if(!r.product.articleGroups)return!1;for(i=r.product.articleGroups.filter(function(n){return n.isSelectable}),n=0,o=i.length;n<o;n++)for(s=i[n],u=r.getSelectableArticles(s),t=0,h=u.length;t<h;t++){if(c=u[t],f=c.stock>=5,(n===0&&t>0||n!==0)&&e!=f)return!1;e=f}return!0},fi=function(){var u,e,o,s,t,h,c,f,i,l,n;if(!r.product.articleGroups)return!1;for(u=r.product.articleGroups.filter(function(n){return n.isSelectable}),t=0,h=u.length;t<h;t++)for(c=u[t],f=r.getSelectableArticles(c),i=0,l=f.length;i<l;i++){if(n=f[i],(t===0&&i>0||t!==0)&&(e!=n.fromDeliveryDays||o!=n.toDeliveryDays||s!=n.handlingDays))return!1;e=n.fromDeliveryDays;o=n.toDeliveryDays;s=n.handlingDays}return!0},ei=function(){for(var t=r.product.articleGroups.filter(function(n){return n.isSelectable}),n=0,i=t.length;n<i;n++)if(!t[n].selectedArticle)return!1;return!0};if(r.showStockStatus=ui(),r.showDeliveryTime=fi(),kt=!1,r.selectArticle=function(n,t){if(ei()&&(r.showStockStatus=!0,r.showDeliveryTime=!0),r.articleIds[t]=String(n.id),r.selectedArticleIds[t]=String(n.id),r.singleArtGroup)r.product.stock=n.stock,n.fromDeliveryDays!==r.product.deliveryLow&&(r.product.deliveryLow=n.fromDeliveryDays,r.product.deliveryHigh=n.toDeliveryDays,r.product.usePrint&&(r.product.deliveryLow+=1,r.product.deliveryHigh+=1));else{kt===t?(r.product.deliveryLow=n.fromDeliveryDays,r.product.deliveryHigh=n.toDeliveryDays,r.product.usePrint&&(r.product.deliveryLow+=1,r.product.deliveryHigh+=1)):n.fromDeliveryDays>r.product.deliveryLow&&(r.product.deliveryLow=n.fromDeliveryDays,r.product.deliveryHigh=n.toDeliveryDays,kt=t,r.product.usePrint&&(r.product.deliveryLow+=1,r.product.deliveryHigh+=1));r.product.artGroupMinStock[t]=n.stock;r.product.stock=r.product.artGroupMinStock[0];for(var i=1;i<r.product.artGroupMinStock.length;i++)r.product.artGroupMinStock[i]<r.product.stock&&(r.product.stock=r.product.artGroupMinStock[i])}r.product.calculatePrices&&(r.updateProductPriceInfo(n),r.singleArtGroup||r.calcArticlePrices());n.images[0]&&r.articleImageSelection(n.images[0]);f.cancel(r.timer);r.uiHeartbeat[t]=!0;r.startTimer(t)},ni=function(n,t){if(t<=0)return 0;if(n<=0)return 100;var i=1-n/t;return Math.round(i*100)},r.updateProductPriceInfo=function(n){r.singleArtGroup?(r.product.currentPrice=r.product.priceMatrix[n.id],r.product.currentPrice.fromPrice=!1):(r.product.currentPrice=r.product.priceMatrix[r.articleIds.join("_")],r.product.currentPrice.fromPrice=r.articleIds.length!==r.selectedArticleIds.length);r.showPirelliCampaign&&(r.product.currentPrice.priceFlag="CAMPAIGN");r.product.currentPrice.comparisonPrice>0&&(r.product.currentPrice.discountPercent=ni(r.product.currentPrice.price,r.product.currentPrice.comparisonPrice))},r.artCalcedPrices=[],r.calcArticlePrices=function(){angular.forEach(r.articleIds,function(n,t){r.artCalcedPrices[t]={};r.artCalcedPrices[t][n]="";angular.forEach(r.product.articleGroups[t].articles,function(n){var f,i;n.id!==""&&n.stock>0&&(f=angular.copy(r.articleIds),f[t]=String(n.id),i=r.product.priceMatrix[f.join("_")],i.price===r.product.currentPrice.price?r.artCalcedPrices[t][n.id]="":i.price>r.product.currentPrice.price?r.artCalcedPrices[t][n.id]="+"+u("sbcurrency")(i.price-r.product.currentPrice.price,{v:1}):i.price<r.product.currentPrice.price&&(r.artCalcedPrices[t][n.id]="-"+u("sbcurrency")(r.product.currentPrice.price-i.price,{v:1})))})})},r.product.currentPrice.fromPrice&&(r.product.calculatePrices=!0,r.singleArtGroup||(angular.forEach(r.product.priceMatrix,function(n,t){n.price===r.product.currentPrice.price&&(r.articleIds=t.split("_"))}),r.calcArticlePrices())),r.getPersonalFields={get printName(){return r.hasPersonalFields=!0,r.personalPrintName},set printName(n){r.validatePersonalFieldsName=!1;r.personalPrintName=n},get printNumber(){return r.hasPersonalFields=!0,r.personalPrintNumber},set printNumber(n){r.validatePersonalFieldsNumber=!1;r.personalPrintNumber=n}},r.getPersonalNameField={get printName(){return r.hasPersonalNameField=!0,r.personalPrintName},set printName(n){r.validatePersonalFieldsName=!1;r.personalPrintName=n}},r.addToCart=function(n){var h,u,o;if(r.addToCartLoading)return!1;if(r.articleIds.length>0&&r.selectedArticleIds.length===r.articleIds.length)for(r.addToCartValid=!0,h=0;h<r.selectedArticleIds.length;h++)(r.selectedArticleIds[h]===""||r.selectedArticleIds[h]==null)&&(r.addToCartValid=!1);else r.addToCartValid=!1;if(u={item:{id:n,articleIds:angular.copy(r.selectedArticleIds)}},r.product.usePrint){o=e.getActivePersonalFields();for(val in o)r.product.brandedPrint&&o[val].idBranded&&u.item.articleIds.push(o[val].idBranded.toString()),!r.product.brandedPrint&&o[val].id&&u.item.articleIds.push(o[val].id.toString()),(val==="printName"||val==="printNumber")&&(u[val]=o[val]||"xxx")}if(r.addToCartValid&&r.hasPersonalFields?(r.addToCartValid=!1,r.personalPrintNumber&&r.personalPrintName&&(r.addToCartValid=!0,u.printName=r.personalPrintName,u.printNumber=r.personalPrintNumber)):r.addToCartValid&&r.hasPersonalNameField&&(r.addToCartValid=!1,r.personalPrintName&&(r.addToCartValid=!0,u.printName=r.personalPrintName)),r.openCartProcessOverlay=function(n){r.product.productRelatedData&&i.product.relatedProductsShow=="overlay"?s.openOverlay({img:r.product.id,compl:r.product.productRelatedData},{directive:"sbCartProcess",state:n,align:"top"},!1):(s.openOverlay({img:r.product.id},{directive:"sbCartProcess",state:n,align:"top"},!1),i.product.relatedProductsShow=="grid"&&(r.scrollToComplementaryProducts(),i.product.relatedProductsShowAll=!0))},r.addToCartValid)r.addToCartLoading=!0,r.product.fmbId&&(u.vehicleId=r.product.fmbId),u.categoryId=r.product.lastCategoryId?r.product.lastCategoryId:0,r.openCartProcessOverlay("adding"),t.addItem(u,function(){s.open||r.openCartProcessOverlay("added")},function(){s.open||r.openCartProcessOverlay("error")},function(){r.addToCartLoading=!1});else return r.validateArticleSelects=!0,r.validatePersonalFields(!0),r.addToCartLoading=!1,!1;f(function(){$(".campaign-mega-hover").addClass("campaign-mega-hover-active")})},r.validatePersonalFields=function(n){r.validatePersonalFieldsName=!(r.personalPrintName&&r.personalPrintName.length>0&&r.personalPrintName.length<=50);r.validatePersonalFieldsNumber=!(r.personalPrintNumber&&r.personalPrintNumber.length>0&&r.personalPrintNumber.length<=50);n?(r.printNameEmpty=!(r.personalPrintName&&r.personalPrintName.length>0),r.printNumberEmpty=!(r.personalPrintNumber&&r.personalPrintNumber.length>0)):(r.printNameEmpty=!1,r.printNumberEmpty=!1);r.printNameWarning=r.personalPrintName&&r.personalPrintName.length>20&&r.personalPrintName.length<=50;r.printNumberWarning=r.personalPrintNumber&&r.personalPrintNumber.length>20&&r.personalPrintNumber.length<=50},r.product.productRelatedData=!1,r.product.productRelatedUrl&&o.get(r.product.productRelatedUrl).then(function(n){r.product.productRelatedData={productRelatedData:n,productIndexScope:r}},function(){}),document.getElementById("personal-print-preview")){st=document.getElementById("personal-print-preview");tt=st.getContext("2d");function ti(n,t,i,u,f,e){do i--,tt.font=i+"px "+t;while(tt.measureText(n).width>st.width-f);tt.textBaseline=e;tt.textAlign="center";r.product.personalFieldsValues.strokeColor&&(tt.strokeStyle="#"+r.product.personalFieldsValues.strokeColor.hex,tt.lineWidth=3,tt.strokeText(n.toUpperCase(),st.width/2,u));tt.fillStyle=r.product.personalFieldsValues.fontColor?"#"+r.product.personalFieldsValues.fontColor.hex:"#000000";tt.fillText(n.toUpperCase(),st.width/2,u)}r.product.updatePersonalFieldsValues=function(){if(r.product.personalFieldsValues){var t=r.product.personalFieldsValues.printName,i=r.product.personalFieldsValues.printNumber,n=r.product.personalFieldsValues.font.family;tt.clearRect(0,0,50,150);ti(t,n,30,69,10,"alphabetic");ti(i,n,40,77,10,"hanging")}};r.removeSavedPrint=function(){e.removeSavedPersonalFields();r.product.usePrint=!1;r.product.deliveryLow-=1;r.product.deliveryHigh-=1}}r.guideState=!1;r.guideBtnActive=!1;r.hoverGuideBtn=function(n){if("ontouchstart"in document.documentElement)return!1;n==="enter"?r.guideBtnActive=!0:n==="leave"&&(r.guideBtnActive=!1)};r.toggleGuide=function(){r.guideState=!r.guideState};r.toggleStars=!0;oi()&&(r.toggleStars=!1,document.addEventListener("animationstart",function(n){n.animationName=="nodeInserted"&&(f(function(){$(".yotpo-reviews .yotpo-first-review").length>0?($(".bottomLine").hide(),$(".product-info-custom-review").hide()):r.toggleStars=!0}),ct())},!0));r.noReturnBrands=["Arrow","G.P.R.","MIVV","Scorpion","Scalvini","LeoVince"];r.campaign=!1;r.campaignActive=!1;nt.isActive("wintersale2018")&&i.product.isOutlet&&(r.campaign=!0,f(function(){$(".campaign-mega-hover").addClass("campaign-mega-hover-active")}))}]);;
var app=angular.module("sb");app.directive("jsonLd",["$filter","$sce",function(n,t){return{restrict:"E",template:'<script type="application/ld+json" ng-bind-html="jsonLd"><\/script>',scope:{json:"=json"},link:function(i){i.jsonLd=t.trustAsHtml(n("json")(i.json))},replace:!0}}]);;
