{"version":3,"sources":["ecom-list-view.js","product-common.js"],"names":["LoadFilters","root","$","data","matchHeight","wrapper","filter","colourFilter","brandFilter","catId","brandId","searchString","encodeURIComponent","filterEnabled","filterDisplay","listType","minPriceFilter","maxPriceFilter","html","load","setListViewScript","RegisterStockNotify","ajax","url","type","dataType","JSON","stringify","prodId","stockNotifyProdId","isVariant","stockNotifyIsVariant","email","stockNotifyEmail","contentType","success","result","stockNotifyLoggedIn","hide","show","stockModal","open","fadeOut","fadeIn","alert","error","document","on","FilterProducts","pagenum","this","limit","prop","ClearFilters","remodal","click","submit","e","preventDefault","val","fbPixelEnabled","cartWarningEnabled","btn","id","closest","qty","find","addToCart","productId","quantity","trigger","fbq_addToBag","response","off","text","$productsTarget","products","each","$this","push","ProductId","Quantity","qtyTbx","Number","uom","mouseenter","swapIn","mainImgContainer","mainImage","addClass","mouseleave","removeClass","attrList","colourList","brands","filterType","found","attrItem","is","join","productFilter","cnt","i","length","newUrl","UpdateQueryString","productLimit","qs","cs","minPrice","maxPrice","sort","replace","window","location","history","pushState","waitForImages","key","value","href","hash","re","RegExp","test","split","separator","indexOf","InitFilterHeader","next","slideUp","slideDown","InitCats","selectedLink","parents","parent","siblings","filterSelectedParent","ShowClearFilterBtn","InitSpecs","InitColours","css","setProductCommonScript","$modal","hashTracking","wishListsChecked","CheckWishListCheckboxes","$wishListModal","imgLink","attr","productIds","map","get","focus","bind","keyCode","newListName","post","AddNewWishListCheckbox","wishListName","wishlistId","loggedIn","toString","wishlistIds","optionsAdv","hasComponents","CheckComponentsSelected","GetSelectedOptionsAdv","prodOptsOk","opts","o","opt","name","index","options","wishListIds","ReturnWishlistsCheckedAndSwitchFavIcon","close","loginModal","favbutton","notFavbutton","checkedstr","includes","wishlistName","append","SetFavButtons","isFav","Platform","Deferred","execute"],"mappings":"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","file":"ecom-list-view.min.js","sourcesContent":["Platform.Deferred.execute(setListViewScript);\r\nfunction LoadFilters() {\r\n var root = $('body').data('root');\r\n $('.product-code').matchHeight();\r\n $('.sub-cat-holder-match-height').matchHeight();\r\n $('.product-name').matchHeight();\r\n $('.product-info-match-height').matchHeight();\r\n $('.product-match-height').matchHeight();\r\n \r\n\r\n var wrapper = $('#pf-product-list-page');\r\n var filter = wrapper.data(\"filter\");\r\n var colourFilter = wrapper.data(\"filter-colour\");\r\n var brandFilter = wrapper.data(\"brand-filter\");\r\n var catId = wrapper.data(\"cat-id\");\r\n if (catId == \"undefined\") { catId = \"\" };\r\n var brandId = wrapper.data(\"brand-id\");\r\n if (brandId == \"undefined\") { brandId = \"\" };\r\n var searchString = encodeURIComponent(wrapper.data(\"search-string\"));\r\n var filterEnabled = wrapper.data(\"filter-enabled\");\r\n var filterDisplay = wrapper.data(\"filter-on\");\r\n var listType = wrapper.data(\"list-type\");\r\n var minPriceFilter = wrapper.data(\"min-price-filter\");\r\n var maxPriceFilter = wrapper.data(\"max-price-filter\");\r\n\r\n if (filterEnabled == 'True' && filterDisplay == 'True') {\r\n $('#filter').html(\"
\").load(root + \"Widgets/ProductFilterWidget?listType=\" + listType + \"&catId=\" + catId + \"&brandId=\" + brandId +\r\n \"&searchString=\" + searchString + \"&filter=\" + filter + \"&brandFilter=\" + brandFilter +\r\n \"&minPriceFilter=\" + minPriceFilter + \"&maxPriceFilter=\" + maxPriceFilter + \"&colourFilter=\" + colourFilter);\r\n\r\n $('#filtersOnly').load(root + \"Widgets/GetSpecFilters?catId=\" + catId + \"&brandId=\" + brandId +\r\n \"&searchString=\" + searchString + \"&filter=\" + filter + \"&brandFilter=\" + brandFilter + \"&colourFilter=\" + colourFilter);\r\n $('#filtersColourOnly').load(root + \"Widgets/GetColourFilters?catId=\" + catId + \"&brandId=\" + brandId +\r\n \"&searchString=\" + searchString + \"&filter=\" + filter + \"&brandFilter=\" + brandFilter + \"&colourFilter=\" + colourFilter);\r\n\r\n }\r\n}\r\nfunction setListViewScript(){\r\n var root = $('body').data('root');\r\n $('.sub-cat-holder-match-height').matchHeight();\r\n $('.product-match-height').matchHeight();\r\n $('.product-info-match-height').matchHeight();\r\n\r\n var wrapper = $('#pf-product-list-page');\r\n LoadFilters();\r\n\r\n var url = wrapper.data('url');\r\n\r\n // add handler for filter options\r\n $(document).on('click', '.ecom-filter-val', function () {\r\n FilterProducts(url);\r\n });\r\n $(document).on('click', '.ecom-filter-colour-val', function () {\r\n FilterProducts(url);\r\n });\r\n\r\n $(document).on('click', '.pf-paging-btn', function () {\r\n var pagenum = $(this).data('pagenum');\r\n FilterProducts(url, pagenum);\r\n });\r\n\r\n $(document).on('click', '.pf-load-more-btn', function () {\r\n var limit = $(this).data('limit');\r\n FilterProducts(url, null, limit);\r\n });\r\n\r\n $(document).on('click', '.clear-filters-button', function () {\r\n $(\".ecom-filter-val\").prop(\"checked\", false);\r\n $(\".ecom-filter-colour-val\").prop(\"checked\", false);\r\n FilterProducts(url);\r\n });\r\n\r\n $(document).on('click', '.clear-filters-button', function () {\r\n ClearFilters(url);\r\n });\r\n\r\n $(document).on('change', '.list-view-select', function () {\r\n FilterProducts(url);\r\n });\r\n\r\n $(document).on('change', '.ecom-filter-val-select', function () {\r\n FilterProducts(url);\r\n });\r\n // Mobile filter button\r\n //$(document).on('click', '.filter-heading.mobile', function ()\r\n //{ \r\n // if ($('.m-filter-wrapper').hasClass(\"mobile-filter-visible\"))\r\n // {\r\n // $(\".filter-heading-icon\").html(\"+\");\r\n\r\n // }\r\n // else {\r\n // $(\".filter-heading-icon\").html(\"-\");\r\n \r\n // } \r\n // $('.m-filter-wrapper').toggleClass('mobile-filter-visible'); \r\n //});\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 $('#stock-notify-content').show();\r\n $('#stock-notify-rsp').hide();\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 alert('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 // adding to cart\r\n $('.product-list-add-to-cart-btn').click(function () {\r\n var fbPixelEnabled = $('#product-view-container').data(\"fb-pixel\");\r\n var cartWarningEnabled = $('#pf-product-list-page').data('cart-warning-enabled') === 'True';\r\n var btn = $(this);\r\n var id = btn.data(\"id\");\r\n var wrapper = btn.closest('.list-view-add-cart-wrapper');\r\n var qty = wrapper.find('.qty-tbx').val();\r\n\r\n var addToCart = function () {\r\n $.ajax({\r\n url: root + \"Cart/AddToCart\",\r\n type: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify({ productId: id, quantity: qty }),\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\r\n if (cartWarningEnabled) {\r\n $.ajax({\r\n url: root + 'Cart/CheckProductExistsInCart',\r\n type: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify({ productId: id }),\r\n contentType: 'application/json; charset=utf-8',\r\n success: function (response) {\r\n if (response.result === 'ok-not-exists') {\r\n addToCart();\r\n } else if (response.result === 'ok-exists') {\r\n $('#cartWarningModalAddBtn').off('click').click(function () {\r\n addToCart();\r\n });\r\n $('#cartWarningModalQuantity').text(qty);\r\n $('[data-remodal-id=cartWarningModal]').remodal().open();\r\n }\r\n }\r\n });\r\n } else {\r\n addToCart();\r\n }\r\n\r\n return false;\r\n });\r\n\r\n $('.pf-add-all-to-cart-btn').click(function () {\r\n var $productsTarget = $($(this).data('products-target'));\r\n var products = [];\r\n $productsTarget.find('.pf-product-list-item').each(function () {\r\n var $this = $(this);\r\n if ($this.data('has-variants') !== 'True' && $this.data('has-options') !== 'True' && $this.data('has-options-adv') !== 'True') {\r\n products.push({\r\n ProductId: $(this).data('id'),\r\n Quantity: $(this).find('.qty-tbx').val()\r\n });\r\n }\r\n });\r\n\r\n $.ajax({\r\n url: root + 'Cart/AddProductsToCart',\r\n type: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify(products),\r\n contentType: 'application/json; charset=utf-8',\r\n success: function (data) {\r\n $(document).trigger('itemAdded.product.platform', data);\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 $('.list-view-add-cart-wrapper .pf-qty-btn-minus').click(function () {\r\n var wrapper = $(this).closest('.qtywrapper');\r\n var qtyTbx = wrapper.find('.qty-tbx');\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 $('.list-view-add-cart-wrapper .pf-qty-btn-plus').click(function () {\r\n var wrapper = $(this).closest('.qtywrapper');\r\n var qtyTbx = wrapper.find('.qty-tbx');\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 // group products\r\n $(\".pf-list-view-group-prods-wrapper\").on({\r\n mouseenter: function () {\r\n var swapIn = $(this).data(\"image-url\");\r\n var mainImgContainer = $(this).closest('.pf-product-list-item').find('.pf-list-item-img');\r\n var mainImage = mainImgContainer.prop('src');\r\n $(this).data(\"orig-img-url\", mainImage);\r\n mainImgContainer.prop('src', swapIn);\r\n $(this).addClass('pf-list-group-image-selected');\r\n },\r\n mouseleave: function() {\r\n var swapIn = $(this).data(\"orig-img-url\");\r\n var mainImgContainer = $(this).closest('.pf-product-list-item').find('.pf-list-item-img');\r\n mainImgContainer.prop('src', swapIn);\r\n $(this).removeClass('pf-list-group-image-selected');\r\n },\r\n click: function() {\r\n // Handle click...\r\n }\r\n }, \".pf-list-view-group-prod\");\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 FilterProducts(url, pagenum, limit) {\r\n // get the list of selected options and build querystring\r\n \r\n \r\n var attrList = [];\r\n var colourList=[];\r\n var s = [];\r\n var brands = [];\r\n $('.ecom-filter-group').each(function () {\r\n var id = $(this).data(\"filter-attr\");\r\n var filterType = $(this).data(\"filter-type\");\r\n var found = false;\r\n var attrItem = [];\r\n $(this).closest(\".pf-filter-dropdown\").find(\".ecom-filter-val\").each(function () {\r\n if ($(this).is(':checked')) {\r\n\r\n if (filterType == \"val\") {\r\n attrItem.push($(this).data(\"filter-attr-val\"));\r\n found = true;\r\n }\r\n //if (filterType == \"val\") {\r\n // s.push($(this).data(\"filter-attr-val\"));\r\n //}\r\n else if (filterType == \"brand\") {\r\n brands.push($(this).val());\r\n }\r\n }\r\n });\r\n if (found == true) {\r\n attrList.push(id + \"|\" + attrItem.join('-'));\r\n }\r\n });\r\n $('.ecom-colour-group').each(function () {\r\n var id = $(this).data(\"filter-attr\");\r\n var filterType = $(this).data(\"filter-type\");\r\n $(this).closest(\".pf-filter-dropdown\").find(\".ecom-filter-colour-val\").each(function () {\r\n if ($(this).is(':checked')) {\r\n\r\n if (filterType == \"col\") {\r\n colourList.push($(this).data(\"filter-colour-val\"));\r\n } \r\n }\r\n });\r\n });\r\n var wrapper = $('#pf-product-list-page');\r\n wrapper.data(\"filter-colour\", colourList.join('-'));\r\n\r\n var productFilter = \"\";\r\n var cnt = 0;\r\n for (var i in attrList) {\r\n productFilter += attrList[i];\r\n cnt++;\r\n if (cnt < attrList.length) {\r\n productFilter += \",\";\r\n }\r\n }\r\n\r\n //var newUrl = url + \"?\" + newQuerystring + \"#x-product-listing\";\r\n\r\n // attributes\r\n //var qs = s.join('-');\r\n //// gets new url to call\r\n\r\n var newUrl = UpdateQueryString(\"pf\", productFilter, url);\r\n wrapper.data('filter', productFilter);\r\n\r\n if (pagenum) {\r\n newUrl = UpdateQueryString(\"page\", pagenum, newUrl);\r\n }\r\n\r\n // query limit dropdown\r\n // if populated update limit value based on parameter.\r\n if (limit) {\r\n newUrl = UpdateQueryString(\"limit\", limit, newUrl);\r\n } else {\r\n var productLimit = $('#product-limit').val();\r\n newUrl = UpdateQueryString(\"limit\", productLimit, newUrl);\r\n }\r\n\r\n //// brands\r\n qs = brands.join('-');\r\n newUrl = UpdateQueryString(\"br\", qs, newUrl);\r\n //Colour\r\n cs = colourList.join('-');\r\n newUrl = UpdateQueryString(\"cf\", cs, newUrl);\r\n\r\n // price ranges\r\n var minPrice = $('#min-price-filter').val();\r\n if (typeof minPrice != 'undefined' && minPrice != -1) {\r\n newUrl = UpdateQueryString(\"minprice\", minPrice, newUrl);\r\n }\r\n var maxPrice = $('#max-price-filter').val();\r\n if (typeof maxPrice != 'undefined' && maxPrice != -1) {\r\n newUrl = UpdateQueryString(\"maxprice\", maxPrice, newUrl);\r\n }\r\n\r\n // sorting\r\n var sort = $('#product-sort').val();\r\n if (typeof sort != 'undefined') {\r\n newUrl = UpdateQueryString(\"listby\", sort, newUrl);\r\n }\r\n\r\n if (newUrl == newUrl.replace(\"Category\", \"ListProducts\")) {\r\n //if not a expected async call, just redirect.\r\n window.location = newUrl;\r\n } else {\r\n //redirect to async call and update the list wrapper html on response\r\n newUrl = newUrl.replace(\"Category\", \"ListProducts\");\r\n\r\n $.ajax({\r\n url: newUrl,\r\n type: 'GET',\r\n contentType: 'application/json; charset=utf-8',\r\n success: function (data) {\r\n // update URL for re-navigating to the page if required. \r\n history.pushState({ id: 'products' }, 'pagetitle', newUrl.replace(\"ListProducts\", \"Category\"));\r\n\r\n $('#list-products-wrapper').html(data);\r\n $('#list-products-wrapper').waitForImages(function () {\r\n $('.sub-cat-holder-match-height').matchHeight();\r\n $('.product-match-height').matchHeight();\r\n $('.product-info-match-height').matchHeight();\r\n });\r\n LoadFilters();\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\nfunction UpdateQueryString(key, value, url) {\r\n if (!url) url = window.location.href;\r\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|#|$)(.*)\", \"gi\"),\r\n hash;\r\n\r\n if (re.test(url)) {\r\n if (typeof value !== 'undefined' && value !== null)\r\n return url.replace(re, '$1' + key + \"=\" + value + '$2$3');\r\n else {\r\n hash = url.split('#');\r\n url = hash[0].replace(re, '$1$3').replace(/(&|\\?)$/, '');\r\n if (typeof hash[1] !== 'undefined' && hash[1] !== null)\r\n url += '#' + hash[1];\r\n return url;\r\n }\r\n }\r\n else {\r\n if (typeof value !== 'undefined' && value !== null) {\r\n var separator = url.indexOf('?') !== -1 ? '&' : '?';\r\n hash = url.split('#');\r\n url = hash[0] + separator + key + '=' + value;\r\n if (typeof hash[1] !== 'undefined' && hash[1] !== null)\r\n url += '#' + hash[1];\r\n return url;\r\n }\r\n else\r\n return url;\r\n }\r\n}\r\n\r\nfunction ClearFilters(url)\r\n{\r\n // call url\r\n var newUrl = UpdateQueryString(\"pf\", null, url);\r\n newUrl = UpdateQueryString(\"br\", null, newUrl);\r\nnewUrl = UpdateQueryString(\"cf\", null, newUrl);\r\n window.location = newUrl;\r\n}\r\n\r\nfunction InitFilterHeader()\r\n{\r\n $('.pf-filter-header').click(function () {\r\n var filter = $(this).closest('.pf-filter-header').next('.pf-filter-items');\r\n var trigger = $(this).find('.pf-filter-main-dropdown-btn');\r\n if (filter.is(':visible')) {\r\n filter.slideUp();\r\n trigger.addClass('closed');\r\n trigger.removeClass('open');\r\n }\r\n else {\r\n filter.slideDown();\r\n trigger.removeClass('closed');\r\n trigger.addClass('open');\r\n }\r\n });\r\n}\r\n\r\nfunction InitCats() {\r\n $('.filter-cats-sub').hide();\r\n var selectedLink = $('.cat-selected');\r\n\r\n // open cat parents for selected cat\r\n var parents = selectedLink.parents('nav');\r\n parents.show();\r\n $('.pf-filter-dropdown-btn.opened').parent().siblings('.filter-cats-sub').show();\r\n selectedLink.parents('.filter-cats').siblings('.pf-filter-item').find('.pf-filter-dropdown-btn').removeClass('closed');\r\n //parents.find('.filter-dropdown-icon').removeClass('closed');\r\n //parents.find('.filter-dropdown-icon').addClass('open');\r\n\r\n // open filter specs for selected\r\n var filterSelectedParent = $('.ecom-filter-val.filter-selected').closest('.pf-filter-dropdown-btn');\r\n filterSelectedParent.find('.pf-filter-dropdown-btn').removeClass('closed');\r\n filterSelectedParent.find('.filter-dropdown-list').show();\r\n\r\n $('.pf-filter-dropdown-btn').click(function () {\r\n var parent = $(this).closest('.pf-filter-item');\r\n if (parent.next('nav').is(':visible')) {\r\n parent.next('nav').slideUp();\r\n parent.find('.pf-filter-dropdown-btn').addClass('closed');\r\n }\r\n else {\r\n parent.next('nav').slideDown();\r\n parent.find('.pf-filter-dropdown-btn').removeClass('closed');\r\n }\r\n //$(this).next('nav').slideToggle().toggleClass('filter-closed');\r\n });\r\n\r\n if ($('.ecom-filter-val.filter-selected')[0]) {\r\n ShowClearFilterBtn();\r\n }\r\n}\r\n\r\nfunction InitSpecs() {\r\n\r\n // open filter specs for selected\r\n var filterSelectedParent = $('.ecom-filter-val.filter-selected').closest('.filter-dropdown');\r\n filterSelectedParent.find('.pf-spec-filter-dropdown-btn').removeClass('closed');\r\n filterSelectedParent.find('.filter-dropdown-list').show();\r\n\r\n $('.pf-spec-filter-dropdown-btn').click(function () {\r\n var parent = $(this).closest('.pf-filter-item');\r\n if (parent.next('nav').is(':visible')) {\r\n parent.next('nav').slideUp();\r\n parent.find('.pf-spec-filter-dropdown-btn').addClass('closed');\r\n }\r\n else {\r\n parent.next('nav').slideDown();\r\n parent.find('.pf-spec-filter-dropdown-btn').removeClass('closed');\r\n }\r\n //$(this).next('nav').slideToggle().toggleClass('filter-closed');\r\n });\r\n\r\n if ($('.ecom-filter-val.filter-selected')[0]) {\r\n ShowClearFilterBtn();\r\n }\r\n}\r\nfunction InitColours() {\r\n\r\n // open filter colour if selected\r\n var filterSelectedParent = $('.ecom-filter-colour-val.filter-selected').closest('.filter-dropdown');\r\n filterSelectedParent.find('.pf-colour-filter-dropdown-btn').removeClass('closed');\r\n filterSelectedParent.find('.filter-dropdown-list').show();\r\n\r\n $('.pf-colour-filter-dropdown-btn').click(function () {\r\n var parent = $(this).closest('.pf-colour-item');\r\n if (parent.next('nav').is(':visible')) {\r\n parent.next('nav').slideUp();\r\n parent.find('.pf-colour-filter-dropdown-btn').addClass('closed');\r\n }\r\n else {\r\n parent.next('nav').slideDown();\r\n parent.find('.pf-colour-filter-dropdown-btn').removeClass('closed');\r\n }\r\n //$(this).next('nav').slideToggle().toggleClass('filter-closed');\r\n });\r\n\r\n if ($('.ecom-filter-colour-val.filter-selected')[0]) {\r\n ShowClearFilterBtn();\r\n }\r\n}\r\n\r\nfunction ShowClearFilterBtn() {\r\n $('#pf-clear-filters-btn').css('display', 'inline-block');\r\n}","Platform.Deferred.execute(setProductCommonScript);\r\n\r\n\r\nfunction setProductCommonScript() {\r\n\r\n var $modal = $('[data-remodal-id=wishlist-modal]').remodal({\r\n hashTracking: false\r\n });\r\n\r\n // favourites handlers\r\n $('.add-to-wishlist-btn').click(function () {\r\n $modal.open();\r\n wishListsChecked = $(this).data(\"wishlists-checked\");\r\n if (!wishListsChecked)\r\n wishListsChecked = [];\r\n\r\n CheckWishListCheckboxes(wishListsChecked);\r\n\r\n var $wishListModal = $('.pf-modal-wishlist');\r\n $wishListModal.find('.pf-modal-wishlist-image').show();\r\n $wishListModal.find('.pf-modal-wishlist-list').css('width', '');\r\n\r\n var imgLink = $(this).closest(\".pf-product-list-item\").find(\".pf-list-item-img\").attr(\"src\")\r\n || $(\".pf-product-main-image-wrapper\").find(\".img:first\").attr(\"src\");\r\n $wishListModal.find(\".wishlist-picture-img\").attr(\"src\", imgLink);\r\n var id = $(this).data(\"id\");\r\n $wishListModal.find(\".add-to-favorites-btn\").data(\"product-ids\", id);\r\n });\r\n\r\n $('.pf-add-all-to-wish-list-btn').click(function () {\r\n var $productsTarget = $($(this).data('products-target'));\r\n var productIds = $productsTarget.find('.pf-product-list-item').map(function () {\r\n return $(this).data('id');\r\n }).get();\r\n\r\n CheckWishListCheckboxes([]);\r\n\r\n var $wishListModal = $('.pf-modal-wishlist');\r\n $wishListModal.find('.pf-modal-wishlist-image').hide();\r\n $wishListModal.find('.pf-modal-wishlist-list').css('width', '100%');\r\n $wishListModal.find(\".add-to-favorites-btn\").data(\"product-ids\", productIds.join(','));\r\n\r\n $modal.open();\r\n return false;\r\n });\r\n\r\n $('.create-wish-List-btn').click(function () {\r\n $(this).closest(\".pf-modal-wishlist-list\").find(\".pf-modal-wishlist-create-new\").removeClass('hidden');\r\n $(this).closest(\".wishlist-main-buttons\").addClass('hidden');\r\n $(\".pf-create-wish-list\").focus();\r\n });\r\n\r\n $('.pf-create-wish-list').bind('keypress', function (e) {\r\n if (e.keyCode == 13) \r\n $(\".post-new-wishlist-btn\").trigger(\"click\");\r\n });\r\n\r\n $(\".post-new-wishlist-btn\").click(function () {\r\n var newListName = $(this).closest(\".pf-modal-wishlist-create-new\").find(\".pf-create-wish-list\").val();\r\n if (newListName === '') {\r\n alert(\"Please enter a wish list name\");\r\n return;\r\n }\r\n $.post(root + \"UserAccount/AddNewWishList\", {\r\n newListName: newListName\r\n }, function (data) {\r\n if (data.result == \"ok\") {\r\n AddNewWishListCheckbox(data.wishListName, data.wishlistId);\r\n $(\".pf-modal-wishlist-create-new\").addClass('hidden');\r\n $(\".wishlist-main-buttons\").removeClass('hidden');\r\n }\r\n else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n });\r\n\r\n $('.add-to-favorites-btn').click(function () {\r\n var loggedIn = $('#pf-product-details-page').data(\"logged-in\") || $('.pf-product-list-item').data(\"logged-in\");\r\n if (loggedIn == \"True\") {\r\n var btn = $(this);\r\n var isVariant = btn.data(\"is-variant\");\r\n var productIds = btn.data(\"product-ids\").toString().split(',');\r\n var wishlistIds = [];\r\n $(this).closest(\".pf-modal-wishlist-list\").find(\"input[class ='wishlistCheckbox']:checked\").each(function () {\r\n wishlistIds.push($(this).val());\r\n });\r\n var isFav = btn.data(\"is-fav\");\r\n var optionsAdv = [];\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 (!wishlistIds || wishlistIds === [] || wishlistIds.length === 0) {\r\n if (productIds.length === 1) {\r\n $.post(root + \"UserAccount/RemoveProductFromFavourites\", {\r\n id: productIds[0],\r\n isVariant: isVariant,\r\n optionsAdv: optionsAdv\r\n }, function (data) {\r\n if (data.result == \"ok\") {\r\n $(document).trigger('removedFromFavs.product.platform', data);\r\n\r\n ReturnWishlistsCheckedAndSwitchFavIcon(wishlistIds, productIds[0]);\r\n\r\n $modal.close();\r\n }\r\n else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n }\r\n } else {\r\n if (productIds.length === 1) {\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: productIds[0],\r\n isVariant: isVariant,\r\n options: opts,\r\n optionsAdv: optionsAdv,\r\n wishListIds: wishlistIds\r\n }, function (data) {\r\n if (data.result == \"ok\") {\r\n $(document).trigger('addedToFavs.product.platform', data);\r\n ReturnWishlistsCheckedAndSwitchFavIcon(wishlistIds, productIds[0]);\r\n $modal.close();\r\n }\r\n else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n } else {\r\n $.post(root + \"UserAccount/AddProductsToWishLists\", {\r\n productIds: productIds,\r\n wishListIds: wishlistIds\r\n }, function (data) {\r\n if (data.result === 'ok' || data.result === 'multiple') {\r\n $(document).trigger('addedToFavs.product.platform', data);\r\n $modal.close();\r\n } else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n }\r\n }\r\n }\r\n else {\r\n loginModal.open();\r\n }\r\n });\r\n\r\n}\r\n\r\n\r\nfunction ReturnWishlistsCheckedAndSwitchFavIcon(wishListsChecked, productId) {\r\n var favbutton = $('.add-to-wishlist-btn.isfav-icon[data-id=\"' + productId + '\"]');\r\n var notFavbutton = $('.add-to-wishlist-btn.isnotfav-icon[data-id=\"' + productId + '\"]');\r\n var checkedstr = \"[\" + wishListsChecked.toString() + \"]\";\r\n if (wishListsChecked.length == 0) {\r\n favbutton.addClass('hidden')\r\n favbutton.data(\"wishlists-checked\", checkedstr);\r\n notFavbutton.removeClass('hidden')\r\n notFavbutton.data(\"wishlists-checked\", checkedstr);\r\n } else {\r\n favbutton.removeClass('hidden')\r\n favbutton.data(\"wishlists-checked\", checkedstr);\r\n notFavbutton.addClass('hidden')\r\n notFavbutton.data(\"wishlists-checked\", checkedstr);\r\n }\r\n}\r\n\r\n\r\n\r\nfunction CheckWishListCheckboxes(wishListsChecked) {\r\n \r\n $.each($(\"input[class ='wishlistCheckbox']\"), function () {\r\n var id = $(this).val();\r\n if (wishListsChecked.includes(Number(id))) {\r\n $(this).prop('checked', true);\r\n } else {\r\n $(this).prop('checked', false);\r\n }\r\n });\r\n \r\n}\r\n\r\n\r\nfunction AddNewWishListCheckbox(wishlistName, wishlistId) {\r\n $(\".wishlistCheckboxList\").append(\"
\");\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 } else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\");\r\n }\r\n}"]}