{"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","val","remodal","click","submit","e","preventDefault","fbPixelEnabled","btn","id","closest","qty","find","productId","quantity","trigger","fbq_addToBag","$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","newQuerystring","cnt","i","length","newUrl","UpdateQueryString","productLimit","qs","cs","minPrice","maxPrice","sort","indexOf","window","location","replace","history","pushState","key","value","href","hash","re","RegExp","test","split","separator","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\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 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 var val = $(this).val();\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 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 $.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 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 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 wrapper.data(\"filter-colour\", colourList.join('-'));\r\n\r\n var newQuerystring = \"\";\r\n var cnt = 0;\r\n for (var i in attrList) {\r\n newQuerystring += attrList[i];\r\n cnt++;\r\n if (cnt < attrList.length) {\r\n newQuerystring += \",\";\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\", newQuerystring, url);\r\n if (pagenum) {\r\n newUrl = UpdateQueryString(\"page\", pagenum, newUrl);\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 //// 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\r\n \r\n if (newUrl.indexOf('PartNumberSearch') == -1 && newUrl.indexOf('Category') == -1) {\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 if (newUrl.indexOf('PartNumberSearch') !== -1) {\r\n newUrl = newUrl.replace(\"PartNumberSearch\", \"ListPartNumbers\");\r\n } else {\r\n newUrl = newUrl.replace(\"Category\", \"ListProducts\");\r\n }\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\").replace(\"ListPartNumbers\", \"PartNumberSearch\"))\r\n $('#list-products-wrapper').html(data);\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\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 debugger;\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 new Wishlist\");\r\n }\r\n else {\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 if (data.result === \"Already Exist\") {\r\n alert(\"WishList is already Exist\");\r\n }\r\n else {\r\n alert(\"Error: \" + data.error);\r\n }\r\n }, \"json\"); \r\n }\r\n\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}"]}