{"version":3,"sources":["ecom-details-view.js"],"names":["Platform","Deferred","execute","setViewDetailsScript","stockNotifyProdId","hasVariants","showStockCount","canBeGiftWrapped","stockNotifyIsVariant","stockNotifyLoggedIn","stockNotifyEmail","$","data","stockModal","remodal","RegisterStockNotify","ajax","url","root","type","dataType","JSON","stringify","prodId","isVariant","email","contentType","success","result","hide","show","open","fadeOut","fadeIn","lert","error","alert","showSelectedVariant","removeClass","selected","find","selectorString","val","addClass","click","this","submit","e","preventDefault","on","matchHeight","tab","lightGallery","selector","loadYoutubeThumbnail","loadVimeoThumbnail","qtyTbx","closest","qty","Number","uom","optionsAdv","fbPixelEnabled","limitToStock","btn","id","CheckComponentsSelected","currentStock","parseInt","text","GetSelectedOptionsAdv","prodOptsOk","each","length","next","opts","i","o","opt","name","attr","replace","index","value","push","personalizeText","useGiftBox","prop","variantId","productId","quantity","options","document","trigger","fbq_addToBag","change","isFav","post","SetFavBtnsIsFav","loginModal","mouseenter","swapIn","mainImgContainer","mainImage","mouseleave","acc","getElementsByClassName","addEventListener","classList","toggle","panel","nextElementSibling","style","maxHeight","scrollHeight","componentPriceType","console","log","GetCalculatedPrice","SetFavButtons","GetCalculatedStock","obj","title","componentSelector","selectorHead","prev","css","allSelected","undefined","$this","selectedId","groupId","groupName","optionProductId","optionProductName","showSalePrice","salePriceString","priceString","$priceWrapper","$discTable","quantityPriceListPrices","append","empty","$discTableTbody","$discTableTd","createTextNode","quantityBreak","$discTableTr","remove","variantWrapper","stock","vidClosed","jQuery","tubeplayer"],"mappings":"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","file":"ecom-details-view.min.js","sourcesContent":["Platform.Deferred.execute(setViewDetailsScript);\r\nvar canBeGiftWrapped = \"@Model.data.CanBeGiftWrapped\";\r\nvar stockNotifyProdId;\r\nvar stockNotifyIsVariant = \"False\";\r\nvar stockNotifyLoggedIn = \"False\";\r\nvar stockNotifyEmail = \"\";\r\nvar hasVariants;\r\nvar showStockCount;\r\n\r\nfunction setViewDetailsScript() {\r\n\r\n hasVariants = $('#pf-product-details-page').data(\"has-variants\") === \"True\" ? true : false;\r\n showStockCount = $('#pf-product-details-page').data(\"show-stock-count\") === \"True\" ? true : false;\r\n\r\n // stock notify handler\r\n var stockModal = $('[data-remodal-id=stock-notify-modal]').remodal();\r\n $('.pf-stock-notify-me-btn').click(function () {\r\n stockNotifyProdId = $(this).data(\"prod-id\");\r\n stockNotifyIsVariant = $(this).data(\"is-variant\");\r\n stockNotifyLoggedIn = $(this).data(\"user-logged-in\");\r\n if (stockNotifyLoggedIn == \"False\") {\r\n stockModal.open();\r\n }\r\n else {\r\n RegisterStockNotify();\r\n }\r\n });\r\n\r\n $('#register-stock-notify-form').submit(function (e) {\r\n e.preventDefault();\r\n stockNotifyEmail = $('#stock-notify-email').val();\r\n RegisterStockNotify();\r\n });\r\n\r\n function RegisterStockNotify() {\r\n\r\n $.ajax({\r\n url: root + \"UserAccount/RegisterStockNotify\",\r\n type: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify({\r\n prodId: stockNotifyProdId,\r\n isVariant: stockNotifyIsVariant,\r\n email: stockNotifyEmail\r\n }),\r\n contentType: 'application/json; charset=utf-8',\r\n success: function (data) {\r\n if (data.result == \"ok\") {\r\n if (stockNotifyLoggedIn) {\r\n $('#stock-notify-content').hide();\r\n $('#stock-notify-rsp').show();\r\n stockModal.open();\r\n }\r\n else {\r\n $('#stock-notify-content').fadeOut(function () {\r\n $('#stock-notify-rsp').fadeIn();\r\n });\r\n }\r\n }\r\n else {\r\n lert('Sorry there was a problem processing your request.');\r\n }\r\n },\r\n error: function () {\r\n alert('Sorry there was a problem processing your request.');\r\n }\r\n });\r\n }\r\n\r\n\r\n //handle selecting variants from dropdown\r\n showSelectedVariant();\r\n //$(\".pf-qty-btn-plus\").unbind(\"click\");\r\n //$(\".pf-qty-btn-plus\").click(function () {\r\n // var $this = $(this);\r\n // var quantity = parseInt($this.siblings(\".qty-tbx\").val()) + 1;\r\n // $(this).siblings(\".qty-tbx\").val(quantity);\r\n //});\r\n //$(\".pf-qty-btn-minus\").unbind(\"click\");\r\n //$(\".pf-qty-btn-minus\").click(function () {\r\n // var $this = $(this);\r\n // var quantity = parseInt($this.siblings(\".qty-tbx\").val()) - 1;\r\n // if (quantity <= 0) {\r\n // quantity = 1;\r\n // }\r\n // $(this).siblings(\".qty-tbx\").val(quantity);\r\n //});\r\n $('#variant-select').on('change', function () {\r\n showSelectedVariant();\r\n });\r\n function showSelectedVariant() {\r\n $(\".variantRow\").hide(50, function () {\r\n $(\".current\").removeClass(\"current\");\r\n var selected = $(\"#variant-select\").find(\":selected\");\r\n var selectedID = $(selected).val();\r\n var selectorString = \"#variant-row-\" + selectedID;\r\n $(selectorString).show(50);\r\n $(selectorString).addClass(\"current\");\r\n });\r\n }\r\n $('.productwrapper').matchHeight();\r\n\r\n $('#other-products-tabs a').click(function (e) {\r\n e.preventDefault();\r\n $(this).tab('show');\r\n });\r\n\r\n $('#product-media-holder').lightGallery({\r\n selector: '.product-media',\r\n loadYoutubeThumbnail: false,\r\n loadVimeoThumbnail: false\r\n });\r\n\r\n $('#product-media-holder-2').lightGallery({\r\n selector: '.mobile-vid',\r\n loadYoutubeThumbnail: false,\r\n loadVimeoThumbnail: false\r\n });\r\n\r\n $('.pf-detail-view-add-cart-wrapper .pf-qty-btn-minus').click(function () {\r\n var wrapper = $(this).closest('.pf-qty-wrapper');\r\n var qtyTbx = wrapper.find('.pf-qty-select');\r\n var qty = Number(qtyTbx.val());\r\n var uom = qtyTbx.data('uom');\r\n if (qty > uom)\r\n qty -= uom;\r\n if (qty < 0)\r\n qty = 0;\r\n qtyTbx.val(qty);\r\n });\r\n\r\n $('.pf-detail-view-add-cart-wrapper .pf-qty-btn-plus').click(function () {\r\n var wrapper = $(this).closest('.pf-qty-wrapper');\r\n var qtyTbx = wrapper.find('.pf-qty-select');\r\n var qty = Number(qtyTbx.val());\r\n var uom = qtyTbx.data('uom');\r\n qty += uom;\r\n qtyTbx.val(qty);\r\n });\r\n\r\n // main call to add a product to the cart\r\n $('.pf-add-to-cart-btn').click(function () {\r\n var fbPixelEnabled = $('#pf-product-details-page').data(\"fb-pixel\");\r\n var limitToStock = $('#pf-product-details-page').data('limit-to-stock');\r\n var btn = $(this);\r\n var id = btn.data(\"id\");\r\n var wrapper = btn.closest('.pf-detail-view-add-cart-wrapper');\r\n var qty = wrapper.find('.pf-qty-select').val();\r\n var optionsAdv;\r\n\r\n // check if this is a product with components, if so check all have been selected\r\n var hasComponents = $('#pf-product-details-page').data('product-has-components');\r\n if (hasComponents === \"True\") {\r\n // check all selected otherwise cannot add to cart\r\n if (!CheckComponentsSelected()) {\r\n alert(\"Please select from the available product options\");\r\n return false;\r\n }\r\n\r\n // if product purchase is limited to available stock then check qty against current stock\r\n if (limitToStock) {\r\n var currentStock = parseInt($('#pf-calculated-stock').text());\r\n var qtyCheck = parseInt(qty);\r\n if (qtyCheck > currentStock) {\r\n alert(\"Sorry there are \" + currentStock + \" of this combination currently in stock\");\r\n return false;\r\n }\r\n }\r\n\r\n // if all selected then setup the object to pass into the cart\r\n optionsAdv = GetSelectedOptionsAdv();\r\n }\r\n\r\n var prodOptsOk = true;\r\n $('.productOptions').each(function () {\r\n if ($(this).length > 0) {\r\n if ($(this).val() == 0) {\r\n $(this).next('.productOptionWarn').fadeIn();\r\n $(this).addClass(\"highlight\");\r\n prodOptsOk = false;\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n if (prodOptsOk == false) {\r\n return false;\r\n }\r\n\r\n var opts = [];\r\n $('.productOptions').each(function (i, o) {\r\n var opt = {};\r\n var name = $(this).attr('id');\r\n name = name.replace(\"option-select-\", \"\");\r\n opt.index = i;\r\n opt.name = name;\r\n opt.value = $(this).val();\r\n opts.push(opt);\r\n });\r\n\r\n\r\n var parentID = $('#parent-id').val();\r\n var catID = $('#cat-id').val();\r\n var listby = $('#listby').val();\r\n var size = $('#size-select').val();\r\n var personalizeText = $('#PersonalizeProductText').val();\r\n\r\n\r\n // gift option and message\r\n var useGiftBox = false;\r\n if (canBeGiftWrapped == \"True\") {\r\n $('#giftBoxingCbx').prop('checked');\r\n useGiftBox = true;\r\n }\r\n if (useGiftBox) {\r\n var personalMessage = $('#giftBoxText').val();\r\n }\r\n\r\n var variantId = $(btn).data(\"variant-id\");\r\n\r\n if (variantId != 0) {\r\n qty = $(this).closest(\".variant-table\").find('.qty-tbx').val();\r\n }\r\n\r\n\r\n $.ajax({\r\n url: root + \"Cart/AddToCart\",\r\n type: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify({\r\n productId: id,\r\n variantId: variantId === 0 ? null : variantId,\r\n quantity: qty,\r\n options: opts,\r\n optionsAdv: optionsAdv,\r\n personalizeText: personalizeText\r\n }),\r\n contentType: 'application/json; charset=utf-8',\r\n success: function (data) {\r\n //AddedToCart(data);\r\n $(document).trigger('itemAdded.product.platform', data);\r\n //SetCartQty();\r\n if (fbPixelEnabled == \"True\") {\r\n fbq_addToBag();\r\n }\r\n }\r\n });\r\n\r\n return false;\r\n });\r\n\r\n $('#size-select').change(function () {\r\n $('#choose-size-warn').fadeOut();\r\n });\r\n\r\n $('.productOptions').change(function () {\r\n $(this).removeClass('highlight');\r\n $(this).next('.productOptionWarn').fadeOut();\r\n });\r\n\r\n // favourites handlers\r\n $('.add-to-favorites-btn').click(function () {\r\n var loggedIn = $('#pf-product-details-page').data(\"logged-in\");\r\n if (loggedIn == \"True\") {\r\n var btn = $(this);\r\n var isVariant = btn.data(\"is-variant\");\r\n var wrapper = $(this).closest('.fav-btns');\r\n var id = btn.data(\"id\");\r\n var title = btn.data(\"title\");\r\n var isFav = btn.data(\"is-fav\");\r\n\r\n var optionsAdv = null;\r\n // check if this is a product with components\r\n var hasComponents = $('#pf-product-details-page').data('product-has-components');\r\n if (hasComponents === \"True\") {\r\n // check all selected otherwise cannot add to cart\r\n if (!CheckComponentsSelected()) {\r\n alert(\"Please select from the available product options\");\r\n return false;\r\n }\r\n // if all selected then setup the object to pass into the cart\r\n optionsAdv = GetSelectedOptionsAdv();\r\n }\r\n\r\n if (isFav == \"False\") {\r\n // if any options make sure all have a selection made\r\n var prodOptsOk = true;\r\n $('.productOptions').each(function () {\r\n if ($(this).length > 0) {\r\n if ($(this).val() == 0) {\r\n $(this).next('.productOptionWarn').fadeIn();\r\n $(this).addClass(\"highlight\");\r\n prodOptsOk = false;\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n if (prodOptsOk == false) {\r\n return false;\r\n }\r\n\r\n var opts = [];\r\n $('.productOptions').each(function (i, o) {\r\n var opt = {};\r\n var name = $(this).attr('id');\r\n name = name.replace(\"option-select-\", \"\");\r\n opt.index = i;\r\n opt.name = name;\r\n opt.value = $(this).val();\r\n opts.push(opt);\r\n });\r\n\r\n $.post(root + \"UserAccount/AddProductToFavourites\", {\r\n id: id,\r\n isVariant: isVariant,\r\n options: opts,\r\n optionsAdv: optionsAdv\r\n }, function (data) {\r\n if (data.result == \"ok\") {\r\n //toastr[\"success\"](\"'\" + title + \"'\" + \" added to your favourites.\")\r\n //wrapper.find('.isfav-icon').show();\r\n //wrapper.find('.isnotfav-icon').hide();\r\n SetFavBtnsIsFav(true);\r\n $(document).trigger('addedToFavs.product.platform', data);\r\n }\r\n else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n }\r\n else {\r\n $.post(root + \"UserAccount/RemoveProductFromFavourites\", {\r\n id: id,\r\n isVariant: isVariant,\r\n optionsAdv: optionsAdv\r\n }, function (data) {\r\n if (data.result == \"ok\") {\r\n //toastr[\"warning\"](\"'\" + title + \"'\" + \" removed from your favourites.\")\r\n //wrapper.find('.isfav-icon').hide();\r\n //wrapper.find('.isnotfav-icon').show();\r\n SetFavBtnsIsFav(false);\r\n $(document).trigger('removedFromFavs.product.platform', data);\r\n }\r\n else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n }\r\n }\r\n else {\r\n loginModal.open();\r\n }\r\n });\r\n\r\n // group products\r\n $(\".pf-product-group-wrapper\").on({\r\n mouseenter: function () {\r\n var swapIn = $(this).data(\"image-url\");\r\n var mainImgContainer = $('.pf-product-main-image-wrapper').find('img');\r\n var mainImage = mainImgContainer.prop('src');\r\n $(this).data(\"orig-img-url\", mainImage);\r\n mainImgContainer.prop('src', swapIn);\r\n },\r\n mouseleave: function () {\r\n var swapIn = $(this).data(\"orig-img-url\");\r\n var mainImgContainer = $('.pf-product-main-image-wrapper').find('img');\r\n mainImgContainer.prop('src', swapIn);\r\n },\r\n click: function () {\r\n // Handle click...\r\n }\r\n }, \".pf-group-prod\");\r\n\r\n // accordion for component products\r\n var acc = document.getElementsByClassName(\"pf-product-component-accordion\");\r\n var i;\r\n // attach listener to each accordion header\r\n for (i = 0; i < acc.length; i++) {\r\n acc[i].addEventListener(\"click\", function () {\r\n this.classList.toggle(\"pf-product-component-accordion-active\");\r\n var panel = this.nextElementSibling;\r\n if (panel.style.maxHeight) {\r\n panel.style.maxHeight = null;\r\n } else {\r\n panel.style.maxHeight = panel.scrollHeight + \"px\";\r\n }\r\n });\r\n }\r\n\r\n // init advanced options in case they are pre-selected\r\n var componentPriceType = $('#pf-product-details-page').data(\"product-component-price-type\");\r\n if (CheckComponentsSelected() === true) {\r\n console.log(\"Component product all options selected\");\r\n var optionsAdv = GetSelectedOptionsAdv();\r\n if (componentPriceType === 'BASE_PLUS_OPTIONS') {\r\n GetCalculatedPrice(optionsAdv);\r\n SetFavButtons(optionsAdv);\r\n if (showStockCount)\r\n GetCalculatedStock(optionsAdv);\r\n }\r\n }\r\n\r\n\r\n $(document).on('click', '.pf-product-component-select', function (e) {\r\n //e.preventDefault();\r\n var obj = $(this);\r\n var id = obj.data(\"id\");\r\n var title = obj.data(\"name\");\r\n var componentSelector = obj.closest('.pf-product-component-accordion-panel');\r\n var selectorHead = componentSelector.prev();\r\n var selectedText = selectorHead.find('.pf-component-select-text > u');\r\n selectedText.text(title);\r\n selectorHead.data(\"selected-id\", id);\r\n selectorHead.data(\"selected-name\", title);\r\n // slide panel up\r\n componentSelector.css('max-height', '');\r\n selectorHead.removeClass(\"pf-product-component-accordion-active\");\r\n\r\n // set border on selected option\r\n // find all options in this set and remove selected class\r\n componentSelector.each(function () {\r\n $(this).find('.pf-product-component-select').removeClass('pf-product-component-selected');\r\n });\r\n // add selected to this item\r\n obj.addClass('pf-product-component-selected');\r\n\r\n // check if we need to calculate price, and if all options are selected then we can get the price from backend\r\n //var componentPriceType = $('#pf-product-details-page').data(\"product-component-price-type\");\r\n //{\r\n if (CheckComponentsSelected() === true) {\r\n console.log(\"Component product all options selected\");\r\n var optionsAdv = GetSelectedOptionsAdv();\r\n if (componentPriceType === 'FIXED_PRICE') {\r\n SetFavButtons(optionsAdv);\r\n if (showStockCount)\r\n GetCalculatedStock(optionsAdv);\r\n }\r\n else if (componentPriceType === 'BASE_PLUS_OPTIONS') {\r\n GetCalculatedPrice(optionsAdv);\r\n SetFavButtons(optionsAdv);\r\n if (showStockCount)\r\n GetCalculatedStock(optionsAdv);\r\n }\r\n }\r\n //}\r\n });\r\n //Variant Grid\r\n $(document).on('click', '.pf-product-details-variant-grid', function (e) {\r\n //e.preventDefault();\r\n var obj = $(this);\r\n var id = obj.data(\"id\");\r\n $('.variantGrid').hide(50);\r\n //var title = obj.data(\"name\");\r\n var variantWrapper = obj.closest('.pf-product-details-variant-grid-wrapper');\r\n\r\n // find all variants in this set and remove selected class\r\n variantWrapper.each(function () {\r\n $(this).find('.pf-product-details-variant-grid').removeClass('pf-product-details-variant-grid-selected');\r\n });\r\n // add selected to this item\r\n obj.addClass('pf-product-details-variant-grid-selected');\r\n //var selectorString = \"#variant-grid-actions-\" + id;\r\n $(\"#variant-grid-actions-\" + id).show(50);\r\n });\r\n}\r\n\r\n \r\n\r\n// checks if all all components of a product with component options have been selected true if they have, false if not\r\nfunction CheckComponentsSelected() {\r\n if ($('#pf-product-details-page').data('product-has-components') === \"True\") {\r\n // check all have been selected\r\n var allSelected = true;\r\n $('.pf-product-component-select-data').each(function () {\r\n var selectedId = $(this).data('selected-id');\r\n if (selectedId === undefined) {\r\n allSelected = false;\r\n }\r\n });\r\n return allSelected;\r\n }\r\n}\r\n\r\n\r\n// gets an object with all the currently selected components\r\nfunction GetSelectedOptionsAdv() {\r\n var optionsAdv = [];\r\n $('.pf-product-component-select-data').each(function (i, o) {\r\n var $this = $(this);\r\n var selectedId = $this.data('selected-id');\r\n if (selectedId !== undefined) {\r\n optionsAdv.push({\r\n groupId: $this.data('component-group-id'),\r\n groupName: $this.data('component-name'),\r\n optionProductId: selectedId,\r\n optionProductName: $this.data('selected-name')\r\n });\r\n }\r\n });\r\n\r\n return optionsAdv;\r\n}\r\n\r\nfunction GetCalculatedPrice(optionsAdv) {\r\n if (hasVariants) {\r\n // get product related prices (discounts etc? - do these work with variants???)\r\n\r\n // loop each variant and get its calculated price\r\n $('.pf-product-variant-item').each(function () {\r\n var variantId = $(this).data(\"variant-id\");\r\n var productId = $(this).data(\"product-id\");\r\n $.post(root + \"Products/GetPriceOptionsAdv\", {\r\n productId: productId,\r\n optionsAdv: optionsAdv,\r\n variantId: variantId,\r\n isVariant: true\r\n }, function (data) {\r\n // find the variant container and set the data for it\r\n if (data.result === 0) {\r\n\r\n $('.pf-product-variant-item[data-variant-id=\"' + data.variantId + '\"] span[itemprop=price]').text(data.showSalePrice ? data.salePriceString : data.priceString);\r\n $('.pf-product-variant-item[data-variant-id=\"' + data.variantId + '\"] span.pf-price-old').text(data.showSalePrice ? data.priceString : '');\r\n if (data.showSalePrice) {\r\n $('.pf-product-variant-item[data-variant-id=\"' + data.variantId + '\"] span.pf-price-old').removeClass(\"pf-hide\");\r\n }\r\n\r\n var $priceWrapper = $('.pf-product-variant-item[data-variant-id=\"' + data.variantId + '\"]');\r\n var $discTable = $priceWrapper.find('.pf-disc-table');\r\n if (data.quantityPriceListPrices.length > 0) {\r\n if ($discTable.length === 0) {\r\n $discTable = $('').append($(''));\r\n $priceWrapper.append($discTable);\r\n } else {\r\n $discTable.find('tbody').empty();\r\n }\r\n\r\n var $discTableTbody = $discTable.find('tbody');\r\n $.each(data.quantityPriceListPrices, function () {\r\n var $discTableTd = $('').append($discTableTd);\r\n $discTableTbody.append($discTableTr);\r\n });\r\n } else {\r\n if ($discTable.length > 0) $discTable.remove();\r\n }\r\n } else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n });\r\n }\r\n else {\r\n $.post(root + \"Products/GetPriceOptionsAdv\", {\r\n productId: $('#pf-product-details-page').data('product-id'),\r\n optionsAdv: optionsAdv\r\n }, function (data) {\r\n if (data.result === 0) {\r\n\r\n $('.product-detail-price span[itemprop=price]').text(data.showSalePrice ? data.salePriceString : data.priceString);\r\n $('.product-detail-price span.pf-price-old').text(data.showSalePrice ? data.priceString : '');\r\n\r\n var $priceWrapper = $('.pf-product-details-price-wrapper');\r\n var $discTable = $priceWrapper.find('.pf-disc-table');\r\n if (data.quantityPriceListPrices.length > 0) {\r\n if ($discTable.length === 0) {\r\n $discTable = $('
').append(document.createTextNode('Buy ' + this.quantityBreak + ' for '));\r\n if (this.showSalePrice)\r\n $discTableTd.append($('').text(this.priceString)).append(document.createTextNode(' ' + this.salePriceString + ' each'));\r\n else\r\n $discTableTd.append(document.createTextNode(this.priceString + ' each'));\r\n var $discTableTr = $('
').append($(''));\r\n $priceWrapper.append($discTable);\r\n } else {\r\n $discTable.find('tbody').empty();\r\n }\r\n\r\n var $discTableTbody = $discTable.find('tbody');\r\n $.each(data.quantityPriceListPrices, function () {\r\n var $discTableTd = $('').append($discTableTd);\r\n $discTableTbody.append($discTableTr);\r\n });\r\n } else {\r\n if ($discTable.length > 0) $discTable.remove();\r\n }\r\n } else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n }\r\n}\r\n\r\nfunction GetCalculatedStock(optionsAdv) {\r\n if (hasVariants)\r\n {\r\n // loop each variant and get its calculated price\r\n $('.pf-product-variant-item').each(function () {\r\n var variantId = $(this).data(\"variant-id\");\r\n var productId = $(this).data(\"product-id\");\r\n $.post(root + \"Products/GetStockOptionsAdv\", {\r\n productId: productId,\r\n optionsAdv: optionsAdv,\r\n variantId: variantId,\r\n isVariant: true\r\n }, function (data) {\r\n // find the variant container and set the data for it\r\n if (data.result === 0) {\r\n\r\n var variantWrapper = $('.pf-product-variant-item[data-variant-id=\"' + data.variantId + '\"]');\r\n\r\n variantWrapper.find('.pf-stock-info span.stock-count').text(data.stock);\r\n variantWrapper.find('.pf-stock-info').removeClass('pf-hide'); \r\n \r\n } else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n });\r\n }\r\n else {\r\n $.post(root + \"Products/GetStockOptionsAdv\", {\r\n productId: $('#pf-product-details-page').data('product-id'),\r\n optionsAdv: optionsAdv\r\n }, function (data) {\r\n if (data.result === 0) {\r\n $('.pf-stock-info span.stock-count').text(data.stock);\r\n $('.pf-stock-info').removeClass('pf-hide');\r\n } else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n }\r\n}\r\n\r\n// currently used for products with components only, once all options have been selected we set the add or remove favs buttons by checking via ajax\r\nfunction SetFavButtons(optionsAdv) {\r\n var loggedIn = $('#pf-product-details-page').data('logged-in');\r\n if (loggedIn === \"True\") {\r\n $.post(root + \"Products/CheckProductIsFavOptionsAdv\", {\r\n productId: $('#pf-product-details-page').data('product-id'),\r\n optionsAdv: optionsAdv\r\n }, function (data) {\r\n if (data.result === 0) {\r\n var isFav = data.isFav;\r\n SetFavBtnsIsFav(isFav);\r\n } else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n }\r\n}\r\n\r\nfunction SetFavBtnsIsFav(isFav) {\r\n if (isFav) {\r\n $('.add-to-favorites-btn.isfav-icon').removeClass('hidden');\r\n $('.add-to-favorites-btn.isnotfav-icon').addClass('hidden');\r\n } else {\r\n $('.add-to-favorites-btn.isfav-icon').addClass('hidden');\r\n $('.add-to-favorites-btn.isnotfav-icon').removeClass('hidden');\r\n }\r\n}\r\n\r\n//function AddedToCart(data) {\r\n// if (data.result == \"ok\") {\r\n// GetAndOpenTopCart();\r\n// $(\"html, body\").animate({ scrollTop: 0 }, \"slow\"); // scroll to top\r\n// }\r\n// if (data.result == \"ok-stock-limited\") {\r\n// alert(\"Sorry there are only \" + data.qty + \" of these items available in stock.\");\r\n// GetAndOpenTopCart();\r\n// $(\"html, body\").animate({ scrollTop: 0 }, \"slow\"); // scroll to top\r\n// }\r\n// if (data.result == \"ok-out-of-stock\") {\r\n// alert(\"Sorry this item is no longer in stock.\");\r\n// GetTopCart();\r\n// }\r\n//}\r\n\r\nfunction vidClosed() {\r\n jQuery(\"#youtubePlayerContainer\").tubeplayer(\"stop\");\r\n}\r\n"]}
').append(document.createTextNode('Buy ' + this.quantityBreak + ' for '));\r\n if (this.showSalePrice)\r\n $discTableTd.append($('').text(this.priceString)).append(document.createTextNode(' ' + this.salePriceString + ' each'));\r\n else\r\n $discTableTd.append(document.createTextNode(this.priceString + ' each'));\r\n var $discTableTr = $('