{"version":3,"sources":["reviewStars_A.js","pdPhotoGallery_A.js","pdRecipeSelector_A.js","pdStickyBar_A.js","pdTabPanel_A.js","map_A.js","getTheLookDetail_A.js","getTheLookGallery_A.js","pdAjaxButtons_A.js","pdAddOns_A.js","pdInstallments_A.js","pdAvailabilityNotification_A.js","pdBundleItemVersionSelector_A.js","pdDeliveryAvailability_A.js","deliveryPointWidget_A.js","pdPdfExport_A.js","pdQuantitySelector_A.js","pdVersionQuantitySelector.js","pdVersionSelector_A.js","pdVersionSelector_C.js","pdVersionSelector_D.js","popupWidthFixer_A.js","pdWarehouseSearch_A.js","pdReview_A.js","pdReviewForm_A.js","pdReviewBox_A.js","pdReviewsSummary_A.js","orderChangeForm_Α.js","cartSearchBox_A.js","productDetails_C.js","pdLogin_A.js","categoryDetailedBox_A.js","categoryListMain_A.js","categoryListMenu_A.js","plPageMode_A.js"],"names":["initStars","isRateMode","ratingSummary","$wrapper","$stars","find","$starsList","closest","$rateSpan","$","dataMember","data","$rateInput","parent","$clearBtn","click","removeClass","text","length","val","keyup","hide","mouseenter","addClass","this","nextAll","children","prevAll","prev","mouseleave","fillRatedStars","show","isSelection","activeStars","Math","floor","starsDecimal","round","i","eq","css","deleteSpinnerInstances","spinners","spritespin","copyToClipboard","copyText","document","getElementById","select","setSelectionRange","execCommand","numberToString2","value","addCurrency","clearZeros","returnValue","currency","fractional","LhApp","Context","Currency","Symbol","doShowSymbol","DoShowSymbol","symbolShownFirst","SymbolShownFirst","decimalSeperator","DecimalSeparator","thousandSeperator","numberOfDigits","NumberOfDigits","parseFloat","toFixed","replace","trim","split","RegExp","test","getShortenedUrlAuth","ajax","type","dataType","async","contentType","url","getShortenedUrl","when","done","response","requestData","token","JSON","parse","message","access_token","stringify","success","shortUrl","shortFormat","confUrl","window","location","href","attr","generateQr","error","html","remove","$qrWrapper","QRCode","width","height","InitStickyBar","ww","mobile","$page","$fixedProduct","$offsetContainer","isTouch","animate","scrollTop","offset","top","scroll","_","throttle","inViewport","resize","debounce","hasClass","trigger","siblings","elementTop","elementBottom","outerHeight","viewportTop","viewportBottom","updateAttributesTab","$box","$container","visible","each","removeAttr","dynamicIndexes","$anchorContainer","$anchor","$contentContainer","$content","anchor","index","content","initTabs","$tab","initIframeTab","on","calculateIframeHeight","iframe","contents","stickyAnchors","$offsetTop","$stickyBarHeight","Vendd","Scripts","load","MessageBus","subscribe","Plugins","Messages","GoogleMapsLoaded","wrapper","mapOpts","zoom","maxZoom","scrollwheel","mapTypeId","google","maps","MapTypeId","ROADMAP","streetViewControl","mapTypeControl","infoWinOpts","maxWidth","markerOpts","title","Site","Name","icon","map","markers","markerCluster","create","coordinates","coords","c","cc","x","lat","lng","push","Error","firstLatLng","extend","div","GMaps","addMarkers","reinit","setCenter","setZoom","bounds","LatLngBounds","getPosition","fitBounds","getMarker","position","toString","LatLng","findMarker","search","country","callback","Geocoder","geocode","address","results","status","GeocoderStatus","OK","latLng","geometry","closestMarker","lat1","lon1","pi","PI","distances","lat2","dLat","dLon","rLat1","rLat2","a","sin","cos","d","atan2","sqrt","find_closest_marker","removeMarkers","clearMarkers","openedInfoWindow","spot","infoWindow","infoWindowOpts","InfoWindow","marker","addMarker","event","addListener","close","panTo","panBy","setTimeout","open","mcOptions","gridSize","styles","textSize","textHeight","textColor","MarkerClusterer","Widget","BindControl","envelope","$context","context","star","ratingSummaryData","$boxes","$allToCartCont","totalPrice","numOfSelected","getSKU","skuJson","color","size","first","filter","skus","sku","el","get","skuJsonHtml","$control","control","e","$item","qty","updateSizes","sizelist","selectedSku","updateProductInfo","updateQuantity","updateColors","hasSelectedValueChange","allSizes","allColors","obj","getColors","$colorWrapper","$option","sizeId","undefined","findWhere","getSizes","$sizeWrapper","colorId","off","preventDefault","stopPropagation","$this","is","id","skuId","path","itemInfo","minQuantity","maxQuantity","quanta","enhancedInfo","list","publishAsync","Cart","Add","OpenWidget","CartWidget","loading","selectedColor","imgSrc","ColorDimensions","getImageColor","stringToNumber","String","SkuId","CanBuy","toLowerCase","model","Price","Availability","CurrentPrice","UnitPrice","CurrentPriceText","UnitPriceText","DeletedPrice","DeletedPriceText","AvailabilityActionId","AvailabilityName","Handlebars","prop","stockMaxValue","StockMaxValue","MinQuantity","MaxQuantity","max","min","Quanta","quantity","selectedValue","Value","Selected","decodeEntities","dataArray","MultipleAdd","$mainGallery","carouselMainOpts","slidesToShow","slidesToScroll","infinite","adaptiveHeight","draggable","prevArrow","nextArrow","dots","slick","initCarousel","$fancyLinks","fancybox","protect","infobar","$slideWrapper","initFancybox","Product","dataAddOns","state","Controller","getState","$addOns","$selectedAddOns","not","addOn","$addOn","isAddOnOf","selectedId","parentId","isBaseOf","unshift","getParentOrSelfVendd","AddOnProductsToCart","selectedColorId","extraAttributes","bundleItems","recipeItems","comboItems","$attr","code","parents","vendd","MultipleWishlistsEnabled","Function","hideAllProductWishlists","product","showProductWishlists","Wishlist","wishlistModel","localStorage","getItem","wishlistItemId","Items","item","VariantId","Id","Remove","Recipe","GetModel","ProductCompare","ProductCompareWidget","Href","fitToView","autoSize","closeClick","openEffect","closeEffect","padding","beforeShow","$qty","$tooltip","parseInt","$availabilityForm","$productWrapper","$notifyBtn","target","has","change","$addOnsPl","hasQuickbuy","jsonArr","$configuration","configuration","ScrollList","GetCurrentPage","GetCurrentPageSuccess","Quickbuy","addToQuickbuyList","box","userModel","showPriceWithoutVat","productId","defaultColor","initState","dimensionWidget","partial","fixedPrices","priceElement","imageCont","image","HasColors","HasSizes","HasDim3","createNewColorState","defaultDimId","createNewSizeState","createNewDim3State","createNewState","GetUserModel","User","GetClientModel","B2BModel","IsB2BUser","ShowPriceWithoutVat","UpdateBoxData","SelectedColorId","selectedSizeId","SelectedSizeId","selectedDim3Id","SelectedDim3Id","HasSingleColor","HasSingleSize","HasSingleDim3","GetSkuData","skuData","SkuData","CountDownUnitPrice","currentPrice","CountDownUnitPriceWithoutVat","UnitPriceWithoutVat","$enableFormatPrices","formatPrice","name","$wrap","isColorList","isSizeList","isDim3List","Update","colorSelectorCallback","selectedImg","initQuickBuy","initAddOnsList","dataProductPrice","productPrice","preferredPaymentMethodId","$selectedInstallment","$selectedTotal","$initialInstallment","bind","sSelect","ddMaxHeight","Literals","InstallmentsFromText","InstallmentsPeriodText","InstallmentsTotalText","empty","Installments","GetInstallmentsData","GetInstallmentsDataSuccess","unsubscribe","$form","form","$formButton","formData","email","onSuccess","sender","onFailure","submit","Notify","languageId","reset","rnf","validationEngine","required","isEmail","validate","keyCode","NotifySuccess","NotifyFailure","doSetBundleItems","parentProductId","SetBundleItems","$bundleItemList","$controls","$versionSelector","setDeliveryPointService","postalCode","variantArray","variant","Quantity","GetDeliveryAvailability","touch","hideForm","GetDeliveryAvailabilitySuccess","availabilityId","availability","DeliveryAvailabilities","Message","MaxDays","MinDays","append","Deferred","deliveryPointId","statusCode","200","resolve","404","reject","console","log","500","setDeliveryPoint","setDeliveryPointResolve","Cookies","set","expires","publish","DeliveryPoint","GetAvailableWarehousesFailure","showLoader","hideLoader","update","ResetStore","GetModelSuccess","deliveryPostalCode","HasDeliveryPoint","HasPostalCode","PostalCode","GetModelFailed","ResetStoreSuccess","ResetDeliveryPoint","$colorThumbs","$photoThumbs","$colorItems","$photoItems","cleanImage","$cz","$fb","czOpts","transparentImage","useWrapper","adjustY","adjustX","showTitle","CloudZoom","initCZ","clickSlide","current","initFB","$spinner","spinnerSlider","source","spinnerData","sense","sizeMode","responsive","plugins","onInit","ionRangeSlider","skin","hide_min_max","hide_from_to","onChange","updateFrame","from","initSpinner","youTubeInitializedPd","pauseVideo","pausePdVideo","$thisAnchor","$position","$sectionToScroll","manipulateAnchors","$thumbs","$thumbsCont","numOfSlides","imageElement","carouselThumbsOpts","vertical","verticalSwiping","newImg","querySelector","complete","initialization","Promise","onload","then","currentSlide","$colors","$photos","colorSrc","src","founded","elem","$elem","offsetArray","isLastElement","$list","updateAttributes","options","filenamehassuffixdatetime","filename","author","subject","headerhtml","footerhtml","margin","bottom","left","right","PdfExport","PdfExportSuccess","pdf","FileContents","Filename","blob","b64Data","sliceSize","byteCharacters","atob","byteArrays","slice","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","Blob","b64toBlob","createElement","style","visibility","body","appendChild","fileURL","URL","createObjectURL","download","removeChild","configuratorOptions","getElement","element","$_wrapper","config","isSubRecipe","$items","getGlobalElement","_wrapper","$recipe_container","jQuery","recipeController","literals","setOptions","_defaultConfiguration","$ParentWrapper","ParentWrapper","isComboPage","isConfigurationPage","PartialHtml","isFancyboxPopup","ParentRecipeId","RecipeId","ParentRecipeItemId","RecipeItemId","HasAuthorizedPage","HasAuthorizedSave","LoadFromDatabase","SaveToDatabase","ShareConfiguration","SendToOneDealer","HasSummaryPage","HasQuantitySelectors","SaveToLocalStorage","OnLoadPageLoadFromLocalStorage","Attributes","IsPostalCodeMandatory","IsAuthorizedPage","setLiterals","UnAuthorizedText","UnAuthorizedLoginText1","UnAuthorizedLoginText2","InvalidRegistrationData","UnAuthorizedButtonText1","UnAuthorizedButtonText2","TooltipPrevStep","Standard","Optional","NextStep","ShowSummary","SubmitRegistration","Summary","BackToConfiguration","SummaryGeneralErrors","SummaryGeneralErrorsDescription","OutdatedEquipment","StandardEquipment","OptionalEquipment","OptionalEquipmentTotalPrice","PricesText","StandardPriceText","OptionalPriceText","ShippingPriceText","TotalPriceText","AvailableText","ShareText","DownloadPdfText","SaveForLaterText","PricesVatNote","recipeInitialPrice","initModel","shippingModel","checkboxChange","checked","ifChecked","ifUnchecked","result","ingredientIdFrom","ingredientId","dataset","ingredientid","$ingredientIdFrom","RecipeLibrary","AddIngredient","RemoveIngredient","ChangeIngredient","recipe","ingredient","Ingredients","IngredientId","SubRecipeId","subRecipeWrapper","setCheckedItems","setEnabledItems","ErrorCode","showErrorMessage","checkChanges","Categories","category","Groups","indexInGroupArray","group","indexInItemArray","Description","ParentImageURL","bindEvents","initIcheck","initIngredientsToggle","initNextStep","initTooltips","$infoContainer","$errorHtml","momentum","storeLocator","StoreLocator","Partner","CanChangeDealer","openPostCodeSelector","Validate","showSummary","scroll_to_class","GlobalId","HashCode","$successHtml","btnTpl","smallBtn","afterClose","finally","Force","FriendlyName","vin","Vin","PartnerId","partnerId","saveData","isAuthenticated","$unauthorized","$link","UpdateQueryString","Url","Page","Login","encodeURIComponent","$fancyprompt","fancyPrompt","friendlyName","generatePDF","IsShare","addthis","toolbox","ResetRecipe","ClearLocalStorage","delay","queue","dequeue","oneDealerResponse","GetOneDealerData","postMessage","$element","initVal","afterShow","focus","call","$el","$button","coverPdf","user","fullname","FirstName","LastName","IsAuthenticated","today","Date","dd","getDate","mm","getMonth","yyyy","getFullYear","getUserData","externalLink","externalLinkFirst","pagesize","pageorientation","parameters","hasprintcss","getHtmlBodyForPdf","getHtmlHeaderForPdf","getHtmlFooterForPdf","HeaderHeight","FooterHeight","navigator","msSaveOrOpenBlob","img","$img","clone","$pdfHeader","startsWith","$pdfFooter","$bodyclone","scaleWidth","scaleHeight","scale","toggleClass","save","htmlData","Body","Header","Footer","defaultConfiguration","HtmlData","GenerateGlobalId","fail","always","loadData","_config","callbacks","ShippingCost","calculatePrice","calculateWeight","SetCallbacks","GetShippingCost","Initialized","LoadFromGlobalId","FindPartner","LoadFromLocalRecipeItems","RecipeItems","assignConfigurationToUser","AssignConfigurationToUser","hideAllErrors","incompatibles","missingPrerequisites","missingAnyOfPrerequisites","$ingredient","errorHtml","template","ManufacturerProductCode","join","missingAnyOfPrerequisitesHtml","items","initScrollToIngredient","showGeneralErrorMessage","errorItem","$templateErrors","errorCode","ErrorCodes","relatedItemsHtml","$templateClone","$group","groupIndex","ExtraQuantity","CategoryName","Incompatibles","MissingPrerequisites","$parent","appendTo","localStorageHashCode","GetLocalStorageRecipeItemsHashCode","hasChanges","SaveRecipeItemsToLocal","GetCheckedRecipeItems","$template","CheckedRecipeItems","ProductItemId","IsStandard","Category","ImageUrl","price","TotalPrice","prependTo","GroupId","CheckedItemsStandardTotal","CheckedItemsOptionalTotal","parentWrapper","checkIfLoggedIn","GetEnabledItems","EnabledItems","MissingAnyOfPrerequisites","DisableItems","Errors","GroupErrors","prices","GetPrices","InitialPrice","StandardTotalPrice","OptionalTotalPrice","shippingPrice","shippingPriceText","optionalTotalPriceText","totalPriceText","basicPrice","basicPriceText","weightObj","GetWeight","remainingWeight","InitialWeight","OptionalTotalWeight","initiallizeProductRecipe","MaxFreeQuantity","MaxReplaceQuantity","MaxQuantityText","step","$wrapperTooltips","intiTooltip","$selectedWrapper","$toolbox","$tooltipBox","toggle","groupId","goToItem","$category","$nextCategory","next","slideToggle","loadDataError","IsAuthorized","loadDataSuccess","CanEdit","SetRecipeItems","SavedGlobalIdToLocal","SaveGlobalIdToLocal","IsValid","onValidateError","subrecipe_data","onValidateSuccess","$firstError","IngredientsErrors","$input","IngredientsWarnings","ingredientsOutdatedErrors","includes","ingredientsGeneralErrors","$templateOutdated","initialize","pasrseInt","getQueryStringValueByName","getUserViewModelSuccess","LoginPage","encodeURI","globalId","doSave","hasPermissions","_ingredients","_model","SubRecipe","attributes","recipeId","hasCategoryData","isValidConfigurationPage","InitRecipe","GetUserViewModelSuccess","GetShippingModelSuccess","ApplyShippingDataSuccess","ShippingCostText","bindRecipeController","intRegex","decRegex","$field","$first","unitType","minQty","maxQty","SetQuantity","skuQuanta","Helpers","isInteger","SetQuanta","fn","pdControlDisabled","toggleValue","pdQuantitySelector","useFloats","isFloat","$decr","$incr","$select","clipNumber","parseNumber","roundNumber","roundDownNumber","updateValue","isReadOnly","newValue","formatNumber","setValue","oldValue","getValue","minValue","maxValue","SetSelected","visitorInitiated","reInitLazyProductLists","tableSku","$tableSku","updateQuantitiesControl","isNaN","$addToCartBtn","total","$price","$targetPrice","numberToString","init","j","productBox","$productBox","$quantitySelector","$unitPriceContainer","$unitPriceValue","$totalPriceContainer","$totalPriceValue","$addToCartButton","unitPriceLiteral","unitPriceValue","NumberFormatter","parsePrice","isEnabled","selectedQuantity","unitPrice","updateQuantitySelector","updateUnitPrice","updateTotalPrice","updateButtonState","addToCart","valueLiteral","AddCompleted","Failed","$productGroups","$productBoxes","$totalQuantityContainer","$totalQuantityValue","productGroup","groupValue","subtotalPrice","totalQuantity","subtotalQuantity","updateTotalQuantity","formatInt","$productGroup","$subtotalPriceContainer","$subtotalPriceValue","$subtotalQuantityContainer","$subtotalQuantityValue","itemValue","k","updateSubtotalPrice","updateSubtotalQuantity","MultipleAddSuccess","HasGoogleMapsInitialized","EnableTrackingLocation","myLocation","latitude","longitude","skuCode","ignoreAvailability","lazyloadAvailabilities","geoLocationWithZipCode","topAvailableWarehouse","groupBy","latestLocation","productAddedService","setStoreService","selectedWarehouse","searchTerm","maxDistance","hasGeolocation","countryCode","indexOf","pair","GetAvailableWarehouses","geolocation","getCurrentPosition","watchPosition","enableHighAccuracy","maximumAge","bindWarehouses","WarehousesGrouped","Store","CalculateDistances","bindAvailabilities","GetPickUpAvailability","GetPickUpAvailabilitySuccess","pickUpAvailabilities","warehouse","PickupAvailabilities","Shops","Days","AvailabilityActionName","warehousesModel","evaluateDistances","distanceData","ErrorCalculatingDistances","DistanceMeasured","warehousesGroups","sortBy","array","Distance","warehouses","hasWareHouses","TotalFindInRange","Show","IsWithinRange","AvailabilityCustomText","Text","AvailabilityId","HasWareHouses","Warehouses","isDisabled","NoWarehouseFound","getText","mCustomScrollbar","scrollbarPosition","scrollInertia","theme","mouseWheel","tab","selectedWarehouseAvailablity","cartRedirect","productAddedResponse","setStoreResponse","ProductAdded","ContentType","getServiceEndpoint","arguments","ex","setStore","GetAvailableWarehousesSuccess","CalculateDistancesSuccess","consents","sorting","isInitialCall","loadMoreReviews","updateSorting","isVerifiedBuyerChecked","pageNumber","pageSize","totalPageSize","filterBy","reviewForm","$productReviewForm","$openFormLink","$closeFormLink","loginPopup","$loginPopup","Authenticated","$loginLink","$registerLink","$closeBtn","$loginWidget","redirectUrl","setParameterValue","setParameterValueOnUrl","Register","pager","$scrollPager","ReviewsCount","GetReviews","$html","lastItem","currentIndex","cssClass","li","wrapBoxes","last","scrollToTop","scrollOffset","GetReviewsSuccess","Data","ReviewdByCurrentUser","Stars","Enabled","IsVerifiedBuyerChecked","Consents","SortingOptions","hookFormsFn","hookAjaxFormsFn","onSuccessFn","request","IsConsentsEnabled","checkConsents","submitReview","isLoading","Review","description","rating","checkboxes","chkbx","approved","ConsentsManager","insertConsents","ReviewSuccess","responseData","Success","Code","time","Time","parseJSON","ReviewFailure","responseText","InsertConsents","reviewId","sessionIsAuthenticated","currentUserVotedForHelpfullness","$btnVote","$btnVoteYes","$voteYesInputWrapper","$btnVoteNo","$voteNoInputWrapper","$totalYesVotes","$totalNoVotes","$userVotedMessage","$voteError","ReviewVote","ReviewVoteSuccess","vote","noVoteSuccess","ReviewVoteFailure","$orderItems","$submitButton","cash","$orderItem","oid","$checkboxAction","$changeOrderForms","replaceValOpts","replaceWith","returnReason","refundValOpts","refundReason","validateInit","destroy","targetedForm","textareaName","omit","fieldName","defaultOpts","action","note","replaceProductItemId","bankName","bankHolder","bankIban","orderItem","resultData","Service","res","resultsPerPage","maxResults","pdPageNum","isProductSelected","isLookupCompleted","$searchInput","$qtyInput","$increaseQtyInput","$decreaseQtyInput","minLength","lazyLoadPrices","enableInput","enable","enableInputs","$newProducts","$products","insertAfter","MoreProducts","clear","checkSearchTerm","setSelectedProduct","variantId","availabilityActionId","stock","ElasticSearch","GetProductElasticResults","tempQuantity","enableSubmitButton","enableIncreaseQtyInput","enableDecreaseQtyInput","numbersOnly","GetProductElasticResultsFailed","GetProductElasticResultsSuccess","currentUser","customPrices","HasCustomPrices","HasLazyLoadPrices","hits","PageNumber","itemIds","pluck","fetchPrices","fetchAvailabilities","fetchStock","GetClientProductListData","GetClientProductListDataSuccess","modelWithPrices","selectedProduct","Products","_source","Prices","flags","arrayFlags","p","Key","mouseup","compareModel","firstLoad","lazyLoadSender","$pdTabPanel","$bundleItems","isDynamic","bundleProductId","serviceConfiguration","isB2BUser","updateUserState","toolbar","$merchantSelector","Changed","Merchant","merchantPopUp","merchantId","formatPrices","allowOnlyNumbersInput","cartIds","MultipleRemove","MultipleRemoveSuccess","toastr","SuccessMessage","timeOut","showDuration","hideDuration","initAlreadyInCart","detach","StickySidebar","topSpacing","bottomSpacing","containerSelector","innerWrapperSelector","resizeSensor","minWidth","initStickyColumn","SelectedProductId","AlreadyInWishlist","ParentProductId","AlreadyInCompare","canonicalBreadcrumb","Dimensions","colorSelector","sizeSelector","hasColorSelector","hasSizeSelector","colorIsSelected","sizeIsSelected","Versions","ver","ColorIsSelected","dim","IsColor","Buttons","HasAddToCart","HasAddToProductCompare","HasAddToWishlist","AvailabilityNoticationForm","Visible","Disabled","IsSize","IsPopUp","PathChecksum","SelectedProductColorId","sizeGuide","backToList","uspsHtml","promoMenu","replacedBy","inCartCounter","prepend","baseTpl","onYouTubeIframeAPIReady","updateUrl","updateOnlyPrices","$pricesCont","DeletedPriceWithoutVat","DiscountValueWithoutVat","TotalPointsGain","DiscountValue","DiscountPercentage","$availabilityCont","venddProjectConfigs","ProductDetails","updateUrlOnSkuChange","removeParameterFromUrl","history","replaceState","quantityInCart","idsInCart","inCart","ProductId","productInWishlist","$wishlistButton","GetWidgetModelSuccess","productInCompare","$compareButton","lazyLoadAvailabilities","deliveryPointModel","funcCookiesEnabled","cookiesStatus","functionalityCookies","LastViewedProducts","LastViewedProductsIsActive","expirationDays","LastViewedProductsExpirationDays","productNumber","LastViewedProductsNumber","Item","products","productsArray","cookieValue","expireDate","setTime","getTime","secure","Request","IsSecure","samesite","$buttons","openLogin","isComplete","hiddenCont","iconOpen","iconClose","accordion","initListToggle","masonryState","$masonryTarget","checkToInit","setInterval","masonry","itemSelector","columnWidth","gutter","removeData","catMenu","catMenuHeight","spacer","lastScrollTop","delta","stickyNavTop","st","abs","stickyCatMenu","plMode","$pageModeBtn","ProductList","PageMode"],"mappings":"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","file":"scripts-products.js","sourcesContent":["Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Widget.Messages.BindControl, 'x-review-stars', function (envelope) {\n\n var $context = envelope.message.data.context,\n $stars = $('.x-review-stars[data-type=\"stars\"]', $context);\n\n if ($stars.length < 1) return;\n\n $stars.each(function (i, star) {\n var $wrapper = $(star);\n\n var isRateMode = $wrapper.data('is-rate-mode');\n var ratingSummaryData = $wrapper.data('rating-summary');\n var ratingSummary = 0.00;\n\n if (typeof ratingSummaryData === 'string') {\n ratingSummary = parseFloat(ratingSummaryData.replace(\",\", \".\"));\n } else if (typeof ratingSummaryData === 'number') {\n ratingSummary = parseFloat(ratingSummaryData);\n }\n\n initStars(isRateMode, ratingSummary, $wrapper);\n });\n\n });\n\n});\n\nfunction initStars(isRateMode, ratingSummary, $wrapper) {\n\n var $stars = $wrapper.find('.star');\n var $starsList = $stars.closest('.star-list');\n var $rateSpan = $('.rate', $wrapper);\n var dataMember = $wrapper.data('member');\n\n if (isRateMode) {\n\n var $rateInput = $wrapper.parent().find('input[data-member=\"' + dataMember + '\"]');\n\n var $clearBtn = $('input[data-click=\"clear-stars\"]', $wrapper);\n\n $clearBtn.click(function () {\n $stars.removeClass('active selected');\n\n ratingSummary = 0;\n $rateSpan.text(ratingSummary);\n\n if ($rateInput.length > 0) {\n $rateInput.val('');\n $rateInput.keyup();\n }\n\n $clearBtn.hide();\n });\n\n $stars.mouseenter(function () {\n $stars.addClass('inactive');\n $(this).parent().nextAll().children().removeClass('active');\n $(this).parent().prevAll().children().addClass('active');\n $(this).addClass('active').prev().addClass('active');\n\n $rateSpan.text($('.star.active', $wrapper).length / 2);\n });\n\n $stars.mouseleave(function () {\n fillRatedStars(ratingSummary, $stars, false);\n });\n\n $stars.click(function () {\n //set clicked\n ratingSummary = $('.star.active', $wrapper).length / 2;\n\n fillRatedStars(ratingSummary, $stars, true);\n\n if ($rateInput.length > 0) {\n $rateInput.val($('.star.selected', $wrapper).length / 2);\n $rateInput.keyup();\n }\n $clearBtn.show();\n });\n\n $starsList.mouseleave(function () {\n $stars.removeClass('active inactive');\n $rateSpan.text($('.star.selected', $wrapper).length / 2);\n });\n\n } else {\n fillRatedStars(ratingSummary, $stars, true);\n }\n}\n\nfunction fillRatedStars(ratingSummary, $stars, isSelection) {\n if (isSelection) {\n $stars.removeClass('selected');\n }\n $stars.removeClass('active').addClass('inactive');\n\n var activeStars = 2 * (Math.floor(ratingSummary));\n\n var starsDecimal = Math.round((ratingSummary % 1) * 100);\n\n for (var i = 0; i < activeStars; i++) {\n $stars.eq(i).addClass('active').removeClass('inactive');\n if (isSelection) $stars.eq(i).addClass('selected');\n }\n\n if (starsDecimal == 50) {\n starsDecimal += 5;\n $stars.eq(i).css('width', starsDecimal + '%').addClass('active').removeClass('inactive');\n if (isSelection) $stars.eq(i).addClass('selected');\n }\n\n\n};","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, \"product-details-photo-gallery\", function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.x-product-details-photo-gallery', $context);\n\n if ($control.length < 1)\n return;\n\n cleanThumbGallery();\n cleanPhotoGallery();\n initCZ();\n initFB();\n if (isTouch()) initCarousel();\n initSpinner();\n pausePdVideo();\n //Scroll to each section\n scrollToSection();\n //Sticky anchors\n stickyAnchors();\n $(window).scroll(_.throttle(stickyAnchors, 100));\n //Anchors behaviour on scroll\n manipulateAnchors();\n\n function initCZ() {\n var $image = $('.js-image-container', $control);\n\n if ($image.length < 1)\n return;\n\n var $cz = $('.cloud-zoom, .cloud-zoom-gallery', $control),\n $fb = $('.pd-fancybox', $control);\n\n var czOpts = {\n transparentImage: 'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',\n useWrapper: true,\n adjustY: 0,\n adjustX: 90,\n position: 'inside',\n showTitle: false,\n };\n\n var fbOpts = {};\n\n if ($fb.length > 0) {\n $fb.fancybox(fbOpts);\n } else {\n if (!isTouch()) {\n $cz.click(function (e) {\n e.preventDefault();\n $(this).CloudZoom(czOpts);\n });\n } else {\n $cz.on('click', function (e) {\n e.preventDefault();\n /* var $slideWrapper = $('.slick-initialized');\n \n if ($slideWrapper.length > 0) {\n $('.slick-active', $slideWrapper).children('.pd-fancybox-gallery').trigger('click');\n }*/\n });\n }\n };\n };\n\n function initCarousel() {\n\n var $thumbs = $('.gallery-thumbs > ul', $control);\n var $thumbsCont = $thumbs.parent();\n var $mainGallery = $('.main-gallery > ul', $control);\n\n var numOfSlides = $('> li', $thumbs).length;\n\n if ($thumbs.length < 1)\n return;\n\n var $next = $('.nav-next', $control),\n $prev = $('.nav-prev', $control);\n\n var carouselThumbsOpts = {\n vertical: true,\n verticalSwiping: true,\n slidesToShow: 5,\n slidesToScroll: 1,\n infinite: false,\n prevArrow: $('.gallery-thumbs .nav-prev'),\n nextArrow: $('.gallery-thumbs .nav-next'),\n };\n\n var carouselMainOpts = {\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: false,\n adaptiveHeight: true,\n draggable: false,\n prevArrow: $('.main-gallery .nav-prev'),\n nextArrow: $('.main-gallery .nav-next'),\n dots: true\n };\n\n function waitForImageToLoad(imageElement) {\n return new Promise(function (resolve, reject) {\n imageElement.onload = resolve;\n });\n }\n\n var newImg = $mainGallery.get(0).querySelector('.gallery-item.first img');\n if (newImg) {\n if (newImg.complete) {\n initialization();\n } else {\n waitForImageToLoad(newImg).then(function () {\n initialization();\n });\n }\n }\n\n function initialization() {\n $mainGallery.slick(carouselMainOpts);\n\n $thumbs.slick(carouselThumbsOpts);\n\n $('li', $thumbs).eq(0).addClass('current');\n\n $thumbs.on('afterChange', function (event, slick, currentSlide) {\n if (currentSlide == 0) {\n $('.nav-prev', $thumbsCont).addClass('slick-inactive');\n $('.nav-next', $thumbsCont).removeClass('slick-inactive');\n } else if (currentSlide == numOfSlides - 1) {\n $('.nav-prev', $thumbsCont).removeClass('slick-inactive');\n $('.nav-next', $thumbsCont).addClass('slick-inactive');\n } else {\n $('.nav-prev', $thumbsCont).removeClass('slick-inactive');\n $('.nav-next', $thumbsCont).removeClass('slick-inactive');\n }\n });\n $mainGallery.on('afterChange', function (event, slick, currentSlide) {\n $('li', $thumbs).removeClass('slick-current current');\n $('li', $thumbs).eq(currentSlide).addClass('slick-current current');\n if (youTubeInitializedPd)\n pauseVideo();\n });\n\n $('.thumb-item .image-container', $thumbs).click(function () {\n var index = $(this).parent().index();\n $thumbs.slick('slickGoTo', index);\n $('li', $thumbs).removeClass('slick-current current');\n $('li', $thumbs).eq(index).addClass('slick-current current');\n $mainGallery.slick('slickGoTo', index);\n });\n }\n }\n\n function destroyCarousel() {\n var $thumbs = $('.gallery-thumbs > ul', $control);\n var $mainGallery = $('.main-gallery > ul', $control);\n\n if ($thumbs.hasClass('slick-initialized')) $thumbs.slick('unslick');\n if ($mainGallery.hasClass('slick-initialized')) $mainGallery.slick('unslick');\n }\n\n function manipulateCarousel() {\n\n var $slickInitialized = $('.main-gallery > ul', $control).hasClass('slick-initialized');\n\n if (isTouch() && $(window).width() < 960) {\n if (!$slickInitialized) {\n initCarousel();\n $slickInitialized = true;\n }\n } else {\n destroyCarousel();\n $slickInitialized = false;\n }\n\n $(window).resize(_.debounce(function () {\n if (isTouch() && $(window).width() < 960) {\n if (!$slickInitialized) {\n initCarousel();\n $slickInitialized = true;\n }\n } else {\n destroyCarousel();\n $slickInitialized = false;\n }\n }, 100));\n }\n\n function initFB() {\n\n var $fancyLinks = $('.pd-fancybox-gallery', $control);\n var $mainGallery = $('.main-gallery', $control).find('> ul');\n\n if ($fancyLinks.length < 1) return;\n\n var fbOpts = {\n protect: true,\n infobar: true,\n mobile: {\n clickSlide: function (current, event) {\n return \"close\";\n }\n }\n };\n\n $fancyLinks.fancybox(fbOpts);\n\n $control.on('click', '.fancy-btn', function (e) {\n var $slideWrapper = $('.slick-initialized');\n if ($slideWrapper.length > 0) {\n $('.slick-active', $slideWrapper).children('.pd-fancybox-gallery').trigger('click');\n }\n\n });\n };\n\n function initSpinner() {\n var $spinner = $('.spritespin', $control);\n\n if ($spinner.length < 1)\n return;\n\n $control.children('script').remove();\n\n $spinner.each(function (index) {\n var $this = $(this);\n\n var spinnerSlider = $(this).siblings('.spinner-slider');\n\n $this.siblings('script').remove();\n $this.spritespin({\n source: spinnerData[index],\n animate: false,\n sense: -1,\n sizeMode: 'fit',\n responsive: true,\n plugins: [\n 'progress',\n '360',\n 'drag'\n ],\n onInit: function () {\n spinnerSlider.ionRangeSlider({\n skin: \"big\",\n min: 0,\n max: spinnerData[index].length - 1,\n hide_min_max: true,\n hide_from_to: true,\n onChange: function (data) {\n $this.spritespin('api').updateFrame(data.from);\n }\n });\n },\n });\n });\n }\n\n function cleanThumbGallery() {\n var $colorThumbs, $photoThumbs;\n\n $colorThumbs = $('.color-thumb', $control);\n $photoThumbs = $('.photo-thumb', $control);\n\n cleanImage($colorThumbs, $photoThumbs);\n }\n\n function cleanPhotoGallery() {\n var $colorItems, $photoItems;\n\n $colorItems = $('.color-item', $control);\n $photoItems = $('.photo-item', $control);\n\n cleanImage($colorItems, $photoItems);\n }\n\n function cleanImage($colors, $photos) {\n $colors.each(function (index, item) {\n var $item, $thumb, colorSrc, src, founded;\n\n $item = $(item);\n colorSrc = $('img', $item).attr('src');\n founded = false;\n\n\n $photos.each(function (index, elem) {\n $elem = $(elem);\n\n src = $('img', $elem).attr('src');\n\n if (colorSrc === src) {\n $elem.closest('li').remove();\n founded = true;\n return false;\n }\n });\n\n if (founded)\n return false;\n });\n }\n\n function pausePdVideo() {\n var $videos = $('.video-thumb', $control);\n\n if ($videos.length < 1)\n return;\n\n $('.thumb-item', $control).click(function () {\n if (youTubeInitializedPd)\n pauseVideo();\n });\n }\n\n function stickyAnchors() {\n\n if ($(window).width() < 960) return;\n\n var $wrapper = $('.x-pd-gallery-thumbs');\n var $offsetTop = $wrapper.offset().top;\n var $stickyBarHeight = $('.header-region').height();\n\n if ($(window).scrollTop() < $offsetTop - $stickyBarHeight) {\n $wrapper.removeClass('sticky');\n } else {\n $wrapper.addClass('sticky');\n }\n }\n\n function scrollToSection() {\n var $wrapper = $('.x-pd-gallery-thumbs');\n var $container = $('.x-gallery-thumbs', $wrapper);\n var $anchor = $('.anchor', $container);\n var $stickyBarHeight = $('.header-region').height();\n\n $anchor.click(function () {\n var $thisAnchor = $(this);\n var $position = $thisAnchor.attr('id').split(/thumb-(.*)/).filter(function (x) { return x });\n var $sectionToScroll = $('#' + $position);\n if (!$thisAnchor.hasClass('current')) {\n $anchor.removeClass('current');\n $thisAnchor.addClass('current');\n }\n\n $('html, body').animate({ scrollTop: $sectionToScroll.offset().top - ($stickyBarHeight) }, 400);\n });\n\n $(window).scroll(_.throttle(manipulateAnchors, 100));\n\n }\n\n function manipulateAnchors() {\n\n if ($(window).width() < 960) return;\n var $wrapper = $('.x-pd-gallery-thumbs');\n var $container = $('.x-gallery-thumbs', $wrapper);\n var $anchor = $('.anchor', $container);\n var $contentContainer = $('.main-gallery');\n var $content = $('.gallery-item', $contentContainer);\n var $stickyBarHeight = $('.header-region').height();\n var offsetArray = [];\n var typeMap = [];\n var isLastElement = false;\n\n //Add offsets to an Array\n _.each($content, function (content, index) {\n offsetArray.push($(content).offset().top - ($stickyBarHeight + 1));\n });\n\n //Enable every anchor when scroll is in appropriate height\n _.each(offsetArray, function (offset, index) {\n\n if (index == offsetArray.length - 1)\n isLastElement = true;\n\n if (isLastElement) {\n if ($(window).scrollTop() >= offsetArray[index]) {\n $anchor.removeClass('current');\n $('#thumb-' + $($content[index]).attr('id')).addClass('current');\n }\n } else {\n if ($(window).scrollTop() >= offsetArray[index] && $(window).scrollTop() < offsetArray[index + 1]) {\n $anchor.removeClass('current');\n $('#thumb-' + $($content[index]).attr('id')).addClass('current');\n }\n }\n });\n }\n });\n\n});\n\nfunction deleteSpinnerInstances() {\n var spinners = $(\".x-product-details .spritespin\");\n\n if (spinners.length < 1)\n return;\n\n spinners.spritespin(\"destroy\");\n}\n","Vendd.Scripts.load(function () {\n\n var currentRecipeItems = [];\n\n var configuratorOptions = {};\n /**\n * HasAuthorizedPage if true, user must be logged in to see configurator or uri must have valid global identifier (GlobalId)\n * LoadFromDatabase if true, then configurator can load the product recipe item list from database with a valid global identifier\n * SaveToDatabase if true, then configurator can save the product recipe item list to database and generate a global identifier\n * HasSummaryPage if configurator has a summary page of standard items, optional items and prices\n * HasQuantitySelectors if product recipe items have quantity selector (true) or have just checked buttons (false)\n * SaveToLocalStorage if true, then on changing the recipe item list, this list will be save to local storage\n * OnLoadPageLoadFromLocalStorage if true, then on loading the configurator, the recipe item list will be load from local storage\n * \n * */\n\n /**\n * ----------------------\n * --PIZZA HUT OPTIONS---\n * ----------------------\n options.HasAuthorizedPage = false;\n options.LoadFromDatabase = false;\n options.SaveToDatabase = false;\n options.HasSummaryPage = false;\n options.HasQuantitySelectors = true;\n options.SaveToLocalStorage = false;\n options.OnLoadPageLoadFromLocalStorage = false;\n */\n\n /**\n * ----------------------\n * -----BJT OPTIONS------\n * ----------------------\n options.HasAuthorizedPage = true;\n options.LoadFromDatabase = true;\n options.SaveToDatabase = true;\n options.HasSummaryPage = true;\n options.HasQuantitySelectors = false;\n options.OnLoadPageLoadFromLocalStorage = false;\n */\n\n (function ($) {\n $.getElement = function (element, $_wrapper) {\n if (!$_wrapper) return $(\"\");\n var _wrapper = $_wrapper.get(0);\n var $items;\n if (_wrapper.config.isSubRecipe) {\n $items = $(element, $_wrapper);\n } else {\n $items = $(\"\");\n $('.x-recipe-ingredients ' + element, $_wrapper).each(function (i, el) {\n if ($(el).closest('.x-subrecipe').length === 0) {\n $items.push(el);\n }\n });\n }\n return $items;\n };\n $.getGlobalElement = function (element, $_wrapper) {\n if (!$_wrapper || $_wrapper.length === 0) return $(\"\");\n var _wrapper = $_wrapper.get(0);\n var $items = $(\"\");\n if (_wrapper.$recipe_container) {\n $(element, _wrapper.$recipe_container).each(function (i, el) {\n $items.push(el);\n });\n }\n return $items;\n };\n })(jQuery);\n\n var recipeController = function ($wrapper, options, literals) {\n if ($wrapper.length < 1)\n return;\n\n var wrapper = $wrapper.get(0);\n\n var state = Vendd.Product.Controller.getState();\n var id = parseInt($wrapper.attr('data-id') || state.parentId),\n skuId = parseInt($wrapper.attr('data-skuid') || state.selectedId),\n path = state.path,\n qty = state.qty,\n extraAttributes = [],\n bundleItems = state.bundleItems,\n recipeItems = [],\n comboRecipes = [],\n comboItems = state.comboItems;\n wrapper.state = {};\n wrapper.state.id = id;\n wrapper.state.skuId = skuId;\n var current_product_id;\n\n wrapper.setOptions = function (options) {\n\n var _defaultConfiguration = {};\n\n\n _defaultConfiguration.isSubRecipe = $wrapper.hasClass('issubrecipe');\n\n _defaultConfiguration.$ParentWrapper = _defaultConfiguration.isSubRecipe ? $wrapper.parents('.x-recipe-ingredients-wrapper') : null;\n _defaultConfiguration.ParentWrapper = _defaultConfiguration.isSubRecipe ? $wrapper.parents('.x-recipe-ingredients-wrapper').get(0) : null;\n\n _defaultConfiguration.isComboPage = $wrapper.hasClass('combo');\n _defaultConfiguration.isConfigurationPage = $wrapper.hasClass('configuration-page');\n _defaultConfiguration.PartialHtml = $wrapper.attr(\"data-partialhtml\") || \"pdRecipeIngredients\";\n _defaultConfiguration.isFancyboxPopup = $wrapper.hasClass('configuration-page');\n _defaultConfiguration.ParentRecipeId = _defaultConfiguration.isSubRecipe ? parseInt($wrapper.parents('.x-recipe-ingredients-wrapper').get(0).model.RecipeId) || 0 : 0;\n _defaultConfiguration.ParentRecipeItemId = _defaultConfiguration.isSubRecipe ? parseInt($wrapper.parents('.x-recipe-ingredients-wrapper').get(0).model.RecipeItemId) || 0 : 0;\n\n _defaultConfiguration.RecipeItemId = wrapper.state.skuId;\n _defaultConfiguration.RecipeId = parseInt($wrapper.attr(\"data-recipe-id\") !== undefined ? $wrapper.attr(\"data-recipe-id\") || 0 : 0);\n _defaultConfiguration.HasAuthorizedPage = $wrapper.attr(\"data-hasauthorizedpage\") !== undefined ? $wrapper.attr(\"data-hasauthorizedpage\") === \"true\" : false;\n _defaultConfiguration.HasAuthorizedSave = $wrapper.attr(\"data-hasauthorizedsave\") !== undefined ? $wrapper.attr(\"data-hasauthorizedsave\") === \"true\" : true;\n _defaultConfiguration.LoadFromDatabase = $wrapper.attr(\"data-loadfromdatabase\") !== undefined ? $wrapper.attr('data-loadfromdatabase') === \"true\" : false;\n _defaultConfiguration.SaveToDatabase = $wrapper.attr(\"data-savetodatabase\") !== undefined ? $wrapper.attr('data-savetodatabase') === \"true\" : false;\n _defaultConfiguration.ShareConfiguration = $wrapper.attr(\"data-shareconfiguration\") !== undefined ? $wrapper.attr('data-shareconfiguration') === \"true\" : false;\n _defaultConfiguration.PdfExport = $wrapper.attr(\"data-pdfexport\") !== undefined ? $wrapper.attr('data-pdfexport') === \"true\" : false;\n _defaultConfiguration.SendToOneDealer = $wrapper.attr(\"data-onedealer\") !== undefined ? $wrapper.attr('data-onedealer') === \"true\" : false;\n _defaultConfiguration.HasSummaryPage = $wrapper.attr(\"data-hassummarypage\") !== undefined ? $wrapper.attr('data-hassummarypage') === \"true\" : false;\n _defaultConfiguration.HasQuantitySelectors = $wrapper.attr(\"data-hasquantityselectors\") !== undefined ? $wrapper.attr('data-hasquantityselectors') === \"true\" : false;\n _defaultConfiguration.SaveToLocalStorage = $wrapper.attr(\"data-savetolocalstorage\") !== undefined ? $wrapper.attr('data-savetolocalstorage') === \"true\" : false;\n _defaultConfiguration.OnLoadPageLoadFromLocalStorage = $wrapper.attr(\"data-onloadpageloadfromlocalstorage\") !== undefined ? $wrapper.attr(\"data-onloadpageloadfromlocalstorage\") === \"true\" : false;\n _defaultConfiguration.Attributes = $wrapper.attr(\"data-attributes\") || \"\";\n _defaultConfiguration.IsPostalCodeMandatory = $wrapper.attr(\"data-is-postalcode-mandatory\") !== undefined ? $wrapper.attr('data-is-postalcode-mandatory') === \"true\" : false;\n\n _defaultConfiguration.IsAuthorizedPage = false;\n\n wrapper.config = $.extend({}, _defaultConfiguration, options || {});\n };\n\n wrapper.setLiterals = function (literals) {\n\n wrapper.literals = literals || {};\n\n //wrapper.literals.title = $wrapper.attr('data-title') || \"\";\n wrapper.literals.UnAuthorizedText = $wrapper.attr('data-unauthorized-text') || \"You first need to log in in order to configure a trailer.Don’t have an account? Register Here! It’s FREE and it takes less than 30 seconds\";\n wrapper.literals.UnAuthorizedLoginText1 = $wrapper.attr('data-unauthorized-login-text1') || \"LOGIN TO YOUR ACCOUNT \";\n wrapper.literals.UnAuthorizedLoginText2 = $wrapper.attr('data-unauthorized-login-text2') || \"You can also create an account here\";\n\n wrapper.literals.InvalidRegistrationData = $wrapper.attr('data-invalid-data') || \"INVALID REGISTRATION DATA!\";\n\n wrapper.literals.UnAuthorizedButtonText1 = $wrapper.attr('data-unauthorized-login-text1') || \"LOGIN TO YOUR ACCOUNT!\";\n wrapper.literals.UnAuthorizedButtonText2 = $wrapper.attr('data-unauthorized-login-text2') || \"You can also create account here\";\n\n wrapper.literals.TooltipPrevStep = $wrapper.attr('data-tooltip-prev-step') || \"Please go through previous steps\";\n\n wrapper.literals.Standard = $wrapper.attr('data-standard') || \"STANDARD\";\n wrapper.literals.Optional = $wrapper.attr('data-optional') || \"OPTIONAL\";\n wrapper.literals.NextStep = $wrapper.attr('data-next-step') || \"NEXT STEP\";\n wrapper.literals.ShowSummary = $wrapper.attr('data-show-summary') || \"SHOW SUMMARY\";\n wrapper.literals.SubmitRegistration = $wrapper.attr('data-submit-registration') || \"SUBMIT CONFIGURATION\";\n\n wrapper.literals.Summary = $wrapper.attr('data-summary') || \"Summary\";\n wrapper.literals.BackToConfiguration = $wrapper.attr('data-back-to-configuration') || \"BACK TO CONFIGURATION\";\n wrapper.literals.SummaryGeneralErrors = $wrapper.attr('data-summary-general-errors') || \"GENERAL ERRORS\";\n wrapper.literals.SummaryGeneralErrorsDescription = $wrapper.attr('data-summary-general-errors-description') || \"Please go back to the configuration page and review the following errors and/or inconsistencies:\";\n wrapper.literals.OutdatedEquipment = $wrapper.attr('data-outdated-equipment') || \"OUTDATED EQUIPMENT\";\n wrapper.literals.StandardEquipment = $wrapper.attr('data-standard-equipment') || \"STANDARD EQUIPMENT\";\n wrapper.literals.OptionalEquipment = $wrapper.attr('data-optional-equipment') || \"OPTIONAL EQUIPMENT\";\n wrapper.literals.OptionalEquipmentTotalPrice = $wrapper.attr('data-optional-equipment-total-price') || \"Optional equipment total price\";\n\n wrapper.literals.PricesText = $wrapper.attr('data-prices-text') || \"PRICES\";\n wrapper.literals.StandardPriceText = $wrapper.attr('data-prices-standard-price-text') || \"BASIC PRICE\";\n wrapper.literals.OptionalPriceText = $wrapper.attr('data-prices-optional-price-text') || \"OPTIONAL EQUIPMENT\";\n wrapper.literals.ShippingPriceText = $wrapper.attr('data-prices-shipping-price-text') || \"DELIVERY IN UK\";\n wrapper.literals.TotalPriceText = $wrapper.attr('data-prices-total-price-text') || \"TOTAL PRICE\";\n\n wrapper.literals.AvailableText = $wrapper.attr('data-available-text') || \"Available direct to your address - 30 days\";\n\n wrapper.literals.ShareText = $wrapper.attr('data-share-text') || \"SHARE\";\n wrapper.literals.DownloadPdfText = $wrapper.attr('data-download-pdf-text') || \"DOWNLOAD PDF\";\n wrapper.literals.SaveForLaterText = $wrapper.attr('data-save-for-later-text') || \"SAVE FOR LATER\";\n wrapper.literals.PricesVatNote = $wrapper.attr('data-price-vat-note') || \"All prices excl. 20% VAT\";\n };\n\n wrapper.setOptions(options);\n\n wrapper.setLiterals(literals);\n\n wrapper.$recipe_container = wrapper.config.isComboPage ?\n $wrapper.closest('.page_ProductList') :\n wrapper.config.isConfigurationPage ? $wrapper.closest('.recipe-container') : $wrapper.closest('.x-product-details');\n\n var $versionSelector = $.getGlobalElement('.x-product-details-version-selector', $wrapper);\n\n var maxQuantity = 0,\n maxFreeQuantity = 0,\n maxedOut = 0,\n maxReplaceQuantity = 0,\n defaultQuantity = 0,\n currentQuantity = 0,\n recipeInitialPrice = parseFloat(stringToNumber($('.current-price').attr('data-price'))),\n comboRecipePrice = 0,\n recipePrice = recipeInitialPrice;\n wrapper.initModel = {}, wrapper.model = {}, shippingModel = {};\n\n var checkboxChange = function (event) {\n if (this.checked) {\n ifChecked(event);\n } else {\n ifUnchecked(event);\n }\n };\n\n var ifChecked = function (event) {\n if ($(event.target).hasClass(\"loading\")) return;\n if ($(event.target).hasClass(\"disabled\")) return;\n $(event.target).addClass(\"loading\");\n //var recipeId = id;\n var ingredientId = parseInt(event.target.dataset.ingredientid || \"\") || -1;\n var quantity = parseFloat(stringToNumber(event.target.dataset.quanta || \"1\") || 1);\n\n var result, ingredientIdFrom;\n if ($(event.target).is(\":radio\")) {\n var radioName = event.target.name;\n var $ingredientIdFrom = $(\"input[name='\" + event.target.name + \"'].active\");\n //check for None option\n if ($ingredientIdFrom.is(\".option-nullable\") || $(event.target).is(\".option-nullable\")) {\n if ($ingredientIdFrom.is(\".option-nullable\")) {\n //if unchecked None option\n result = Vendd.RecipeLibrary.AddIngredient(wrapper.model, wrapper.model.RecipeItemId, ingredientId, quantity, true);\n } else if ($ingredientIdFrom.length > 0) {\n //if checked None option\n ingredientIdFrom = parseInt($ingredientIdFrom.get(0).dataset.ingredientid || \"\") || -1;\n result = Vendd.RecipeLibrary.RemoveIngredient(wrapper.model, wrapper.model.RecipeItemId, ingredientIdFrom, quantity, true);\n }\n\n } else {\n if ($ingredientIdFrom.length > 0 && !$(event.target).hasClass(\"active\")) {\n ingredientIdFrom = parseInt($ingredientIdFrom.get(0).dataset.ingredientid || \"\") || -1;\n result = Vendd.RecipeLibrary.ChangeIngredient(wrapper.model, wrapper.model.RecipeItemId, ingredientIdFrom, ingredientId);\n } else {\n result = Vendd.RecipeLibrary.AddIngredient(wrapper.model, wrapper.model.RecipeItemId, ingredientId, quantity, true);\n }\n }\n } else {\n result = Vendd.RecipeLibrary.AddIngredient(wrapper.model, wrapper.model.RecipeItemId, ingredientId, quantity, true);\n }\n if (!result) {\n //console.log(\"error\");\n }\n if (!result.success) {\n //console.log(result.status);\n if (result.status.ErrorCode !== \"0\") {\n wrapper.showErrorMessage($(event.target), result.status.ErrorCode);\n }\n } else {\n wrapper.model = result.data.recipe || wrapper.model;\n var ingredient = _.find(wrapper.model.Ingredients, function (i) { return i.IngredientId === ingredientId; }) || {};\n if ((ingredient.SubRecipeId || 0) > 0) {\n var $subRecipeWrapper = $(\".x-recipe-ingredients-wrapper[data-recipe-id='\" + ingredient.SubRecipeId + \"']\", $wrapper);\n var subRecipeWrapper = $subRecipeWrapper.get(0);\n subRecipeWrapper.setCheckedItems();\n subRecipeWrapper.setEnabledItems();\n }\n }\n setTimeout(function () {\n wrapper.setCheckedItems();\n wrapper.setEnabledItems();\n $(event.target).removeClass(\"loading\");\n if (wrapper.config.SaveToDatabase) wrapper.checkChanges();\n }, 0);\n };\n\n var ifUnchecked = function (event) {\n if ($(event.target).hasClass(\"loading\")) return;\n if ($(event.target).hasClass(\"disabled\")) return;\n if ($(event.target).is(\":radio\")) return;\n $(event.target).addClass(\"loading\");\n //var recipeId = id;\n var ingredientId = parseInt(event.target.dataset.ingredientid || \"\") || -1;\n var quantity = parseFloat(stringToNumber(event.target.dataset.quanta || \"1\") || 1);\n var result = Vendd.RecipeLibrary.RemoveIngredient(wrapper.model, wrapper.model.RecipeItemId, ingredientId, quantity, true);\n if (!result) {\n //console.log(\"error\");\n }\n if (!result.success) {\n //console.log(result.status);\n } else {\n wrapper.model = result.data.recipe || wrapper.model;\n }\n setTimeout(function () {\n wrapper.setCheckedItems();\n wrapper.setEnabledItems();\n $(event.target).removeClass(\"loading\");\n if (wrapper.config.SaveToDatabase) wrapper.checkChanges();\n }, 0);\n };\n\n wrapper.loading = function (loading) {\n if (loading) {\n $wrapper.addClass('x-loading');\n } else {\n $wrapper.removeClass('x-loading');\n }\n };\n\n wrapper.loading(true);\n\n wrapper.update = function () {\n wrapper.model.Literals = wrapper.literals;\n $.each(wrapper.model.Categories, function (index, category) {\n $.each(category.Groups, function (indexInGroupArray, group) {\n $.each(group.Items, function (indexInItemArray, item) {\n if (item.Description === item.Name) {\n item.Description = null;\n }\n });\n });\n });\n wrapper.model.ParentImageURL = $('.js-image-container img', wrapper.$recipe_container).attr('src'); //Custom BJT\n var html = Vendd.Handlebars.parse(wrapper.config.PartialHtml, wrapper.model);\n wrapper.bind(html);\n\n if (!wrapper.config.isSubRecipe) {\n $('.x-recipe-ingredients-wrapper.issubrecipe', $wrapper).each(function (el, i) {\n //console.log('SubRecipe');\n recipeController($(this), configuratorOptions);\n });\n }\n };\n\n wrapper.bind = function bind(html) {\n $wrapper.html(html);\n\n wrapper.setCheckedItems();\n wrapper.setEnabledItems();\n if (wrapper.config.SaveToDatabase) wrapper.checkChanges();\n\n wrapper.bindEvents();\n\n $wrapper.show();\n\n };\n\n wrapper.bindEvents = function () {\n\n wrapper.initIcheck();\n wrapper.initIngredientsToggle();\n wrapper.initNextStep();\n wrapper.initTooltips();\n\n $.getElement(' input[data-ingredientid]:checkbox', $wrapper).off('change').on('change', checkboxChange);\n //$('input[data-ingredientid]', $wrapper).off('ifUnchecked').on('ifUnchecked', ifUnchecked);\n\n $.getElement(\" .info-error-container .info-error-btn\", $wrapper).off(\"click\").on(\"click\", function (e) {\n e.preventDefault();\n var $infoContainer = $(e.target).closest(\".info-error-container\");\n if ($infoContainer.hasClass(\"disabled\")) return;\n var $errorHtml = $(\".info-error-text\", $infoContainer);\n $.fancybox.open($errorHtml, {\n touch: {\n vertical: false,\n momentum: false\n }\n });\n });\n if (!wrapper.config.isSubRecipe) {\n $.getElement(' .js-summary-show-button', $wrapper).off('click').on('click touchstart', function () {\n //Custom BJT start\n if (wrapper.config.IsPostalCodeMandatory) {\n var storeLocator = (Vendd.StoreLocator || {}).Controller || {};\n if (!storeLocator.Partner && storeLocator.CanChangeDealer) {\n var callback = function () {\n var storeLocator = (Vendd.StoreLocator || {}).Controller || {};\n if (storeLocator.Partner) {\n setTimeout(function () {\n wrapper.Validate();\n }, 100);\n }\n };\n openPostCodeSelector(callback);\n } else {\n wrapper.Validate();\n }\n } else {\n wrapper.Validate();\n }\n });\n\n $.getGlobalElement(' .js-edit-post-code', $wrapper).off('click').on('click touchstart', function () {\n openPostCodeSelector(null);\n });\n }\n if (!wrapper.config.isSubRecipe) {\n $.getGlobalElement(' .back-to-config-container', $wrapper).off('click').on('click touchstart', function () {\n wrapper.showSummary(false);\n scroll_to_class($wrapper, 90);\n });\n }\n\n if (!wrapper.config.isSubRecipe) {\n $.getGlobalElement('.js-submit-registration-button', $wrapper).off('click').on('click touchstart', function () {\n var $this = $(this);\n if ($this.hasClass(\"loading\")) return;\n wrapper.loading(true);\n $this.addClass(\"loading\");\n var callback = {\n success: function (response) {\n wrapper.model.GlobalId = response.GlobalId;\n wrapper.model.HashCode = response.HashCode;\n wrapper.checkChanges();\n var $successHtml = $.getGlobalElement('.success-registration-text', $wrapper);\n $.fancybox.open($successHtml, {\n touch: false,\n btnTpl: {\n smallBtn:\n '
\"\n },\n afterClose: function () {\n parent.jQuery.fancybox.close();\n }\n });\n }, error: function () {\n var $errorHtml = $.getGlobalElement('.error-for-later-text', $wrapper);\n $.fancybox.open($errorHtml, {\n touch: {\n vertical: false,\n momentum: false,\n btnTpl: {\n smallBtn:\n '
\"\n },\n afterClose: function () {\n parent.jQuery.fancybox.close();\n }\n }\n });\n }, finally: function () {\n $this.removeClass(\"loading\");\n wrapper.loading(false);\n }\n };\n var config = {\n Force: true,\n FriendlyName: \"Register:\" + wrapper.model.vin,\n Vin: wrapper.model.vin,\n PartnerId: wrapper.model.partnerId !== \"\" ? wrapper.model.partnerId : null\n };\n wrapper.saveData(callback, config);\n });\n }\n if (!wrapper.config.isSubRecipe) {\n $.getGlobalElement('.save-for-later-container .button', $wrapper).off('click').on('click touchstart', function () {\n var $this = $(this);\n if ($this.hasClass(\"loading\") || !wrapper.config.SaveToDatabase || $this.hasClass(\"disabled\")) return;\n $this.addClass(\"loading\");\n wrapper.loading(true);\n var callback = {\n success: function (response) {\n wrapper.model.GlobalId = response.GlobalId;\n wrapper.model.HashCode = response.HashCode;\n wrapper.checkChanges();\n var location;\n if (wrapper.config.HasAuthorizedSave && !wrapper.model.isAuthenticated) {\n var $unauthorized = $.getGlobalElement(\".unauthorized-container\", $wrapper);\n var $link = $(\"a\", $unauthorized);\n location = UpdateQueryString(\"GlobalId\", wrapper.model.GlobalId);\n location = UpdateQueryString(\"DoSave\", true, location);\n $link.attr(\"href\", LhApp.Url.Page.Login + \"?returnUrl=\" + encodeURIComponent(location));\n $.fancybox.open($unauthorized, {\n touch: {\n vertical: false,\n momentum: false\n }\n });\n } else {\n var $successHtml = $.getGlobalElement('.success-for-later-text', $wrapper);\n location = UpdateQueryString(\"GlobalId\", wrapper.model.GlobalId);\n $(\"#saved-url\", $successHtml).val(location);\n $.fancybox.open($successHtml, {\n touch: false\n });\n }\n }, error: function () {\n var $errorHtml = $.getGlobalElement('.error-for-later-text', $wrapper);\n $.fancybox.open($errorHtml, {\n touch: {\n vertical: false,\n momentum: false\n }\n });\n }, finally: function () {\n $this.removeClass(\"loading\");\n wrapper.loading(false);\n }\n };\n if (wrapper.config.isConfigurationPage) {\n var config = {\n Force: true,\n FriendlyName: \"Register:\" + wrapper.model.vin,\n }\n wrapper.saveData(callback, config);\n } else {\n var $fancyprompt = $(\".fancybox-prompt-container\");\n if ($fancyprompt.length > 0) {\n fancyPrompt($fancyprompt, $(\".product-name\").text() || \"\", function (friendlyName) {\n if (friendlyName !== null && friendlyName !== \"\") {\n var config = {\n Force: true,\n FriendlyName: friendlyName\n }\n wrapper.saveData(callback, config);\n } else {\n $this.removeClass(\"loading\");\n wrapper.loading(false);\n }\n });\n }\n }\n\n });\n }\n if (!wrapper.config.isSubRecipe) {\n $.getGlobalElement(' .download-pdf-container .button', $wrapper).off('click').on('click touchstart', function (e) {\n e.preventDefault();\n var $this = $(this);\n if ($this.hasClass(\"loading\") || !wrapper.config.PdfExport || $this.hasClass(\"disabled\")) return;\n $this.addClass(\"loading\");\n wrapper.loading(true);\n\n var callback = {\n success: function (response) {\n wrapper.model.GlobalId = response.GlobalId;\n wrapper.model.HashCode = response.HashCode;\n\n generatePDF($this);\n }, error: function () {\n var $errorHtml = $.getGlobalElement('.error-download-text', $wrapper);\n $.fancybox.open($errorHtml, {\n touch: {\n vertical: false,\n momentum: false\n }\n });\n }, finally: function () {\n $this.removeClass(\"loading\");\n wrapper.loading(false);\n }\n };\n var config = {\n FriendlyName: \"Share\",\n IsShare: true\n };\n wrapper.saveData(callback, config);\n });\n }\n if (!wrapper.config.isSubRecipe) {\n $.getGlobalElement(' .share-buttons .button', $wrapper).off('click').on('click touchstart', function () {\n //στο share οταν σωζουμε, θα πρεπει να μπαινει friendly name οεο;\n var $this = $(this);\n if ($this.hasClass(\"loading\") || !wrapper.config.ShareConfiguration || $this.hasClass(\"disabled\")) return;\n $this.addClass(\"loading\");\n wrapper.loading(true);\n\n var callback = {\n success: function (response) {\n wrapper.model.GlobalId = response.GlobalId;\n wrapper.model.HashCode = response.HashCode;\n wrapper.checkChanges();\n var location = UpdateQueryString(\"GlobalId\", wrapper.model.GlobalId);\n addthis.update('share', 'url', location);\n addthis.url = location;\n addthis.toolbox(\".addthis_inline_share_toolbox\");\n $('.addthis_inline_share_toolbox').removeClass('hidden');\n }, error: function () {\n var $errorHtml = $.getGlobalElement('.error-share-text', $wrapper);\n $.fancybox.open($errorHtml, {\n touch: {\n vertical: false,\n momentum: false\n }\n });\n }, finally: function () {\n $this.removeClass(\"loading\");\n wrapper.loading(false);\n }\n };\n var config = {\n FriendlyName: \"Share\",\n IsShare: true\n };\n wrapper.saveData(callback, config);\n });\n }\n if (!wrapper.config.isSubRecipe) {\n $.getGlobalElement('.start-over-container', $wrapper).off('click').on('click touchstart', function (event) {\n if ($(event.target).hasClass(\"disabled\")) return;\n wrapper.loading(true);\n scroll_to_class($wrapper, 90);\n $(event.target).addClass(\"disabled\");\n Vendd.RecipeLibrary.ResetRecipe(wrapper.initModel, id);\n Vendd.RecipeLibrary.ClearLocalStorage();\n wrapper.model = $.extend(true, {}, wrapper.initModel);\n $.getElement(\" .globalid-container\", $wrapper).text(wrapper.model.GlobalId);\n $.getElement(\" .hashcode-container\", $wrapper).text(wrapper.model.HashCode);\n $.getElement(' input[data-ingredientid]', $wrapper).addClass(\"loading\");\n wrapper.update();\n $(event.target).removeClass(\"disabled\");\n $(\".js-full-screen-popup\").addClass(\"disabled\");\n wrapper.showSummary(false);\n wrapper.loading(false);\n });\n }\n if (!wrapper.config.isSubRecipe) {\n $.getGlobalElement('.fancybox-copy-to-clipboard', $wrapper).on(\"click touchstart\", function () {\n copyToClipboard();\n $(this).addClass(\"copied\").delay(1000).queue(function () {\n $(this).removeClass(\"copied\").dequeue();\n });\n });\n }\n if (!wrapper.config.isSubRecipe) {\n $.getGlobalElement('.one-dealer-container .button', $wrapper).off('click').on('click touchstart', function () {\n var $this = $(this);\n if ($this.hasClass(\"loading\") || !wrapper.config.SendToOneDealer || $this.hasClass(\"disabled\")) return;\n wrapper.loading(true);\n $this.addClass(\"loading\");\n var callback = {\n success: function (response) {\n wrapper.model.GlobalId = response.GlobalId;\n wrapper.model.HashCode = response.HashCode;\n wrapper.checkChanges();\n var $successHtml = $.getGlobalElement('.success-registration-text', $wrapper);\n $.fancybox.open($successHtml, {\n touch: false,\n btnTpl: {\n smallBtn:\n '
\"\n },\n afterClose: function () {\n parent.jQuery.fancybox.close();\n }\n });\n if (window.parent) {\n var oneDealerResponse = Vendd.RecipeLibrary.GetOneDealerData(wrapper.model.RecipeItemId);\n if (oneDealerResponse.success) {\n window.parent.postMessage(oneDealerResponse.data, \"*\");\n }\n }\n }, error: function () {\n var $errorHtml = $.getGlobalElement('.error-for-later-text', $wrapper);\n $.fancybox.open($errorHtml, {\n touch: {\n vertical: false,\n momentum: false,\n btnTpl: {\n smallBtn:\n '
\"\n },\n afterClose: function () {\n parent.jQuery.fancybox.close();\n }\n }\n });\n }, finally: function () {\n $this.removeClass(\"loading\");\n wrapper.loading(false);\n }\n };\n var config = {\n Force: true,\n FriendlyName: \"OneDealer:\" + wrapper.model.vin\n };\n wrapper.saveData(callback, config);\n });\n }\n };\n\n var openPostCodeSelector = function (callback) {\n $.fancybox.open($('.js-post-code-selector'), {\n touch: {\n vertical: false,\n momentum: false\n },\n //modal: true,\n afterClose: function (e, i) {\n if (callback) callback();\n }\n });\n };\n\n var fancyPrompt = function ($element, initVal, callback) {\n var value;\n $.fancybox.open($element, {\n touch: {\n vertical: false,\n momentum: false\n },\n beforeShow: function () {\n $('input', $element).val(initVal);\n },\n afterShow: function () {\n $element.on('keyup', function (event) {\n if (event.keyCode === 27) {\n value = null;\n $.fancybox.close();\n }\n if (event.keyCode === 13) {\n $(\".fancybox-prompt-ok\").trigger(\"click\");\n }\n });\n $('input', $element).change(function () {\n $('.error-wrapper', $element).addClass(\".hidden\");\n });\n $(\".fancybox-prompt-button\").on(\"click touchstart\", function (event) {\n if ($(event.target).is(\".fancybox-prompt-ok\")) {\n value = $('input', $element).val();\n if (value === \"\") {\n $('.error-wrapper', $element).removeClass(\".hidden\");\n }\n } else {\n value = null;\n }\n $.fancybox.close();\n });\n $('input', $element).focus();\n },\n afterClose: function () {\n $element.off('keyup');\n callback.call(this, value);\n }\n });\n };\n\n var getUserData = function () {\n //set user fullname to PDF\n var user = JSON.parse(localStorage.getItem(\"CurrentUserModel\"));\n var fullname = user.FirstName + ' ' + user.LastName;\n $('.pdf-header-container .user-name', $('.js-pdf-header')).html(fullname);\n //if authenticated add hide class else no\n if (user.IsAuthenticated) {\n $(\".pdf-header-subtitle\").hide();\n $(\".authenticatedSubtitle\").show();\n }\n else {\n $(\".pdf-header-subtitle\").show();\n $(\".authenticatedSubtitle\").hide();\n }\n //Add current Date to PDF \n var today = new Date();\n var dd = today.getDate();\n var mm = today.getMonth() + 1;\n var yyyy = today.getFullYear();\n if (dd < 10) {\n dd = '0' + dd;\n }\n if (mm < 10) {\n mm = '0' + mm;\n }\n today = dd + '.' + mm + '.' + yyyy;\n $('.pdf-header-container .user-time', $('.js-pdf-header')).html(today);\n };\n var generatePDF = function ($el) {\n $button = $el;\n var coverPdf = null;\n if ($button.data('coverpdf') !== '') {\n coverPdf = 'https:' + $button.data('coverpdf');\n }\n getUserData();\n var location = UpdateQueryString(\"GlobalId\", wrapper.model.GlobalId);\n $.when(getShortenedUrl(location)).done(function () {\n $(\".qr-wrapper img\").on(\"load\", function () {\n $(\".qr-wrapper img\").attr({\n \"width\": 120,\n \"height\": 120\n });\n //coverPdf = \"https://bjt.staginglh.com/Uploads/130750/68ca_config_a2transporter_125-1010.pdf\";\n var requestData = {\n \"url\": null,\n \"externalLink\": coverPdf,\n \"externalLinkFirst\": null,\n \"filename\": \"configurator\",\n \"filenamehassuffixdatetime\": true,\n \"pagesize\": null,\n \"pageorientation\": null,\n \"parameters\": {\n \"hasprintcss\": true\n },\n html: getHtmlBodyForPdf(),\n headerhtml: getHtmlHeaderForPdf(),\n footerhtml: getHtmlFooterForPdf(),\n \"HeaderHeight\": 140,\n \"FooterHeight\": 50,\n \"margin\": {\n \"top\": 0,\n \"bottom\": 0,\n \"left\": 25,\n \"right\": 25\n }\n };\n var successDownload = function (pdf) {\n const blob = b64toBlob(pdf.FileContents, 'application/pdf');\n const blobUrl = URL.createObjectURL(blob);\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(blob, pdf.Filename);\n } else {\n var a = document.createElement(\"a\");\n a.style.visibility = 'hidden';\n document.body.appendChild(a);\n var fileURL = URL.createObjectURL(blob);\n a.href = fileURL;\n a.download = pdf.Filename;\n a.click();\n document.body.removeChild(a);\n setTimeout(function () {\n // For Firefox it is necessary to delay revoking the ObjectURL\n //window.URL.revokeObjectURL(fileURL);\n }, 500);\n }\n };\n var errorDownload = function (response) {\n var $errorHtml = $('.error-download-text', wrapper.$recipe_container);\n $.fancybox.open($errorHtml, {\n touch: {\n vertical: false,\n momentum: false\n }\n });\n };\n $.ajax({\n type: \"POST\",\n dataType: 'json',\n contentType: 'application/json; charset=UTF-8',\n url: \"/services/api/PdfExporter/Generate\",\n async: false,\n data: JSON.stringify(requestData),\n success: successDownload,\n error: errorDownload,\n complete: function (response) {\n $button.removeClass(\"loading\");\n wrapper.loading(false);\n }\n });\n });\n });\n };\n var getHtmlHeaderForPdf = function () {\n $(\"header img\").each(function (i, img) {\n var $img = $(img);\n $img\n .attr(\"data-width\", $img.width())\n .attr(\"data-height\", $img.height());\n });\n var $bodyclone = $(\"html\").clone();\n var $pdfHeader = $(\".js-pdf-header\").clone();\n $(\"img\", $pdfHeader).each(function (i, img) {\n var $img = $(img);\n var src = $img.attr(\"src\");\n if (src.startsWith(\"//\")) $img.attr(\"src\", \"https:\" + src);\n });\n return $pdfHeader.html();\n };\n\n var getHtmlFooterForPdf = function () {\n var $pdfFooter = $(\".js-pdf-footer\").clone();\n $(\"img\", $pdfFooter).each(function (i, img) {\n var $img = $(img);\n var src = $img.attr(\"src\");\n if (src.startsWith(\"//\")) $img.attr(\"src\", \"https:\" + src);\n });\n return $pdfFooter.html();\n };\n\n var getHtmlBodyForPdf = function () {\n\n $(\"img\").each(function (i, img) {\n var $img = $(img);\n $img\n .attr(\"data-width\", $img.width())\n .attr(\"data-height\", $img.height());\n });\n var $bodyclone = $(\"html\").clone();\n $(\"script\", $bodyclone).remove();\n $(\".js-pdf-header, .js-pdf-footer\", $bodyclone).remove();\n var maxWidth = 400;\n var maxHeight = 200;\n $(\"img\", $bodyclone).each(function (i, img) {\n if ($(this).attr(\"src\") !== null) {\n var $img = $(img);\n var src = $img.attr(\"src\");\n if (src.startsWith(\"//\")) $img.attr(\"src\", \"https:\" + src);\n //fix images width and height\n var scaleWidth = maxWidth / $img.attr(\"data-width\");\n if (scaleWidth > 1) scaleWidth = 1;\n var scaleHeight = maxHeight / $img.attr(\"data-height\");\n if (scaleHeight > 1) scaleHeight = 1;\n var scale = scaleWidth < scaleHeight ? scaleWidth : scaleHeight;\n var width = $img.attr(\"data-width\") * scale;\n var height = $img.attr(\"data-height\") * scale;\n $img\n .width(width + \"px\")\n .height(height + \"px\");\n }\n });\n if (wrapper.config.isConfigurationPage) {\n $(\".configurator-container\", $bodyclone).toggleClass(\"hidden\", true);\n $(\".summary-container\", $bodyclone).toggleClass(\"hidden\", false);\n }\n return $bodyclone\n .html()\n .replace(/(\")/gm, \"'\")\n .replace(/(\\\\)/gm, \"\\\\\\\\\")\n .replace(/(\\r\\n|\\n|\\r)/gm, \"\");\n };\n\n var b64toBlob = function (b64Data, contentType, sliceSize) {\n contentType = contentType || '';\n sliceSize = sliceSize || 512;\n\n var byteCharacters = atob(b64Data);\n var byteArrays = [];\n\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n var slice = byteCharacters.slice(offset, offset + sliceSize);\n\n var byteNumbers = new Array(slice.length);\n for (var i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n var byteArray = new Uint8Array(byteNumbers);\n\n byteArrays.push(byteArray);\n }\n\n var blob = new Blob(byteArrays, { type: contentType });\n return blob;\n };\n\n wrapper.saveData = function (callback, config) {\n var save = function (callback, config) {\n var htmlData = {\n Body: getHtmlBodyForPdf(),\n Header: getHtmlHeaderForPdf(),\n Footer: getHtmlFooterForPdf()\n };\n\n var defaultConfiguration = {\n RecipeId: wrapper.model.RecipeItemId,\n Force: false,\n FriendlyName: \"\",\n Vin: wrapper.model.vin,\n PartnerId: wrapper.model.partnerId !== \"\" ? wrapper.model.partnerId : null,\n HtmlData: htmlData,\n callback: callback\n };\n config = $.extend({}, defaultConfiguration, config || {});\n\n $.when(Vendd.RecipeLibrary.GenerateGlobalId(config))\n .done(\n function (response) {\n if (callback && callback.success) callback.success(response.data);\n return;\n })\n .fail(\n function (response) {\n if (callback && callback.error) callback.error(response);\n return;\n })\n .always(\n function (response) {\n if (callback && callback.finally) callback.finally(response);\n return;\n });\n };\n if (wrapper.config.IsPostalCodeMandatory) {\n var storeLocator = (Vendd.StoreLocator || {}).Controller || {};\n if (!storeLocator.Partner) {\n openPostCodeSelector(function () {\n var storeLocator = (Vendd.StoreLocator || {}).Controller || {};\n if (storeLocator.Partner) {\n save(callback, config);\n } else {\n $.fancybox.close(true);\n }\n });\n return;\n }\n }\n save(callback, config);\n };\n\n wrapper.loadData = function (callback, config) {\n\n var defaultConfiguration = {\n RecipeId: wrapper.model.RecipeItemId\n };\n var _config = $.extend({}, defaultConfiguration, config || {});\n\n var storeLocator = (Vendd.StoreLocator || {}).Controller || {};\n var callbacks = {\n onSuccess: function (response) {\n if (response.success) {\n //var ShippingCostText = numberToString2(response.data, true);\n wrapper.model.ShippingCost = parseFloat(response.data);\n //wrapper.model.ShippingCostText = ShippingCostText;\n //$.getElement(' .summary-shipping-price', $wrapper).html(ShippingCostText);\n //$.getGlobalElement(' .delivery-value', $wrapper).html(ShippingCostText);\n wrapper.calculatePrice();\n wrapper.calculateWeight();\n //$.fancybox.close(true);\n }\n }\n };\n if (storeLocator.Partner && !wrapper.config.isSubRecipe) {\n storeLocator.SetCallbacks(callbacks);\n storeLocator.GetShippingCost();\n } else if (Vendd.StoreLocator && !wrapper.config.isSubRecipe) {\n Vendd.MessageBus.subscribe(Vendd.StoreLocator.Messages.Initialized, wrapper, function () {\n storeLocator.SetCallbacks(callbacks);\n storeLocator.GetShippingCost();\n });\n }\n var response;\n if (wrapper.config.isSubRecipe) {\n response = Vendd.RecipeLibrary.GetModel(wrapper.model.RecipeItemId);\n if (callback && callback.success && response.success) callback.success(response);\n if (callback && callback.error && !response.success) callback.error(response);\n if (callback && callback.finally) callback.finally(response);\n }\n else if (_config.GlobalId !== \"\" && wrapper.config.LoadFromDatabase) {\n $.when(Vendd.RecipeLibrary.LoadFromGlobalId(_config))\n .done(\n function (response) {\n if (storeLocator.Partner) {\n storeLocator.FindPartner();\n } else if (Vendd.StoreLocator) {\n Vendd.MessageBus.subscribe(Vendd.StoreLocator.Messages.Initialized, wrapper, function () {\n storeLocator.FindPartner();\n });\n }\n if (callback && callback.success) callback.success(response);\n return;\n })\n .fail(\n function (response) {\n if (callback && callback.error) callback.error(response);\n return;\n })\n .always(\n function (response) {\n if (callback && callback.finally) callback.finally(response);\n wrapper.loading(false);\n return;\n });\n } else if (wrapper.config.OnLoadPageLoadFromLocalStorage) {\n wrapper.config.LoadFromDatabase = false;\n response = Vendd.RecipeLibrary.LoadFromLocalRecipeItems(wrapper.model.RecipeItemId);\n if (response.success) {\n wrapper.model.RecipeItems = response.data.Recipe.RecipeItems;\n if (callback && callback.success) callback.success(response);\n } else {\n wrapper.update();\n }\n if (callback && callback.finally) callback.finally(response);\n wrapper.loading(false);\n } else {\n wrapper.config.LoadFromDatabase = false;\n wrapper.update();\n wrapper.loading(false);\n }\n };\n\n wrapper.assignConfigurationToUser = function (callback, config) {\n var defaultConfiguration = {\n RecipeItemId: wrapper.config.RecipeItemId,\n callback: callback\n };\n config = $.extend({}, defaultConfiguration, config || {});\n\n $.when(Vendd.RecipeLibrary.AssignConfigurationToUser(config))\n .done(\n function (response) {\n if (callback && callback.success) callback.success(response.data);\n return;\n })\n .fail(\n function (response) {\n if (callback && callback.error) callback.error(response);\n return;\n })\n .always(\n function (response) {\n if (callback && callback.finally) callback.finally(response);\n return;\n });\n };\n\n wrapper.hideAllErrors = function () {\n $.getGlobalElement(\".recipe-error-container\", $wrapper).addClass(\"hidden\");\n $.getElement(\".category-items .group-error-container\", $wrapper).addClass(\"hidden\");\n $.getElement(\".category-items .info-error-container\", $wrapper).addClass(\"disabled\");\n $.getElement(\".ingredient\", $wrapper).removeClass(\"disabled\");\n };\n\n wrapper.showErrorMessage = function ($item, code, incompatibles, missingPrerequisites, missingAnyOfPrerequisites) {\n var $ingredient = $item.closest(\".category-item\");\n var $infoContainer = $(\".info-error-container\", $ingredient);\n if ($infoContainer.length === 0) return;\n var errorHtml = $.getGlobalElement(\".error[data-code='\" + code + \"']\", $wrapper).html();\n var template = \"
  • {2} {1}
  • \";\n if (code === 1030) {\n errorHtml = errorHtml.replace(\"{0}\", \"\");\n }\n if (code === 1031) {\n errorHtml = errorHtml.replace(\"{0}\", \"\");\n }\n if (code === 1032) {\n errorHtml = errorHtml.replace(\"{0}\", \"\");\n errorHtml = errorHtml.replace(\"{0}\", \"\");\n }\n if (code === 1033) {\n var missingAnyOfPrerequisitesHtml = \"\";\n for (var i = 0; i < missingAnyOfPrerequisites.length; i++) {\n var items = missingAnyOfPrerequisites[i];\n missingAnyOfPrerequisitesHtml += \"\";\n }\n errorHtml = errorHtml.replace(\"{0}\", missingAnyOfPrerequisitesHtml);\n }\n $(\".info-error-text\", $infoContainer).html(errorHtml);\n $infoContainer.removeClass(\"disabled\");\n\n $(\".inner-wrapper\", $infoContainer).html(errorHtml);\n initScrollToIngredient($(\".inner-wrapper .scroll-to-ingredient\", $infoContainer));\n $infoContainer.removeClass(\"hidden\");\n };\n\n wrapper.showGeneralErrorMessage = function (errorItem) {\n var $templateErrors = $.getElement(\" .summary-error-generate-template\", $wrapper);\n var errorCode = (errorItem.ErrorCodes || []).length > 0 ? errorItem.ErrorCodes[0] : errorItem.ErrorCode;\n var errorHtml = $.getGlobalElement(\".error[data-code='\" + errorCode + \"']\", $wrapper).html();\n var relatedItemsHtml = \"\";\n var $templateClone = $templateErrors.clone().removeClass(\"summary-error-generate-template\").addClass(\"generated\");\n\n if (errorItem.Id || 0 > 0) {\n var $group = $.getElement(\" .category-items[data-groupId='\" + (errorItem.Id || 0) + \"']\", $wrapper);\n if ($group) {\n var groupIndex = $group.index() + 1;\n errorHtml = errorHtml.replace(\"{0}\", errorItem.ExtraQuantity).replace(\"{1}\", errorItem.Name).replace(\"{2}\", errorItem.CategoryName).replace(\"{3}\", groupIndex);\n $(\".group-error-container\", $group).html(errorHtml).removeClass(\"hidden\");\n $templateClone.attr(\"data-goto-group-id\", (errorItem.Id || 0)).addClass(\"goto-item\");\n $(\".summary-item-name\", $templateClone).addClass(\"hidden\");\n }\n } else if (errorItem.IngredientId || 0 > 0) {\n var $ingredient = $.getElement(\" .category-item[data-ingredientid='\" + (errorItem.IngredientId || 0) + \"']\", $wrapper);\n if ($ingredient) {\n var template = \"
  • {2} {1}
  • \";\n if (errorCode === 1030) {\n relatedItemsHtml = \"\";\n }\n if (errorCode === 1031) {\n relatedItemsHtml = \"\";\n }\n if (errorCode === 1032) {\n relatedItemsHtml = \"\"\n + \"\";\n }\n $(\".summary-related-items\", $templateClone).html(relatedItemsHtml);\n errorHtml = errorHtml.replace(\"{0}\", \"\");\n }\n } else {\n errorHtml = errorHtml.replace(\"{0}\", errorItem.ExtraQuantity).replace(\"{1}\", errorItem.Name);\n $.getGlobalElement(\".recipe-error-container\", $wrapper).html(errorHtml).removeClass(\"hidden\");\n }\n\n if ((errorItem.IngredientId || 0 > 0)) {\n $(\".summary-item-name\", $templateClone).text(errorItem.Name)\n .addClass(\"scroll-to-ingredient\")\n .attr(\"data-goto-ingredient-id\", (errorItem.IngredientId || 0))\n .addClass(\"goto-item\");\n }\n $(\".summary-error\", $templateClone).html(errorHtml);\n var $parent = $.getElement(\" .summary-category-general-errors .category-items\", $wrapper);\n $templateClone.appendTo($parent);\n $(\".goto-item\", $templateClone).each(function () {\n initScrollToIngredient($(this));\n });\n if ($templateClone.hasClass(\"goto-item\")) initScrollToIngredient($templateClone);\n };\n\n wrapper.checkChanges = function () {\n var localStorageHashCode = Vendd.RecipeLibrary.GetLocalStorageRecipeItemsHashCode(wrapper.model.RecipeItemId);\n var hasChanges = wrapper.model.HashCode !== localStorageHashCode;\n $(\".globalid-container\").text(wrapper.model.GlobalId).toggleClass(\"unsaved\", hasChanges);\n $(\".hashcode-container\").text(wrapper.model.HashCode).toggleClass(\"unsaved\", hasChanges);\n if (wrapper.config.SaveToLocalStorage) (Vendd.RecipeLibrary.SaveRecipeItemsToLocal(wrapper.model.RecipeItemId, wrapper.model.GlobalId)).success;\n };\n\n wrapper.setCheckedItems = function () {\n var result;\n if (wrapper.config.isSubRecipe) {\n result = (Vendd.RecipeLibrary.GetCheckedRecipeItems(wrapper.config.ParentRecipeItemId));\n }\n else {\n result = (Vendd.RecipeLibrary.GetCheckedRecipeItems(wrapper.model.RecipeItemId));\n }\n if (!result.success) {\n //console.log(result.status);\n } else {\n $.getGlobalElement(\" .summary-category-standard-equipment .category-item.generated\", $wrapper).remove();\n $.getGlobalElement(\" .summary-category-optional-equipment .category-item.generated\", $wrapper).remove();\n $.getGlobalElement(\" .summary-category-general-errors .category-item.generated\", $wrapper).remove();\n $.getGlobalElement(\" .summary-category-outdated-equipment .category-item.generated\", $wrapper).remove();\n var $template = $.getGlobalElement(\".summary-item-generate-template\", $wrapper);\n $.getElement(\" input[data-ingredientid]\", $wrapper)\n .addClass('loading')\n .off('change')\n .prop(\"checked\", false).removeClass(\"active\");\n $('.x-recipe-ingredients-wrapper.issubrecipe', $wrapper).addClass(\"hidden\");\n _.each(result.data.CheckedRecipeItems, function (item) {\n if (wrapper.config.isSubRecipe && item.ProductItemId === wrapper.model.RecipeItemId) {\n //change package price\n }\n if (item.IngredientId !== 0) {\n //update summary\n var $templateClone = $template.clone().removeClass(\"summary-item-generate-template\").addClass(\"generated\");\n $templateClone.attr(\"data-ingredientid\", item.IngredientId);\n var IsStandard = '';\n if (item.IsStandard) {\n IsStandard = 'pdf-standard';\n }\n $(\".summary-item-name\", $templateClone).text(item.Name);\n $(\".summary-item-category\", $templateClone).text(item.Category);\n $(\".summary-item-image img\", $templateClone).attr(\"src\", item.ImageUrl).parent().addClass(IsStandard);\n var price = item.TotalPrice > 0 ? numberToString2(item.TotalPrice, true) : \"\";\n $(\".summary-item-price\", $templateClone).text(price).addClass(IsStandard);\n var $parent = item.IsStandard ?\n $(\".category.summary-category-standard-equipment .category-items\") :\n $(\".category.summary-category-optional-equipment .category-items\");\n $templateClone.prependTo($parent);\n }\n\n if (item.RecipeItemId !== wrapper.model.RecipeItemId) return;\n //set valid recipe items as checked\n var $element = $.getElement(\" [data-groupid='\" + item.GroupId + \"'] input[data-ingredientid='\" + item.IngredientId + \"']\", $wrapper);\n $element\n .prop(\"checked\", true)\n .addClass(\"active\");\n var $ingredient = $element.closest(\".ingredient\");\n $('.x-recipe-ingredients-wrapper', $ingredient).removeClass(\"hidden\");\n });\n\n $.getElement(\" .category.summary-category-standard-equipment\", $wrapper).toggleClass(\"hidden\", result.data.CheckedItemsStandardTotal === 0);\n $.getElement(\" .category.summary-category-optional-equipment\", $wrapper).toggleClass(\"hidden\", result.data.CheckedItemsOptionalTotal === 0);\n\n $.getElement(\" input[data-ingredientid]\", $wrapper)\n .removeClass('loading')\n .on('change', checkboxChange);\n if (wrapper.model.ParentRecipeItemId === 0) {\n wrapper.calculatePrice();\n wrapper.calculateWeight();\n } else {\n var parentWrapper = $wrapper.parents('.x-recipe-ingredients-wrapper').get(0);\n if (parentWrapper) {\n parentWrapper.calculatePrice();\n parentWrapper.calculateWeight();\n }\n }\n }\n };\n wrapper.checkIfLoggedIn = function () {\n var user = JSON.parse(localStorage.getItem('CurrentUserModel'));\n if (user !== null && user.FirstName && user.LastName) {\n $('.pdf-header-subtitle').hide();\n $('.pdf-header-logedin-subtitle').append('' + user.FirstName + ' ' + user.LastName + '').show();\n } else {\n $('.pdf-header-logedin-subtitle').hide();\n $('.pdf-header-subtitle').show();\n }\n };\n\n //wrapper.checkIfLoggedIn();\n wrapper.setEnabledItems = function () {\n wrapper.hideAllErrors();\n var result = Vendd.RecipeLibrary.GetEnabledItems(wrapper.model.RecipeItemId);\n if (!result.success) {\n //console.log(result.status);\n $.getElement(\" input[data-ingredientid]\", $wrapper).removeClass(\"loading\");\n } else {\n $.getElement(\" input[data-ingredientid]\", $wrapper)\n .addClass('disabled').prop(\"disabled\", true);\n _.each(result.data.EnabledItems, function (item) {\n var $item = $.getElement(\" [data-groupid='\" + item.GroupId + \"'] input[data-ingredientid='\" + item.IngredientId + \"']\", $wrapper);\n var $ingredient = $item.closest(\".ingredient\");\n if (item.ErrorCode > 0) {\n wrapper.showErrorMessage($item, item.ErrorCode, item.Incompatibles, item.MissingPrerequisites, item.MissingAnyOfPrerequisites);\n } else {\n $(\".error\", $ingredient).addClass(\"hidden\");\n }\n $item\n .removeClass('disabled')\n .prop(\"disabled\", false);\n });\n _.each(result.data.DisableItems, function (item) {\n var $item = $.getElement(\" input[data-ingredientid='\" + item.IngredientId + \"']\", $wrapper);\n var $ingredient = $item.closest(\".ingredient\");\n if ($ingredient.length > 0) {\n wrapper.showErrorMessage($item, item.ErrorCode, item.Incompatibles, item.MissingPrerequisites, item.MissingAnyOfPrerequisites);\n $ingredient.addClass(\"disabled\");\n }\n });\n\n _.each(result.data.Errors, function (error) {\n wrapper.showGeneralErrorMessage(error);\n });\n\n _.each(result.data.GroupErrors, function (group) {\n wrapper.showGeneralErrorMessage(group);\n\n });\n }\n };\n\n wrapper.calculatePrice = function () {\n var prices = Vendd.RecipeLibrary.GetPrices(wrapper.model.RecipeItemId) || {};\n prices.InitialPrice = prices.InitialPrice || 0;\n prices.StandardTotalPrice = prices.StandardTotalPrice || 0;\n prices.OptionalTotalPrice = prices.OptionalTotalPrice || 0;\n var shippingPrice = wrapper.model.ShippingCost || 0;\n var shippingPriceText = shippingPrice > 0 ? numberToString2(shippingPrice, true) : \"\";\n var optionalTotalPriceText = prices.OptionalTotalPrice > 0 ? numberToString2(prices.OptionalTotalPrice, true) : \"\";\n var totalPrice = prices.InitialPrice + prices.OptionalTotalPrice + prices.StandardTotalPrice + shippingPrice;\n var totalPriceText = totalPrice > 0 ? numberToString2(totalPrice, true) : \"\";\n var basicPrice = prices.InitialPrice + prices.StandardTotalPrice;\n var basicPriceText = basicPrice > 0 ? numberToString2(basicPrice, true) : \"\";\n $('.price-optional-value').html(optionalTotalPriceText);\n $('.total-price').html(totalPriceText);\n $('.basic-price').html(basicPriceText);\n $('.summary-shipping-price').html(shippingPriceText);\n $('.delivery-value').html(shippingPriceText);\n };\n wrapper.calculateWeight = function () {\n var weightObj = Vendd.RecipeLibrary.GetWeight(wrapper.model.RecipeItemId) || {};\n var remainingWeight = weightObj.InitialWeight - weightObj.OptionalTotalWeight;\n $('.load-capacity .value').html(remainingWeight);\n $('.load-capacity .product-details-value').toggleClass(\"error\", remainingWeight < 0);\n };\n\n wrapper.initiallizeProductRecipe = function () {\n maxQuantity = parseInt(wrapper.model.MaxQuantity);\n maxFreeQuantity = parseInt(wrapper.model.MaxFreeQuantity);\n maxReplaceQuantity = parseInt(wrapper.model.MaxReplaceQuantity);\n $('.x-recipe .description').html(wrapper.model.MaxQuantityText);\n $('.x-recipe .selected-version-label').show();\n $('.x-recipe .selected-version').html($('.x-recipe .selected-version-label')[0]);\n recipeInitialPrice = parseFloat(stringToNumber($('.x-product-details .current-price').attr('data-price')));\n $('.page_ProductList[data-step-number]').each(function (index, value) {\n var step = $(this).data(\"step-number\");\n if ($('.price-container[data-combo-recipe' + step + ']').length === 0) return;\n var price = parseFloat(stringToNumber($('.price-container').attr(\"data-combo-recipe\" + step)));\n recipeInitialPrice = recipeInitialPrice + price;\n });\n $('.x-product-details .current-price').html(recipeInitialPrice.toFixed(2).replace('.', ',') + '€');\n recipePrice = recipeInitialPrice;\n comboRecipePrice = 0;\n defaultQuantity = 0;\n currentQuantity = 0;\n $wrapper.get(0).recipeItems = [];\n };\n\n wrapper.initTooltips = function () {\n var $wrapperTooltips = $.getElement(' .tooltip-info-wrapper', $wrapper);\n\n if ($wrapperTooltips.length < 1)\n return;\n\n $wrapperTooltips.each(function (i, el) {\n intiTooltip($(el));\n });\n\n $(document).on('click touchstart', function (e) {\n var $wrapperTooltips = $.getElement(' .tooltip-info-wrapper', $wrapper);\n var $selectedWrapper = $wrapperTooltips.is(e.target) ? $(e.target) : $(e.target).closest($wrapperTooltips).first();\n var $toolbox = $('.info-tooltip', $selectedWrapper);\n $('.info-tooltip', $wrapperTooltips).not($toolbox).attr('style', '');\n });\n };\n\n var intiTooltip = function ($tooltip) {\n $tooltip.on(\"click touchstart\", function (e) {\n if ($(this).is('.category-item') && !$(this).hasClass(\"disabled\") && $(e.target).is(\"input\")) return;\n if ($(this).hasClass(\"category-title\") && $(this).parent('.category').length > 0 && !$(this).parent('.category').hasClass(\"disabled\")) return;\n if ($(this).hasClass('category-item') && $(this).find(\".info-error-container\").hasClass(\"disabled\")) return;\n if ($(e.target).hasClass(\"more-info-btn\")) return;\n var $tooltipBox = $(this).find('.info-tooltip');\n $('.info-tooltip', $tooltip).not($tooltipBox).attr('style', '');\n $tooltipBox.toggle();\n });\n };\n\n var initScrollToIngredient = function ($item) {\n $item.off(\"click\").on(\"click touchstart\", function () {\n var groupId = parseInt($(this).attr(\"data-goto-group-id\") || \"0\");\n var ingredientId = parseInt($(this).attr(\"data-goto-ingredient-id\") || \"0\");\n goToItem(groupId, ingredientId);\n });\n };\n\n var goToItem = function (groupId, ingredientId) {\n var $item = groupId > 0 ?\n $.getElement(\" .configurator-container .ingredients[data-groupid='\" + groupId + \"']\", $wrapper) :\n $.getElement(\" .configurator-container .ingredient[data-ingredientid='\" + ingredientId + \"']\", $wrapper);\n if ($item.length === 0) return;\n var $congifuratorPage = $.getElement(\" .configurator-container\", $wrapper);\n if (!$congifuratorPage.is(\":visible\")) {\n wrapper.showSummary(false);\n }\n //$(\".configurator-container .category\", $wrapper).toggleClass(\"opened\", false);\n var $category = $item.closest(\".category\");\n $category.toggleClass(\"opened\", true);\n scroll_to_class($item, 90);\n };\n\n wrapper.initIcheck = function () {\n var $input = $.getGlobalElement('input', $wrapper);\n };\n\n wrapper.initIngredientsToggle = function () {\n $.getElement(' .category-title', $wrapper).click(function () {\n var $this = $(this);\n var $category = $this.closest('li.category');\n if ($category.hasClass(\"disabled\")) return;\n $category.toggleClass(\"opened\");\n if ($category.hasClass(\"wizard\")) {\n if ($category.is(\":last-child\")) {\n $.getElement(\" .button-show-summary-wrapper\", $wrapper).removeClass(\"hidden\");\n $.getElement(\" .button-submit-registration\", $wrapper).removeClass(\"hidden\");\n }\n\n var $nextCategory = $category.next();\n if ($nextCategory.length > 0) {\n $nextCategory.removeClass(\"disabled\");\n }\n }\n });\n };\n\n wrapper.initNextStep = function () {\n $.getElement(' li.category.wizard:not(:first-child):not(:nth-child(2))', $wrapper).addClass(\"disabled\");\n if ($.getElement(' li.category.wizard', $wrapper).length === 1) {\n $.getElement(\" .button-show-summary-wrapper\", $wrapper).removeClass(\"hidden\");\n $.getElement(\" .button-submit-registration\", $wrapper).removeClass(\"hidden\");\n }\n\n $.getElement(' .next-step-center', $wrapper).on(\"click\", function () {\n var $this = $(this);\n var $category = $this.closest('li.category');\n var $categoryTitle = $category.find('.category-title');\n\n if ($category.hasClass(\"disabled\")) return;\n\n $category.removeClass(\"opened\");\n\n var $nextCategory = $category.next();\n if ($nextCategory.length > 0) {\n $nextCategory.addClass(\"opened\").slideToggle(0);\n $nextCategory.slideToggle(600);\n scroll_to_class($nextCategory, 90);\n if ($nextCategory.is(\":last-child\")) {\n $.getElement(\" .button-show-summary-wrapper\", $wrapper).removeClass(\"hidden\");\n $.getElement(\" .button-submit-registration\", $wrapper).removeClass(\"hidden\");\n }\n if ($nextCategory.next().length > 0) $nextCategory.next().removeClass(\"disabled\");\n }\n });\n };\n\n var loadDataError = function (response, errorCode) {\n var $errorHtml = $.getGlobalElement(\".error[data-code='\" + (errorCode || response.status.ErrorCode || \"1070\") + \"']\", $wrapper);\n $.fancybox.open($errorHtml, {\n touch: {\n vertical: false,\n momentum: false\n }\n });\n wrapper.model.IsAuthorized = (errorCode === \"1061\" && wrapper.config.isConfigurationPage) || wrapper.model.IsAuthenticated;\n\n wrapper.showSummary(false);\n };\n\n var loadDataSuccess = function (response) {\n if ((!response.success || !response.data || !(response.data.GlobalId && wrapper.config.LoadFromDatabase)) && !wrapper.config.isSubRecipe) {\n var errorCode = (response.data && !response.data.GlobalId ? \"1071\" : \"1070\");\n loadDataError(response, errorCode);\n return;\n }\n wrapper.model.GlobalId = response.data.GlobalId;\n wrapper.model.HashCode = response.data.HashCode;\n wrapper.model.CanEdit = response.data.CanEdit;\n $.getElement(\" .globalid-container\", $wrapper).text(wrapper.model.GlobalId);\n $.getElement(\" .hashcode-container\", $wrapper).text(wrapper.model.HashCode);\n\n var result;\n if (wrapper.config.isSubRecipe) {\n wrapper.model.RecipeItems = response.data.RecipeItems;\n result = Vendd.RecipeLibrary.SetRecipeItems(wrapper.model.RecipeItemId, wrapper.model.RecipeItems);\n if (!result.success) {\n //console.log(result.status);\n loadDataError(response, \"1071\");\n return;\n }\n wrapper.update();\n wrapper.setCheckedItems();\n wrapper.setEnabledItems();\n wrapper.loading(false);\n return;\n } else if (wrapper.model.GlobalId) {\n wrapper.model.RecipeItems = response.data.RecipeItems;\n result = Vendd.RecipeLibrary.SetRecipeItems(wrapper.model.RecipeItemId, wrapper.model.RecipeItems);\n result.SavedGlobalIdToLocal = (Vendd.RecipeLibrary.SaveGlobalIdToLocal(wrapper.model.RecipeItemId, wrapper.model.GlobalId)).success;\n if (wrapper.config.SaveToLocalStorage && wrapper.model.GlobalId) result.SaveRecipeItemsToLocal = (Vendd.RecipeLibrary.SaveRecipeItemsToLocal(wrapper.model.RecipeItemId, wrapper.model.GlobalId)).success;\n if (!result.success) {\n //console.log(result.status);\n loadDataError(response, \"1071\");\n return;\n }\n }\n\n wrapper.update();\n\n if (response.data.IsValid) {\n var storeLocator = (Vendd.StoreLocator || {}).Controller || {};\n if (!storeLocator.Partner && $.getGlobalElement('.js-post-code-selector', $wrapper).length > 0) {\n openPostCodeSelector(null);\n }\n wrapper.setCheckedItems();\n wrapper.setEnabledItems();\n } else {\n onValidateError(response);\n }\n wrapper.showSummary(true);\n };\n\n wrapper.Validate = function () {\n var response = {};\n var data = Vendd.RecipeLibrary.IsValid(wrapper.model.RecipeItemId);\n response.data = data || {};\n _.each(_.filter(wrapper.model.RecipeItems, function (item) { return item.SubRecipeId > 0; }),\n function (recipe) {\n var subrecipe_data = Vendd.RecipeLibrary.IsValid(recipe.ProductItemId) || {};\n if (response.data.IsValid && !subrecipe_data.IsValid) {\n ($(\".issubrecipe[data-id='\" + recipe.ProductItemId + \"']\").get(0)).Validate();\n }\n response.data.IsValid = response.data.IsValid && subrecipe_data.IsValid;\n });\n\n if (response.data.IsValid) {\n onValidateSuccess(response);\n wrapper.showSummary(true);\n scroll_to_class($wrapper, 90);\n } else {\n onValidateError(response);\n var $firstError = $.getElement(\" .group-error-container:not(.hidden),.x-recipe-ingredients:not(.x-subrecipe) .recipe-error-container:not(.hidden)\", $wrapper).first();\n if (response.data.GroupErrors.length > 0 && $firstError.length) {\n var $categoryError = $firstError.closest(\".category\");\n $categoryError.toggleClass(\"opened\", true);\n scroll_to_class($firstError, 90);\n } else if (response.data.IngredientsErrors.length > 0) {\n $.each(response.data.IngredientsErrors, function (i, error) {\n $el = $.getElement(\" .ingredients .info-error-container:not(.disabled)\", $wrapper).closest(\".ingredient[data-ingredientid='\" + error.IngredientId + \"']\");\n $input = $(\"input\", $el);\n if ($input.is(':checked')) {\n var $categoryError = $el.closest(\".category\");\n $categoryError.toggleClass(\"opened\", true);\n scroll_to_class($el, 90);\n return false;\n }\n });\n }\n }\n };\n\n var onValidateError = function (response) {\n\n $.getElement(\" .back-to-config-container\", $wrapper).toggleClass(\"hidden\", true);\n $.getGlobalElement(\".save-for-later-container .button\", $wrapper).addClass(\"disabled\").prop(\"disabled\", true);\n if ((wrapper.model.GlobalId || 0) === 0) $.getGlobalElement(\".download-pdf-container .button\", $wrapper).addClass(\"disabled\").prop(\"disabled\", true);\n if ((wrapper.model.GlobalId || 0) === 0) $.getGlobalElement(\".share-buttons .button\", $wrapper).addClass(\"disabled\").prop(\"disabled\", true);\n if ((wrapper.model.GlobalId || 0) === 0) $.getGlobalElement(\".one-dealer-container .button\", $wrapper).addClass(\"disabled\").prop(\"disabled\", true);\n $.getElement(\" .summary-category-error\", $wrapper).toggleClass(\"hidden\", response.data.Errors.length === 0 && response.data.GroupErrors.length === 0 && response.data.IngredientsErrors.length === 0);\n $.getElement(' .summary-category-error .category-description a', $wrapper).off(\"click touchstart\").on(\"click touchstart\", function () {\n wrapper.showSummary(false);\n scroll_to_class($wrapper, 90);\n });\n $.getElement(\" .summary-category-error .category-item.generated\", $wrapper).remove();\n $.getGlobalElement(\".validate-info-container .alert\", $wrapper).removeClass(\"hidden\");\n $.getGlobalElement(\".validate-info-container .warning\", $wrapper).toggleClass(\"hidden\", !((response.data.IngredientsWarnings || []).length > 0));\n\n var ingredientsOutdatedErrors = _.filter(response.data.IngredientsErrors, function (i) { return i.ErrorCodes.includes(1072); });\n var ingredientsGeneralErrors = _.filter(response.data.IngredientsErrors, function (i) { return !i.ErrorCodes.includes(1072); });\n\n $.getElement(\" .summary-category-outdated-equipment\", $wrapper).toggleClass(\"hidden\", ingredientsOutdatedErrors.length === 0);\n var $templateOutdated = $.getElement(\" .summary-outdated-item-generate-template\", $wrapper);\n _.each(ingredientsOutdatedErrors, function (item) {\n var $templateClone = $templateOutdated.clone().removeClass(\"summary-outdated-item-generate-template\").addClass(\"generated\");\n $templateClone.attr(\"data-ingredientid\", item.IngredientId);\n $(\".summary-item-name\", $templateClone).text(item.Name);\n var price = item.Price > 0 ? numberToString2(item.Price, true) : \"\";\n $(\".summary-item-price\", $templateClone).text(price);\n var $parent = $.getElement(\" .summary-category-outdated-equipment .category-items\", $wrapper);\n $templateClone.appendTo($parent);\n });\n\n _.each(ingredientsGeneralErrors, function (item) {\n wrapper.showGeneralErrorMessage(item);\n });\n\n $.getElement(\" .summary-category-general-errors\", $wrapper).toggleClass(\"hidden\", response.data.Errors.length === 0 && response.data.GroupErrors.length === 0 && ingredientsGeneralErrors.length === 0);\n _.each(response.data.Errors, function (item) {\n wrapper.showGeneralErrorMessage(item);\n });\n\n _.each(response.data.GroupErrors, function (group) {\n wrapper.showGeneralErrorMessage(group);\n });\n\n _.each(response.data.IngredientsWarnings, function (item) {\n var $item = $.getElement(\" .summary-container .category-item[data-ingredientid='\" + item.IngredientId + \"']\", $wrapper);\n if ($item.length > 0) {\n wrapper.showErrorMessage($item, item.ErrorCodes[0], null, null, null);//<--- fix to multiple errors\n $item.addClass(\"tooltip-info-wrapper\");\n intiTooltip($item);\n };\n });\n };\n\n var onValidateSuccess = function (response) {\n\n $.getElement(\" .back-to-config-container\", $wrapper).toggleClass(\"hidden\", false);\n $.getElement(\" .summary-category-error\", $wrapper).addClass(\"hidden\");\n $.getElement(\" .summary-category-general-errors\", $wrapper).addClass(\"hidden\");\n $.getElement(\" .summary-category-outdated-equipment\", $wrapper).addClass(\"hidden\");\n $.getElement(\" .summary-category-general-errors .category-item.generated\", $wrapper).remove();\n $.getElement(\" .summary-category-outdated-equipment .category-item.generated\", $wrapper).remove();\n $.getElement(\" .summary-container .info-error-container\", $wrapper).addClass(\"disabled\");\n $.getGlobalElement(\".save-for-later-container .button\", $wrapper).removeClass(\"disabled\");\n $.getGlobalElement(\".download-pdf-container .button\", $wrapper).removeClass(\"disabled\");\n $.getGlobalElement(\".share-buttons .button\", $wrapper).removeClass(\"disabled\");\n $.getGlobalElement(\".one-dealer-container .button\", $wrapper).removeClass(\"disabled\");\n $.getGlobalElement(\".validate-info-container .alert\", $wrapper).addClass(\"hidden\");\n $.getGlobalElement(\".validate-info-container .warning\", $wrapper).toggleClass(\"hidden\", !((response.data.IngredientsWarnings || []).length > 0));\n\n\n _.each(response.data.IngredientsWarnings, function (item) {\n var $item = $.getElement(\" .category-item[data-ingredientId='\" + item.IngredientId + \"']\", $wrapper);\n if ($item.length > 0) {\n wrapper.showErrorMessage($item, item.ErrorCodes[0], null, null, null);//<--- fix to multiple errors\n $item.addClass(\"tooltip-info-wrapper\");\n intiTooltip($item);\n };\n });\n };\n\n wrapper.showSummary = function (show) {\n if (show) $.getElement(' li.category:not(.summary-category-error)', $wrapper).removeClass(\"disabled\");\n if (wrapper.config.SaveToDatabase || wrapper.config.ShareConfiguration || wrapper.config.PdfExport || wrapper.config.SendToOneDealer) {\n if (!wrapper.config.SaveToDatabase || !wrapper.model.CanEdit) $.getGlobalElement(\".button-summary-wrapper .save-for-later-container\", $wrapper).remove();\n if (!wrapper.config.ShareConfiguration) $.getGlobalElement(\".button-summary-wrapper .share-container\", $wrapper).remove();\n if (!wrapper.config.PdfExport) $.getGlobalElement(\".button-summary-wrapper .download-pdf-container\", $wrapper).remove();\n if (!wrapper.config.SendToOneDealer) $.getGlobalElement(\".button-summary-wrapper .one-dealer-container\", $wrapper).remove();\n $(\".button-summary-wrapper\").toggleClass(\"hidden\", !show);\n }\n $(\".recipe-buttons-container\").toggleClass(\"hidden\", !show);\n $(\".js-full-screen-popup\").toggleClass(\"disabled\", !show);\n if (!wrapper.config.isConfigurationPage) {\n $(\".configurator-container\").toggleClass(\"hidden\", show);\n $(\".summary-container\").toggleClass(\"hidden\", !show);\n }\n };\n\n wrapper.initialize = function () {\n\n wrapper.model.CanEdit = true;\n\n if (wrapper.config.isConfigurationPage) {\n wrapper.model.RecipeItemId = pasrseInt(getQueryStringValueByName(\"ParentItemId\") || \"\");\n }\n\n var vendd = getParentOrSelfVendd();\n\n var getUserViewModelSuccess = function () {\n\n wrapper.model.LoginPage = LhApp.Url.Page.Login + \"?returnUrl=\" + encodeURI(window.location);\n\n var globalId = getQueryStringValueByName(\"GlobalId\") || \"\";\n var doSave = (getQueryStringValueByName(\"DoSave\") || \"\") === \"true\";\n var callback = {}, config = {};\n if (wrapper.model.isAuthenticated && wrapper.config.SaveToDatabase && globalId !== \"\" && doSave) {\n callback = {\n success: function (response) {\n var $successHtml = $.getGlobalElement('.success-for-later-text', $wrapper);\n var location = UpdateQueryString(\"DoSave\", false);\n $(\"#saved-url\", $successHtml).val(location);\n $.fancybox.open($successHtml, {\n touch: false\n });\n //console.log(\"update successfully!\");\n }, error: function () {\n //console.log(\"updating failed!\");\n }, finally: function () {\n }\n };\n config = {\n GlobalId: globalId\n };\n wrapper.assignConfigurationToUser(callback, config);\n }\n\n var hasPermissions = !wrapper.config.HasAuthorizedPage ||\n (wrapper.model.isAuthenticated && wrapper.config.HasAuthorizedPage) ||\n (globalId !== \"\" && wrapper.config.LoadFromDatabase) ||\n wrapper.config.isConfigurationPage;\n\n if (wrapper.config.isSubRecipe) {\n var _ingredients = ((Vendd.RecipeLibrary.GetModel(wrapper.config.ParentRecipeItemId).data || {}).Ingredients) || {};\n var _model = (_.find(_ingredients, function (i) { return i.SubRecipeId === wrapper.config.RecipeId }) || {}).SubRecipe || {};\n wrapper.model = _model;\n wrapper.model.RecipeItemId = wrapper.model.ProductItemId || 0;\n var result = Vendd.RecipeLibrary.GetModel(wrapper.model.RecipeItemId);\n wrapper.model = $.extend({}, wrapper.model, result.data);\n wrapper.initModel = $.extend(true, {}, wrapper.model);\n\n callback = {\n success: loadDataSuccess,\n error: loadDataError\n };\n config = {\n GlobalId: globalId || \"\"\n };\n wrapper.loadData(callback, config);\n return;\n }\n\n if (hasPermissions) {\n var attributes = wrapper.config.Attributes.split(\",\");\n vendd.MessageBus.publishAsync(wrapper, new vendd.Recipe.Messages.GetModel(wrapper.config.RecipeItemId, path, attributes));\n vendd.MessageBus.subscribe(vendd.Recipe.Messages.GetModelSuccess, wrapper, function (envelope) {\n if (wrapper.config.isSubRecipe) return;\n var recipeId = (envelope.message.data || {}).RecipeId || 0;\n wrapper.model.RecipeId = recipeId;\n\n var hasCategoryData = ((envelope.message.data || {}).Categories || []).length > 0;\n if (($('.x-recipe-ingredients-wrapper.issubrecipe[data-recipe-id=\"' + wrapper.model.RecipeId + '\"]').length > 0 && wrapper.config.RecipeId !== wrapper.model.RecipeId) || !hasCategoryData) return;\n wrapper.model.RecipeItemId = (envelope.message.data || {}).ProductItemId || 0;\n wrapper.model.ParentRecipeId = wrapper.config.ParentRecipeId;\n wrapper.model.ParentRecipeItemId = wrapper.config.ParentRecipeItemId;\n wrapper.model = $.extend({}, wrapper.model, envelope.message.data);\n wrapper.model.IsAuthorized = true;\n\n if (wrapper.config.isConfigurationPage) {\n wrapper.model.RecipeItemId = parseInt(getQueryStringValueByName(\"ParentItemId\") || \"\");\n wrapper.model.vin = getQueryStringValueByName(\"Vin\") || \"\";\n wrapper.model.partnerId = parseInt(getQueryStringValueByName(\"PartnerId\") || \"\");\n wrapper.model.isValidConfigurationPage = wrapper.model.RecipeItemId !== 0 && wrapper.model.vin !== \"\" && wrapper.model.partnerId !== 0;\n wrapper.model.isConfigurationPage = true;\n }\n var result = Vendd.RecipeLibrary.InitRecipe(wrapper.model, wrapper.model.RecipeItemId);\n wrapper.model = $.extend({}, wrapper.model, result.data.recipe);\n wrapper.initModel = $.extend(true, {}, wrapper.model);\n\n var callback = {\n success: loadDataSuccess,\n error: loadDataError\n };\n var config = {\n GlobalId: globalId || \"\"\n };\n wrapper.loadData(callback, config);\n //Custom BJT\n // var result = Vendd.RecipeLibrary.GetRecipeItems(id);\n // var itemInfo = {\n // minQuantity: 1,\n // maxQuantity: 1,\n // quanta: 1\n // };\n // var recipeItems = [];\n // $.each(result.data.RecipeItems, function (i, el) { \n // recipeItems.push( {\n // RecipeItemId: el.RecipeItemId,\n // ParentProductId: id,\n // Quantity: el.Quantity\n // } );\n // });\n // var enhancedInfo = { color: '', size: '', list: 'productDetails', colorId: null };\n // var vendd = getParentOrSelfVendd();\n // //Dirty fix, wait cart to clear first (pd.js)\n // setTimeout(function() {\n // vendd.MessageBus.publishAsync($wrapper.get(0), new vendd.Cart.Messages.Add(id, skuId, path, qty, '', extraAttributes, bundleItems, recipeItems, comboItems, itemInfo, enhancedInfo));\n // }, 3000);\n });\n } else {\n wrapper.model.IsAuthorized = false;\n wrapper.initModel = $.extend(true, {}, wrapper.model);\n wrapper.update();\n wrapper.loading(false);\n }\n };\n if (window.localStorage && window.localStorage.getItem(\"CurrentUserModel\")) {\n wrapper.model.isAuthenticated = (JSON.parse(window.localStorage.getItem(\"CurrentUserModel\") || \"\")).IsAuthenticated || false;\n getUserViewModelSuccess();\n } else {\n vendd.MessageBus.subscribe(Vendd.User.Messages.GetUserViewModelSuccess, wrapper, function (envelope) {\n wrapper.model.isAuthenticated = (((envelope.message || {}).data || {}).model || {}).IsAuthenticated || false;\n getUserViewModelSuccess();\n });\n }\n\n Vendd.MessageBus.subscribe(Vendd.Cart.Messages.GetShippingModelSuccess, wrapper, function (envelope) {\n wrapper.shippingModel = (((envelope.message || {}).data || {}).model || {});\n });\n Vendd.MessageBus.subscribe(Vendd.Cart.Messages.ApplyShippingDataSuccess, wrapper, function (envelope) {\n wrapper.model.ShippingCost = parseFloat(stringToNumber(wrapper.shippingModel.ShippingCostText));\n wrapper.model.ShippingCostText = wrapper.shippingModel.ShippingCostText;\n $.getElement(' .summary-shipping-price', $wrapper).html(wrapper.model.ShippingCostText);\n //wrapper.setCheckedItems();\n });\n };\n\n wrapper.initialize();\n };\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'x-recipe-ingredients-wrapper', function (envelope) {\n bindRecipeController(envelope.message.data.context);\n });\n\n var bindRecipeController = function ($wrapper) {\n $('.x-recipe-ingredients-wrapper').each(function () {\n\n recipeController($(this), configuratorOptions);\n });\n\n $.getGlobalElement('.js-show-recipe', $wrapper).off('click').on('click', function (e) {\n var $parent = $(this).closest('.x-recipe-ingredients-wrapper');\n if ($parent.length === 0) return;\n recipeController($parent, configuratorOptions);\n });\n\n };\n\n $('.x-recipe-ingredients-wrapper').each(function () {\n\n recipeController($(this), configuratorOptions);\n });\n});\n\nfunction copyToClipboard() {\n copyText = document.getElementById(\"saved-url\");\n\n /* Select the text field */\n copyText.select();\n copyText.setSelectionRange(0, 99999); /*For mobile devices*/\n\n /* Copy the text inside the text field */\n document.execCommand(\"copy\");\n}\n\n\nfunction numberToString2(value, addCurrency, clearZeros) {\n var returnValue, currency, decimal, fractional;\n\n currency = LhApp.Context.Currency.Symbol;\n var doShowSymbol = LhApp.Context.Currency.DoShowSymbol;\n var symbolShownFirst = LhApp.Context.Currency.SymbolShownFirst;\n var decimalSeperator = LhApp.Context.Currency.DecimalSeparator;\n var thousandSeperator = LhApp.Context.Currency.DecimalSeparator === \".\" ? \",\" : \".\";\n var numberOfDigits = LhApp.Context.Currency.NumberOfDigits;\n\n returnValue = parseFloat(value).toFixed(numberOfDigits);\n returnValue += \"\";\n returnValue = returnValue.replace('.', decimalSeperator).trim();\n\n if (clearZeros) {\n fractional = returnValue.split(decimalSeperator);\n\n if (fractional.length > 1) {\n if (new RegExp(\"^[0\\0]+$\").test(fractional[1])) {\n returnValue = fractional[0];\n }\n }\n }\n returnValue = returnValue.replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + thousandSeperator);\n\n if (addCurrency && doShowSymbol)\n returnValue = symbolShownFirst ? currency + \" \" + returnValue : returnValue + \" \" + currency;\n\n return returnValue;\n}\nfunction getShortenedUrlAuth() {\n return $.ajax({\n type: \"POST\",\n dataType: 'json',\n async: false,\n contentType: 'application/json; charset=UTF-8',\n url: \"services/api/ExternalServices/GetShortenedUrlAuth\",\n data: null\n });\n}\nfunction getShortenedUrl(url) {\n return $.when(getShortenedUrlAuth()).done(function (response) {\n // the code here will be executed when all four ajax requests resolve.\n // a1, a2, a3 and a4 are lists of length 3 containing the response text,\n // status, and jqXHR object for each of the four ajax calls respectively.\n var requestData = {\n \"token\": JSON.parse(response.message).access_token,\n \"url\": url\n };\n return $.ajax({\n type: \"POST\",\n dataType: 'json',\n async: false,\n contentType: 'application/json; charset=UTF-8',\n url: \"services/api/ExternalServices/GetShortenedUrl\",\n data: JSON.stringify(requestData),\n success: function (response) {\n shortUrl = JSON.parse(response.message)[0].shortFormat;\n var confUrl = window.location.href;\n if (shortUrl) {\n confUrl = shortUrl;\n }\n $('.js-pdf-footer .shorturl').attr('href', confUrl).text(confUrl);\n generateQr(confUrl);\n },\n error: function () {\n $(\".qr-wrapper\").html(\n ''\n );\n }\n });\n });\n}\nfunction generateQr(url) {\n $(\".qr-wrapper img\").remove();\n var $qrWrapper = $(\".qr-wrapper\");\n new QRCode($qrWrapper[0], {\n text: url,\n width: 120,\n height: 120\n });\n $(\".qr-wrapper .qr-literal\").css('color', '#4999CE');\n}\n","function InitStickyBar() {\n var $page = $('.product-details-region'),\n $fixedProduct = $(\".x-product-details-sticky-bar\"),\n $offsetContainer = $('.' + $fixedProduct.data('offset'), $page),\n scroll, ww, mobile;\n\n $('.js-select-size', $fixedProduct).click(function () {\n if (!($(window).width() < 768 && isTouch()))\n $(\"body,html\").animate({ scrollTop: 0 }, $(window).scrollTop() / 2);\n });\n\n scroll = $(window).scrollTop();\n scroll > ($offsetContainer.offset().top - 100) ? $fixedProduct.addClass(\"visible\") : $fixedProduct.removeClass(\"visible\");\n\n $(window).scroll(_.throttle(fixedScroll, 100));\n\n function fixedScroll() {\n if (isTouch() && $(window).width() < 768) {\n if ($offsetContainer.inViewport()) {\n $fixedProduct.addClass('hidden');\n $('.x-product-details .x-product-details-availability-notification').addClass('hidden');\n $('html').removeClass('hide-sticky-btns');\n } else {\n $fixedProduct.removeClass('hidden');\n $('html').addClass('hide-sticky-btns');\n }\n }\n\n }\n\n /*reset*/\n $('html').removeClass('no-scroll');\n\n $(window).resize($.debounce(150, function () {\n ww = $(window).width();\n mobile = (ww < 767) ? true : false;\n\n if (isTouch() && !mobile) {\n if ($('.x-product-details-version-selector', $fixedProduct).hasClass('opened')) {\n $('.js-close-popup', $fixedProduct).trigger('click');\n }\n }\n }));\n\n $('.open-dim-pop-up', $fixedProduct).click(function () {\n var parent = $(this).parent('.x-product-details-version-selector');\n if (parent.hasClass('opened')) {\n $('html').removeClass('no-scroll');\n $fixedProduct.removeClass('top-layer');\n parent.removeClass('opened').siblings().removeClass('shadow');\n $(this).removeClass('icon-minus').addClass('icon-plus');\n } else {\n $('html').addClass('no-scroll');\n if ($('.header-region').hasClass('sticky')) {\n $('.header-spacer').height(0);\n $('.header-region').removeClass('sticky');\n }\n $fixedProduct.addClass('top-layer');\n parent.addClass('opened').removeClass('shadow').siblings().removeClass('opened').addClass('shadow').children('.open-dim-pop-up').removeClass('icon-minus').addClass('icon-plus');\n $(this).removeClass('icon-plus').addClass('icon-minus');\n }\n });\n\n $('.js-close-popup', $fixedProduct).click(function () {\n var parent = $(this).closest('.x-product-details-version-selector');\n $fixedProduct.removeClass('top-layer');\n $('html').removeClass('no-scroll');\n parent.removeClass('opened').siblings().removeClass('shadow');\n parent.children('.open-dim-pop-up').removeClass('icon-minus').addClass('icon-plus');\n });\n\n $('.js-selector', $fixedProduct).click(function () {\n $('.js-close-popup', $fixedProduct).trigger('click');\n });\n \n $offsetContainer.inViewport = function() {\n var elementTop = $(this).offset().top;\n var elementBottom = elementTop + $(this).outerHeight();\n\n var viewportTop = $(window).scrollTop() + $('.header-spacer').outerHeight();\n var viewportBottom = viewportTop + $(window).height(); // 80 is magic number for the sticky bar height\n\n return elementBottom > viewportTop && elementTop < viewportBottom;\n };\n}","Vendd.Scripts.load(function () {\n\n if ($('.x-pd-tab-panel').length < 1) return;\n\n dynamicIndexes();\n //Check attributes tab\n updateAttributesTab();\n \n});\n\nfunction updateAttributesTab() {\n var $box = $('.js-attributes'),\n $container = $('.js-attributes-container'),\n visible = false;\n \n if ($box.length > 0 || $container.length > 0) {\n $('[class*=\"ItemAttributes_\"]', $box).each(function () {\n if (!$(this).hasClass('ItemAttributes_IsTest') && !$(this).hasClass('ItemAttributes_Gender') && !$(this).hasClass('ItemAttributes_OverWeight')) {\n visible = true;\n }\n });\n \n if (($('[class*=\"ItemAttributes_\"]', $box).length > 0) && visible) {\n $container.removeAttr('style');\n $('.product-details-region .x-tab-panel .tabs-content > ul > li:eq(1) .mb-title').removeAttr('style');\n $container.each(function () { $(this).removeClass('hidden'); });\n } else {\n $container.each(function () { $(this).remove(); });\n }\n }\n}\n\nfunction dynamicIndexes() {\n\n var $wrapper = $('.x-pd-tab-panel');\n var $anchorContainer = $('.tabs-title', $wrapper);\n var $anchor = $('.tab-title', $anchorContainer);\n var $contentContainer = $('.tabs-content', $wrapper);\n var $content = $('.tab-content', $contentContainer);\n\n //Dynamic attribute for each tab title\n _.each($anchor, function (anchor, index) { $(anchor).attr('data-tab-index', index); });\n //Dynamic attribute for each tab content\n _.each($content, function (content, index) { $(content).attr('data-tab-content-index', index); });\n}\n\nfunction initTabs() {\n\n var $wrapper = $('.x-pd-tab-panel');\n var $container = $('.tabs-content', $wrapper);\n var $tab = $('.tab-content', $container);\n\n $('.mb-title', $tab).click(function () {\n\n var index = $(this).parent().index();\n if ($(this).parent().hasClass('active')) {\n $(this).addClass('icon-plus').removeClass('icon-minus');\n $(this).parent().removeClass('active');\n $('.tabs-title > ul > li:eq(' + index + ')', $wrapper).removeClass('active');\n } else {\n $(this).addClass('icon-minus').removeClass('icon-plus');\n $(this).parent().addClass('active').siblings('.active').removeClass('active').children('.mb-title').addClass('icon-plus').removeClass('icon-minus');\n $('.tabs-title > ul > li:eq(' + index + ')', $wrapper).addClass('active').siblings('.active').removeClass('active');\n }\n });\n\n}\n\nfunction initIframeTab() {\n\n var $container = $('.js-external-content');\n\n if ($container.length < 1) return;\n\n $('#external-content-iframe').on(\"load\", function () {\n var $this = $(this);\n calculateIframeHeight($this);\n });\n\n $('.mb-title', $container).click(function () {\n\n if ($(window).width() > 959) return;\n\n if ($(this).parent().hasClass('active')) {\n var $iframe = $('#external-content-iframe');\n calculateIframeHeight($iframe);\n }\n });\n}\n\nfunction calculateIframeHeight(iframe) {\n var height = iframe.contents().height() + 100;\n iframe.css('height', height);\n}\n\nfunction stickyAnchors() {\n\n if ($(window).width() < 960) return;\n\n var $wrapper = $('.x-pd-tab-panel');\n var $container = $('.tabs-title', $wrapper);\n var $offsetTop = $container.offset().top;\n var $stickyBarHeight = $('.sticky-header-region').height() || 0;\n\n if ($(window).scrollTop() < $offsetTop - $stickyBarHeight) {\n $container.removeClass('sticky');\n } else {\n $container.addClass('sticky');\n }\n\n}","Vendd.Scripts.load(function () {\n\n var run = function () {\n $('.x-control.x-map[data-control=\"map\"]').each(function (i, wrapper) {\n var $wrapper = $(wrapper);\n\n var config = {};\n\n wrapper.mapOpts = {\n zoom: 13,\n maxZoom: 19,\n scrollwheel: false,\n mapTypeId: google.maps.MapTypeId.ROADMAP,\n streetViewControl: false,\n mapTypeControl: false\n };\n\n wrapper.infoWinOpts = {\n maxWidth: 440\n };\n\n wrapper.markerOpts = {\n title: LhApp.Context.Site.Name,\n icon: $wrapper.data('marker')\n };\n\n wrapper.map = null;\n\n wrapper.markers = [];\n\n wrapper.markerCluster = null;\n\n wrapper.create = function (coordinates) {\n var coords = [];\n\n $(coordinates).each(function (c, cc) {\n var existsCoord = _.find(coords, function (x) { return x.lat === cc.lat && x.lng == cc.lng });\n if (!existsCoord)\n coords.push(cc);\n });\n\n if (coords.length == 0)\n throw new Error('no coordinates');\n\n var firstLatLng = coords[0];\n\n var mapOpts = {};\n $.extend(true, mapOpts, wrapper.mapOpts, {\n div: '#' + $wrapper.attr('id'),\n lat: firstLatLng.lat,\n lng: firstLatLng.lng\n });\n\n wrapper.map = new GMaps(mapOpts);\n\n wrapper.addMarkers(coords);\n };\n\n wrapper.reinit = function (coordinates) {\n var coords = [];\n\n $(coordinates).each(function (c, cc) {\n var existsCoord = _.find(coords, function (x) { return x.lat === cc.lat && x.lng == cc.lng });\n if (!existsCoord)\n coords.push(cc);\n });\n\n wrapper.addMarkers(coords);\n };\n\n wrapper.setCenter = function () {\n if (wrapper.markers.length == 0) {\n wrapper.map.setZoom(3);\n return;\n }\n\n if ($(\".contact-page\").length > 0 && wrapper.markers.length == 1) {\n wrapper.map.setZoom(15);\n return;\n }\n\n var bounds = new google.maps.LatLngBounds();\n for (i = 0; i < wrapper.markers.length; i++) {\n bounds.extend(wrapper.markers[i].getPosition());\n }\n wrapper.map.fitBounds(bounds);\n\n if (wrapper.markers.length == 1) {\n wrapper.map.setZoom(17);\n }\n }\n\n wrapper.getMarker = function (coordinates) {\n var marker = _.find(wrapper.markers, function (x) { return x.position.toString() === new google.maps.LatLng(coordinates.lat, coordinates.lng).toString() });\n return marker;\n };\n\n function find_closest_marker(lat1, lon1) {\n var pi = Math.PI;\n var R = 6371; //equatorial radius\n var distances = [];\n var closest = -1;\n\n for (i = 0; i < wrapper.markers.length; i++) {\n var lat2 = wrapper.markers[i].position.lat();\n var lon2 = wrapper.markers[i].position.lng();\n\n var chLat = lat2 - lat1;\n var chLon = lon2 - lon1;\n\n var dLat = chLat * (pi / 180);\n var dLon = chLon * (pi / 180);\n\n var rLat1 = lat1 * (pi / 180);\n var rLat2 = lat2 * (pi / 180);\n\n var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(rLat1) * Math.cos(rLat2);\n var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n var d = R * c;\n\n distances[i] = d;\n if (closest == -1 || d < distances[closest]) {\n closest = i;\n }\n }\n\n return wrapper.markers[closest];\n }\n\n wrapper.findMarker = function (search, country, callback) {\n var geocoder = new google.maps.Geocoder();\n geocoder.geocode({ 'address': search + ', ' + (country || 'GR') }, function (results, status) {\n if (status == google.maps.GeocoderStatus.OK) {\n var latLng = results[0].geometry.location;\n var closestMarker = find_closest_marker(latLng.lat(), latLng.lng());\n callback(closestMarker, null);\n } else {\n callback(null, new Error('closest marker not found'));\n }\n });\n };\n\n wrapper.removeMarkers = function () {\n wrapper.markerCluster.clearMarkers();\n wrapper.map.removeMarkers();\n wrapper.markers = [];\n };\n\n wrapper.addMarkers = function (coords) {\n\n var openedInfoWindow;\n\n $(coords).each(function (i, spot) {\n var infoWindow = null;\n if (spot.html && spot.html != '') {\n var infoWindowOpts = {};\n $.extend(true, infoWindowOpts, wrapper.infoWinOpts, {\n content: spot.html\n });\n infoWindow = new google.maps.InfoWindow(infoWindowOpts);\n }\n\n var markerOpts = {};\n $.extend(true, markerOpts, wrapper.markerOpts, {\n lat: spot.lat,\n lng: spot.lng,\n infoWindow: infoWindow\n });\n\n var marker = wrapper.map.addMarker(markerOpts);\n wrapper.markers.push(marker);\n\n if ($('.x-store-locator').length > 0 || $('.x-map-view').length > 0) {\n google.maps.event.addListener(marker, 'click', function () {\n if (typeof openedInfoWindow != 'undefined' && openedInfoWindow) {\n openedInfoWindow.close();\n openedInfoWindow = null;\n }\n wrapper.map.setZoom(17);\n wrapper.map.map.panTo(marker.getPosition());\n wrapper.map.map.setCenter(marker.getPosition());\n wrapper.map.panBy(0, -70);\n setTimeout(function () { infoWindow.open(wrapper.map.map, marker); }, 500);\n openedInfoWindow = infoWindow;\n });\n }\n\n if ($(\".contact-page\").length > 0 || $(\".product-details-region\").length > 0 || $(\".store-page\").length > 0) {\n infoWindow.open(wrapper.map.map, marker);\n wrapper.map.panBy(0, -120);\n }\n\n });\n\n if ($('.x-store-locator').length > 0 || $('.x-map-view').length > 0) {\n var clusterStyles = [\n {\n url: '/themes/templatethemeTwo/images/grouped-markers.png',\n height: 65,\n width: 44,\n textSize: 16,\n textHeight: 47,\n textColor: 'white',\n },\n\n ];\n\n mcOptions = { gridSize: 70, maxZoom: 10, styles: clusterStyles };\n\n wrapper.markerCluster = new MarkerClusterer(wrapper.map.map, wrapper.markers, mcOptions);\n }\n\n wrapper.setCenter();\n };\n\n wrapper.open = function (marker) {\n google.maps.event.trigger(marker, 'click');\n };\n });\n };\n\n Vendd.MessageBus.subscribe(Vendd.Plugins.Messages.GoogleMapsLoaded, 'mapControl', run);\n});","Vendd.Scripts.load(function () {\n\n var $boxes = $('.x-product-box-gtl-related');\n\n var $allToCartCont = $('.x-all-to-cart'), totalPrice = 0, numOfSelected = 0;\n\n $.each($boxes, function (i, el) {\n var $wrapper = $(this),\n wrapper;\n var model = null;\n\n if ($wrapper.length < 1)\n return;\n\n wrapper = $wrapper.get(0);\n\n if ($('.product-json-generator', $wrapper).length > 0) {\n var skuJsonHtml = $('.product-json-generator', $wrapper).html();\n $('.product-json-generator', $wrapper).remove();\n skuJsonHtml = skuJsonHtml.replace(/(\"[^\"]*\")|\\s/g, \"$1\").replace(/,}/g, '}').replace(/,]/g, ']');\n var skuJson = JSON.parse(skuJsonHtml);\n\n var $control = $('.x-product-details-quantity-selector', $wrapper);\n\n $.each($control, function (i, control) {\n var $item = $(control);\n\n $item.on('change', '.js-selector', function (e) {\n\n var $this = $(this);\n\n var qty = $this.val();\n\n });\n });\n\n var $control = $('.x-product-details-version-selector', $wrapper);\n\n $.each($control, function (i, control) {\n var $item = $(control);\n\n $item.on('change', '.js-selector', function (e) {\n\n var $this = $(this);\n\n var qty = $this.val();\n\n if ($item.hasClass(\"colorlist\")) {\n wrapper.updateSizes();\n var sizelist = $('.x-product-details-version-selector.sizelist select', $wrapper);\n if (qty > 0)\n sizelist.removeAttr('disabled');\n else\n sizelist.attr('disabled', 'true');\n }\n selectedSku = getSKU(skuJson, $('.colorlist .js-selector', $wrapper).val(), $('.sizelist .js-selector', $wrapper).val());\n wrapper.updateProductInfo();\n wrapper.updateQuantity();\n });\n });\n\n wrapper.updateColors = function () {\n var hasSelectedValueChange = false;\n var allSizes = getColors(skuJson, $('.sizelist .js-selector', $wrapper).val());\n var $colorWrapper = $('.x-product-details-version-selector.colorlist', $wrapper);\n $.each($('option[data-set-value-id!=0]', $colorWrapper), function () {\n var $option = $(this);\n var sizeId = $option.data(\"set-value-id\").toString();\n var isEnable = _.findWhere(allSizes, sizeId) != undefined;\n if (isEnable) {\n $option.removeClass('disabled').show();\n }\n else {\n if (sizeId == $('.js-selector', $colorWrapper).val()) hasSelectedValueChange = true;\n $option.addClass('disabled').hide();\n }\n });\n if (hasSelectedValueChange) {\n $(\"option\", $colorWrapper).attr('selected', null);\n $(\"option:not(.disabled)\", $colorWrapper).first().attr('selected', 'selected');\n $colorWrapper.val($(\"option:not(.disabled)\", $colorWrapper).first().val());\n }\n }\n\n wrapper.updateSizes = function () {\n var hasSelectedValueChange = false;\n var allColors = getSizes(skuJson, $('.colorlist .js-selector', $wrapper).val());\n var $sizeWrapper = $('.x-product-details-version-selector.sizelist', $wrapper);\n $.each($('option[data-set-value-id!=0]', $sizeWrapper), function () {\n var $option = $(this);\n var colorId = $option.data(\"set-value-id\").toString();\n var isEnable = _.findWhere(allColors, colorId) != undefined;\n if (isEnable) {\n $option.removeClass('disabled').show();\n }\n else {\n if (colorId == $('.js-selector', $sizeWrapper).val()) hasSelectedValueChange = true;\n $option.addClass('disabled').hide();\n }\n });\n if (hasSelectedValueChange) {\n $(\"option\", $sizeWrapper).attr('selected', null);\n $(\"option:not(.disabled)\", $sizeWrapper).first().attr('selected', 'selected');\n $sizeWrapper.val($(\"option:not(.disabled)\", $sizeWrapper).first().val());\n }\n }\n\n $wrapper.off('click', '.js-add-to-cart').on('click', '.js-add-to-cart', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n\n if ($this.hasClass('disabled') || $this.is(':disabled'))\n return;\n if ($('.x-warehouse-selector-widget').trigger('addtocart').hasClass('opening'))\n return;\n\n var id = $wrapper.data(\"productid\"),\n skuId = $wrapper.data(\"variantid\"),\n path = $wrapper.data(\"path\"),\n qty = $('.qty-select.js-selector', $wrapper).val();\n\n var itemInfo = {\n minQuantity: $wrapper.data(\"min-quantity\"),\n maxQuantity: $wrapper.data(\"max-quantity\"),\n quanta: $wrapper.data(\"quanta\")\n };\n\n //enhanced info\n var color = $('select [data-is-color=\"true\"].selected', $wrapper).text();\n var size = $('select [data-is-color=\"false\"].selected', $wrapper).text();\n var list = $('ul.related-list').data('list');\n\n var enhancedInfo = { color: color, size: size, list: list };\n //enhanced info\n\n if (qty < 1) return;\n\n Vendd.MessageBus.publishAsync($control.get(0), new Vendd.Cart.Messages.Add(id, skuId, path, qty, '', null, null, itemInfo, enhancedInfo)); \n //Open the widget only for template 1 of Cart Widget\n if ($('.x-cart-widget').data('template') === 1) {\n Vendd.MessageBus.publishAsync($wrapper, new Vendd.Widget.Messages.OpenWidget(Vendd.Widget.CartWidget, false));\n }\n });\n\n wrapper.loading = function (loading) {\n if (loading) {\n $wrapper.addClass('x-loading');\n } else {\n $wrapper.removeClass('x-loading');\n };\n };\n\n wrapper.updateProductInfo = function () {\n var selectedColor = $('.colorlist .js-selector', $wrapper).val();\n if (selectedColor != \"0\") {\n var imgSrc = getImageColor(skuJson, selectedColor);\n if (imgSrc != null) $('.image-container img', $wrapper).attr(\"src\", imgSrc);\n }\n\n if (selectedSku == undefined) {\n $('button.js-add-to-cart', $wrapper).addClass(\"disabled\").attr(\"disabled\", \"disabled\");\n if ($wrapper.hasClass('js-can-add-to-cart')) {\n $wrapper.removeClass('js-can-add-to-cart');\n numOfSelected -= 1;\n if (numOfSelected <= 0) {\n $('.js-add-all-to-cart', $allToCartCont).addClass(\"disabled\").attr(\"disabled\", \"disabled\");\n $allToCartCont.addClass('none-selected');\n totalPrice = 0;\n } else {\n totalPrice -= parseFloat(stringToNumber($wrapper.data('price')));\n }\n }\n $('.js-num-of-selected', $allToCartCont).text(numOfSelected);\n $('.js-total-price', $allToCartCont).text(String(totalPrice.toFixed(2)).replace(\".\", \",\"));\n return;\n }\n $wrapper.data(\"variantid\", selectedSku.SkuId);\n\n if (selectedSku.CanBuy.toLowerCase() == \"true\") {\n $('button.js-add-to-cart', $wrapper).removeClass(\"disabled\").attr(\"disabled\", null);\n if(!$wrapper.hasClass('js-can-add-to-cart')){\n $wrapper.addClass('js-can-add-to-cart');\n numOfSelected += 1;\n totalPrice += parseFloat(stringToNumber($wrapper.data('price')));\n $allToCartCont.removeClass('none-selected');\n $('.js-add-all-to-cart', $allToCartCont).removeClass(\"disabled\").attr(\"disabled\", null);\n }\n } else {\n $('button.js-add-to-cart', $wrapper).addClass(\"disabled\").attr(\"disabled\", \"disabled\");\n if ($wrapper.hasClass('js-can-add-to-cart')) {\n $wrapper.removeClass('js-can-add-to-cart');\n numOfSelected -= 1;\n if (numOfSelected <= 0) {\n $('.js-add-all-to-cart', $allToCartCont).addClass(\"disabled\").attr(\"disabled\", \"disabled\");\n $allToCartCont.addClass('none-selected');\n totalPrice = 0;\n } else {\n totalPrice -= parseFloat(stringToNumber($wrapper.data('price')));\n }\n }\n }\n\n $('.js-num-of-selected', $allToCartCont).text(numOfSelected);\n $('.js-total-price', $allToCartCont).text(String(totalPrice.toFixed(2)).replace(\".\", \",\"));\n\n var model = {};\n model.Price = {};\n model.Availability = {};\n model.Price.CurrentPrice = selectedSku.UnitPrice;\n model.Price.CurrentPriceText = selectedSku.UnitPriceText;\n model.Price.DeletedPrice = selectedSku.DeletedPrice != \"\" ? selectedSku.DeletedPrice : null;\n model.Price.DeletedPriceText = selectedSku.DeletedPrice != \"\" ? selectedSku.DeletedPriceText : null;\n model.Availability.AvailabilityActionId = selectedSku.AvailabilityActionId\n model.Availability.AvailabilityName = selectedSku.AvailabilityName\n\n var html = Vendd.Handlebars.parse(\"getTheLookPrices_A\", model);\n $('.prices-container', $wrapper).html(html);\n\n }\n\n wrapper.updateQuantity = function () {\n var html = \"\";\n if (selectedSku == undefined) {\n \n $('.x-product-details-quantity-selector', $wrapper).html(html);\n $('.x-product-details-quantity-selector', $wrapper).addClass('disabled').find('select').prop('disabled', true);\n return;\n }\n var model = {};\n if (selectedSku.CanBuy.toLowerCase() == \"true\") {\n var stock = 10;\n var stockMaxValue = parseFloat(selectedSku.StockMaxValue);\n var minQuantity = selectedSku.MinQuantity != \"\" ? parseFloat(selectedSku.MinQuantity) : 1;\n var maxQuantity = selectedSku.MaxQuantity != \"\" ? parseFloat(selectedSku.MaxQuantity) : stock;\n maxQuantity = Math.max(maxQuantity, stockMaxValue);\n maxQuantity = Math.min(maxQuantity, stock);\n var quanta = selectedSku.Quanta != \"\" ? parseFloat(selectedSku.Quanta) : 1;\n var index = 1;\n var quantity = minQuantity * quanta;\n var selectedValue = $('.qty-select.js-selector', $wrapper).length > 0 ? $('.qty-select.js-selector', $wrapper).val() : quantity;\n selectedValue = selectedValue <= maxQuantity ? selectedValue : quantity;\n do {\n model[index] = { \"Value\": quantity, \"Selected\": quantity == selectedValue }\n quantity = quantity + quanta;\n index++;\n } while (quantity <= maxQuantity && index <= 10);\n html = Vendd.Handlebars.parse(\"pdQuantitySelector_A\", model);\n }\n $('.x-product-details-quantity-selector', $wrapper).html(html);\n }\n\n wrapper.updateSizes();\n var selectedSku = getSKU(skuJson, $('.colorlist .js-selector', $wrapper).val(), $('.sizelist .js-selector', $wrapper).val());\n wrapper.updateProductInfo();\n wrapper.updateQuantity();\n if (selectedSku && selectedSku.color == \"0\") $('.colorlist .js-selector', $wrapper).hide();\n if (selectedSku && selectedSku.size == \"0\") $('.sizelist .js-selector', $wrapper).hide();\n }\n });\n\n function gtlSlider() {\n\n var $wrapper = $('.get-the-look-details-page');\n\n var $list = $('.js-related-products > ul', $wrapper);\n\n $list.on('init', function () {\n $('.gtl-item', $list).removeClass('last-visible');\n $('.gtl-item.slick-active', $list).eq($('.gtl-item.slick-active').length - 1).addClass('last-visible');\n });\n $list.on('afterChange', function () {\n $('.gtl-item', $list).removeClass('last-visible');\n $('.gtl-item.slick-active', $list).eq($('.gtl-item.slick-active').length - 1).addClass('last-visible');\n });\n $list.on('swipe', function () {\n $('.gtl-item', $list).removeClass('last-visible');\n $('.gtl-item.slick-active', $list).eq($('.gtl-item.slick-active').length - 1).addClass('last-visible');\n });\n\n updateListSlick($list);\n\n var resizeEvent;\n $(window).resize(function () {\n clearTimeout(resizeEvent);\n resizeEvent = setTimeout(function () {\n updateListSlick($list);\n }, 300);\n });\n }\n\n function updateListSlick(list) {\n var carouselCartOpts = {\n vertical: true,\n verticalSwiping: true,\n slidesToShow: 3,\n slidesToScroll: 3,\n infinite: false,\n prevArrow: $('.js-related-products .nav-prev'),\n nextArrow: $('.js-related-products .nav-next')\n };\n if (list.children().length > 3) {\n list.slick(carouselCartOpts);\n list.siblings('.nav').show();\n list.addClass('js-slick-initialised');\n }\n }\n\n function getSKU(skuJson, color,size) {\n return _.first(_.filter(skuJson.skus, function (sku) { return sku.color == color && sku.size == size; }));\n }\n\n function getSizes(skuJson, color) {\n var allSizes=(_.filter(skuJson.skus, function (sku) { return sku.color == color }));\n return _.map(allSizes,function(obj) {return obj.size;});\n }\n\n function getColors(skuJson, size) {\n var allColors = (_.filter(skuJson.skus, function (sku) { return sku.size == size }));\n return _.map(allColors, function (obj) { return obj.color; });\n }\n\n function getImageColor(skuJson, color) {\n if (skuJson.ColorDimensions[color] == undefined) return null;\n if (skuJson.ColorDimensions[color][0] == undefined) return null;\n return skuJson.ColorDimensions[color][0]['List'];\n }\n\n var currency = decodeEntities(LhApp.Context.Currency.Symbol);\n\n $('.currency-symbol', $allToCartCont).text(currency);\n\n $('.js-add-all-to-cart', $allToCartCont).click(function () {\n\n if ($(this).hasClass('disabled') || $(this).is(':disabled'))\n return;\n\n var dataArray = [];\n\n $.each($boxes, function (i, el) {\n var $wrapper = $(this);\n if ($wrapper.hasClass('js-can-add-to-cart')) { \n var data = {};\n \n var id = $wrapper.data(\"productid\"),\n skuId = $wrapper.data(\"variantid\"),\n path = $wrapper.data(\"path\"),\n qty = $('.qty-select.js-selector', $wrapper).val();\n\n var data = {\n id: id,\n skuId: skuId,\n path: path,\n qty: qty\n };\n\n dataArray.push(data);\n }\n });\n Vendd.MessageBus.publishAsync($control.get(0), new Vendd.Cart.Messages.MultipleAdd(dataArray));\n //Open the widget only for template 1 of Cart Widget\n if ($('.x-cart-widget').data('template') === 1) {\n Vendd.MessageBus.publishAsync($wrapper, new Vendd.Widget.Messages.OpenWidget(Vendd.Widget.CartWidget, false));\n }\n });\n\n $('.js-related-products').removeClass('x-loading');\n\n});\n","Vendd.Scripts.load(function () {\n var $wrapper = $('.gallery-look-container');\n\n initCarousel();\n initFancybox();\n\n function initCarousel() {\n var $mainGallery = $('> ul', $wrapper);\n\n if ($mainGallery.length < 1)\n return;\n\n var carouselMainOpts = {\n slidesToShow: 1,\n slidesToScroll: 1,\n infinite: false,\n adaptiveHeight: true,\n draggable: false,\n prevArrow: $('.nav-prev', $wrapper),\n nextArrow: $('.nav-next', $wrapper),\n dots: true\n };\n\n $mainGallery.slick(carouselMainOpts);\n };\n\n function initFancybox() {\n\n var $fancyLinks = $('.look-fancybox-gallery', $wrapper);\n\n\n if ($fancyLinks.length < 1)\n return;\n\n var fbOpts = {\n protect: true,\n infobar: true\n };\n\n $fancyLinks.fancybox(fbOpts);\n\n $('.fancy-btn', $wrapper).on('click', function (e) {\n var $slideWrapper = $('.slick-initialized', $wrapper);\n if ($slideWrapper.length > 0) {\n $('.slick-active', $slideWrapper).find('.look-fancybox-gallery').trigger('click');\n }\n\n });\n };\n});\n","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-ajax-buttons', function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.js-product-details-ajax-buttons', $context);\n\n if ($control.length < 1)\n return;\n\n $control.on('click', '.js-add-to-cart', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n\n if ($this.hasClass('disabled') || $this.is(':disabled'))\n return;\n if ($('.x-warehouse-selector-widget').trigger('addtocart').hasClass('opening'))\n return;\n\n if ($this.hasClass('has-add-on-products')) {\n AddOnProductsToCart();\n return;\n }\n \n var state = Vendd.Product.Controller.getState();\n var id = state.parentId,\n skuId = state.selectedId,\n colorId = state.selectedColorId,\n path = state.path,\n qty = (state.qty ? stringToNumber(state.qty) : null) || 1,\n extraAttributes = [],\n bundleItems = state.bundleItems,\n recipeItems = state.recipeItems,\n comboItems = state.comboItems;\n\n $('.x-editable-extra-properties .editable-attribute').each(function (el) {\n var $attr = $(this);\n var code = $attr.data('attribute');\n var value = $('input', $attr).val();\n extraAttributes.push({ code: code, value: value });\n\n });\n var itemInfo = {\n minQuantity: state.minQuantity,\n maxQuantity: state.maxQuantity,\n quanta: state.quanta\n };\n\n if ($this.parents('.x-quantity-special-prices').length > 0) {\n qty = $this.data('quantity');\n }\n\n var enhancedInfo = { color: '', size: '', list: 'productDetails', colorId: colorId };\n\n if ($this.closest('.x-product-details-sticky-bar').length > 0) {\n $('html, body').animate({ scrollTop: 30 }, 1);\n }\n\n var vendd = getParentOrSelfVendd();\n vendd.MessageBus.publishAsync($control.get(0), new vendd.Cart.Messages.Add(id, skuId, path, qty, '', extraAttributes, bundleItems, recipeItems, comboItems, itemInfo, enhancedInfo));\n //Open the widget only for template 1 of Cart Widget\n if ($('.x-cart-widget').data('template') === 1) {\n Vendd.MessageBus.publishAsync($wrapper, new Vendd.Widget.Messages.OpenWidget(Vendd.Widget.CartWidget, false));\n }\n });\n\n $control.on('click', '.js-add-to-wishlist', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n\n if ($this.closest('.wishlist-button').hasClass('x-disabled'))\n return;\n\n var state = Vendd.Product.Controller.getState();\n var id = state.parentId,\n skuId = state.selectedId,\n path = state.path,\n qty = (state.qty ? stringToNumber(state.qty) : null) || 1,\n extraAttributes = [],\n bundleItems = state.bundleItems;\n\n if (LhApp.Context.MultipleWishlistsEnabled && $('.js-wishlist-lists', $control).length > 0) {\n LhApp.Function.hideAllProductWishlists();\n var product = { id: id, skuId: skuId, path: path, qty: qty };\n LhApp.Function.showProductWishlists($control, product);\n } else {\n Vendd.MessageBus.publishAsync($control.get(0), new Vendd.Wishlist.Messages.Add(id, skuId, path, qty, extraAttributes, bundleItems));\n }\n });\n\n $control.on('click', '.js-remove-from-wishlist', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n\n if ($this.closest('.wishlist-button').hasClass('x-disabled'))\n return;\n\n var state = Vendd.Product.Controller.getState();\n var skuId = state.selectedId;\n var wishlistModel = JSON.parse(localStorage.getItem(\"CurrentWishlistModel\"));\n var selectedsku = _.find(wishlistModel.Items, function (item) { return skuId === item.VariantId });\n var wishlistItemId = selectedsku.Id;\n\n Vendd.MessageBus.publishAsync($control.get(0), new Vendd.Wishlist.Messages.Remove(wishlistItemId));\n });\n\n $control.on('click', '.js-show-recipe', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n\n if ($this.hasClass('disabled') || $this.is(':disabled'))\n return;\n\n $this.addClass('active');\n\n var state = Vendd.Product.Controller.getState();\n var id = state.parentId,\n skuId = state.selectedId,\n path = state.path,\n qty = (state.qty ? stringToNumber(state.qty) : null) || 1,\n extraAttributes = [],\n bundleItems = state.bundleItems;\n\n var vendd = getParentOrSelfVendd();\n vendd.MessageBus.publishAsync($control.get(0), new vendd.Recipe.Messages.GetModel(id));\n });\n\n $control.on('click', '.js-add-to-compare', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n if ($(this).closest('.compare-button').hasClass('x-disabled'))\n return;\n\n var state = Vendd.Product.Controller.getState();\n var id = state.parentId,\n skuId = state.selectedId;\n\n Vendd.MessageBus.publishAsync($control.get(0), new Vendd.ProductCompare.Messages.Add(id, skuId));\n\n if ($('.x-productcompare-widget').data('template') === 1) {\n vendd.MessageBus.publishAsync($control.get(0), new vendd.Widget.Messages.OpenWidget(vendd.Widget.ProductCompareWidget, false));\n }\n });\n\n $control.on('click', '.js-remove-from-compare', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this), $product, compareItemtId;\n\n if ($this.closest('.compare-button').hasClass('x-disabled'))\n return;\n\n var state = Vendd.Product.Controller.getState();\n var id = state.parentId;\n\n Vendd.MessageBus.publishAsync($control.get(0), new Vendd.ProductCompare.Messages.Remove(id));\n });\n\n $control.on('click', '.js-quick-view', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n\n if ($this.hasClass('disabled') || $this.is(':disabled'))\n return;\n\n var state = Vendd.Product.Controller.getState();\n var id = state.parentId,\n skuId = state.selectedId,\n path = state.path,\n qty = ($('input[name=\"qty\"]').val() ? stringToNumber($('input[name=\"qty\"]').val()) : null) || 1;\n\n extraAttributes = \"\";\n\n Vendd.MessageBus.publishAsync($control.get(0), new Vendd.Cart.Messages.Add(id, skuId, path, qty, extraAttributes));\n //Open the widget only for template 1 of Cart Widget\n if ($('.x-cart-widget').data('template') === 1) {\n Vendd.MessageBus.publishAsync($wrapper, new Vendd.Widget.Messages.OpenWidget(Vendd.Widget.CartWidget, false));\n }\n var path = $('.x-product-details').data('path');\n var Href = '/pages/productdetailspopup.aspx?iid=' + id + '&path=' + path + '&Quantity=' + qty;\n $.fancybox.open({\n href: Href,\n type: 'iframe',\n maxWidth: 1040,\n //maxHeight: 745,\n fitToView: false,\n //width: '100%',\n //height: '100%',\n autoSize: false,\n closeClick: false,\n openEffect: 'none',\n closeEffect: 'none',\n padding: 0,\n beforeShow: function () {\n this.width = ($('.fancybox-iframe').contents().find('.product-details-popup').width());\n this.height = ($('.fancybox-iframe').contents().find('html').height());\n }\n });\n });\n\n $control.on('click', '.js-add-sku-to-cart', function (e) {\n\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this),\n $box, $qty, $tooltip,\n id, skuId, path, qty, extraAttributes, bundleItems;\n\n if ($this.hasClass('disabled') || $this.is(':disabled'))\n return;\n\n $box = $this.closest('.sku-product-box');\n $tooltip = $('.js-tooltip', $box);\n $qty = $('.js-qty-input', $box);\n\n id = $box.data('productid');\n skuId = $box.data('variantid');\n path = $box.data('path');\n\n qty = ($qty.val() ? stringToNumber($qty.val()) : null) || 0;\n extraAttributes = [];\n bundleItems = [];\n recipeItems = [];\n comboItems = [];\n\n if ($this.hasClass('inactive')) {\n $tooltip.addClass('visible');\n setTimeout(function () {\n $tooltip.removeClass('visible');\n }, 3000);\n return;\n }\n\n var itemInfo = {\n minQuantity: parseInt($box.data('min-quantity') || 0),\n maxQuantity: parseInt($box.data('max-quantity') || 0),\n quanta: parseInt($box.data('quanta') || 0)\n };\n\n var state = Vendd.Product.Controller.getState();\n var enhancedInfo = { color: '', size: '', list: 'productDetails', colorId: state.selectedColorId };\n\n\n Vendd.MessageBus.publishAsync($box.get(0), new Vendd.Cart.Messages.Add(id, skuId, path, qty, '', extraAttributes, bundleItems, recipeItems, comboItems, itemInfo, enhancedInfo));\n //Open the widget only for template 1 of Cart Widget\n if ($('.x-cart-widget').data('template') === 1) {\n Vendd.MessageBus.publishAsync($wrapper, new Vendd.Widget.Messages.OpenWidget(Vendd.Widget.CartWidget, false));\n }\n });\n\n $control.on('click', '.js-notify-button', function (e) {\n\n var $this = $(this);\n var $availabilityForm = $this.closest($control).find('.x-product-details-availability-notification');\n\n if ($availabilityForm.length < 1) return;\n\n if ($availabilityForm.hasClass('hidden')) {\n $availabilityForm.removeClass('hidden');\n } else {\n $availabilityForm.addClass('hidden');\n }\n });\n\n $(document).on('click', function (e) {\n var $productWrapper = $('.x-product-details'),\n $availabilityForm = $('.x-product-details-availability-notification', $productWrapper),\n $notifyBtn = $('.js-notify-button', $productWrapper);\n if (!$availabilityForm.is(e.target)\n && $availabilityForm.has(e.target).length === 0\n && !$notifyBtn.is(e.target)\n && $notifyBtn.has(e.target).length === 0) {\n\n $availabilityForm.addClass('hidden');\n }\n });\n\n function AddOnProductsToCart() {\n\n var dataArray = [], dataAddOns = [], data;\n var state = Vendd.Product.Controller.getState();\n\n //get add ons info\n var $addOns = $('.x-product-details-add-ons', $context);\n var $selectedAddOns = $addOns.find(':checked') || $addOns.find(':selected').not(\"val\");\n\n $.each($selectedAddOns, function (i, addOn) {\n $addOn = $(addOn);\n\n if ($addOn.data('sku-id')) {\n data = {\n id: $addOn.data('parent-id'),\n skuId: $addOn.data('sku-id'),\n path: $addOn.data('path'),\n qty: stringToNumber(1),\n isAddOnOf: state.selectedId\n };\n dataArray.push(data);\n //set an array with addons\n dataAddOns.push($addOn.data('sku-id'));\n }\n });\n\n //get product info\n data = {\n id: state.parentId,\n skuId: state.selectedId,\n path: state.path,\n qty: (state.qty ? stringToNumber(state.qty) : null) || 1,\n isBaseOf: dataAddOns\n };\n //unshift is used in order to push base product first\n dataArray.unshift(data);\n\n if (!dataArray || !dataArray.length)\n return;\n\n var vendd = getParentOrSelfVendd();\n vendd.MessageBus.publishAsync($control.get(0), new Vendd.Cart.Messages.MultipleAdd(dataArray));\n\n }\n });\n\n});\n\n","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-add-ons', function (envelope) {\n var $context = envelope.message.data.context,\n $control = $('.x-product-details-add-ons', $context);\n\n if ($control.length < 1)\n return;\n\n $.each($control, function (i, control) {\n\n $(\".js-checkbox-add-on\", control).click(function (e) {\n if ($(this).hasClass('disabled')) {\n e.preventDefault();\n e.stopPropagation();\n\n return;\n }\n });\n\n $(\".js-checkbox-add-on\", control).change(function () {\n if ($(this).is(':checked')) {\n $('.x-product-details-ajax-buttons .js-add-to-cart', $context).addClass('has-add-on-products');\n } else {\n if ($(\".js-checkbox-add-on:checked\", $control).length < 1 && ($(\".js-select-add-on option:selected\", $control).val() == \"\" || typeof $(\".js-select-add-on option:selected\", $control).val() === \"undefined\"))\n $('.x-product-details-ajax-buttons .js-add-to-cart', $context).removeClass('has-add-on-products');\n }\n });\n\n $(\".js-select-add-on\", control).change(function () {\n\n var option = $(this).find(\"option:selected\");\n\n if (option.val() != \"\") {\n $('.x-product-details-ajax-buttons .js-add-to-cart', $context).addClass('has-add-on-products');\n } else {\n if ($(\".js-checkbox-add-on:checked\", $control).length < 1 && ($(\".js-select-add-on option:selected\", $control).val() == \"\" || typeof $(\".js-select-add-on option:selected\", $control).val() === \"undefined\"))\n $('.x-product-details-ajax-buttons .js-add-to-cart', $context).removeClass('has-add-on-products');\n }\n });\n\n //check addon after sku change\n if ($(\".js-checkbox-add-on\", control).is(\":checked\"))\n $('.x-product-details-ajax-buttons .js-add-to-cart', $context).addClass('has-add-on-products');\n\n if ($(\".js-select-add-on\", control).find(\"option:selected\").length > 0 && $(\".js-select-add-on\", control).find(\"option:selected\").val() != \"\")\n $('.x-product-details-ajax-buttons .js-add-to-cart', $context).addClass('has-add-on-products');\n\n //init Quick Buy in order to support\n //addons with dimensions\n initAddOnsList();\n\n });\n\n function initAddOnsList() {\n\n var $addOnsPl = $('.x-product-list-add-ons');\n\n if ($addOnsPl.length < 1) return;\n\n $addOnsPl.each(function () {\n\n var $wrapper = $(this),\n wrapper = $wrapper.get(0),\n hasQuickbuy = $wrapper.data('quickbuy') === true;\n\n if (!hasQuickbuy || !window.jsonArr) return;\n\n //get configuration\n var $configuration = $('.configuration', $wrapper);\n var configuration = $configuration.text();\n\n //call service to get product list model\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.ScrollList.Messages.GetCurrentPage(wrapper, configuration, 'productList'));\n\n //on success init quick buy\n Vendd.MessageBus.subscribe(Vendd.ScrollList.Messages.GetCurrentPageSuccess, wrapper, function (envelope) {\n\n if (envelope.message.data.list.list != wrapper) return;\n\n var model = envelope.message.data.model;\n\n Vendd.Quickbuy.addToQuickbuyList(model);\n\n var $box = $('.x-pd-addons-box', $wrapper);\n\n $.each($box, function (i, box) {\n initQuickBuy($(box));\n });\n\n });\n });\n };\n\n function initQuickBuy($wrapper) {\n\n var wrapper = $wrapper.get(0);\n var userModel = {}, showPriceWithoutVat = false;\n\n wrapper.productId = $wrapper.data('productid');\n wrapper.defaultColor = $wrapper.data('default-colorid');\n\n var state = Vendd.Quickbuy.initState(wrapper.productId, wrapper.defaultColor);\n\n if (state == undefined) return;\n\n wrapper.model = state;\n wrapper.dimensionWidget = $('.x-dimensions-widget', $wrapper);\n wrapper.partial = $wrapper.data('partial');\n wrapper.fixedPrices = $wrapper.data('fixed-prices');\n wrapper.priceElement = $('.current-price', $wrapper);\n wrapper.imageCont = $('.image-container', $wrapper);\n wrapper.image = $('.image-container', $wrapper).find('img');\n\n if (!state.HasColors && !state.HasSizes && !state.HasDim3) {\n $wrapper.siblings('.checkbox-wrapper').addClass('disabled').find('.js-checkbox-add-on').addClass('disabled');\n return;\n }\n\n //check for new state\n if ($wrapper.data('color-id')) {\n state.createNewColorState = true;\n state.defaultDimId = $wrapper.data('color-id');\n }\n if ($wrapper.data('size-id')) {\n state.createNewSizeState = true;\n state.defaultDimId = $wrapper.data('size-id');\n }\n if ($wrapper.data('dim3-id')) {\n state.createNewDim3State = true;\n state.defaultDimId = $wrapper.data('dim3-id');\n }\n\n //create new state\n if (state.createNewColorState) {\n Vendd.Quickbuy.createNewState(wrapper, state.defaultDimId, wrapper.productId, wrapper.defaultColor, 'color');\n } else if (state.createNewSizeState) {\n Vendd.Quickbuy.createNewState(wrapper, state.defaultDimId, wrapper.productId, wrapper.defaultColor, 'size');\n } else if (state.createNewDim3State) {\n Vendd.Quickbuy.createNewState(wrapper, state.defaultDimId, wrapper.productId, wrapper.defaultColor, 'dim3');\n }\n\n wrapper.GetUserModel = function () {\n userModel = Vendd.User && Vendd.User.GetClientModel();\n\n if (userModel && window.B2BModel) {\n _.extend(userModel, window.B2BModel);\n showPriceWithoutVat = userModel.IsB2BUser && userModel.ShowPriceWithoutVat;\n }\n };\n\n wrapper.UpdateBoxData = function (type, imgSrc, event) {\n var $wrapper = $(this);\n\n if (type === 'color' && typeof imgSrc != 'undefined') {\n wrapper.image.attr('src', imgSrc);\n wrapper.imageCont.removeClass('hidden');\n }\n\n var selectedColorId = (typeof wrapper.SelectedColorId != 'undefined') ? wrapper.SelectedColorId : null;\n var selectedSizeId = (typeof wrapper.SelectedSizeId != 'undefined') ? wrapper.SelectedSizeId : null;\n var selectedDim3Id = (typeof wrapper.SelectedDim3Id != 'undefined') ? wrapper.SelectedDim3Id : null;\n\n if ((wrapper.model.HasColors && !state.HasSingleColor && selectedColorId == null)\n || (wrapper.model.HasSizes && !state.HasSingleSize && selectedSizeId == null)\n || (wrapper.model.HasDim3 && !state.HasSingleDim3 && selectedDim3Id == null))\n {\n $wrapper.siblings('.checkbox-wrapper').addClass('disabled').find('.js-checkbox-add-on').addClass('disabled');\n return;\n }\n\n var selectedSku = Vendd.Quickbuy.GetSkuData(wrapper, wrapper.productId, wrapper.defaultColor, selectedColorId, selectedSizeId, selectedDim3Id);\n\n if (selectedSku !== null && typeof selectedSku !== \"undefined\") {\n var skuData = selectedSku.SkuData;\n\n $wrapper.data('variantid', skuData.SkuId);\n $wrapper.siblings('.checkbox-wrapper').find('.js-checkbox-add-on').data('sku-id', skuData.SkuId);\n\n if (!skuData.CanBuy) {\n $wrapper.siblings('.checkbox-wrapper').addClass('disabled').find('.js-checkbox-add-on').addClass('disabled');\n } else {\n $wrapper.siblings('.checkbox-wrapper').removeClass('disabled').find('.js-checkbox-add-on').removeClass('disabled');\n }\n\n //manipulate prices\n if (skuData.CountDownUnitPrice) {\n var currentPrice = showPriceWithoutVat ? skuData.CountDownUnitPriceWithoutVat : skuData.CountDownUnitPrice;\n } else {\n var currentPrice = showPriceWithoutVat ? skuData.UnitPriceWithoutVat : skuData.UnitPrice\n }\n\n if ($enableFormatPrices) {\n if (!wrapper.priceElement.hasClass('price-formatted')) {\n wrapper.priceElement.addClass('price-formatted');\n }\n wrapper.priceElement.html(formatPrice(currentPrice));\n } else {\n wrapper.priceElement.text(currentPrice);\n }\n\n }\n };\n\n $wrapper.on('click', '.js-dimensions li', function (e) {\n\n var $this = $(this), id, type, name, $wrap, wrapper, productId, defaultColor, imgSrc,\n isColorList, isSizeList, isDim3List, $color, $size;\n\n if ($this.hasClass('selected') || $this.hasClass('disabled'))\n return;\n\n id = $this.data('id');\n name = $this.data('name');\n type = $this.closest('.js-dimensions').data('type');\n\n isColorList = ($this.parent().hasClass('colors-list')) ? true : false;\n isSizeList = ($this.parent().hasClass('sizes-list')) ? true : false;\n isDim3List = ($this.parent().hasClass('dim3-list')) ? true : false;\n\n if (isColorList) imgSrc = $this.data('image');\n\n $wrap = $this.closest('.x-pd-addons-box');\n wrapper = $wrap.get(0);\n productId = $wrap.data('productid');\n defaultColor = $wrap.data('default-colorid');\n\n $this.addClass('selected').siblings().removeClass('selected');\n\n if (id === undefined) return;\n\n var state = Vendd.Quickbuy.createNewState(wrapper, id, productId, defaultColor, type);\n Vendd.Quickbuy.Update(wrapper.dimensionWidget, state, wrapper.partial);\n\n if (isColorList) {\n wrapper.UpdateBoxData(\"color\", imgSrc);\n $wrap.attr('data-color', name);\n $wrap.attr('data-color-id', id);\n } else if (isSizeList) {\n wrapper.UpdateBoxData(\"size\", imgSrc);\n $wrap.attr('data-size', name);\n $wrap.attr('data-size-id', id);\n } else if (isDim3List) {\n wrapper.UpdateBoxData(\"dim3\", imgSrc);\n $wrap.attr('data-dim3', name);\n $wrap.attr('data-dim3-id', id);\n }\n\n colorSelectorCallback = false;\n });\n\n $wrapper.on('click', '.js-dropdown-btn', function (e) {\n var $this = $(this);\n\n if ($this.hasClass('disabled')) return;\n\n if ($this.hasClass('expanded')) {\n $this.removeClass('expanded');\n } else {\n $('.js-dropdown-btn.expanded').removeClass('expanded');\n $this.addClass('expanded');\n }\n });\n\n $(document).click(function (event) {\n if (!$(event.target).closest('.js-dropdown-btn').length &&\n !$(event.target).is('.js-dropdown-btn')) {\n\n $('.js-dropdown-btn').removeClass(\"expanded\");\n }\n });\n\n Vendd.Quickbuy.Update(wrapper.dimensionWidget, state, wrapper.partial);\n\n //get selected dimension image\n var selectedImg = $wrapper.find('.js-dimensions > li.selected').data('image');\n\n wrapper.UpdateBoxData(\"color\", selectedImg);\n\n $wrapper.addClass('x-initialized');\n }\n\n });\n});\n","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-installments', function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.x-product-details-installments', $context), control,\n dataProductPrice, totalPrice, productPrice, preferredPaymentMethodId, model,\n $selectedInstallment, $selectedTotal, $initialInstallment;\n\n if ($control.length < 1) return;\n\n control = $control.get(0);\n\n //NOTE: \n //numerice data attributes that will be used by javascript should be always formatted as javascript numbers e.g. 12345.67\n //to accomplish that use {{serialize YourModelNumericProperty}} in your handlebars. ({PropertyName: \"1234\"} this is not a number)\n dataProductPrice = $control.data('product-price');\n totalPrice = ((typeof dataProductPrice === 'number') && dataProductPrice) || parseFloat(dataProductPrice);\n productPrice = totalPrice;\n \n\n preferredPaymentMethodId = $control.data('preferred-payment-method-id');\n\n control.bind = function () {\n var html = Vendd.Handlebars.parse(\"pdInstallments_A\", model);\n\n $control.html(html);\n\n if (!isTouch())\n $('select', $control).sSelect({ ddMaxHeight: '200px' });\n\n $initialInstallment = $('.js-installment-plan .installment').html();\n\n $('select', $control).change(function (e) {\n if (!$(this).val()) {\n $('.js-installment-plan .installment').html($initialInstallment);\n $('.js-installment-plan .total-cost').empty();\n } else {\n $selectedInstallment = $(this).find(\":selected\").data('installment');\n $selectedTotal = $(this).find(\":selected\").data('total');\n\n $('.js-installment-plan .installment').html(model.Literals.InstallmentsFromText + \" \" + $selectedInstallment + \" \" + model.Literals.InstallmentsPeriodText);\n $('.js-installment-plan .total-cost').html(model.Literals.InstallmentsTotalText + \" \" + $selectedTotal);\n } \n });\n };\n\n Vendd.MessageBus.publishAsync(control, new Vendd.Installments.Messages.GetInstallmentsData(totalPrice, productPrice, preferredPaymentMethodId));\n\n Vendd.MessageBus.subscribe(Vendd.Installments.Messages.GetInstallmentsDataSuccess, control, function (envelope) {\n model = envelope.message.data.data;\n control.bind();\n\n Vendd.MessageBus.unsubscribe(Vendd.Installments.Messages.GetInstallmentsDataSuccess, control);\n });\n\n });\n\n});","Vendd.Scripts.load(function () {\n\n\tVendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-availability-notification', function (envelope) {\n\n var $context = envelope.message.data.context,\n $form = $('.x-product-details-availability-notification', $context);\n\n if ($form.length < 1)\n return;\n\n $form.each(function () {\n\n var form = $(this),\n $formButton = $('.js-submit', form), \n formData = { email: \"\" };\n\n form.loading = function (loading) {\n if (loading) {\n form.addClass('x-loading');\n } else {\n form.removeClass('x-loading');\n };\n };\n\n form.onSuccess = function (envelope) {\n var response = envelope.message.data;\n var sender = envelope.message.data.sender;\n if (form && sender && form == sender) {\n form.loading(false);\n\n if (response.success) {\n $('.js-error', form).hide();\n $('.js-success', form).show();\n\n $('.js-content', form).hide();\n } else {\n $('.js-error', form).show();\n };\n }\n };\n\n form.onFailure = function (envelope) {\n var response = envelope.message.data;\n var sender = envelope.message.data.sender;\n if (form && sender && form == sender) {\n form.loading(false);\n\n $('.js-error', form).show();\n }\n };\n\n form.submit = function () {\n form.loading(true);\n var selectedId, state = Vendd.Product.Controller.getState();\n\n if (form.closest('.x-product-variant-box').length > 0) {\n selectedId = form.closest('.x-product-variant-box').attr('data-variantid');\n } else {\n selectedId = state.selectedId;\n }\n\n Vendd.MessageBus.publishAsync(form, new Vendd.Product.Messages.Notify(formData.email, selectedId, state.languageId));\n };\n\n form.reset = function () {\n $('.js-error', form).hide();\n $('.js-success', form).hide();\n\n $('input[name=\"email\"]', form).val(\"\");\n\n $('.js-content', form).hide();\n\n rnf.reset();\n };\n\n form.validationEngine({\n email: {\n required: 'email-required',\n isEmail: 'email-invalid'\n }\n });\n var rnf = form.data('validationEngine');\n\n form.on('click', '.js-submit', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n formData.email = $('input[name=\"email\"]', form).val();\n\n if (rnf.validate())\n form.submit();\n });\n\n form.on('keyup', 'input[name]', function (e) {\n var $this = $(this);\n\n if (e.keyCode == 13) {\n e.preventDefault();\n e.stopPropagation();\n\n $formButton.click();\n\n return;\n }\n\n formData[$this.attr('name')] = $this.val();\n\n rnf.validate($this.attr('name'));\n });\n\n Vendd.MessageBus.unsubscribe(Vendd.Product.Messages.NotifySuccess, form);\n Vendd.MessageBus.unsubscribe(Vendd.Product.Messages.NotifyFailure, form);\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.NotifySuccess, form, form.onSuccess);\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.NotifyFailure, form, form.onFailure);\n });\n });\n\n});","Vendd.Scripts.load(function () {\n\n var doSetBundleItems = function (control, parentId, skuId, quantity) {\n\n var state = Vendd.Product.Controller.getState();\n var bundleItems = state.bundleItems;\n\n for (var i = 0; i < bundleItems.length; i++) {\n if (bundleItems[i].parentProductId === parentId) {\n\n if (!!skuId) \n bundleItems[i].productId = skuId;\n\n quantity = quantity || 0;\n if (quantity >= 0)\n bundleItems[i].quantity = quantity;\n }\n }\n\n Vendd.MessageBus.publishAsync(control, new Vendd.Product.Messages.SetBundleItems(bundleItems));\n }\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-bundleitems', function (envelope) {\n\n var $context = envelope.message.data.context,\n $bundleItemList = $('.x-product-details-bundleitems .js-bundle-item-list', $context),\n $controls = $('.js-bundle-item', $bundleItemList);\n\n if ($controls.length < 1)\n return;\n\n $.each($controls, function (i, control) {\n var $control = $(control);\n var parentProductId = $control.data('parent-id');\n var productId = $control.data('selected-id');\n var quantity = 0;\n\n $control.on('change', '.js-quantity', function (e) {\n \n var $this = $(this);\n quantity = parseInt($this.val());\n\n doSetBundleItems(control, parentProductId, productId, quantity);\n });\n\n var $versionSelector = $('.x-product-details-version-selector', $control);\n\n if ($versionSelector.data('type') === 'list') {\n\n $versionSelector.on('click', '.js-bundle-item-version-selector', function (e) {\n\n var $this = $(this);\n if ($this.hasClass('selected'))\n return;\n\n productId = parseInt($this.data('value'));\n\n doSetBundleItems(control, parentProductId, productId, null);\n });\n };\n\n if ($versionSelector.data('type') === 'dropdown') {\n\n $versionSelector.on('change', '.js-bundle-item-version-selector', function (e) {\n\n var $this = $(this);\n\n productId = parseInt($this.val());\n\n doSetBundleItems(control, parentProductId, productId, null);\n });\n };\n\n\n\n });\n });\n});\n","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-delivery-availability', function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.x-product-details-delivery-availability', $context),\n $content = $('.delivery-availability-wrapper', $control);\n\n if ($control.length < 1)\n return;\n\n var control = $control.get(0);\n var $resultsContainer = $('.results-container', $content);\n\n control.setDeliveryPointService;\n\n $content.on('keyup', 'input', function (e) {\n if (e.keyCode === 13) {\n e.preventDefault();\n e.stopPropagation();\n $('.js-submit', $content).trigger('click');\n return;\n }\n }); \n\n $content.on('click', '.js-submit', function (e) {\n\n e.preventDefault();\n e.stopPropagation();\n\n if ($(this).hasClass(\"disabled\")) return;\n if ($content.hasClass('x-loading')) return;\n\n $content.addClass('x-loading'); \n\n control.skuId = $content.data(\"skuid\"); \n control.quantity = $('.qty-spinner-input').val() || 1;\n control.postalCode = $('.js-search-term', $content).val();\n\n var variantArray = [];\n var variant = {\n VariantId: control.skuId,\n Quantity: control.quantity\n };\n variantArray.push(variant);\n\n Vendd.MessageBus.publishAsync(control, new Vendd.Product.Messages.GetDeliveryAvailability(variantArray, control.postalCode, null, true));\n });\n\n $('.js-show-delivery-availability', $control).fancybox({\n padding: 0,\n width: 450,\n touch: false \n });\n \n control.hideForm = function () {\n $('.js-delivery-availability-form', $content).hide();\n $('.form-msg .js-error', $content).show();\n };\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.GetDeliveryAvailabilitySuccess, control, function (envelope) {\n var data = envelope.message.data;\n\n //Set Delivery Availability Id\n var availability = data.DeliveryAvailabilities[0].Message;\n var availabilityId;\n if (data.DeliveryAvailabilities[0].MaxDays == null && data.DeliveryAvailabilities[0].MinDays == null) {\n availabilityId = 1;\n } else {\n availabilityId = 3;\n }\n\n //Show Delivery Availability\n $('.x-product-details .lazyload-availability-container > span').remove();\n $('.x-product-details .lazyload-availability-container').append('' + availability + '');\n\n control.setDeliveryPointService = $.Deferred();\n\n //Function for setDeliveryPoint Service ajax call\n var deliveryPointId = 1;\n setDeliveryPoint(deliveryPointId);\n\n $.when(control.setDeliveryPointService)\n .done(function (setDeliveryPointResolve) { \n //Create cookie for Delivery Postal Code\n if (control.postalCode)\n Cookies.set('DeliveryPostalCode', control.postalCode, { expires: 1/24 });\n //get model of delivery point\n if ($('.x-deliverypoint-widget-a').length > 0) {\n Vendd.MessageBus.publish($('.x-deliverypoint-widget-a'), new Vendd.DeliveryPoint.Messages.GetModel());\n }\n //close pop up\n $.fancybox.close();\n $content.removeClass('x-loading');\n }); \n });\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.GetAvailableWarehousesFailure, control, function (envelope) { });\n\n //setDeliveryPoint Service ajax call\n function setDeliveryPoint(deliveryPointId) {\n $.ajax({\n type: \"post\",\n url: \"/Services/api/DeliveryPoint/SetDeliveryPoint\",\n data: {\n deliveryPointId: deliveryPointId\n },\n dataType: \"json\",\n statusCode: {\n 200: function (response) {\n //Resolve\n control.setDeliveryPointService.resolve(response);\n },\n 404: function (response) {\n control.setDeliveryPointService.reject();\n console.log(\"error\");\n },\n 500: function (response) {\n control.setDeliveryPointService.reject();\n console.log(\"error\");\n }\n }\n });\n }\n\n });\n\n});","Vendd.Scripts.load(function () {\n var $wrapper = $('.x-deliverypoint-widget-a');\n var model = null;\n\n if ($wrapper.length < 1)\n return;\n\n var wrapper = $wrapper.get(0);\n\n wrapper.showLoader = function () {\n $wrapper.addClass('x-loading');\n };\n\n wrapper.hideLoader = function () {\n $wrapper.removeClass('x-loading');\n };\n\n wrapper.update = function () {\n var html = Vendd.Handlebars.parse(\"deliveryPointWidget_A\", model);\n $wrapper.html(html);\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Widget.Messages.BindControl($wrapper));\n };\n\n $wrapper.on('click', '.js-remove-store', function (e) {\n e.stopPropagation();\n e.preventDefault();\n //Remove Selected Store\n Vendd.MessageBus.publish(wrapper, new Vendd.DeliveryPoint.Messages.ResetStore());\n });\n\n Vendd.MessageBus.subscribe(Vendd.DeliveryPoint.Messages.GetModelSuccess, wrapper, function (envelope) {\n $wrapper.removeClass('x-loading');\n model = envelope.message.data.model.data;\n\n //Extend model with Delivery Postal Code\n var deliveryPostalCode = Cookies.get('DeliveryPostalCode');\n if (model.HasDeliveryPoint) if (model.DeliveryPoint.Id == 1 && deliveryPostalCode && deliveryPostalCode !== 'undefined') _.extend(model, { HasPostalCode: true, PostalCode: deliveryPostalCode });\n \n wrapper.update();\n });\n\n Vendd.MessageBus.subscribe(Vendd.DeliveryPoint.Messages.GetModelFailed, wrapper, function (envelope) {\n $wrapper.removeClass('x-loading');\n });\n\n Vendd.MessageBus.subscribe(Vendd.DeliveryPoint.Messages.ResetStoreSuccess, wrapper, function (envelope) {\n //Reset Delivery Point\n Vendd.MessageBus.publish(wrapper, new Vendd.DeliveryPoint.Messages.ResetDeliveryPoint());\n //Remove cookie for Delivery Postal Code\n var deliveryPostalCode = Cookies.get('DeliveryPostalCode');\n if (deliveryPostalCode && deliveryPostalCode !== 'undefined') {\n Cookies.remove('DeliveryPostalCode');\n }\n //Remove Lazy Load Availability\n $('.x-product-details .lazyload-availability-container > span').remove();\n \n //reset model\n model = {};\n //update wrapper\n wrapper.update(); \n });\n\n wrapper.showLoader();\n Vendd.MessageBus.publish(wrapper, new Vendd.DeliveryPoint.Messages.GetModel());\n\n});","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-pdf-export', function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.x-product-details-pdf-export', $context);\n\n if ($control.length < 1) return;\n\n updateAttributes();\n\n function updateAttributes() {\n\n var $list = $('.js-attributes-list', $control);\n\n if ($list.length < 1) return;\n\n $('li.attribute', $list).each(function () {\n if ($(this).hasClass('ItemAttributes_IsTest') || $(this).hasClass('ItemAttributes_Gender') || $(this).hasClass('ItemAttributes_OverWeight') || $(this).hasClass('ItemAttributes_Latitude') || $(this).hasClass('ItemAttributes_Longitude') || $(this).hasClass('ItemAttributes_Address')) {\n $(this).remove();\n }\n });\n\n if ($('li.attribute', $list).length < 1) {\n $('.product-attributes', $control).css('display', 'none');\n } \n }\n\n function b64toBlob(b64Data, contentType, sliceSize) {\n contentType = contentType || '';\n sliceSize = sliceSize || 512;\n\n var byteCharacters = atob(b64Data);\n var byteArrays = [];\n\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n var slice = byteCharacters.slice(offset, offset + sliceSize);\n\n var byteNumbers = new Array(slice.length);\n for (var i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n var byteArray = new Uint8Array(byteNumbers);\n\n byteArrays.push(byteArray);\n }\n\n var blob = new Blob(byteArrays, { type: contentType });\n return blob;\n };\n\n $control.on('click', '.js-pdf-export-button', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n\n var options = {\n filenamehassuffixdatetime: false,\n filename: $('.pdf-filename', $control).text(),\n author: $('.pdf-author', $control).text(),\n title: $('.pdf-title', $control).text(), \n subject: $('.pdf-subject', $control).text(),\n headerhtml: '

    ' + $('.pdf-header', $control).html() + '

    ',\n html: $('.pdf-body', $control).html(),\n footerhtml: '

    ' + $('.pdf-footer', $control).html() + '

    ',\n margin: {\n top: 40,\n bottom: 40,\n left: 40,\n right: 40\n }\n //security: {\n // enable: false,\n // ownerpassword: \"\",\n // userpassword: \"\",\n // canedit: true\n //},\n };\n\n Vendd.MessageBus.publishAsync($control.get(0), new Vendd.Product.Messages.PdfExport(options));\n });\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.PdfExportSuccess, $control, function (envelope) {\n\n var pdf = {\n FileContents: envelope.message.data.FileContents,\n Filename: envelope.message.data.Filename\n };\n\n var blob = b64toBlob(pdf.FileContents, 'application/pdf');\n\n var a = document.createElement(\"a\");\n a.style.visibility = 'hidden';\n document.body.appendChild(a);\n\n var fileURL = URL.createObjectURL(blob);\n a.href = fileURL;\n a.download = pdf.Filename;\n a.click();\n document.body.removeChild(a);\n });\n\n });\n\n});\n\n","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-quantity-selector', function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.x-product-details-quantity-selector', $context);\n\n if ($control.length < 1)\n return;\n\n var intRegex = /^[0-9]*$/;\n var decRegex = /^[0-9]*(\\.[0-9]+)$/;\n\n var $field = $('.js-selector', $control);\n\n var $first = $control.first();\n var unitType = $first.data('unit-type') ? $first.data('unit-type') : 'int';\n var quanta = $first.data('quanta') ? parseFloat($first.data('quanta')) : 1;\n var minQty = $first.data('min') === '' ? ($first.data('quanta') ? parseFloat($first.data('quanta')) : 1) : parseFloat($first.data('min'));\n var maxQty = $first.data('max') === '' ? null : parseFloat($first.data('max'));\n\n //Icremental Selector\n if ($field.hasClass('free-text') || ($field.hasClass('incremental') && !$field.attr('readonly'))) {\n\n $field.on('keyup change', function (e) {\n var $this = $(this);\n var qty = $this.val();\n\n if (qty >= minQty && (qty <= maxQty || !maxQty)) {\n if (unitType === 'int') {\n qty = parseInt(qty);\n if (quanta) {\n if (qty >= quanta) {\n qty = Math.round(qty / quanta) * quanta;\n } else {\n qty = quanta;\n }\n }\n $field.val(qty);\n }\n else if (unitType === 'decimal') {\n qty = parseFloat(qty);\n if (quanta) {\n if (qty >= quanta) {\n qty = Math.round(qty / quanta) * quanta;\n } else {\n qty = quanta;\n }\n }\n $field.val(qty.toFixed(2));\n }\n } else {\n if (maxQty && $this.val() > maxQty) {\n qty = maxQty;\n $field.val(qty);\n } else { \n if (minQty) {\n qty = minQty;\n if (e.type === \"change\") $field.val(qty);\n } else if (quanta) {\n qty = quanta;\n if (e.type === \"change\") $field.val(qty);\n } else {\n qty = 1;\n if (e.type === \"change\") $field.val(1);\n } \n }\n }\n\n Vendd.MessageBus.publishAsync($control, new Vendd.Product.Messages.SetQuantity(qty));\n });\n\n }\n\n //Icremental Selector\n if ($field.hasClass('incremental')) {\n\n $control.on('click', '.js-minus', function (event) {\n\n if ($control.hasClass('disabled'))\n return;\n\n var $this = $(this), qty;\n\n if (intRegex.test(quanta)) {\n qty = parseInt($field.val()) - parseInt(quanta);\n } else if (decRegex.test(quanta)) {\n qty = parseFloat($field.val()) - parseFloat(quanta);\n qty = qty.toFixed(2);\n }\n\n if (qty >= minQty) {\n $field.val(qty);\n Vendd.MessageBus.publishAsync($control, new Vendd.Product.Messages.SetQuantity(qty));\n }\n });\n\n $control.on('click', '.js-plus', function (event) {\n\n if ($control.hasClass('disabled'))\n return;\n\n var $this = $(this), qty;\n\n if (intRegex.test(quanta)) {\n qty = parseInt($field.val()) + parseInt(quanta);\n } else if (decRegex.test(quanta)) {\n qty = parseFloat($field.val()) + parseFloat(quanta);\n qty = qty.toFixed(2);\n }\n\n if ((maxQty && qty <= maxQty) || !maxQty) {\n $field.val(qty);\n Vendd.MessageBus.publishAsync($control, new Vendd.Product.Messages.SetQuantity(qty));\n }\n\n });\n }\n\n //Dropdown Selector\n if ($field.hasClass('dropdown')) {\n if (!isTouch()) {\n $field.sSelect().change(function () {\n\n var $this = $(this);\n var qty = $this.val();\n $field.val(qty);\n\n Vendd.MessageBus.publishAsync($control, new Vendd.Product.Messages.SetQuantity(qty));\n });\n } else {\n $field.on('change', function () {\n\n var $this = $(this);\n var qty = $this.val();\n $field.val(qty);\n\n Vendd.MessageBus.publishAsync($control, new Vendd.Product.Messages.SetQuantity(qty));\n });\n }\n }\n\n var skuQuanta = ($control.data('quanta') ? stringToNumber($control.data('quanta')) : null) || 0;\n skuQuanta = Vendd.Helpers.isInteger(parseFloat(skuQuanta)) ? parseInt(skuQuanta) : parseFloat(skuQuanta);\n Vendd.MessageBus.publishAsync($control, new Vendd.Product.Messages.SetQuanta(skuQuanta));\n\n });\n\n});","Vendd.Scripts.load(function () {\n\n $.extend($.fn, {\n pdControlDisabled: function (toggleValue) {\n if (toggleValue === undefined) {\n return this.prop('disabled') || this.hasClass('disabled');\n }\n this.toggleClass('disabled', toggleValue).prop('disabled', toggleValue);\n return this;\n },\n\n pdQuantitySelector: function (options) {\n options = $.extend({\n min: 0,\n max: undefined,\n step: 1,\n value: 0\n }, options);\n\n var useFloats = isFloat(options.min) || isFloat(options.max) || isFloat(options.step);\n\n function isFloat(value) {\n return value && parseFloat(value).toFixed(2) !== parseInt(value).toFixed(2);\n }\n\n this.each(function (i, control) {\n var $control = $(control);\n var $decr = $('.js-qty-decr', $control);\n var $incr = $('.js-qty-incr', $control);\n var $input = $('.js-qty-input', $control);\n var $select = $('.js-qty-select', $control);\n\n var step = clipNumber(parseNumber(options.step) || 1, parseNumber(options.min) || 1, parseNumber(options.max) || 99999);\n var min = roundNumber(parseNumber(options.min) || 0, step);\n var max = roundDownNumber(parseNumber(options.max) || 99999, step); // A really \"large\" number.\n var value = updateValue(parseNumber(options.value));\n\n if (!isTouch()) {\n // NOTE: Might require additional styling.\n // $select.sSelect();\n }\n\n // Methods\n\n control.quantity = function () {\n return value;\n };\n\n // Bindings\n\n $decr.on('click', function () {\n if (!$decr.pdControlDisabled()) {\n updateValue(getValue() - step);\n }\n });\n\n $incr.on('click', function () {\n if (!$incr.pdControlDisabled()) {\n updateValue(getValue() + step);\n }\n });\n\n $input.on('focusout', function () {\n updateValue(getValue() || value);\n });\n\n $input.on('keyup', function (e) {\n if (e.keyCode === 13) {\n updateValue(getValue());\n }\n });\n\n $select.on('change', function (e) {\n updateValue(getValue());\n });\n\n // Private methods (helpers)\n\n function isReadOnly() {\n return $input.prop('readonly') || $select.prop('readonly');\n }\n\n function updateValue(newValue) {\n newValue = setValue(newValue);\n\n if (value !== newValue) {\n var oldValue = value;\n value = newValue;\n\n $decr.pdControlDisabled(isReadOnly() || value <= min);\n $incr.pdControlDisabled(isReadOnly() || max <= value);\n\n if (oldValue !== undefined) {\n $control.trigger('product:change');\n }\n }\n\n return newValue;\n }\n\n function getValue() {\n return parseNumber($input.val() || $select.val());\n }\n\n function setValue(value) {\n value = parseNumber(value) || min;\n value = roundNumber(value, step);\n value = clipNumber(value, min, max);\n $input.val(formatNumber(value));\n return value;\n }\n\n function roundNumber(value, step) {\n return Math.round(value / step) * step;\n }\n\n function roundDownNumber(value, step) {\n return value - (value % step);\n }\n\n function clipNumber(value, minValue, maxValue) {\n return Math.min(Math.max(minValue, value), maxValue);\n }\n\n function parseNumber(value) {\n return useFloats ? parseFloat(value) : parseInt(value);\n }\n\n function formatNumber(value) {\n return useFloats ? value.toFixed(2) : value;\n }\n });\n\n return this;\n }\n });\n});","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-version-selector', function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.x-product-details-version-selector', $context);\n\n if ($control.length < 1)\n return;\n\n $.each($control, function (i, control) {\n var $item = $(control);\n\n if ($item.data('type') === 'list') {\n\n $item.on('click', '.js-selector', function (e) {\n\n var $this = $(this);\n\n if ($this.hasClass('selected'))\n return;\n\n $this.addClass('selected');\n\n var id = $this.data('value');\n\n deleteSpinnerInstances();\n\n Vendd.MessageBus.publishAsync(control, new Vendd.Product.Messages.SetSelected({ id: id, visitorInitiated: true }));\n\n if ($(this).closest('.x-product-details-version-selector').hasClass('color'))\n reInitLazyProductLists($this.data('version-id'));\n });\n };\n\n if ($item.data('type') === 'dropdown') {\n\n $item.on('change', '.js-selector', function (e) {\n\n var $this = $(this);\n\n var id = $this.val();\n\n $item.addClass('x-loading');\n\n deleteSpinnerInstances();\n\n Vendd.MessageBus.publishAsync(control, new Vendd.Product.Messages.SetSelected({ id: id, visitorInitiated: true }));\n\n if ($(this).closest('.x-product-details-version-selector').hasClass('color'))\n reInitLazyProductLists($this.data('version-id'));\n });\n\n if (!isTouch()) {\n $('.js-selector', $item).sSelect().change(function () {\n var $this = $(this);\n\n var id = $this.val();\n\n $item.addClass('x-loading');\n\n deleteSpinnerInstances();\n\n Vendd.MessageBus.publishAsync(control, new Vendd.Product.Messages.SetSelected({ id: id, visitorInitiated: true }));\n\n if ($(this).closest('.x-product-details-version-selector').hasClass('color'))\n reInitLazyProductLists($this.data('version-id'));\n });\n }\n };\n\t \n\t if ($item.data('type') === 'sku-table') {\n \n var $tableSkus = $('.js-sku-quantity-selector', $item);\n\n $tableSkus.each(function (index, tableSku) {\n var $tableSku, $box, $addToCartBtn, $incr,\n $decr, $qty, quanta, max, min;\n\n $tableSku = $(tableSku),\n $box = $tableSku.closest(\".sku-product-box\"),\n quanta = $tableSku.data('quanta') || 1,\n max = $tableSku.data('max') || 100000,\n min = $tableSku.data('min') || 1,\n\n \n $qty = $('.js-qty-input', $box),\n $incr = $('.js-qty-incr', $tableSku),\n $decr = $('.js-qty-decr', $tableSku);\n \n if ($tableSku.hasClass('disabled')) return;\n\n $incr.on('click', function () {\n var quantity = stringToNumber($qty.val());\n \n if ($incr.hasClass('disabled')) return;\n\n if (Vendd.Helpers.isInteger(parseFloat(quanta))) {\n quantity = parseInt(quantity) + parseInt(quanta);\n }\n else {\n quantity = parseFloat(quantity) + parseFloat(quanta);\n quantity = parseFloat(quantity).toFixed(2);\n }\n\n updateQuantitiesControl($tableSku, $qty, $incr, $decr, quantity, min, max);\n });\n\n $decr.on('click', function () {\n var quantity = stringToNumber($qty.val());\n\n if ($decr.hasClass('disabled')) return;\n\n if (Vendd.Helpers.isInteger(parseFloat(quanta))) {\n quantity = parseInt(quantity) - parseInt(quanta);\n }\n else {\n quantity = parseFloat(quantity) - parseFloat(quanta);\n quantity = parseFloat(quantity).toFixed(2);\n }\n\n updateQuantitiesControl($tableSku, $qty, $incr, $decr, quantity, min, max);\n });\n\n $qty.on('focusout', function () {\n var quantity = stringToNumber($qty.val());\n\n quantity = Math.round(quantity / quanta) * quanta; //round to nearest quanta\n updateQuantitiesControl($tableSku, $qty, $incr, $decr, quantity, min, max);\n });\n\n\n $qty.on('keyup', function (e) {\n // press enter\n if (e.keyCode == 13) {\n\n var quantity = stringToNumber($qty.val());\n\n quantity = Math.round(quantity / quanta) * quanta; //round to nearest quanta\n updateQuantitiesControl($tableSku, $qty, $incr, $decr, quantity, min, max);\n }\n });\n });\n };\n\n if ($item.data('type') === 'sku-list') {\n\n $item.on('click', '.js-selector', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this), $parent = $this.parent('li');\n\n if ($parent.hasClass('selected'))\n return;\n\n $parent.addClass('selected').siblings().removeClass('selected');\n\n var id = $this.data('value');\n\n $(\"#\" + id).attr('checked', true);\n\n deleteSpinnerInstances();\n\n Vendd.MessageBus.publishAsync(control, new Vendd.Product.Messages.SetSelected({ id: id, visitorInitiated: true }));\n\n });\n };\n\n function updateQuantitiesControl($wrapper, $qty, $incr, $decr, value, min, max) {\n value = (isNaN(value)) ? min : value;\n\n var $container = $wrapper.closest('.sku-product-box'),\n $addToCartBtn = $('.js-add-sku-to-cart', $container);\n\n if (!$container.length > 0)\n return;\n\n var $price = $('.js-unit-price', $container).html(),\n $targetPrice = $('.js-total-price', $container),\n total, text;\n \n if (parseFloat(value) >= parseFloat(max)) {\n value = parseInt(max);\n $incr.addClass('disabled');\n } else {\n $incr.removeClass('disabled');\n }\n\n if (parseFloat(value) <= parseFloat(min)) {\n value = min;\n $decr.addClass('disabled');\n } else {\n $decr.removeClass('disabled');\n }\n\n\n if (value == 0) {\n // deactivate add to cart button\n $addToCartBtn.addClass('inactive');\n } else {\n //activate add to cart button\n $addToCartBtn.removeClass('inactive').prev().removeClass('visible');\n }\n\n\n \n total = parseFloat(value * stringToNumber($price)).toFixed(2),\n text = numberToString(total, true);\n\n $targetPrice.html(text);\n\n $qty.val(numberToString(value, false, true));\n $qty.change();\n }\n\n });\n });\n});\n","Vendd.Scripts.load(function () {\n\n\tVendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-version-selector-sku-table', function (envelope) {\n\n\t\tvar $context = envelope.message.data.context,\n\t\t\t$controls = $('.x-product-details-version-selector.sku-table', $context);\n\n\t\tif ($controls.length < 1)\n\t\t\treturn;\n\n\t\t$.each($controls, function (i, control) {\n\t\t\tvar $control = $(control);\n\n\t\t\t// Properties\n\n\t\t\tcontrol.loading = function (loading) {\n\t\t\t\tif (loading === undefined) {\n\t\t\t\t\treturn $control.hasClass('x-loading');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$control.toggleClass('x-loading', loading);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Methods\n\n\t\t\tcontrol.init = function () {\n\t\t\t\tvar $productBoxes = $('.x-product-variant-box', $control);\n\n\t\t\t\t$productBoxes.each(function (j, productBox) {\n\t\t\t\t\tvar $productBox = $(productBox);\n\t\t\t\t\tvar $quantitySelector = $('.js-quantity-selector', $productBox).first();\n\t\t\t\t\tvar $unitPriceContainer = $('.js-unit-price', $productBox);\n\t\t\t\t\tvar $unitPriceValue = $('.js-unit-price-value', $unitPriceContainer);\n\t\t\t\t\tvar $totalPriceContainer = $('.js-total-price', $productBox);\n\t\t\t\t\tvar $totalPriceValue = $('.js-total-price-value', $totalPriceContainer);\n\t\t\t\t\tvar $addToCartButton = $('.js-add-to-cart', $productBox);\n\n\t\t\t\t\tvar unitPriceLiteral = $productBox.data('unit-price');\n\t\t\t\t\tvar unitPriceValue = NumberFormatter.parsePrice(unitPriceLiteral);\n\n\t\t\t\t\t// Properties\n\n\t\t\t\t\tproductBox.isEnabled = function () {\n\t\t\t\t\t\treturn (unitPriceValue !== undefined);\n\t\t\t\t\t};\n\n\t\t\t\t\tproductBox.selectedQuantity = function () {\n\t\t\t\t\t\treturn productBox.isEnabled() ? $quantitySelector.get(0).quantity() : undefined;\n\t\t\t\t\t};\n\n\t\t\t\t\tproductBox.unitPrice = function () {\n\t\t\t\t\t\treturn unitPriceValue; // NOTE: Might be undefined\n\t\t\t\t\t};\n\n\t\t\t\t\tproductBox.totalPrice = function () {\n\t\t\t\t\t\treturn productBox.unitPrice() * productBox.selectedQuantity(); // NOTE: Might be undefined\n\t\t\t\t\t};\n\n\t\t\t\t\t// Methods\n\n\t\t\t\t\tproductBox.init = function () {\n\t\t\t\t\t\t$quantitySelector.pdQuantitySelector({\n\t\t\t\t\t\t\tmin: 0, // NOTE: Ignore 'min-quantity'; should always be zero (0).\n\t\t\t\t\t\t\tmax: NumberFormatter.parse($productBox.data('max-quantity')),\n\t\t\t\t\t\t\tstep: NumberFormatter.parse($productBox.data('quanta')),\n\t\t\t\t\t\t\tvalue: 0\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tproductBox.updateQuantitySelector();\n\t\t\t\t\t\tproductBox.updateUnitPrice();\n\t\t\t\t\t\tproductBox.updateTotalPrice();\n\t\t\t\t\t\tproductBox.updateButtonState();\n\t\t\t\t\t};\n\n\t\t\t\t\tproductBox.addToCart = function () {\n\t\t\t\t\t\tif (control.loading()) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontrol.loading(true);\n\n\t\t\t\t\t\tvar data = {\n\t\t\t\t\t\t\tid: $productBox.data('productid'),\n\t\t\t\t\t\t\tskuId: $productBox.data('variantid'),\n\t\t\t\t\t\t\tpath: $productBox.data('path'),\n\t\t\t\t\t\t\tqty: productBox.selectedQuantity(),\n\t\t\t\t\t\t\textraAttributes: [],\n\t\t\t\t\t\t\tbundleItems: [],\n\t\t\t\t\t\t\titemInfo: {\n\t\t\t\t\t\t\t\tminQuantity: $productBox.data('min-quantity'),\n\t\t\t\t\t\t\t\tmaxQuantity: $productBox.data('max-quantity'),\n\t\t\t\t\t\t\t\tquanta: $productBox.data('quanta')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t\tVendd.MessageBus.publishAsync(productBox, new Vendd.Cart.Messages.Add(data.id, data.skuId, data.path, data.qty, data.extraAttributes, data.bundleItems, data.itemInfo));\n\t\t\t\t\t\t//Vendd.MessageBus.publishAsync(productBox, new Vendd.Widget.Messages.OpenWidget(Vendd.Widget.CartWidget, false));\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t};\n\n\t\t\t\t\tproductBox.updateQuantitySelector = function () {\n\t\t\t\t\t\t$quantitySelector.pdControlDisabled(productBox.unitPrice() === undefined);\n\t\t\t\t\t};\n\n\t\t\t\t\tproductBox.updateUnitPrice = function () {\n\t\t\t\t\t\tvar value = productBox.unitPrice();\n\t\t\t\t\t\tvar valueLiteral = NumberFormatter.formatPrice(value);\n\t\t\t\t\t\t$unitPriceValue.text(valueLiteral);\n\t\t\t\t\t\t$unitPriceContainer.toggleClass('unit-price-visible', 0 < valueLiteral.length);\n\t\t\t\t\t};\n\n\t\t\t\t\tproductBox.updateTotalPrice = function () {\n\t\t\t\t\t\tvar value = productBox.totalPrice();\n\t\t\t\t\t\tvar valueLiteral = NumberFormatter.formatPrice(value);\n\t\t\t\t\t\t$totalPriceValue.text(valueLiteral);\n\t\t\t\t\t\t$totalPriceContainer.toggleClass('total-price-visible', 0 < valueLiteral.length);\n\t\t\t\t\t};\n\n\t\t\t\t\tproductBox.updateButtonState = function () {\n\t\t\t\t\t\t$addToCartButton.pdControlDisabled(productBox.unitPrice() === undefined || productBox.selectedQuantity() === 0 || control.loading());\n\t\t\t\t\t};\n\n\t\t\t\t\t// Events\n\n\t\t\t\t\t$quantitySelector.on('product:change', function (e) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\tproductBox.updateTotalPrice();\n\t\t\t\t\t\tproductBox.updateButtonState();\n\t\t\t\t\t});\n\n\t\t\t\t\t$addToCartButton.on('click', function (e) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\tif ($addToCartButton.pdControlDisabled()) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ($('.x-warehouse-selector-widget').trigger('addtocart').hasClass('opening')) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tproductBox.addToCart();\n\t\t\t\t\t\tproductBox.updateButtonState();\n\t\t\t\t\t});\n\n\t\t\t\t\tVendd.MessageBus.subscribe(Vendd.Cart.Messages.AddCompleted, productBox, function (envelope) {\n\t\t\t\t\t\tcontrol.loading(false);\n\t\t\t\t\t\tproductBox.updateButtonState();\n\t\t\t\t\t});\n\n\t\t\t\t\tVendd.MessageBus.subscribe(Vendd.Cart.Messages.Failed, productBox, function (envelope) {\n\t\t\t\t\t\t// NOTE: The 'Vendd.Cart.Messages.AddCompleted' seems to be triggered even \n\t\t\t\t\t\t// in the case of error, so updating the state of the button doesn't seem\n\t\t\t\t\t\t// to be necessary.\n\t\t\t\t\t\tcontrol.loading(false);\n\t\t\t\t\t\tproductBox.updateButtonState();\n\t\t\t\t\t});\n\n\t\t\t\t\t// Initialization\n\n\t\t\t\t\tproductBox.init();\n\t\t\t\t});\n\t\t\t};\n\n\n\t\t\t// Initialization\n\n\t\t\tcontrol.init();\n\t\t});\n\t});\n});\n","Vendd.Scripts.load(function () {\n\n\tVendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-version-selector-sku-grid', function (envelope) {\n\n\t\tvar $context = envelope.message.data.context,\n\t\t\t$controls = $('.x-product-details-version-selector.sku-grid', $context);\n\n\t\tif ($controls.length < 1)\n\t\t\treturn;\n\n\t\t$.each($controls, function (i, control) {\n\t\t\tvar $control = $(control);\n\t\t\tvar $productGroups = $('.x-product-variant-group', $control);\n\t\t\tvar $productBoxes = $('.x-product-variant-box', $control);\n\t\t\tvar $totalPriceContainer = $('.js-total-price', $control);\n\t\t\tvar $totalPriceValue = $('.js-total-price-value', $totalPriceContainer);\n\t\t\tvar $totalQuantityContainer = $('.js-total-quantity', $control);\n\t\t\tvar $totalQuantityValue = $('.js-total-quantity-value', $totalQuantityContainer);\n\t\t\tvar $addToCartButton = $('.js-add-to-cart-multiple', $control);\n\n\t\t\t// Properties\n\n\t\t\tcontrol.loading = function (loading) {\n\t\t\t\tif (loading === undefined) {\n\t\t\t\t\treturn $control.hasClass('x-loading');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$control.toggleClass('x-loading', loading);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tcontrol.totalPrice = function () {\n\t\t\t\tvar value;\n\n\t\t\t\t$productGroups.each(function (i, productGroup) {\n\t\t\t\t\tvar groupValue = productGroup.subtotalPrice();\n\t\t\t\t\tif (groupValue !== undefined) {\n\t\t\t\t\t\tvalue = (value || 0) + groupValue;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn value;\n\t\t\t};\n\n\t\t\tcontrol.totalQuantity = function () {\n\t\t\t\tvar value;\n\n\t\t\t\t$productGroups.each(function (i, productGroup) {\n\t\t\t\t\tvar groupValue = productGroup.subtotalQuantity();\n\t\t\t\t\tif (groupValue !== undefined) {\n\t\t\t\t\t\tvalue = (value || 0) + groupValue;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn value;\n\t\t\t};\n\n\t\t\t// Methods\n\n\t\t\tcontrol.addToCart = function () {\n\t\t\t\tif (control.loading()) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar data = [];\n\n\t\t\t\t$productBoxes.each(function (i, productBox) {\n\t\t\t\t\tif (productBox.isEnabled() && productBox.selectedQuantity()) {\n\t\t\t\t\t\tvar $productBox = $(productBox);\n\t\t\t\t\t\tdata.push({\n\t\t\t\t\t\t\tid: $productBox.data('productid'),\n\t\t\t\t\t\t\tskuId: $productBox.data('variantid'),\n\t\t\t\t\t\t\tpath: $productBox.data('path'),\n\t\t\t\t\t\t\tqty: productBox.selectedQuantity()\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (!data || !data.length) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconsole.log(JSON.stringify(data));\n\n\t\t\t\tcontrol.loading(true);\n\n\t\t\t\tVendd.MessageBus.publishAsync(control, new Vendd.Cart.Messages.MultipleAdd(data));\n\t\t\t\t//Vendd.MessageBus.publishAsync(productBox, new Vendd.Widget.Messages.OpenWidget(Vendd.Widget.CartWidget, false));\n\n\t\t\t\treturn true;\n\t\t\t};\n\n\t\t\tcontrol.updateTotalPrice = function () {\n\t\t\t\tvar value = control.totalPrice();\n\t\t\t\tvar valueLiteral = NumberFormatter.formatPrice(value);\n\t\t\t\t$totalPriceValue.text(valueLiteral);\n\t\t\t\t$totalPriceContainer.toggleClass('total-price-visible', 0 < valueLiteral.length);\n\t\t\t};\n\n\t\t\tcontrol.updateTotalQuantity = function () {\n\t\t\t\tvar value = control.totalQuantity();\n\t\t\t\tvar valueLiteral = NumberFormatter.formatInt(value);\n\t\t\t\t$totalQuantityValue.text(valueLiteral);\n\t\t\t\t$totalQuantityContainer.toggleClass('total-quantity-visible', 0 < valueLiteral.length);\n\t\t\t};\n\n\t\t\tcontrol.updateButtonState = function () {\n\t\t\t\t$addToCartButton.pdControlDisabled(control.totalPrice() === undefined || control.totalQuantity() === 0 || control.loading());\n\t\t\t};\n\n\t\t\tcontrol.init = function () {\n\t\t\t\t$productGroups.each(function (j, productGroup) {\n\t\t\t\t\tvar $productGroup = $(productGroup);\n\t\t\t\t\tvar $productBoxes = $('.x-product-variant-box', $productGroup);\n\t\t\t\t\tvar $subtotalPriceContainer = $('.js-subtotal-price', $productGroup);\n\t\t\t\t\tvar $subtotalPriceValue = $('.js-subtotal-price-value', $subtotalPriceContainer);\n\t\t\t\t\tvar $subtotalQuantityContainer = $('.js-subtotal-quantity', $productGroup);\n\t\t\t\t\tvar $subtotalQuantityValue = $('.js-subtotal-quantity-value', $subtotalQuantityContainer);\n\n\t\t\t\t\tproductGroup.subtotalPrice = function () {\n\t\t\t\t\t\tvar value;\n\n\t\t\t\t\t\t$productBoxes.each(function (i, productBox) {\n\t\t\t\t\t\t\tvar itemValue = productBox.totalPrice();\n\t\t\t\t\t\t\tif (itemValue !== undefined) {\n\t\t\t\t\t\t\t\tvalue = (value || 0) + itemValue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t};\n\n\t\t\t\t\tproductGroup.subtotalQuantity = function () {\n\t\t\t\t\t\tvar value;\n\n\t\t\t\t\t\t$productBoxes.each(function (i, productBox) {\n\t\t\t\t\t\t\tvar itemValue = productBox.selectedQuantity();\n\t\t\t\t\t\t\tif (itemValue !== undefined) {\n\t\t\t\t\t\t\t\tvalue = (value || 0) + itemValue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t};\n\n\t\t\t\t\tproductGroup.init = function () {\n\n\t\t\t\t\t\t$productBoxes.each(function (k, productBox) {\n\t\t\t\t\t\t\tvar $productBox = $(productBox);\n\t\t\t\t\t\t\tvar $quantitySelector = $('.js-quantity-selector', $productBox).first();\n\n\t\t\t\t\t\t\tvar unitPriceLiteral = $productBox.data('unit-price');\n\t\t\t\t\t\t\tvar unitPriceValue = NumberFormatter.parsePrice(unitPriceLiteral);\n\n\t\t\t\t\t\t\t// Properties\n\n\t\t\t\t\t\t\tproductBox.isEnabled = function () {\n\t\t\t\t\t\t\t\treturn (unitPriceValue !== undefined);\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tproductBox.selectedQuantity = function () {\n\t\t\t\t\t\t\t\treturn productBox.isEnabled() ? $quantitySelector.get(0).quantity() : undefined;\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tproductBox.unitPrice = function () {\n\t\t\t\t\t\t\t\treturn unitPriceValue; // NOTE: Might be undefined\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tproductBox.totalPrice = function () {\n\t\t\t\t\t\t\t\treturn productBox.unitPrice() * productBox.selectedQuantity(); // NOTE: Might be undefined\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Methods\n\n\t\t\t\t\t\t\tproductBox.init = function () {\n\t\t\t\t\t\t\t\t$quantitySelector.pdQuantitySelector({\n\t\t\t\t\t\t\t\t\tmin: 0, // NOTE: Ignore 'min-quantity'; should always be zero (0).\n\t\t\t\t\t\t\t\t\tmax: NumberFormatter.parse($productBox.data('max-quantity')),\n\t\t\t\t\t\t\t\t\tstep: NumberFormatter.parse($productBox.data('quanta')),\n\t\t\t\t\t\t\t\t\tvalue: 0\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tproductBox.updateQuantitySelector();\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tproductBox.updateQuantitySelector = function () {\n\t\t\t\t\t\t\t\t$quantitySelector.pdControlDisabled(productBox.unitPrice() === undefined);\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Events\n\n\t\t\t\t\t\t\t$quantitySelector.on('product:change', function (e) {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// Initialization\n\n\t\t\t\t\t\t\tproductBox.init();\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tproductGroup.updateSubtotalPrice();\n\t\t\t\t\t\tproductGroup.updateSubtotalQuantity();\n\t\t\t\t\t};\n\n\t\t\t\t\tproductGroup.updateSubtotalPrice = function () {\n\t\t\t\t\t\tvar value = productGroup.subtotalPrice();\n\t\t\t\t\t\tvar valueLiteral = NumberFormatter.formatPrice(value);\n\t\t\t\t\t\t$subtotalPriceValue.text(valueLiteral);\n\t\t\t\t\t\t$subtotalPriceContainer.toggleClass('subtotal-price-visible', 0 < valueLiteral.length);\n\t\t\t\t\t};\n\n\t\t\t\t\tproductGroup.updateSubtotalQuantity = function () {\n\t\t\t\t\t\tvar value = productGroup.subtotalQuantity();\n\t\t\t\t\t\tvar valueLiteral = NumberFormatter.formatInt(value);\n\t\t\t\t\t\t$subtotalQuantityValue.text(valueLiteral);\n\t\t\t\t\t\t$subtotalQuantityContainer.toggleClass('subtotal-quantity-visible', 0 < valueLiteral.length);\n\t\t\t\t\t};\n\n\t\t\t\t\t// Events\n\n\t\t\t\t\t$productBoxes.on('product:change', function (e) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\tproductGroup.updateSubtotalPrice();\n\t\t\t\t\t\tproductGroup.updateSubtotalQuantity();\n\t\t\t\t\t});\n\n\t\t\t\t\t// Initialization\n\n\t\t\t\t\tproductGroup.init();\n\t\t\t\t});\n\n\t\t\t\tcontrol.updateTotalPrice();\n\t\t\t\tcontrol.updateTotalQuantity();\n\t\t\t\tcontrol.updateButtonState();\n\t\t\t};\n\n\t\t\t// Events\n\n\t\t\t$productGroups.on('product:change', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tcontrol.updateTotalPrice();\n\t\t\t\tcontrol.updateTotalQuantity();\n\t\t\t\tcontrol.updateButtonState();\n\t\t\t});\n\n\t\t\t$addToCartButton.on('click', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tif ($addToCartButton.pdControlDisabled()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif ($('.x-warehouse-selector-widget').trigger('addtocart').hasClass('opening')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcontrol.addToCart();\n\t\t\t\tcontrol.updateButtonState();\n\t\t\t});\n\n\t\t\tVendd.MessageBus.subscribe(Vendd.Cart.Messages.MultipleAddSuccess, control, function (envelope) {\n\t\t\t\tcontrol.loading(false);\n\t\t\t\tcontrol.updateButtonState();\n\t\t\t});\n\n\t\t\tVendd.MessageBus.subscribe(Vendd.Cart.Messages.Failed, control, function (envelope) {\n\t\t\t\tcontrol.loading(false);\n\t\t\t\tcontrol.updateButtonState();\n\t\t\t});\n\n\t\t\t// Initialization\n\n\t\t\tcontrol.init();\n\t\t});\n\t});\n});\n","Vendd.Scripts.load(function () {\n 'use strict';\n\n if ($('.x-product-compare-list, .product-details-quick-view, .product-details-popup').length == 0) return;\n\n /* fixes popup iframe horizontal scrolling */\n $(\".site-container\").css(\"min-width\", \"initial\");\n $(\".site-container\").css(\"min-width\", \"auto\");\n});","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'product-details-warehouse-search', function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.x-product-details-warehouse-search', $context),\n $content = $('.search-warehouse-wrapper', $control);\n\n if ($control.length < 1)\n return;\n\n var control = $control.get(0);\n control.HasGoogleMapsInitialized = ((window.google || {}).maps != undefined) && !($content.data(\"force-not-use-google-map\"));\n control.EnableTrackingLocation = ($content.data(\"enable-tracking-location\"));\n control.myLocation = { latitude: 0, longitude: 0 };\n\n control.skuId = $content.data(\"skuid\");\n control.skuCode = $content.data(\"skucode\");\n var ignoreAvailability = $content.data(\"ignore-availability\");\n control.ignoreAvailability = ignoreAvailability || ignoreAvailability === \"True\" ? true : false;\n var lazyloadAvailabilities = $content.data(\"lazyload-availabilities\");\n control.lazyloadAvailabilities = lazyloadAvailabilities === \"True\" ? true : false;\n var geoLocationWithZipCode = $content.data(\"use-zipcode\");\n control.geoLocationWithZipCode = geoLocationWithZipCode || geoLocationWithZipCode === \"True\" ? true : false;\n control.topAvailableWarehouse = $content.data(\"top-warehouses\") || 0;\n control.groupBy = $content.data(\"group-by\") || \"\";\n control.latestLocation = { latitude: 0, longitude: 0 };\n control.productAddedService;\n control.setStoreService;\n control.setDeliveryPointService;\n\n var sSelect = null, selectedWarehouse, selectedWarehouseAvailability;\n\n $content.on('keyup', 'input', function (e) {\n if (e.keyCode === 13) {\n e.preventDefault();\n e.stopPropagation();\n $('.js-submit', $content).trigger('click');\n return;\n }\n });\n\n $content.on('click', '.js-submit', function (e) {\n\n e.preventDefault();\n e.stopPropagation();\n if ($(this).hasClass(\"disabled\")) return;\n if ($content.hasClass('x-loading')) return;\n $content.addClass('x-loading');\n\n var searchTerm = $('.js-search-term', $content).val();\n var maxDistance = parseInt($('.js-distance-range', $content).val()) || 0;\n var hasGeolocation = $(this).hasClass(\"near-my-location\") && control.myLocation.latitude > 0 && control.myLocation.longitude > 0 && control.EnableTrackingLocation;\n if (\n ((!hasGeolocation && control.searchTerm == searchTerm) || hasGeolocation) &&\n control.maxDistance == maxDistance &&\n control.hasGeolocation == hasGeolocation &&\n ((hasGeolocation && control.myLocation.latitude == control.latestLocation.latitude && control.myLocation.longitude == control.latestLocation.longitude) || !hasGeolocation)\n ) {\n $content.removeClass('x-loading');\n return;\n }\n\n var location = hasGeolocation ? control.myLocation : null;\n control.latestLocation = hasGeolocation ? _.clone(location) : control.latestLocation;\n control.searchTerm = searchTerm;\n control.maxDistance = maxDistance;\n control.hasGeolocation = hasGeolocation;\n\n var vendd = getParentOrSelfVendd();\n var state = Cookies.get('VisitorState'), countryCode = \"\";\n if (state) {\n var parameters = state.split(\"&\");\n if (state.indexOf(\"countryCode\") >= 0) {\n for (var i = 0; i < parameters.length; i++) {\n var pair = parameters[i].split(\"=\");\n if (pair[0] == \"countryCode\") {\n countryCode = pair[1];\n }\n }\n }\n }\n\n vendd.MessageBus.publishAsync(control, new vendd.Product.Messages.GetAvailableWarehouses(control.skuId, control.skuCode, countryCode, control.searchTerm, maxDistance, control.ignoreAvailability, control.geoLocationWithZipCode, control.topAvailableWarehouse, control.groupBy, location));\n });\n\n $('.js-show-warehouses-search', $control).fancybox({\n padding: 0,\n width: 450,\n touch: false,\n beforeShow: function () {\n if ($content.hasClass('has-warehouse-grouping')) {\n $('.js-get-warehouses .js-submit').trigger('click');\n }\n },\n afterShow: function () {\n if (!sSelect) sSelect = $('.form-row select', $content).sSelect();\n\n if (navigator.geolocation && control.EnableTrackingLocation) {\n navigator.geolocation.getCurrentPosition(\n function (position) {\n $('.js-submit.near-my-location', $content).toggleClass(\"disabled\", false);\n control.myLocation.latitude = position.coords.latitude;\n control.myLocation.longitude = position.coords.longitude;\n\n var options = {\n enableHighAccuracy: false,\n //timeout: 5000,\n maximumAge: 0\n };\n var id = navigator.geolocation.watchPosition(\n function (position) {\n $('.js-submit.near-my-location', $content).toggleClass(\"disabled\", false);\n control.myLocation.latitude = position.coords.latitude;\n control.myLocation.longitude = position.coords.longitude;\n }, function (error) {\n $('.js-submit.near-my-location', $content).toggleClass(\"disabled\", true);\n control.myLocation = { latitude: 0, longitude: 0 };\n }, options);\n },\n function () {\n $('.js-submit.near-my-location', $content).toggleClass(\"disabled\", true);\n control.myLocation = { latitude: 0, longitude: 0 };\n });\n } else {\n $('.js-submit.near-my-location', $content).toggleClass(\"disabled\", true);\n control.myLocation = { latitude: 0, longitude: 0 };\n }\n }\n });\n\n control.bindWarehouses = function (model) {\n if (control.HasGoogleMapsInitialized && control.maxDistance > 0 && model.WarehousesGrouped.length > 0) {\n var vendd = getParentOrSelfVendd();\n var searchTerm = control.hasGeolocation && control.myLocation.latitude > 0 && control.myLocation.longitude > 0 ? control.myLocation.latitude + \",\" + control.myLocation.longitude : control.searchTerm;\n vendd.MessageBus.publishAsync(control, new vendd.Store.Messages.CalculateDistances(model.WarehousesGrouped, searchTerm, control.maxDistance));\n } else {\n control.bind(model);\n }\n };\n\n control.bindAvailabilities = function (model) {\n //set Array with product info\n var variantArray = [];\n var variant = {\n VariantId: control.skuId,\n Quantity: $('.qty-spinner-input').val() || 1\n };\n variantArray.push(variant);\n\n //call service for availabilities\n Vendd.MessageBus.publishAsync(control, new Vendd.Product.Messages.GetPickUpAvailability(variantArray, null, false));\n\n //merge models on service success\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.GetPickUpAvailabilitySuccess, control, function (envelope) {\n var data = envelope.message.data;\n\n var pickUpAvailabilities = _.each(model.WarehousesGrouped, function (group) {\n _.each(group.Items, function (warehouse) {\n var selectedWarehouse = _.find(data.PickupAvailabilities[0].Shops, function (x) { return warehouse.PartnerId === x.PartnerId })\n if (selectedWarehouse) {\n if (selectedWarehouse.Days == null) {\n warehouse.AvailabilityActionId = 1;\n } else {\n warehouse.AvailabilityActionId = 3;\n } \n warehouse.AvailabilityActionName = selectedWarehouse.Message;\n } \n });\n });\n _.extend(model.WarehousesGrouped, pickUpAvailabilities);\n\n control.bindWarehouses(control.warehousesModel);\n\n Vendd.MessageBus.unsubscribe(Vendd.Product.Messages.GetPickUpAvailabilitySuccess, control);\n });\n\n };\n\n control.evaluateDistances = function (model) {\n\n var data = control.distanceData,\n top = parseInt($content.data('top-warehouses')),\n showOffRangeWareHouses = true;\n model.ErrorCalculatingDistances = false;\n\n if (data && data.DistanceMeasured) {\n if (model.WarehousesGrouped.length == 0) return model;\n var warehousesGroups = _.sortBy(data.array, function (group) { return (_.min(group.Items, function (item) { return item.Distance; }) || {}).Distance || 0; });\n for (var group = 0; group < warehousesGroups.length; group++) {\n var warehouses = warehousesGroups[group].Items || [];\n warehouses = _.sortBy(warehouses, function (item) { return item.Distance; });\n var hasWareHouses = false;\n for (var i = 0; i < warehouses.length; i++) {\n if (data.TotalFindInRange > 0) {\n warehouses[i].Show = warehouses[i].IsWithinRange;\n } else if (showOffRangeWareHouses) {\n warehouses[i].Show = (i < top);\n }\n hasWareHouses = hasWareHouses || warehouses[i].Show;\n warehouses[i].AvailabilityCustomText = LhApp.Text[\"Common:AvailabilityWarehouse_\" + warehouses[i].AvailabilityId];\n }\n warehousesGroups[group].Items = warehouses;\n warehousesGroups[group].HasWareHouses = hasWareHouses;\n }\n model.WarehousesGrouped = warehousesGroups;\n model.HasWareHouses = data.TotalFindInRange > 0 || (showOffRangeWareHouses && model.Warehouses && model.Warehouses.length > 0);\n } else if (model.WarehousesGrouped && model.WarehousesGrouped.length) {\n for (var group = 0; group < model.WarehousesGrouped.length; group++) {\n for (var i = 0; i < model.WarehousesGrouped[group].Items.length; i++) {\n model.WarehousesGrouped[group].Items[i].Show = true;\n model.WarehousesGrouped[group].Items[i].AvailabilityCustomText = LhApp.Text[\"Common:AvailabilityWarehouse_\" + model.WarehousesGrouped[group].Items[i].AvailabilityId];\n }\n model.WarehousesGrouped[group].HasWareHouses = true;\n }\n model.ErrorCalculatingDistances = true;\n model.HasWareHouses = true;\n }\n return model;\n };\n\n control.hideForm = function () {\n $('.js-warehouse-search-form', $content).hide();\n $('.form-msg .js-error', $content).show();\n };\n\n control.bind = function (model) {\n model = control.evaluateDistances(model);\n //set warehouse as disabled if product is unavailable\n _.each(model.WarehousesGrouped, function (group, i) {\n _.each(group.Items, function (warehouse, j) {\n if (warehouse.AvailabilityActionId == 1) {\n warehouse.isDisabled = true;\n }\n });\n });\n\n /*if ( model.ErrorCalculatingDistances ) control.hideForm();*/\n if (!model.NoWarehouseFound) model.NoWarehouseFound = LhApp.Function.getText('Common:Master_SomeError');\n var html = Vendd.Handlebars.parse(\"pdWarehouseSearchResults_A\", model);\n\n var $container = $('.x-search-warehouses', $content);\n\n $container.html(html);\n $container.removeClass('empty');\n\n if (!isTouch()) {\n $(\".content\", $container).mCustomScrollbar({\n scrollbarPosition: \"inside\",\n scrollInertia: 400,\n theme: \"grey\",\n mouseWheel: { preventDefault: true }\n });\n }\n \n $content.removeClass('x-loading');\n\n $container.on('click', '.js-toggle-group', function (e) {\n\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n var tab = $this.data('tab');\n\n if ($this.hasClass('active')) {\n return;\n } else {\n $('.js-toggle-group', $container).removeClass('active');\n $('.warehouse-list', $container).removeClass('active');\n $this.addClass('active');\n $('.warehouse-list:eq(' + tab + ')', $container).addClass('active');\n }\n\n });\n\n $('input[name=\"warehouse\"]', $container).on('click', function () {\n selectedWarehouse = $(this).val();\n selectedWarehouseAvailablity = $(this).siblings('.warehouse-info').find('.availability');\n if (selectedWarehouse > 0) {\n $('.js-proceed-to-checkout', $content).removeClass('disabled');\n $('.js-continue-shopping', $content).removeClass('disabled');\n }\n });\n\n };\n\n $content.on('click', '.js-proceed-to-checkout, .js-continue-shopping', function (e) {\n\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n var cartRedirect = false;\n var deliveryPointId = 2;\n //Set the three services\n control.productAddedService = $.Deferred();\n control.setStoreService = $.Deferred();\n control.setDeliveryPointService = $.Deferred();\n\n //If all three services run successful, proceed to final action\n $.when(control.productAddedService, control.setStoreService, control.setDeliveryPointService)\n .done(function (productAddedResponse, setStoreResponse, setDeliveryPointResolve) {\n\n if (control.lazyloadAvailabilities) {\n //Remove cookie for Delivery Postal Code\n var deliveryPostalCode = Cookies.get('DeliveryPostalCode');\n if (deliveryPostalCode && deliveryPostalCode !== 'undefined') {\n Cookies.remove('DeliveryPostalCode');\n }\n\n //Show Pick Up Availability \n $('.x-product-details .lazyload-availability-container > span').remove();\n $('.x-product-details .lazyload-availability-container').append(selectedWarehouseAvailablity);\n }\n \n //get model of delivery point\n if ($('.x-deliverypoint-widget-a').length > 0) {\n Vendd.MessageBus.publish($('.x-deliverypoint-widget-a'), new Vendd.DeliveryPoint.Messages.GetModel());\n }\n \n if (cartRedirect) {\n //Redirect user to Cart page\n document.location = LhApp.Url.Page.Cart;\n } else {\n //Close fancybox\n $('[data-fancybox-close]', $content).trigger('click');\n }\n });\n\n //If proceed to checkout -> redirect true\n if ($this.hasClass('js-proceed-to-checkout')) cartRedirect = true; \n\n //trigger add to cart button in order to add sku in cart \n $('.x-product-details-ajax-buttons.desktop .js-add-to-cart').trigger('click');\n //If product added successfully -> Resolve\n Vendd.MessageBus.subscribe(Vendd.Cart.Messages.ProductAdded, 'x-product-details', function (envelope) { control.productAddedService.resolve(envelope); });\n //if product failed to added -> Reject\n Vendd.MessageBus.subscribe(Vendd.Cart.Messages.Failed, 'x-product-details', function (envelope) { control.productAddedService.reject(); });\n\n //Function for SetStore Service ajax call\n setStore(cartRedirect, selectedWarehouse);\n\n //Function for setDeliveryPoint Service ajax call\n setDeliveryPoint(cartRedirect, deliveryPointId);\n });\n\n //SetStore Service ajax call\n function setStore(cartRedirect, selectedWarehouse) {\n $.ajax({\n // async: false,\n type: 'POST',\n dataType: 'json',\n contentType: 'application/json; charset=UTF-8',\n ContentType: 'application/json; charset=UTF-8',\n url: LhApp.Function.Url.getServiceEndpoint('checkoutservice.svc/SetStore?lang=el'),\n data: JSON.stringify({\n data: \"\",\n arguments: JSON.stringify({\n \"Id\": selectedWarehouse\n })\n }),\n success: function (response) {\n //Resolve\n control.setStoreService.resolve(response);\n },\n error: function (ex) {\n control.setStoreService.reject();\n console.log(\"error\");\n }\n });\n }\n\n //setDeliveryPoint Service ajax call\n function setDeliveryPoint(cartRedirect, deliveryPointId) {\n $.ajax({\n type: \"post\",\n url: \"/Services/api/DeliveryPoint/SetDeliveryPoint\",\n data: {\n deliveryPointId: deliveryPointId\n },\n dataType: \"json\",\n statusCode: {\n 200: function (response) {\n //Resolve\n control.setDeliveryPointService.resolve(response);\n },\n 404: function (response) {\n control.setDeliveryPointService.reject();\n console.log(\"error\");\n },\n 500: function (response) {\n control.setDeliveryPointService.reject();\n console.log(\"error\");\n }\n }\n });\n }\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.GetAvailableWarehousesSuccess, control, function (envelope) {\n var data = envelope.message.data;\n control.warehousesModel = envelope.message.data;\n\n if (control.lazyloadAvailabilities) {\n control.bindAvailabilities(control.warehousesModel); \n } else {\n control.bindWarehouses(control.warehousesModel); \n }\n \n });\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.GetAvailableWarehousesFailure, control, function (envelope) {\n control.warehousesModel = {};\n control.bindWarehouses(control.warehousesModel);\n });\n\n Vendd.MessageBus.subscribe(Vendd.Store.Messages.CalculateDistancesSuccess, control, function (envelope) {\n\n var sender = envelope.message.data.sender;\n if (control && sender && control == sender) {\n control.distanceData = envelope.message.data.model;\n control.bind(control.warehousesModel);\n }\n });\n\n });\n\n});","Vendd.Scripts.load(function () {\n\n var $wrapper = $('.x-product-reviews[data-type=\"reviews\"]'),\n model = null, literals = null, consents = null, sorting = null, isInitialCall = true,\n loadMoreReviews = false, updateSorting = false, isVerifiedBuyerChecked = false;\n\n if ($wrapper.length < 1) return;\n\n wrapper = $wrapper.get(0);\n\n var productId = $wrapper.data('product-id');\n var pageNumber = $wrapper.data('page-number');\n var pageSize = $wrapper.data('page-size');\n var totalPageSize = pageSize;\n var sortBy = $wrapper.data('sort-by');\n var filterBy = \"\";\n\n wrapper.loading = function (loading) {\n if (loading) {\n $wrapper.addClass('x-loading');\n } else {\n $wrapper.removeClass('x-loading');\n }\n };\n\n wrapper.reviewForm = function () {\n\n var $productReviewForm = $('.x-product-review-form[data-control=\"form\"]', $wrapper);\n\n if ($productReviewForm.length < 1) return;\n\n var $openFormLink = $('.form-show-hide[data-click=\"open-product-review-form\"]', $wrapper);\n var $closeFormLink = $('.form-show-hide[data-click=\"close-product-review-form\"]', $productReviewForm);\n\n $openFormLink.click(function (e) {\n if ($openFormLink.hasClass('x-closed')) {\n $openFormLink.removeClass('x-closed').addClass('x-opened');\n $closeFormLink.removeClass('x-closed').addClass('x-opened');\n $productReviewForm.removeClass('x-collapsed').removeClass('x-closed').addClass('x-opened');\n $productReviewForm.show();\n }\n });\n\n $closeFormLink.click(function (e) {\n if ($closeFormLink.hasClass('x-opened')) {\n $openFormLink.removeClass('x-opened').addClass('x-closed');\n $closeFormLink.removeClass('x-opened').addClass('x-closed');\n $productReviewForm.removeClass('x-opened').addClass('x-closed');\n $productReviewForm.hide();\n }\n });\n };\n\n wrapper.loginPopup = function () {\n\n var $loginPopup = $('div[data-type=\"review-login-popup\"]', $wrapper);\n\n if ($loginPopup.length < 1) return;\n\n if (!model.Authenticated) {\n\n var $showLoginMessageLink = $('*[data-click=\"show-login-message\"]', $wrapper);\n\n $showLoginMessageLink.click(function (e) {\n $loginPopup.show();\n });\n\n var $loginLink = $('*[data-click=\"login\"]', $loginPopup);\n var $registerLink = $('*[data-click=\"register\"]', $loginPopup);\n var $closeBtn = $('*[data-click=\"close-popup\"]', $loginPopup);\n\n var $loginWidget = $('.x-control.x-widget.x-login-widget').first();\n var redirectUrl = LhApp.Function.Url.setParameterValue('mode', 'add-review');\n\n $loginLink.click(function (e) {\n $loginPopup.hide();\n\n var $loginForm = $('.x-login-form .login-form', $loginWidget);\n $loginForm.attr('data-redirect', redirectUrl);\n\n $('.js-widget-trigger', $loginWidget).trigger('click');\n });\n\n $registerLink.click(function (e) {\n document.location = LhApp.Function.Url.setParameterValueOnUrl(LhApp.Url.Page.Register, 'ReturnUrl', encodeURIComponent(redirectUrl));\n });\n\n $closeBtn.click(function (e) {\n $loginPopup.hide();\n });\n\n } else {\n $loginPopup.remove();\n }\n };\n\n wrapper.pager = function () {\n\n var $scrollPager = $('.scrolllist-pager-notification', $wrapper);\n\n if ($scrollPager.length < 1) return;\n\n if (model.ReviewsCount > pageSize) {\n $scrollPager.removeClass('hidden');\n }\n\n $scrollPager.on('click', '.js-show', function () {\n wrapper.loading(true);\n\n loadMoreReviews = true;\n pageNumber = pageNumber + 1;\n totalPageSize = totalPageSize + pageSize;\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Product.Messages.GetReviews(productId, pageNumber, pageSize, sortBy, isInitialCall, filterBy));\n });\n };\n\n wrapper.loadMoreReviews = function () {\n\n var html = Vendd.Handlebars.parse(\"pdReview_A\", model);\n\n var $html = $(html),\n $container = $('.x-product-review-list', $wrapper),\n $list = $('.x-product-review-list ul.review-list', $wrapper),\n $boxes = $('.x-product-review-box', $html),\n lastItem = $list.children().last();\n\n //get new reviews\n var items = wrapBoxes($boxes, lastItem, model);\n\n //append new reviews in list\n $list.append(items);\n\n //manipulate scroll pager\n if (totalPageSize >= model.ReviewsCount)\n $('.scrolllist-pager-notification', $wrapper).addClass('hidden');\n\n //bind controls\n Vendd.MessageBus.publish(wrapper, new Vendd.Widget.Messages.BindControl($wrapper));\n\n wrapper.loading(false);\n };\n\n wrapper.update = function () {\n\n var html = Vendd.Handlebars.parse(\"pdReview_A\", model);\n\n $wrapper.html(html);\n\n wrapper.reviewForm();\n\n wrapper.loginPopup();\n\n wrapper.pager();\n\n if (updateSorting) {\n updateSorting = false;\n wrapper.scrollToTop(); \n }\n\n //bind controls\n Vendd.MessageBus.publish(wrapper, new Vendd.Widget.Messages.BindControl($wrapper));\n\n wrapper.loading(false);\n };\n\n wrapper.updateSorting = function (sorting) {\n wrapper.loading(true);\n\n updateSorting = true;\n pageNumber = 1;\n totalPageSize = pageSize;\n sortBy = sorting;\n\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Product.Messages.GetReviews(productId, pageNumber, pageSize, sortBy, isInitialCall, filterBy));\n };\n\n wrapper.scrollToTop = function () {\n var scrollOffset = $(window).width() > 960 ? 100 : 50;\n $('html, body').animate({ scrollTop: $('.product-details-region .x-pd-tab-panel .tab-content.reviews').offset().top - scrollOffset }, 100);\n };\n\n $wrapper.on('click', '*[data-click=\"order-by-latest\"]', function (e) {\n wrapper.updateSorting(\"latest\");\n });\n\n $wrapper.on('click', '*[data-click=\"order-by-helpfullness\"]', function (e) {\n wrapper.updateSorting(\"helpfullness\");\n });\n\n $wrapper.on('click', '*[data-click=\"order-by-verified-buyer\"]', function (e) {\n wrapper.updateSorting(\"verifiedbuyer\");\n });\n\n $wrapper.on('change', 'input[name=\"verifiedBuyer\"]', function (e) {\n var $this = $(this);\n\n if ($this.is(\":checked\")) {\n isVerifiedBuyerChecked = true;\n filterBy = \"verifiedbuyer\";\n } else {\n isVerifiedBuyerChecked = false;\n filterBy = \"\";\n }\n\n wrapper.updateSorting(sortBy);\n });\n\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Product.Messages.GetReviews(productId, pageNumber, pageSize, sortBy, isInitialCall, filterBy));\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.GetReviewsSuccess, wrapper, function (envelope) {\n model = envelope.message.data.Data;\n\n //add product id in model\n model.Id = productId;\n //add parameter in stars model\n if (model.Authenticated && !model.ReviewdByCurrentUser) {\n model.Stars.Enabled = true;\n } else {\n model.Stars.Enabled = false;\n }\n //add filter verified buyer in model\n model.IsVerifiedBuyerChecked = isVerifiedBuyerChecked;\n\n //get literals, consents and sorting options\n if (isInitialCall) {\n isInitialCall = false;\n consents = { Consents: envelope.message.data.Data.Consents };\n sorting = { SortingOptions: envelope.message.data.Data.SortingOptions };\n literals = envelope.message.data.Text;\n } else {\n //extend model with consents\n _.extend(model, consents);\n //extend model with sorting options\n _.extend(model, sorting);\n }\n\n //extend model with literals\n _.extend(model, literals);\n\n //update\n if (loadMoreReviews) {\n loadMoreReviews = false;\n wrapper.loadMoreReviews();\n } else {\n wrapper.update();\n } \n });\n\n function wrapBoxes($boxes, lastItem, model) {\n var items = [], currentIndex, cssClass;\n\n lastItem.removeClass('last');\n\n currentIndex = lastItem.data('index') + 1;\n\n for (var i = 0; i < $boxes.length; i++) {\n var li = $('
  • ');\n\n cssClass = \"item\" + currentIndex + \" \" + \"review-item\";\n cssClass += (i === $boxes.length - 1) ? \" last\" : \"\";\n\n li.append($boxes.eq(i))\n .addClass(cssClass)\n .attr('data-index', currentIndex)\n .attr('data-page', pageNumber);\n\n items.push(li);\n\n currentIndex++;\n }\n\n return items;\n };\n\n});","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Widget.Messages.BindControl, 'x-product-review-form', function (envelope) {\n\n var $context = envelope.message.data.context,\n $form = $('.x-product-review-form', $context);\n\n if ($form.length < 1) return;\n\n var form = $form.get(0);\n var config = {};\n\n //generic functions in form.js\n hookFormsFn($form);\n hookAjaxFormsFn($form);\n\n var onSuccessFn = form.onSuccess;\n\n form.onSuccess = function (request, response) {\n onSuccessFn(request, response);\n };\n\n form.submit = function (configuration) {\n config = configuration;\n\n if (LhApp.Context.IsConsentsEnabled) {\n form.checkConsents(config);\n } else {\n form.submitReview(config);\n }\n };\n\n form.submitReview = function () {\n if (form.isLoading())\n return;\n\n form.showLoader();\n\n var state = Vendd.Product.Controller.getState();\n var id = state.parentId;\n\n Vendd.MessageBus.publishAsync(form, new Vendd.Product.Messages.Review(config.title, config.description, config.rating, id));\n };\n\n form.checkConsents = function (config) {\n var data = [];\n\n var checkboxes = $('.form-row.consent.checkbox', $form);\n $.each(checkboxes, function (e, el) {\n var chkbx = $('.checkbox-wrapper input', el);\n data.push({ type: chkbx.attr('id'), source: 'Review Form', approved: chkbx.prop(\"checked\") });\n });\n\n if (data.length > 0) {\n window.ConsentsManager.insertConsents(data);\n } else {\n form.submitReview(config);\n }\n };\n\n function successFn(envelope) {\n form.hideLoader();\n\n var responseData = envelope.message.data;\n\n if (responseData.Success) responseData.success = responseData.Success;\n if (responseData.Code) responseData.code = responseData.Code;\n if (responseData.data) responseData.data = responseData.Data;\n if (responseData.time) responseData.time = responseData.Time;\n\n if (!responseData.success && responseData.code == 'GenericError') {\n if (typeof (responseData.Data) == 'string') {\n try {\n responseData.Data = jQuery.parseJSON(responseData.Data);\n } catch (e) {\n\n }\n };\n };\n\n if (responseData.success && typeof (form.onSuccess) === 'function') {\n form.onSuccess(envelope.message.config, responseData);\n } else {\n if (!responseData.success && typeof (form.onFailure) === 'function') {\n form.onFailure(envelope.message.config, responseData);\n };\n };\n };\n\n function failureFn(ex) {\n form.hideLoader();\n\n var response = {\n code: 'GenericError',\n success: false,\n time: 0\n };\n\n if (ex.responseText) {\n response.data = jQuery.parseJSON(ex.responseText)\n } else {\n response.data = ex;\n }\n\n if (typeof (form.onFailure) === 'function') {\n form.onFailure(config, response);\n }\n };\n\n if ($(\".view-terms\", $form).length > 0) {\n $(\".view-terms\", $form).fancybox({\n touch: false\n });\n }\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.ReviewSuccess, form, successFn);\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.ReviewFailure, form, failureFn);\n\n Vendd.MessageBus.subscribe(Vendd.Consents.Messages.InsertConsents, form, form.submitReview);\n\n });\n\n});\n\n","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Widget.Messages.BindControl, 'x-product-review-box', function (envelope) {\n\n var $context = envelope.message.data.context,\n $boxes = $('.x-product-review-box', $context);\n\n if ($boxes.length < 1) return;\n\n $boxes.each(function (i, box) {\n\n var $box = $(box);\n\n var reviewId = $box.data('reviewid');\n var sessionIsAuthenticated = $box.data('session-is-authenticated'); \n var currentUserVotedForHelpfullness = $box.data('current-user-voted-for-helpfullness'); \n\n var $loginPopup = $('div[data-type=\"helpfullness-login-popup\"]', $box);\n\n var $btnVote = $box.find('.vote-btn');\n var $btnVoteYes = $box.find('*:enabled[data-click=\"vote-yes\"]');\n var $voteYesInputWrapper = $btnVoteYes.parent();\n var $btnVoteNo = $box.find('*:enabled[data-click=\"vote-no\"]');\n var $voteNoInputWrapper = $btnVoteNo.parent();\n var $totalYesVotes = $box.find('*[data-input=\"helpfullness-yes-total\"]');\n var $totalNoVotes = $box.find('*[data-input=\"helpfullness-no-total\"]');\n var $userVotedMessage = $box.find('.user-voted');\n var $voteError = $box.find('.vote-msg-error');\n\n function yesVoteSuccess(response) {\n if (response.success) {\n $totalYesVotes.val(parseInt($totalYesVotes.val()) + 1);\n $btnVoteYes.prop('disabled', true);\n $voteYesInputWrapper.addClass('x-disabled');\n $btnVoteNo.prop('disabled', true);\n $voteNoInputWrapper.addClass('x-disabled');\n $userVotedMessage.show();\n\n } else {\n $voteError.html(LhApp.Function.getText('Validation:' + response.code));\n $voteError.show();\n };\n };\n\n function noVoteSuccess(response) {\n if (response.success) {\n $totalNoVotes.val(parseInt($totalNoVotes.val()) + 1);\n $btnVoteYes.prop('disabled', true);\n $voteYesInputWrapper.addClass('x-disabled');\n $btnVoteNo.prop('disabled', true);\n $voteNoInputWrapper.addClass('x-disabled');\n $userVotedMessage.show();\n\n } else {\n $voteError.html(LhApp.Function.getText('Validation:' + response.code));\n $voteError.show();\n };\n };\n\n function voteFailure(response) {\n $voteError.html(LhApp.Function.getText('Validation:' + response.code));\n $voteError.show();\n };\n\n $btnVote.click(function (e) {\n if (sessionIsAuthenticated) {\n if (!currentUserVotedForHelpfullness) {\n $voteError.hide();\n if ($(this).hasClass('vote-btn-yes')) {\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Product.Messages.ReviewVote(reviewId, true));\n } else if ($(this).hasClass('vote-btn-no')) {\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Product.Messages.ReviewVote(reviewId, false));\n }\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.ReviewVoteSuccess, wrapper, function (envelope) {\n if (envelope.message.data.vote === true) {\n yesVoteSuccess(envelope.message.data.response)\n } else {\n noVoteSuccess(envelope.message.data.response)\n };\n Vendd.MessageBus.unsubscribe(Vendd.Product.Messages.ReviewVoteSuccess, wrapper);\n });\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.ReviewVoteFailure, wrapper, function (envelope) {\n voteFailure(envelope.message.data.response);\n Vendd.MessageBus.unsubscribe(Vendd.Product.Messages.ReviewVoteFailure, wrapper);\n });\n\n };\n } else {\n $loginPopup.show();\n };\n });\n\n if (!sessionIsAuthenticated) {\n\n var $loginLink = $('*[data-click=\"login\"]', $loginPopup);\n var $registerLink = $('*[data-click=\"register\"]', $loginPopup);\n var $closeBtn = $('*[data-click=\"close-popup\"]', $loginPopup);\n\n var $loginWidget = $('.x-control.x-widget.x-login-widget').first();\n var redirectUrl = LhApp.Function.Url.setParameterValue('mode', 'view-reviews');\n\n $loginLink.click(function (e) {\n $loginPopup.hide();\n\n var $loginForm = $('.x-login-form .login-form', $loginWidget);\n $loginForm.attr('data-redirect', redirectUrl);\n\n $('.js-widget-trigger', $loginWidget).trigger('click');\n });\n\n $registerLink.click(function (e) {\n document.location = LhApp.Function.Url.setParameterValueOnUrl(LhApp.Url.Page.Register, 'ReturnUrl', encodeURIComponent(redirectUrl));\n });\n\n $closeBtn.click(function (e) {\n $loginPopup.hide();\n });\n } else {\n $loginPopup.remove();\n }\n });\n\n });\n\n});","Vendd.Scripts.load(function () {\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'x-pd-reviews-summary', function (envelope) {\n\n var $context = envelope.message.data.context,\n $control = $('.x-pd-reviews-summary', $context),\n model = null, literals = null, isInitialCall = true;\n\n if ($control.length < 1) return;\n\n control = $control.get(0);\n\n control.bind = function () {\n //initialize stars\n if ($('.x-review-stars[data-type=\"stars\"]', $control).length > 0) {\n $('.x-review-stars[data-type=\"stars\"]', $control).each(function (i, wrapper) {\n\n var $wrapper = $(wrapper);\n\n var isRateMode = $wrapper.data('is-rate-mode');\n var ratingSummaryData = $wrapper.data('rating-summary');\n var ratingSummary = 0.00;\n\n if (typeof ratingSummaryData === 'string') {\n ratingSummary = parseFloat(ratingSummaryData.replace(\",\", \".\"));\n } else if (typeof ratingSummaryData === 'number') {\n ratingSummary = parseFloat(ratingSummaryData);\n }\n\n initStars(isRateMode, ratingSummary, $wrapper);\n });\n }\n\n //scroll to reviews\n if ($('.js-scroll-to-reviews', $control).length > 0) {\n $('.js-scroll-to-reviews', $control).click(function () {\n scrollOffset = $(window).width() > 960 ? 100 : 50;\n $('.product-details-region .x-pd-tab-panel .tab-title.reviews').trigger('click');\n $('html, body').animate({ scrollTop: $('.product-details-region .x-pd-tab-panel .tab-content.reviews').offset().top - scrollOffset }, 1);\n });\n }\n \n //scroll to review form and open it\n if ($('.js-scroll-to-review-form', $control).length > 0) {\n $('.js-scroll-to-review-form', $control).click(function () {\n scrollOffset = $(window).width() > 960 ? 100 : 50;\n $('.product-details-region .x-pd-tab-panel .tab-title.reviews').trigger('click');\n $('html, body').animate({ scrollTop: $('.product-details-region .x-pd-tab-panel .tab-content.reviews').offset().top - scrollOffset }, 1);\n $('[data-click=\"open-product-review-form\"]').trigger('click');\n });\n }\n \n };\n\n control.update = function () {\n\n var html = Vendd.Handlebars.parse(\"pdReviewsSummary_A\", model);\n\n $control.html(html);\n\n control.bind();\n };\n\n control.bind();\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.GetReviewsSuccess, control, function (envelope) {\n if (isInitialCall) {\n model = envelope.message.data.Data;\n model.Stars.Enabled = false;\n\n //update\n control.update();\n\n isInitialCall = false;\n }\n }); \n\n });\n\n});","Vendd.Scripts.load(function () {\n\n $('.x-control.x-order.x-orderchangeform').each(function (i, wrapper) {\n var $wrapper = $(wrapper);\n var $orderItems = $('[data-container=\"orderItem\"]', $wrapper);\n var $submitButton = $('button[type=\"button\"][data-click=\"submit\"]', $wrapper);\n var cash = $wrapper.data('cash');\n\n wrapper.items = [];\n\n $orderItems.each(function (i, item) {\n var $orderItem = $(item);\n var oid = $orderItem.data('id');\n\n var $checkboxAction = $('.option-action-checkbox', $orderItem);\n var $changeOrderForms = $('.change-order-form', $orderItem);\n\n var replaceValOpts = {\n replaceWith: {\n required: 'replaceWith-required'\n },\n returnReason: {\n required: 'returnReason-required'\n }\n };\n\n var refundValOpts = {\n refundReason: {\n required: 'refundReason-required'\n }\n };\n\n if (cash) {\n refundValOpts['cardnumber'] = {\n required: 'cardnumber-required'\n };\n refundValOpts['bankName'] = {\n required: 'bankName-required'\n };\n refundValOpts['ccname'] = {\n required: 'ccname-required'\n };\n }\n\n $orderItem.validationEngine({});\n\n item.validateInit = function () {\n $orderItem.data('validationEngine').destroy();\n if ($checkboxAction.filter(\":checked\").val() == \"replace\") {\n $orderItem.validationEngine(replaceValOpts);\n } else if ($checkboxAction.filter(\":checked\").val() == \"refund\") {\n $orderItem.validationEngine(refundValOpts);\n } else if ($checkboxAction.filter(\":checked\").val() == \"credit-balance\") {\n $orderItem.validationEngine({});\n }\n };\n\n $checkboxAction.off(\"change\").on(\"change\", function () {\n var targetedForm = $(this).data('target');\n\n $orderItem.data('validationEngine').reset();\n\n if ($(this).is(':checked')) {\n $checkboxAction.filter('[data-target!=' + targetedForm + ']').prop(\"checked\", false);\n\n $changeOrderForms.removeClass(\"shown\");\n $changeOrderForms.filter('[data-target=' + targetedForm + ']').addClass(\"shown\");\n\n item.validateInit();\n } else {\n $changeOrderForms.filter('[data-target=' + targetedForm + ']', $orderItem).removeClass(\"shown\");\n $orderItem.validationEngine({});\n }\n $submitButton.prop(\"disabled\", $(\".option-action-checkbox:checked\", $wrapper).length <= 0);\n });\n\n $('select[data-member=\"returnReason\"], select[data-member=\"refundReason\"]', $orderItem).off(\"change\").on(\"change\", function () {\n var textareaName;\n\n if ($(this).val() === 'other') {\n if ($checkboxAction.filter(\":checked\").val() == \"replace\") {\n textareaName = $('textarea[data-member=\"returnNote\"]', $orderItem).attr('name');\n replaceValOpts[textareaName] = {\n required: textareaName + '-required'\n };\n } else if ($checkboxAction.filter(\":checked\").val() == \"refund\") {\n textareaName = $('textarea[data-member=\"refundNote\"]', $orderItem).attr('name');\n refundValOpts[textareaName] = {\n required: textareaName + '-required'\n };\n }\n } else {\n if ($checkboxAction.filter(\":checked\").val() == \"replace\") {\n textareaName = $('textarea[data-member=\"returnNote\"]', $orderItem).attr('name');\n replaceValOpts = _.omit(replaceValOpts, textareaName);\n } else if ($checkboxAction.filter(\":checked\").val() == \"refund\") {\n textareaName = $('textarea[data-member=\"refundNote\"]', $orderItem).attr('name');\n refundValOpts = _.omit(refundValOpts, textareaName);\n }\n }\n\n });\n\n $orderItem.on('keyup', 'input[name], textarea[name]', function (e) {\n var fieldName = $(this).attr('name');\n var rfTemp = $orderItem.data('validationEngine');\n\n rfTemp.validate(fieldName);\n });\n\n $orderItem.on('change', 'select[name]', function (e) {\n var fieldName = $(this).attr('name');\n var rfTemp = $orderItem.data('validationEngine');\n\n rfTemp.validate(fieldName);\n });\n\n item.getValue = function () {\n\n var defaultOpts = {\n id: oid,\n action: undefined,\n note: undefined,\n returnReason: undefined,\n replaceProductItemId: undefined,\n bankName: undefined,\n bankHolder: undefined,\n bankIban: undefined\n };\n\n if ($checkboxAction.filter(\":checked\").val() == \"replace\") {\n defaultOpts.action = 'replace';\n defaultOpts.replaceProductItemId = $('[data-member=\"replaceWith\"]', $changeOrderForms).val();\n\n defaultOpts.returnReason = $('[data-member=\"returnReason\"]', $changeOrderForms).val();\n defaultOpts.note = $('[data-member=\"returnNote\"]', $changeOrderForms).val();\n } else if ($checkboxAction.filter(\":checked\").val() == \"refund\") {\n defaultOpts.action = 'refund';\n\n defaultOpts.returnReason = $('[data-member=\"refundReason\"]', $changeOrderForms).val();\n defaultOpts.note = $('[data-member=\"refundNote\"]', $changeOrderForms).val();\n\n defaultOpts.bankName = $('[data-member=\"bankName\"]', $changeOrderForms).val();\n defaultOpts.bankHolder = $('[data-member=\"ccname\"]', $changeOrderForms).val();\n defaultOpts.bankIban = $('[data-member=\"cardnumber\"]', $changeOrderForms).val();\n }\n else if ($checkboxAction.filter(\":checked\").val() == \"credit-balance\") {\n defaultOpts.action = 'credit-balance';\n }\n\n\n return defaultOpts;\n };\n });\n\n $submitButton.off(\"click\").on(\"click\", function () {\n wrapper.items = [];\n var validate = true;\n\n $orderItems.each(function (i, orderItem) {\n var $orderItem = $(orderItem);\n if ($('.option-action-checkbox', $orderItem).filter(\":checked\").length > 0) {\n var replaceProductItemId = $(\".replaceWithSearchText\", $orderItem).attr(\"data-variantid\");\n $(\"[name='replaceWith']\", $orderItem).val(replaceProductItemId);\n var rf = $orderItem.data('validationEngine');\n var val = rf.validate();\n if (val) {\n validate = validate && true;\n } else {\n validate = false;\n }\n wrapper.items.push(orderItem.getValue());\n }\n });\n\n if (wrapper.items.length > 0 && validate) {\n $('.order-items', $wrapper).addClass('x-loading');\n wrapper.submit();\n } else {\n $('html, body').animate({\n scrollTop: $('.form-row.with-error', $wrapper).first().closest('.change-order-form').offset().top - 50\n }, 600);\n }\n });\n\n wrapper.submit = function () {\n\n var resultData = {\n id: $wrapper.data('id'),\n items: wrapper.items\n };\n\n Vendd.Service.call({\n url: 'EcomService.svc/ChangeOrder',\n data: {\n data: resultData\n },\n onSuccess: function (res) {\n if (res.success) {\n $('[data-section=\"content\"]', $wrapper).hide();\n $('.js-success', $wrapper).show();\n $('.js-error', $wrapper).hide();\n } else {\n $('.js-success', $wrapper).hide();\n $('.js-error', $wrapper).show();\n $('html, body').animate({\n scrollTop: $('.js-error', $wrapper).offset().top - 50\n }, 600);\n }\n $('.order-items', $wrapper).removeClass('x-loading');\n }\n });\n };\n });\n\n\n});","Vendd.Scripts.load(function () {\n 'use strict';\n\n var $wrappers = $('.x-cart-searchbox');\n\n $wrappers.each(function (i, wrapper) {\n var $wrapper = $(wrapper);\n\n var $list = $('.x-cart-searchbox-results', $wrapper);\n\n if ($wrapper.length < 1 || $list.length < 1) return;\n\n var model = {},\n resultsPerPage = $wrapper.attr('data-page-size'),\n maxResults = parseInt(resultsPerPage) > 0 ? parseInt(resultsPerPage) : 12,\n pdPageNum = 1,\n isProductSelected = false,\n isLookupCompleted = false,\n list = $list.get(0),\n $searchInput = $('.js-keyword', $wrapper),\n $qtyInput = $('.js-quantity', $wrapper),\n $increaseQtyInput = $('.js-incr-quantity', $wrapper),\n $decreaseQtyInput = $('.js-decr-quantity', $wrapper),\n $submitButton = $('.js-add-to-cart', $wrapper),\n minLength = $wrapper.attr('data-min-search-length');\n\n var lazyLoadPrices = $wrapper.attr('data-lazyload-prices');\n if (typeof lazyLoadPrices === 'string') {\n lazyLoadPrices = lazyLoadPrices.trim().toLowerCase() === 'true';\n }\n\n wrapper.loading = function loading(loading) {\n isLookupCompleted = !loading;\n if (loading) {\n $wrapper.addClass('x-loading').addClass('x-disabled');\n } else {\n $wrapper.removeClass('x-loading').removeClass('x-disabled');\n }\n };\n\n wrapper.enableInput = function enableInput(enable, $input) {\n if (enable) {\n $input.removeAttr('disabled').prop('disabled', false);\n } else {\n $input.attr('disabled', 'disabled').prop('disabled', true);\n }\n };\n\n wrapper.enableInputs = function enableInputs(enable) {\n wrapper.enableInput(false, $decreaseQtyInput);\n wrapper.enableInput(enable, $increaseQtyInput);\n wrapper.enableInput(enable, $qtyInput);\n wrapper.enableInput(enable, $submitButton);\n };\n\n list.update = function update() {\n wrapper.loading(true);\n\n var html = Vendd.Handlebars.parse(\"cartSearchBoxResults_A\", model);\n var $html = $(html);\n var $newProducts = $('.product-results', $html);\n var $products = $('.product-results', $list).last();\n\n if ($products.length > 0) {\n $newProducts.insertAfter($products);\n } else {\n $html.appendTo($list);\n }\n \n if (!model.MoreProducts) {\n $('.js-more-results', $list).hide();\n }\n\n wrapper.loading(false);\n };\n\n list.clear = function clear() {\n $list.html(\"\");\n };\n\n list.show = function show(show) {\n if (show) {\n $wrapper.addClass('active');\n $list.addClass(\"js-visible\");\n } else {\n $wrapper.removeClass('active');\n $list.removeClass(\"js-visible\");\n }\n };\n\n wrapper.checkSearchTerm = function (searchTerm) {\n return /[a-zα-ωάέήίόύώϊϋΐΰςа-я0-9]+/i.test(searchTerm);\n };\n\n wrapper.setSelectedProduct = function setSelectedProduct(data) {\n var productId = (data) ? data.productId : '',\n variantId = (data) ? data.variantId : '',\n path = (data) ? data.path : '',\n availabilityActionId = (data) ? data.availabilityActionId : '',\n name = (data) ? data.name : '',\n stock = (data) ? data.stock : 0,\n minQuantity = (data) ? data.minQuantity : 0,\n maxQuantity = (data) ? data.maxQuantity : 0,\n quanta = (data) ? data.quanta : 0,\n color = (data) ? data.color : \"\",\n size = (data) ? data.size : \"\",\n list = (data) ? data.list : \"\";\n\n $searchInput.attr('data-productid', productId);\n $searchInput.attr('data-variantid', variantId);\n $searchInput.attr('data-path', path);\n $searchInput.attr('data-availability-action-id', availabilityActionId);\n $searchInput.attr('data-min-quantity', minQuantity);\n $searchInput.attr('data-max-quantity', maxQuantity);\n $searchInput.attr('data-quanta', quanta);\n $searchInput.attr('data-color', color);\n $searchInput.attr('data-size', size);\n $searchInput.attr('data-list', list);\n if (name != \"\") $searchInput.val(name);\n $qtyInput.attr('data-stock', stock);\n\n var quantity = stock > minQuantity ? minQuantity : 1;\n if (quantity > 0 && quanta > 0 && quantity % quanta !== 0) {\n quantity = quanta;\n }\n\n $qtyInput.val(numberToString(quantity));\n\n wrapper.enableInputs(stock > 0);\n isProductSelected = (data) ? true : false;\n };\n\n $list.on('click', '.js-list-item', function () {\n var $item = $(this);\n var data = {\n productId: $item.attr('data-productid').toString(),\n variantId: $item.attr('data-variantid').toString(),\n path: $item.attr('data-path').toString(),\n availabilityActionId: $item.attr('data-availability-action-id').toString(),\n name: $item.attr('data-name'),\n stock: parseInt($item.attr('data-stock')),\n minQuantity: parseFloat(($item.attr('data-min-quantity') ? stringToNumber($item.attr('data-min-quantity')) : null) || 1),\n maxQuantity: parseFloat(($item.attr('data-max-quantity') ? stringToNumber($item.attr('data-max-quantity')) : null) || $item.attr('data-stock')),\n quanta: parseFloat(($item.attr('data-quanta') ? stringToNumber($item.attr('data-quanta')) : null) || 1),\n color: $item.attr('data-color') ? $item.attr('data-color') : \"\",\n size: $item.attr('data-size') ? $item.attr('data-size') : \"\",\n list: $item.attr('data-list') ? $item.attr('data-list') : \"\"\n };\n\n wrapper.setSelectedProduct(data);\n list.show(false);\n\n if ($('.x-orderchangeform').length > 0) {\n $item.closest('[data-container=\"orderItem\"]').find(\"[name='replaceWith']\").val(data.variantId);\n $item.closest('[data-container=\"orderItem\"]').attr('data-validationEngine').validate('replaceWith');\n }\n\n });\n\n $list.on('click', '.js-more-results', function () {\n var searchTerm = $searchInput.val();\n if ($searchInput.val().length >= minLength && !isProductSelected) {\n pdPageNum++;\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.ElasticSearch.Messages.GetProductElasticResults(searchTerm, pdPageNum, maxResults));\n } else {\n list.show(false);\n };\n });\n\n $wrapper.on('click', '.js-incr-quantity', function () {\n var $this = $(this);\n if ($this.hasClass('x-disabled') || $this.is(':disabled'))\n return;\n\n var stock = parseInt($qtyInput.attr('data-stock'));\n\n var quanta = parseFloat(($searchInput.attr('data-quanta') ? stringToNumber($searchInput.attr('data-quanta')) : null) || 1);\n var minQuantity = parseFloat(($searchInput.attr('data-min-quantity') ? stringToNumber($searchInput.attr('data-min-quantity')) : null) || 1);\n var maxQuantity = parseFloat(($searchInput.attr('data-max-quantity') ? stringToNumber($searchInput.attr('data-max-quantity')) : null) || stock);\n\n var tempQuantity = parseFloat(stringToNumber($qtyInput.val()));\n\n if (tempQuantity >= 0) {\n tempQuantity = tempQuantity + quanta;\n\n if (tempQuantity <= maxQuantity) {\n wrapper.enableInput(tempQuantity !== maxQuantity, $increaseQtyInput);\n $qtyInput.val(numberToString(tempQuantity));\n } else {\n wrapper.enableInput(false, $increaseQtyInput);\n }\n\n if (tempQuantity > minQuantity) wrapper.enableInput(true, $decreaseQtyInput);\n }\n\n var enableSubmitButton = (parseFloat(stringToNumber($qtyInput.val())) > 0 && isProductSelected);\n wrapper.enableInput(enableSubmitButton, $submitButton);\n });\n\n $wrapper.on('click', '.js-decr-quantity', function () {\n var $this = $(this);\n if ($this.hasClass('x-disabled') || $this.is(':disabled'))\n return;\n\n var stock = parseInt($qtyInput.attr('data-stock'));\n var tempQuantity = parseFloat(stringToNumber($qtyInput.val()));\n var quanta = parseFloat(($searchInput.attr('data-quanta') ? stringToNumber($searchInput.attr('data-quanta')) : null) || 1);\n var minQuantity = parseFloat(($searchInput.attr('data-min-quantity') ? stringToNumber($searchInput.attr('data-min-quantity')) : null) || 1);\n var maxQuantity = parseFloat(($searchInput.attr('data-max-quantity') ? stringToNumber($searchInput.attr('data-max-quantity')) : null) || stock);\n\n if (tempQuantity !== minQuantity && tempQuantity > 0) {\n tempQuantity = tempQuantity - quanta;\n $qtyInput.val(numberToString(tempQuantity));\n wrapper.enableInput(true, $increaseQtyInput);\n }\n\n if (tempQuantity <= minQuantity) wrapper.enableInput(false, $decreaseQtyInput);\n\n var enableSubmitButton = (parseFloat(stringToNumber($qtyInput.val())) > 0 && isProductSelected);\n wrapper.enableInput(enableSubmitButton, $submitButton);\n });\n\n $wrapper.on('keyup', '.js-quantity', function () {\n var $this = $(this);\n if ($this.hasClass('x-disabled') || $this.is(':disabled'))\n return;\n\n var stock = parseInt($qtyInput.attr('data-stock'));\n\n var tempQuantity = parseFloat(stringToNumber($qtyInput.val()));\n var quanta = parseFloat(($searchInput.attr('data-quanta') ? stringToNumber($searchInput.attr('data-quanta')) : null) || 1);\n var minQuantity = parseFloat(($searchInput.attr('data-min-quantity') ? stringToNumber($searchInput.attr('data-min-quantity')) : null) || 1);\n var maxQuantity = parseFloat(($searchInput.attr('data-max-quantity') ? stringToNumber($searchInput.attr('data-max-quantity')) : null) || stock);\n\n if (quanta > 1 && tempQuantity % quanta !== 0) {\n tempQuantity = tempQuantity - (tempQuantity % quanta);\n }\n\n var selectedQuantity = tempQuantity;\n\n if (tempQuantity < maxQuantity && tempQuantity > minQuantity) {\n selectedQuantity = tempQuantity;\n } else if (tempQuantity >= maxQuantity) {\n selectedQuantity = quanta > 1 && maxQuantity % quanta !== 0 ? maxQuantity - (maxQuantity % quanta) : maxQuantity;\n } else if (tempQuantity <= minQuantity) {\n selectedQuantity = quanta > 1 && minQuantity % quanta !== 0 ? minQuantity - (minQuantity % quanta) : minQuantity;\n } else {\n //if qty is NaN\n if (minQuantity) {\n selectedQuantity = minQuantity;\n } else if (quanta) {\n selectedQuantity = quanta;\n } else {\n selectedQuantity = 1;\n }\n }\n\n $qtyInput.val(numberToString(selectedQuantity));\n\n var enableIncreaseQtyInput = (tempQuantity < maxQuantity),\n enableDecreaseQtyInput = (tempQuantity > minQuantity),\n enableSubmitButton = (selectedQuantity > minQuantity && selectedQuantity > maxQuantity && isProductSelected);\n\n wrapper.enableInput(enableIncreaseQtyInput, $increaseQtyInput);\n wrapper.enableInput(enableDecreaseQtyInput, $decreaseQtyInput);\n wrapper.enableInput(enableSubmitButton, $submitButton);\n });\n\n $wrapper.on('keydown', '.js-quantity', function (e) {\n numbersOnly(e);\n });\n\n $wrapper.on('click', '.js-add-to-cart', function (e) {\n if ($searchInput.val().length >= minLength && isLookupCompleted && isProductSelected) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this);\n\n if ($this.hasClass('x-disabled') || $this.is(':disabled'))\n return;\n\n if ($('.x-warehouse-selector-widget').trigger('addtocart').hasClass('opening'))\n return;\n\n var id = $searchInput.attr('data-productid');\n var skuId = $searchInput.attr('data-variantid');\n var path = $searchInput.attr('data-path');\n var qty = parseFloat(stringToNumber($qtyInput.val())) || 1;\n var extraAttributes = [];\n var bundleItems = [];\n var recipeItems = [];\n var comboItems = [];\n var itemInfo = {\n minQuantity: parseFloat(($searchInput.attr('data-min-quantity') ? stringToNumber($searchInput.attr('data-min-quantity')) : null) || 0),\n maxQuantity: parseFloat(($searchInput.attr('data-max-quantity') ? stringToNumber($searchInput.attr('data-max-quantity')) : null) || 0),\n quanta: parseFloat(($searchInput.attr('data-quanta') ? stringToNumber($searchInput.attr('data-quanta')) : null) || 0),\n };\n\n //enhanced info\n var color = $searchInput.attr('data-color');\n var size = $searchInput.attr('data-size');\n var list = $searchInput.attr('data-list');\n var enhancedInfo = { color: color, size: size, list: list };\n\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Cart.Messages.Add(id, skuId, path, qty, extraAttributes, bundleItems, recipeItems, comboItems, itemInfo, enhancedInfo));\n };\n });\n\n $wrapper.on('keyup', '.js-keyword', $.debounce(850, function () {\n var searchTerm = $searchInput.val();\n\n //reset\n if (isProductSelected) wrapper.setSelectedProduct(null);\n list.clear();\n pdPageNum = 1;\n\n if (searchTerm.length >= minLength && wrapper.checkSearchTerm(searchTerm)) {\n wrapper.loading(true);\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.ElasticSearch.Messages.GetProductElasticResults(searchTerm, pdPageNum, maxResults));\n } else {\n list.show(false);\n }\n }));\n\n $wrapper.on('click', '.js-keyword', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n $searchInput.select();\n });\n\n $wrapper.on('focus', '.js-keyword', function () {\n var show = ($searchInput.val().length >= minLength && isLookupCompleted && !isProductSelected);\n list.show(show);\n });\n\n $wrapper.on('click', '.js-search-toggle', function (e) {\n if (!$wrapper.hasClass('active')) return;\n\n list.show(false);\n });\n\n Vendd.MessageBus.subscribe(Vendd.ElasticSearch.Messages.GetProductElasticResultsFailed, wrapper, function (envelope) {\n list.show(false);\n wrapper.loading(false);\n });\n\n Vendd.MessageBus.subscribe(Vendd.ElasticSearch.Messages.GetProductElasticResultsSuccess, wrapper, function (envelope) {\n if (envelope.message.data.sender !== wrapper) return;\n\n model = envelope.message.data.model;\n\n //check if current user has custom prices\n var currentUser = Vendd.User && Vendd.User.GetClientModel();\n var customPrices = currentUser && currentUser.HasCustomPrices;\n model.HasLazyLoadPrices = lazyLoadPrices || customPrices;\n\n model.MoreProducts = ((((model || {}).hits || {}).total || {}).value || 0) > (maxResults * pdPageNum);\n if (pdPageNum > 1) model.PageNumber = pdPageNum;\n\n if (model.HasLazyLoadPrices && model.hits.hits.length > 0) {\n var items = _.pluck(_.pluck(model.hits.hits, '_source'), 'VariantId');\n var obj = {\n itemIds: items,\n fetchPrices: true,\n fetchAvailabilities: false,\n fetchStock: false\n };\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.ScrollList.Messages.GetClientProductListData(obj));\n\n Vendd.MessageBus.subscribe(Vendd.ScrollList.Messages.GetClientProductListDataSuccess, wrapper, function (envelope) {\n var result = JSON && JSON.parse(envelope.message.data) || $.parseJSON(envelope.message.data);\n var modelWithPrices = _.each(model.hits.hits, function (obj) {\n var selectedProduct = _.find(result.Products, function (x) { return obj._source.VariantId === x.VariantId; });\n if (selectedProduct) _.extend(obj._source, selectedProduct.Prices);\n\n if (obj._source['Flags']) {\n var flags = obj._source['Flags'],\n arrayFlags = [];\n\n for (var p in flags) {\n arrayFlags.push({ 'Key': p, 'Value': flags[p] });\n }\n\n obj._source['Flags'] = arrayFlags;\n }\n });\n _.extend(model.hits.hits, modelWithPrices);\n\n list.update();\n list.show(true);\n Vendd.MessageBus.unsubscribe(Vendd.ScrollList.Messages.GetClientProductListDataSuccess, wrapper);\n });\n } else {\n list.update();\n list.show(true);\n }\n });\n\n $(document).mouseup(function (e) {\n if (!$wrapper.is(e.target) && $wrapper.has(e.target).length === 0) {\n list.show(false);\n }\n });\n\n });\n});","Vendd.Scripts.load(function () {\n\n var $wrapper = $('.x-product-details'),\n wrapper;\n var model = null, firstLoad = true, lazyLoadSender = false,\n wishlistModel, compareModel, userModel;\n\n if ($wrapper.length < 1)\n return;\n\n wrapper = $wrapper.get(0);\n\n var $pdTabPanel = $('.x-pd-tab-panel');\n //example: bundleItems: [{bundleProductId:'testValue', parentProductId:'testValue', productId:'testValue', quantity: 'testValue'}]\n var bundleItems = [];\n\n var $bundleItems = $('.js-bundle-item-list .js-bundle-item', $wrapper);\n $.each($bundleItems, function (i, control) {\n var $control = $(control);\n var isDynamic = $control.data('is-dynamic').toLowerCase() === 'true';\n var bundleProductId = parseInt($control.data('bundle-id'));\n var parentProductId = $control.data('parent-id');\n var productId = $control.data('selected-id');\n\n var $qty = $('.js-quantity', $control);\n\n if (isDynamic) {\n bundleItems.push({\n bundleProductId: bundleProductId,\n parentProductId: parentProductId,\n productId: productId,\n quantity: parseInt($qty.val())\n });\n }\n });\n\n var recipeItems = [];\n var comboItems = [];\n var minQuantity = ($wrapper.data('min-quantity') ? stringToNumber($wrapper.data('min-quantity')) : null) || 0;\n var maxQuantity = ($wrapper.data('max-quantity') ? stringToNumber($wrapper.data('max-quantity')) : null) || 0;\n var quanta = ($wrapper.data('quanta') ? stringToNumber($wrapper.data('quanta')) : null) || 0;\n var qty;\n if (quanta) {\n qty = Vendd.Helpers.isInteger(parseFloat(quanta)) ? parseInt(minQuantity) || parseInt(quanta) : parseFloat(minQuantity) || parseFloat(quanta);\n } else {\n qty = 1;\n }\n Vendd.Product.Controller.initState({\n serviceConfiguration: $('.service-configuration', $wrapper).text(),\n parentId: $wrapper.data('parent-id'),\n selectedId: $wrapper.data('selected-id'),\n selectedColorId: $wrapper.data('selected-color-id'),\n path: $wrapper.data('path'),\n languageId: $wrapper.data('language-id'),\n qty: qty > 0 ? qty : 1,\n minQuantity: Vendd.Helpers.isInteger(parseFloat(quanta)) ? parseInt(minQuantity) : parseFloat(minQuantity),\n maxQuantity: Vendd.Helpers.isInteger(parseFloat(quanta)) ? parseInt(maxQuantity) : parseFloat(maxQuantity),\n quanta: Vendd.Helpers.isInteger(parseFloat(quanta)) ? parseInt(quanta) : parseFloat(quanta),\n bundleItems: bundleItems,\n recipeItems: recipeItems,\n comboItems: comboItems\n });\n\n $('.service-configuration', $wrapper).remove();\n\n\twrapper.isAuthenticated = function () {\n\t\treturn userModel && userModel.IsAuthenticated;\n\t};\n\n\twrapper.isB2BUser = function () {\n\t\treturn userModel && userModel.IsB2BUser;\n\t};\n\n\twrapper.updateUserState = function () {\n\t\t$wrapper.toggleClass('pd-user', userModel !== undefined);\n\t\t$wrapper.toggleClass('pd-user-authenticated', wrapper.isAuthenticated());\n\t\t$wrapper.toggleClass('pd-user-b2b', wrapper.isB2BUser());\n\t};\n\n wrapper.loading = function (loading) {\n if (loading) {\n $wrapper.addClass('x-loading');\n } else {\n $wrapper.removeClass('x-loading');\n }\n };\n\n var merchantPopUp = function (model) {\n\n var html = Vendd.Handlebars.parse(\"merchantBox_B\", model);\n\n $.fancybox.open(html, {\n type: 'iframe',\n maxWidth: 1040,\n fitToView: false,\n autoSize: false,\n closeClick: false,\n openEffect: 'none',\n closeEffect: 'none',\n padding: 0\n });\n\n };\n\n wrapper.bind = function () {\n\n if ($wrapper.hasClass('x-product-details-popup')) {\n\n Vendd.MessageBus.publish(wrapper, new Vendd.Widget.Messages.BindControl($('.x-product-details-ajax-buttons', $wrapper)));\n\n } else {\n\n var scrollOffset;\n if ($('.js-size-guide').length > 0) {\n \n $(\".js-size-guide\", $wrapper).fancybox({\n touch: false,\n smallBtn: true,\n toolbar: false,\n btnTpl : {\n smallBtn : '
    '\n }\n });\n }\n\n if ($('.js-scroll-to-reviews').length > 0) {\n\n $('.js-scroll-to-reviews', $wrapper).click(function () {\n scrollOffset = $(window).width() > 960 ? 130 : 50;\n $('.product-details-region .x-pd-tab-panel .tab-title.reviews').trigger('click');\n $('html, body').animate({ scrollTop: $('.product-details-region .x-pd-tab-panel .tab-content.reviews').offset().top - scrollOffset }, 1);\n });\n }\n\n if ($('.js-scroll-to-review-form').length > 0) {\n\n $('.js-scroll-to-review-form', $wrapper).click(function () {\n scrollOffset = $(window).width() > 960 ? 130 : 50;\n $('.product-details-region .x-pd-tab-panel .tab-title.reviews').trigger('click');\n $('html, body').animate({ scrollTop: $('.product-details-region .x-pd-tab-panel .tab-content.reviews').offset().top - scrollOffset }, 1);\n $('[data-click=\"open-product-review-form\"]').trigger('click');\n });\n }\n\n Vendd.MessageBus.publish(wrapper, new Vendd.Widget.Messages.BindControl($('.x-product-list', $wrapper)));\n }\n\n InitStickyBar();\n\n if (!firstLoad) initTooltips();\n\n /* enable add to wishlist, when the version's selectors are selected */\n var $merchantSelector = $('.x-product-details-version-selector.merchant ul .dim-item.li', $wrapper);\n\n $.each($merchantSelector, function (i, control) {\n var $control = $(control);\n\n if ($('.js-popup', $control).length > 0) {\n Vendd.MessageBus.unsubscribe(Vendd.Product.Messages.Changed, wrapper);\n Vendd.MessageBus.subscribe(Vendd.Merchant.Messages.GetModelSuccess, wrapper, function (envelope) {\n model = envelope.message.data.model;\n merchantPopUp(model);\n });\n var $dimItem = $(this).closest(\".dim-item\");\n var merchantId = $dimItem.data(\"version-id\");\n Vendd.MessageBus.publish(wrapper, new Vendd.Merchant.Messages.GetModel($wrapper, merchantId));\n\n }\n });\n\n //productReviews();\n //productReviewBox();\n //productReviewAjaxForm();\n //productReviewsSummary();\n\n Vendd.MessageBus.publish(wrapper, new Vendd.Widget.Messages.BindControl($('.x-recipe-ingredients-wrapper', $wrapper)));\n\n Vendd.MessageBus.publish(wrapper, new Vendd.Product.Messages.BindControl($wrapper));\n\n formatPrices($wrapper);\n\n allowOnlyNumbersInput($wrapper);\n\n initAlreadyInCart();\n\n //Init Tab Panel \n $pdTabPanel.detach().appendTo('.pd-inner-area-two');\n\n initTabs();\n\n updateAttributesTab();\n\n //Init plugin for sticky \n initStickyColumn();\n };\n\n wrapper.update = function () {\n wrapper.loading(true);\n\n firstLoad = false;\n\n /* Already in wishlist and compare start */\n if (wishlistModel) {\n _.each(wishlistModel.Items, function (item) {\n if (item.VariantId == model.SelectedProductId) {\n model.AlreadyInWishlist = true;\n return;\n }\n });\n }\n if (compareModel) {\n _.each(compareModel.Items, function (item) {\n if (item.Id == model.ParentProductId) {\n model.AlreadyInCompare = true;\n return;\n }\n });\n }\n\n /* Already in wishlist and compare end */\n\n if (typeof canonicalBreadcrumb !== 'undefined') {\n model = $.extend({}, canonicalBreadcrumb, model);\n }\n\n if (model.Dimensions.length > 0) {\n\n /* Dropdown Selectors - On Color Change, Hide the Colors Photogallery */\n //var colorSelector = $('.x-product-details-version-selector select.dim-0-select');\n //if (colorSelector.length > 0) {\n // _.each(model.Dimensions[0].Versions, function (ver) {\n // if (ver.Selected) {\n // model.HideColorsGallery = true;\n // return;\n // }\n // });\n //}\n //var colorSelector = $('.x-product-details-version-selector select.dim-0-select');\n //if (colorSelector.length > 0) {\n // if (colorSelector.val() == 0) {\n // _.each(model.Dimensions[0].Versions, function (ver) { ver.Selected = false; });\n // model.Dimensions[0].DefaultSkuLoaded = true;\n // model.DefaultSkuLoaded = true;\n // if (!model.Buttons.CartEnabled) {\n // var quantitySelector = $('.x-product-details-quantity-selector .js-selector');\n // $('option', quantitySelector).each(function () {\n // var quantityElement = {};\n // quantityElement.Value = $(this).attr('value');\n // quantityElement.Selected = $(this).attr('selected') !== undefined;\n // model.Quantities.push(quantityElement);\n // });\n // model.Buttons.CartEnabled = true;\n // }\n // model.Buttons.HasAddToCart = false;\n // model.Buttons.HasAddToProductCompare = false;\n // model.Buttons.HasAddToWishlist = false;\n // model.AvailabilityNoticationForm.Visible = false;\n // }\n //}\n\n //var sizeSelector = $('.x-product-details-version-selector select.dim-1-select');\n //if (sizeSelector.length > 0) {\n // if (sizeSelector.val() == 0) {\n // _.each(model.Dimensions[1].Versions, function (ver) { ver.Selected = false; });\n // model.Dimensions[1].DefaultSkuLoaded = true;\n // if (!model.Buttons.CartEnabled) {\n // var quantitySelector = $('.x-product-details-quantity-selector .js-selector');\n // $('option', quantitySelector).each(function () {\n // var quantityElement = {};\n // quantityElement.Value = $(this).attr('value');\n // quantityElement.Selected = $(this).attr('selected') !== undefined;\n // model.Quantities.push(quantityElement);\n // });\n // model.Buttons.CartEnabled = true;\n // }\n // //model.Quantities[0] = { Value: 1, Selected: true };\n // model.DefaultSkuLoaded = true;\n // model.Buttons.HasAddToCart = false;\n // model.Buttons.HasAddToProductCompare = false;\n // model.Buttons.HasAddToWishlist = false;\n // model.AvailabilityNoticationForm.Visible = false;\n // }\n //}\n /* Dropdown Selectors */\n\n\n /* List Selectors */\n var colorSelector = $('.x-product-details-version-selector ul.dim-list.color'),\n sizeSelector = $('.x-product-details-version-selector ul.dim-list.size'),\n hasColorSelector = false, hasSizeSelector = false;\n\n if (colorSelector.length > 0) hasColorSelector = true;\n if (sizeSelector.length > 0) hasSizeSelector = true;\n\n model.colorIsSelected = false;\n model.sizeIsSelected = false;\n\n if (hasColorSelector && $('> li.selected', colorSelector).length > 0) {\n model.colorIsSelected = true;\n }\n\n if (hasSizeSelector && $('> li.selected', sizeSelector).length > 0) {\n model.sizeIsSelected = true;\n }\n\n if (hasColorSelector) {\n _.each(model.Dimensions[0].Versions, function (ver) {\n if (ver.Selected) {\n model.ColorIsSelected = true;\n return;\n }\n });\n if ($('> li.selected', colorSelector).length == 0) {\n _.each(_.find(model.Dimensions, function (dim) { return dim.IsColor == true; }).Versions, function (ver) { ver.Selected = false; });\n model.ColorIsSelected = false;\n model.Buttons.HasAddToCart = false;\n model.Buttons.HasAddToProductCompare = false;\n model.Buttons.HasAddToWishlist = false;\n model.AvailabilityNoticationForm.Visible = false;\n } else {\n if (!model.sizeIsSelected && hasSizeSelector) {\n _.each(_.find(model.Dimensions, function (dim) { return dim.IsColor == true; }).Versions, function (ver) { ver.Disabled = false; });\n }\n }\n }\n\n if (hasSizeSelector) {\n if ($('> li.selected', sizeSelector).length == 0) {\n _.each(_.find(model.Dimensions, function (dim) { return dim.IsSize == true; }).Versions, function (ver) { ver.Selected = false; });\n model.Buttons.HasAddToCart = false;\n model.Buttons.HasAddToProductCompare = false;\n model.Buttons.HasAddToWishlist = false;\n model.AvailabilityNoticationForm.Visible = false;\n } else {\n if (!model.colorIsSelected && hasColorSelector) {\n _.each(_.find(model.Dimensions, function (dim) { return dim.IsSize == true; }).Versions, function (ver) { ver.Disabled = false; });\n }\n }\n }\n\n /* List Selectors */\n }\n\n\n var html;\n if ($wrapper.hasClass('x-product-details-popup')) {\n model.IsPopUp = true;\n //model.ProductControllerData.ProductReviews.Stars.IsPopup = true;\n //model.ProductControllerData.ProductReviews.Stars.Url = model.Url;\n html = Vendd.Handlebars.parse(\"productDetailsPopup_A\", model);\n $wrapper.attr('data-parent-id', model.ParentProductId);\n $wrapper.attr('data-selected-id', model.SelectedProductId);\n $wrapper.attr('data-path', model.PathChecksum);\n } else {\n var state = Vendd.Product.Controller.getState();\n state.selectedColorId = model.SelectedProductColorId;\n html = Vendd.Handlebars.parse(\"productDetails_C\", model);\n }\n\n //Get Size Guide\n var sizeGuide = $('.js-go-to-size-guide', $wrapper);\n //Get Bakc to List url\n var backToList = $('.back-to-list', $wrapper);\n //Get Usps Html\n var uspsHtml = $('.pd-usps', $wrapper);\n //Get Promo Menu\n var promoMenu = $('.pd-promo-menu', $wrapper);\n //Get add ons\n //var addOns = $('.x-product-details-add-ons', $wrapper);\n //Get Tab Panel\n //var tabPanel = $('.x-pd-tab-panel', $wrapper);\n //tabPanel.detach();\n //Get replacedBy Html\n var replacedBy = $('.x-replaced-products', $wrapper);\n //Get Cart Counter\n var inCartCounter = $('.in-details.in-cart-wrapper', $wrapper);\n\n $wrapper.html(html);\n\n //update addthis toolbox\n //addthis.toolbox('.addthis_toolbox ');\n\n //Add Size Guide to the wrapper\n if (sizeGuide.length > 0)\n $('.pd-box-three .x-product-details-version-selector.size', $wrapper).prepend(sizeGuide);\n //Add Back To List url to the wrapper\n if (backToList.length > 0)\n $('.pd-inner-area-one', $wrapper).prepend(backToList);\n //Add Usps Html to the wrapper\n if (uspsHtml.length > 0)\n $('.pd-inner-area-three', $wrapper).append(uspsHtml);\n //Add Promo Menu to the wrapper\n if (promoMenu.length > 0)\n $('.pd-box-five', $wrapper).append(promoMenu);\n //Add add ons\n //if (addOns.length > 0)\n // $('.pd-box-three', $wrapper).prepend(addOns);\n //Add Tab Panel to the wrapper\n //if (tabPanel.length > 0)\n // $('.pd-inner-area-four', $wrapper).append(tabPanel);\n //Replace Cart Counter\n if (inCartCounter.length > 0)\n $('.in-details.in-cart-wrapper', $wrapper).replaceWith(inCartCounter);\n\n if (typeof replacedBy !== 'undefined') {\n\n $('.pd-box-four', $wrapper).append(replacedBy);\n\n $('.js-show-replaced-products').fancybox({\n baseTpl:\n '
    ' +\n '
    ' +\n '
    ' +\n '
     / 
    ' +\n '
    {{buttons}}
    ' +\n '
    {{arrows}}
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    '\n });\n\n if (!isTouch()) {\n $(\".scroll-container\", replacedBy).mCustomScrollbar({\n scrollbarPosition: \"inside\",\n scrollInertia: 400,\n mouseWheel: { preventDefault: true }\n });\n }\n \n }\n\n if (typeof addthis == 'object') {\n addthis.toolbox('.addthis_sharing_toolbox');\n } else {\n $('.addthis_sharing_toolbox').hide();\n }\n\n // Make Visible Availability Container\n // if (model.AvailabilityActionId != 1) {\n $wrapper.find('.availability-container').addClass('visible');\n // }\n\n // enable \"add to wishlist\"\n //if (model.Dimensions.length >= 2) {\n // $('.wishlist-button', '.x-product-details-ajax-buttons').removeClass('x-disabled');\n //}\n\n onYouTubeIframeAPIReady();\n\n $('.x-control.x-review-stars[data-type=\"stars\"]').each(function (i, wrapper) {\n\n var $wrapper = $(wrapper);\n\n var isRateMode = $wrapper.data('is-rate-mode');\n var ratingSummaryData = $wrapper.data('rating-summary');\n var ratingSummary = 0.00;\n\n if (typeof ratingSummaryData === 'string') {\n ratingSummary = parseFloat(ratingSummaryData.replace(\",\", \".\"));\n } else if (typeof ratingSummaryData === 'number') {\n ratingSummary = parseFloat(ratingSummaryData);\n }\n\n initStars(isRateMode, ratingSummary, $wrapper);\n });\n\n wrapper.updateUrl(model);\n\n wrapper.bind();\n\n wrapper.loading(false);\n };\n\n wrapper.updateOnlyPrices = function () {\n //update prices\n var $pricesCont = $('.prices-container', $wrapper);\n if (model.Prices.IsB2BUser && model.Prices.ShowPriceWithoutVat) {\n $('.current-price-container .current-price', $pricesCont).text(model.Prices.UnitPriceWithoutVat);\n $('.deleted-price .value', $pricesCont).text(model.Prices.DeletedPriceWithoutVat);\n $('.discount .value', $pricesCont).text(model.Prices.DiscountValueWithoutVat);\n $('.points-gain-container .points-gain', $pricesCont).text(model.Prices.TotalPointsGain);\n } else {\n $('.current-price-container .current-price', $pricesCont).text(model.Prices.UnitPrice);\n $('.deleted-price .value', $pricesCont).text(model.Prices.DeletedPrice);\n $('.discount .value', $pricesCont).text(model.Prices.DiscountValue);\n $('.points-gain-container .points-gain', $pricesCont).text(model.Prices.TotalPointsGain);\n }\n $('.discount-percentage .value', $pricesCont).text('-' + model.Prices.DiscountPercentage + '%');\n\n $pricesCont.removeClass('hidden');\n\n //update discount tag\n var $discountTag = $('.x-product-details-tags .tag.discount', $wrapper);\n $discountTag.empty().append('-' + model.Prices.DiscountPercentage + '%');\n\n //update availability\n var $availabilityCont = $('.availability-container', $wrapper);\n $availabilityCont.empty().append('

    ' + model.AvailabilityName + '');\n $availabilityCont.removeClass('hidden');\n };\n\n wrapper.updateUrl = function (model) {\n\n if (venddProjectConfigs && venddProjectConfigs.ProductDetails && venddProjectConfigs.ProductDetails.updateUrlOnSkuChange) {\n var updateUrl = false;\n\n if (model) {\n if (model.Dimensions.length >= 2) {\n if (model.colorIsSelected && model.sizeIsSelected) {\n updateUrl = true;\n }\n } else {\n if (model.colorIsSelected || model.sizeIsSelected) {\n updateUrl = true;\n }\n }\n } else {\n if ($wrapper.data('default-sku-loaded').toLowerCase().trim() === \"false\") {\n updateUrl = true;\n }\n }\n\n if (updateUrl) {\n var url = window.location.href;\n var selectedId = model ? model.SelectedProductId : $wrapper.data('selected-id');\n\n //remove querystring if exists\n if (url.indexOf('skuid=') > -1) {\n url = LhApp.Function.Url.removeParameterFromUrl(url, 'skuid');\n }\n //add new querystring\n url = LhApp.Function.Url.setParameterValueOnUrl(url, 'skuid', selectedId);\n //change url\n history.replaceState({}, '', url);\n }\n }\n };\n\n Vendd.MessageBus.subscribe(Vendd.User.Messages.GetUserViewModelSuccess, 'x-product-details-user-state', function (envelope) {\n userModel = envelope.message.data.model;\n wrapper.updateUserState();\n });\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.Changed, wrapper, function (envelope) {\n model = envelope.message.data.model;\n\n if (lazyLoadSender && (venddProjectConfigs && venddProjectConfigs.ProductDetails && venddProjectConfigs.ProductDetails.updateOnlyPrices)) {\n wrapper.updateOnlyPrices();\n lazyLoadSender = false;\n } else {\n wrapper.update();\n } \n });\n\n //show in cart message\n Vendd.MessageBus.subscribe(Vendd.Cart.Messages.Changed, 'x-product-details', function (envelope) {\n var data = envelope.message.data.Cart.Items;\n var id = $wrapper.data('parent-id');\n var quantityInCart = 0, idsInCart = [], inCart = false;\n\n $wrapper.find('.js-remove-from-cart').attr('disabled', 'disabled').parent().addClass('disabled');\n\n for (var j = 0; j < data.length; j++) {\n if (id == data[j].ProductId) {\n quantityInCart += data[j].Quantity;\n idsInCart.push(data[j].Id);\n inCart = true;\n }\n }\n\n var decRegex = /^[0-9]*(\\.[0-9]+)$/;\n if (decRegex.test(quantityInCart)) {\n quantityInCart = quantityInCart.toFixed(2);\n }\n\n if (inCart) {\n $wrapper.prop('data-cartproductid', idsInCart);\n $wrapper.find('.js-remove-from-cart').removeAttr('disabled').parent().removeClass('disabled');\n $wrapper.find('.js-cart-quantity').text(\"(\" + quantityInCart + \")\");\n }\n });\n\n Vendd.MessageBus.subscribe(Vendd.Wishlist.Messages.Changed, wrapper, function (envelope) {\n wishlistModel = envelope.message.data;\n var state = Vendd.Product.Controller.getState();\n var skuId = state.selectedId;\n\n if (wishlistModel) {\n var productInWishlist = _.find(wishlistModel.Items, function (x) { return skuId === x.VariantId });\n var $wishlistButton = $('.x-product-details-ajax-buttons .wishlist-button', $wrapper);\n\n if (productInWishlist) {\n $wishlistButton.addClass('already-in-wishlist');\n $('.js-add-to-wishlist', $wishlistButton).addClass('disabled');\n $('.js-remove-from-wishlist', $wishlistButton).removeClass('disabled');\n } else {\n $wishlistButton.removeClass('already-in-wishlist');\n $('.js-add-to-wishlist', $wishlistButton).removeClass('disabled');\n $('.js-remove-from-wishlist', $wishlistButton).addClass('disabled');\n }\n }\n });\n\n Vendd.MessageBus.subscribe(Vendd.ProductCompare.Messages.GetWidgetModelSuccess, wrapper, function (envelope) {\n compareModel = envelope.message.data.model;\n var state = Vendd.Product.Controller.getState();\n var parentId = state.parentId;\n\n if (compareModel) {\n var productInCompare = _.find(compareModel.Items, function (x) { return parentId === x.Id });\n var $compareButton = $('.x-product-details-ajax-buttons .compare-button', $wrapper);\n\n if (productInCompare) {\n $compareButton.addClass('already-in-compare');\n $('.js-add-to-compare', $compareButton).addClass('disabled');\n $('.js-remove-from-compare', $compareButton).removeClass('disabled');\n } else {\n $compareButton.removeClass('already-in-compare');\n $('.js-add-to-compare', $compareButton).removeClass('disabled');\n $('.js-remove-from-compare', $compareButton).addClass('disabled');\n }\n }\n });\n\n lazyLoadPrices();\n\n lazyLoadAvailabilities();\n\n wrapper.bind();\n\n var funcCookiesEnabled = true;\n if (window.ConsentsManager) {\n funcCookiesEnabled = window.ConsentsManager.cookiesStatus.functionalityCookies;\n }\n\n if (LhApp.Context.LastViewedProducts != undefined && funcCookiesEnabled) {\n if (LhApp.Context.LastViewedProducts.LastViewedProductsIsActive) {\n var expirationDays = LhApp.Context.LastViewedProducts.LastViewedProductsExpirationDays;\n var productNumber = LhApp.Context.LastViewedProducts.LastViewedProductsNumber;\n var productId = LhApp.Context.Item.Id;\n\n var products = Cookies.get(\"LastViewedProducts\") || \"\";\n var productsArray = _.reject(products.split(\",\"), function (el) { return el == productId || el == \"\"; });\n productsArray.unshift(productId);\n var cookieValue = (_.first(productsArray, productNumber)).join(\",\");\n var expireDate = new Date();\n expireDate.setTime(expireDate.getTime() + expirationDays * 24 * 60 * 60 * 1000);\n Cookies.set(\"LastViewedProducts\", cookieValue, { secure: LhApp.Context.Request.IsSecure, expires: expireDate, samesite: 'Lax' });\n }\n }\n\n function initAlreadyInCart() {\n if ($('.in-details .js-remove-from-cart', $wrapper).length < 1)\n return;\n\n var removeCartBtn = $('.in-details .js-remove-from-cart', $wrapper);\n\n removeCartBtn.on('click', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $this = $(this), cartIds;\n\n cartIds = $wrapper.prop('data-cartproductid');\n\n Vendd.MessageBus.publishAsync($wrapper.get(0), new Vendd.Cart.Messages.MultipleRemove(cartIds));\n\n Vendd.MessageBus.subscribe(Vendd.Cart.Messages.MultipleRemoveSuccess, $wrapper, function (envelope) {\n $this.attr('disabled', 'disabled').parent().addClass('disabled');\n toastr.success(envelope.message.data.data.SuccessMessage, \"\", { timeOut: 1200, showDuration: 1000, hideDuration: 700 });\n Vendd.MessageBus.unsubscribe(Vendd.Cart.Messages.MultipleRemoveSuccess, $wrapper);\n });\n });\n }\n\n function initStickyColumn() {\n if ($('.sticky-column').length < 1) return;\n\n var sidebar = new StickySidebar('.sticky-column', {\n topSpacing: $('.sticky-column').data('top-spacing') || 50,\n bottomSpacing: $('.sticky-column').data('bottom-spacing') || 0,\n containerSelector: '.sticky-full',\n innerWrapperSelector: '.inner-sticky-column',\n resizeSensor: true,\n minWidth: 960\n\n });\n\n }\n\n function lazyLoadPrices() {\n\n Vendd.MessageBus.subscribe(Vendd.User.Messages.GetUserViewModelSuccess, wrapper, function (envelope) {\n var lazyLoadPrices = $('.details-lazy-load-prices').text().toLowerCase().trim() === \"true\";\n var customPrices = envelope.message.data.model.HasCustomPrices;\n\n if (lazyLoadPrices || customPrices) {\n //variable for updateOnlyPrices\n lazyLoadSender = $wrapper.data('default-sku-loaded').toLowerCase().trim() == \"true\" ? true : false;\n //destroy photo gallery spinner\n deleteSpinnerInstances();\n //set selected sku\n var skuId = parseInt($('.x-control.x-product-details[data-selected-id]').attr('data-selected-id'));\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Product.Messages.SetSelected({ id: skuId, visitorInitiated: false }));\n } else {\n wrapper.updateUrl(model);\n }\n\n });\n\n }\n\n function lazyLoadAvailabilities() {\n //lazy-load-availabiliies\n var lazyLoadAvailabilities = $('.details-lazy-load-availabilities').text().toLowerCase().trim() === \"true\";\n var deliveryPointModel = JSON.parse(localStorage.getItem(\"CurrentDeliveryPointModel\"));\n if (deliveryPointModel) if (deliveryPointModel.data.HasDeliveryPoint) var deliveryPointId = deliveryPointModel.data.DeliveryPoint.Id;\n var deliveryPostalCode = Cookies.get('DeliveryPostalCode');\n\n if (lazyLoadAvailabilities) {\n if (deliveryPointId == 1 && deliveryPostalCode && deliveryPostalCode !== 'undefined') {\n //set variant id\n var skuId = parseInt($('.x-control.x-product-details[data-selected-id]').attr('data-selected-id'));\n //set variant array\n var variantArray = [];\n var variant = {\n VariantId: skuId,\n Quantity: '1'\n };\n variantArray.push(variant);\n\n //call service for delivery availabilities\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Product.Messages.GetDeliveryAvailability(variantArray, deliveryPostalCode, null, true));\n\n } else if (deliveryPointId == 2) {\n //set variant id\n var skuId = parseInt($('.x-control.x-product-details[data-selected-id]').attr('data-selected-id'));\n //set selected shop id\n var partnerId = deliveryPointModel.data.Store.Id\n //set variant array\n var variantArray = [];\n var variant = {\n VariantId: skuId,\n Quantity: '1'\n };\n variantArray.push(variant);\n\n //call service for pick up availabilities\n Vendd.MessageBus.publishAsync(wrapper, new Vendd.Product.Messages.GetPickUpAvailability(variantArray, partnerId, true));\n\n Vendd.MessageBus.subscribe(Vendd.Product.Messages.GetPickUpAvailabilitySuccess, wrapper, function (envelope) {\n var data = envelope.message.data;\n\n //Set Pick Up Availability ID\n var availability = data.PickupAvailabilities[0].Shops[0].Message;\n var availabilityId;\n if (data.PickupAvailabilities[0].Shops[0].Days == null) {\n availabilityId = 1;\n } else {\n availabilityId = 3;\n }\n\n //Show Delivery Availability\n $('.x-product-details .lazyload-availability-container > span').remove();\n $('.x-product-details .lazyload-availability-container').append('' + availability + '');\n\n Vendd.MessageBus.unsubscribe(Vendd.Product.Messages.GetPickUpAvailabilitySuccess, wrapper);\n });\n }\n }\n }\n});\n\n\n","Vendd.Scripts.load(function () {\n\n\tVendd.MessageBus.subscribe(Vendd.Product.Messages.BindControl, 'x-product-details-login', function (envelope) {\n\n\t\tvar $context = envelope.message.data.context,\n\t\t\t$controls = $('.x-product-details-login', $context);\n\n\t\tif ($controls.length < 1)\n\t\t\treturn;\n\n\t\t$.each($controls, function (i, control) {\n\t\t\tvar $control = $(control);\n\t\t\tvar $buttons = $('.js-open-login', $control);\n\n\t\t\tcontrol.openLogin = function () {\n\t\t\t\tvar $loginWidget = $('.x-login-widget').first();\n\t\t\t\tvar $loginButton = $('.js-widget-trigger', $loginWidget).first();\n\t\t\t\t$loginButton.trigger('click');\n\t\t\t};\n\n\t\t\tcontrol.scrollToTop = function (complete) {\n\t\t\t\tvar isComplete = false;\n\t\t\t\t$('html,body').animate({ scrollTop: 0 }, 400, 'swing', function () {\n\t\t\t\t\tif (!isComplete) {\n\t\t\t\t\t\tisComplete = true;\n\t\t\t\t\t\tif (typeof complete === 'function') {\n\t\t\t\t\t\t\tcomplete();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\n\t\t\t$buttons.on('click', function (e) {\n\t\t\t\te.preventDefault();\n\n\t\t\t\tcontrol.scrollToTop(function () {\n\t\t\t\t\tcontrol.openLogin();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t});\n});\n","Vendd.Scripts.load(function () {\n \n var $boxes = $('.x-category-detailed-box');\n \n if ($boxes.length <= 0)\n return;\n\n if (isTouch()) {\n initListToggle();\n }\n\n var iconOpen = $boxes.first().data('open-icon');\n var iconClose = $boxes.first().data('close-icon');\n\n if($boxes.closest('.x-category-banners').length > 0){\n $boxes.each(function(){\n if ($('.subcategory-list > li', $(this)).length > 8){\n $('.subcategory-list > li.view-all', $(this)).addClass('show');\n }\n });\n }\n\n function initListToggle() {\n $(\".js-toggle\", $boxes).click(function () {\n var hiddenCont = $(this).siblings('.js-content-accord');\n $(this).toggleClass(iconOpen + \" \" + iconClose);\n if (hiddenCont.hasClass('opened')) {\n hiddenCont.removeClass('opened');\n } else {\n $boxes.find('.opened').removeClass('opened').siblings('.js-toggle').toggleClass(iconOpen + \" \" + iconClose);\n hiddenCont.addClass('opened');\n }\n });\n \n var accordion = false;\n \n if ($(window).width() <= 767) {\n accordion = true;\n }\n \n $(window).resize(function () {\n if ($(window).width() > 767) {\n if (accordion) {\n $('.js-content-accord', $boxes).removeClass('opened');\n accordion = false;\n }\n }\n else {\n if (!accordion) {\n $('.js-content-accord', $boxes).siblings('.js-toggle').toggleClass(iconOpen + \" \" + iconClose);\n accordion = true;\n }\n }\n });\n }\n\n});","Vendd.Scripts.load(function () {\n \n var $wrapper = $('.x-main-category-list');\n var resize = false;\n var ww = $(window).width();\n var masonryState = false;\n \n if ($wrapper.length <= 0)\n return;\n \n var $masonryTarget = $('.js-init-masonry', $wrapper);\n\n checkToInit($masonryTarget)\n\n $( window ).on('resize', function() {\n ww = $(window).width();\n resize = true;\n })\n\n setInterval(function(){\n if(resize){\n checkToInit($masonryTarget)\n resize = false;\n }\n }, 500)\n\n \n function checkToInit($container){\n if(ww > 768 && !masonryState) {\n initMasonryContainer($container)\n } else if(ww <=768 && masonryState) {\n $container.masonry('destroy');\n $container.removeData('masonry');\n masonryState = false;\n }\n }\n\n\n function initMasonryContainer($masonryTarget) {\n $masonryTarget.masonry({\n itemSelector: '.category-item',\n columnWidth: '.masonry-grid-sizer',\n gutter: '.masonry-gutter-size'\n });\n $('>.category-item', $masonryTarget).addClass('shown');\n masonryState = true;\n }\n});","Vendd.Scripts.load(function () {\n\n var $wrapper = $('.x-category-list-menu');\n\n if ($wrapper.length < 1)\n return;\n\n var wrapper = $wrapper.get(0);\n\n var iconOpen = $wrapper.data('open-icon');\n var iconClose = $wrapper.data('close-icon');\n\n var stickyCatMenu = function () {\n var catMenu = $('.x-category-list-menu');\n var catMenuHeight = catMenu.height();\n var spacer = $('.cat-menu-spacer');\n \n var lastScrollTop = 0;\n var delta = 5;\n var stickyNavTop = $('.x-category-list-menu').offset().top;\n $(window).scroll(_.throttle(initSticky, 100));\n\n function initSticky() {\n var st = $(this).scrollTop();\n // Make sure they scroll more than delta\n if (Math.abs(lastScrollTop - st) <= delta)\n return;\n\n if($(window).width() >= 1200){\n if ($(window).scrollTop() <= stickyNavTop) {\n catMenu.removeClass('sticky-menu');\n spacer.height(0);\n\n // $('.header-template-one').show();\n } else {\n catMenu.addClass('sticky-menu');\n spacer.height(catMenuHeight);\n // $('.header-template-one').hide();\n }\n } else{\n catMenu.removeClass('sticky-menu');\n spacer.height(0);\n if(!isTouch()){\n // $('.header-template-one').show();\n }\n }\n\n lastScrollTop = st;\n }\n }\n\n var initStickyBtn = function () {\n $(window).scroll(function(){\n if($(window).width() < 1200){\n if($(this).scrollTop() > $wrapper.offset().top + $wrapper.height()) {\n $('.sticky-menu-btn').addClass('scrolled');\n // $('.header-template-one').hide();\n } else {\n $('.sticky-menu-btn').removeClass('scrolled');\n // $('.header-template-one').show();\n }\n } else {\n $('.sticky-menu-btn').removeClass('scrolled');\n }\n });\n\n $('.sticky-menu-btn').on('click', function(){\n $('html, body').animate({scrollTop: $wrapper.offset().top - $('.header-spacer').height()}, 1);\n wrapper.open(); \n })\n }\n\n stickyCatMenu();\n\n if(isTouch()){\n initStickyBtn();\n }\n \n $wrapper.on('click', '.mobile-title', function (e) {\n e.preventDefault();\n\n var $this = $(this);\n\n if ($this.hasClass('active')) {\n wrapper.close();\n } else {\n wrapper.open();\n }\n });\n\n wrapper.open = function () {\n $('.mobile-title', $wrapper).addClass('active');\n $('.mobile-title > .title', $wrapper).toggleClass(iconOpen + \" \" + iconClose);\n $('.nav-1', $wrapper).addClass('active');\n };\n\n wrapper.close = function () {\n $('.mobile-title', $wrapper).removeClass('active');\n $('.mobile-title > .title', $wrapper).toggleClass(iconOpen + \" \" + iconClose);\n $('.nav-1', $wrapper).removeClass('active');\n };\n\n $(\"[class^='category-']\", $wrapper).on('click', function(e){\n var id ='#' + $(this).data('anchor');\n var anchor = $(id);\n \n if(!$(this).hasClass('selected')) {\n $(\"[class^='category-']\", $wrapper).removeClass(\"selected\");\n $(this).addClass('selected');\n\n } \n\n $('html, body').animate({\n scrollTop: anchor.offset().top - 70\n }, 1000);\n }); \n});\n\n","Vendd.Scripts.load(function () {\n var $wrapper = $('.x-control.x-page-mode');\n\n if ($wrapper.length < 1) return;\n\n var wrapper = $wrapper.get(0),\n model = null;\n\n wrapper.bind = function () {\n var plMode = Cookies.get('plMode');\n\n if (plMode == \"grid\") {\n $('.page-mode-btn', $wrapper).removeClass('selected');\n $('.page-mode-btn.grid', $wrapper).addClass('selected');\n $('.x-main-product-list .x-product-list').removeClass('horizontal-products').addClass('vertical-products');\n } else if (plMode == \"list\") {\n $('.page-mode-btn', $wrapper).removeClass('selected');\n $('.page-mode-btn.list', $wrapper).addClass('selected');\n $('.x-main-product-list .x-product-list').removeClass('vertical-products').addClass('horizontal-products');\n }\n\n $('.x-control.x-page-mode').each(function (i, wrapper) {\n var $wrapper = $(wrapper);\n var $pageModeBtn = $('.page-mode-btn', $wrapper);\n\n $wrapper.on('click', '.page-mode-btn', function (e) {\n $pageModeBtn.removeClass('selected');\n $(this).addClass('selected');\n if ($(this).hasClass('grid')) {\n $('.x-main-product-list .x-product-list').removeClass('horizontal-products').addClass('vertical-products');\n Cookies.set(\"plMode\", \"grid\", { expires: 10, samesite: 'Lax' });\n } else if ($(this).hasClass('list')) {\n $('.x-main-product-list .x-product-list').removeClass('vertical-products').addClass('horizontal-products');\n Cookies.set(\"plMode\", \"list\", { expires: 10, samesite: 'Lax' });\n }\n });\n\n });\n };\n\n wrapper.update = function () {\n var html = Vendd.Handlebars.parse(\"plPageMode_A\", model);\n $wrapper.html(html);\n wrapper.bind();\n };\n\n wrapper.bind();\n \n Vendd.MessageBus.subscribe(Vendd.ProductList.Messages.GetModelSuccess, $wrapper, function (envelope) {\n if (envelope.message.data.data.Products.Items.length < 1)\n return;\n\n model = envelope.message.data.data.PageMode;\n wrapper.update();\n });\n\n});\n"]}