{"version":3,"sources":["ecom-list-view.js"],"names":["Platform","Deferred","execute","setListViewScript","selectedProducts","selectedProductsWithOptions","productSelected","LoadFilters","root","$","data","matchHeight","wrapper","filter","colourFilter","brandFilter","catFilter","catId","brandId","searchString","encodeURIComponent","filterEnabled","filterDisplay","listType","minPriceFilter","maxPriceFilter","html","load","useLoadMoreOnScroll","stockNotifyProdId","url","document","on","FilterProducts","pagenum","this","limit","productsLoading","window","scroll","length","containerOffset","offset","top","containerHeight","outerHeight","windowHeight","height","scrollTop","show","hide","waitForImages","prop","ClearFilters","val","stockNotifyIsVariant","stockNotifyLoggedIn","stockNotifyEmail","stockModal","remodal","RegisterStockNotify","ajax","type","dataType","JSON","stringify","prodId","isVariant","email","contentType","success","result","open","fadeOut","fadeIn","alert","error","renderMultiSelectProduct","newItem","clone","attr","hasVariants","hasOptions","hasOptionsAdv","UoM","find","prodName","prodImg","appendTo","submit","e","preventDefault","fbPixelEnabled","btn","id","qty","closest","productId","quantity","trigger","fbq_addToBag","$productsTarget","products","each","$this","push","ProductId","Quantity","qtyTbx","Number","uom","minQty","Lobibox","notify","msg","icon","title","mouseenter","swapIn","mainImgContainer","mainImage","addClass","mouseleave","removeClass","click","hasClass","css","index","remove","jQuery","grep","value","input","siblings","productWrapper","selectedDiv","is","element","inArray","text","console","log","key","async","row","opts","variantId","optionsAdv","options","close","focus","handleNextItem","selectedIndex","product","rsp","off","SetPlatformModalContent","OpenPlatformModal","isLoadMore","callback","urlParameters","GetFilterFromUrl","attributes","colours","brands","categories","filterType","attrItem","includes","join","attributeId","attributesString","map","attrValues","attrId","newUrl","UpdateQueryString","productLimit","qs","cs","minPrice","maxPrice","sort","listby","replace","productIndex","location","history","pushState","wishListBtnClickHandler","animate","setTimeout","href","hash","re","RegExp","test","split","separator","indexOf","InitFilterHeader","next","slideUp","slideDown","InitCats","selectedLink","parents","parent","filterSelectedParent","ShowClearFilterBtn","InitSpecs","link","removeData","InitColours","bestSellers","bestSellersUserGroup","existingUrl","baseUrl","existingUrlMatch","exec","pfRegex","brRegex","caRegex","cfRegex","listbyRegex","pageRegex","limitRegex","queryString","search","substring","_","queryStringPart","pfRegexMatch","spec","specParts","brRegexMatch","caRegexMatch","cfRegexMatch","colourId","listbyRegexMatch","pageRegexMatch","limitRegexMatch"],"mappings":"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","file":"ecom-list-view.min.js","sourcesContent":["Platform.Deferred.execute(setListViewScript);\r\nvar selectedProducts = [];\r\nvar selectedProductsWithOptions = [];\r\nvar productSelected = {};\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 catFilter = wrapper.data(\"cat-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 + \"&catFilter=\" + catFilter);\r\n // Todo may need to re-design the way this is used, as loading the colour filter for CoachHouse in this way caused delays many . \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 var useLoadMoreOnScroll = wrapper.data('use-load-more-on-scroll');\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, true);\r\n })\r\n\r\n if (useLoadMoreOnScroll == 'True') {\r\n var productsLoading = false;\r\n $(window).scroll(function () {\r\n if ($('.pf-load-more-container').length) {\r\n var containerOffset = $('#list-products-wrapper').offset().top,\r\n containerHeight = $('#list-products-wrapper').outerHeight(),\r\n windowHeight = $(window).height(),\r\n windowTop = $(this).scrollTop();\r\n if ((windowTop > (containerOffset + containerHeight - windowHeight)) && !productsLoading) {\r\n productsLoading = true;\r\n var limit = $('.pf-load-more-container').data('limit');\r\n $('.pf-load-more-loading').show();\r\n FilterProducts(url, null, limit, true, function () {\r\n $('.pf-load-more-loading').hide();\r\n productsLoading = false;\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 });\r\n }\r\n }\r\n });\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 stockNotifyProdId;\r\n var stockNotifyIsVariant = \"False\";\r\n var stockNotifyLoggedIn = \"False\";\r\n var stockNotifyEmail = \"\";\r\n var stockModal = $('[data-remodal-id=stock-notify-modal]').remodal();\r\n \r\n $(document).on('click', '.pf-stock-notify-me-btn', 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 $(document).on('click', '.product-list-add-to-cart-btn', 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 $(document).on('click', '.pf-add-all-to-cart-btn', 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 $(document).on('click', '.list-view-add-cart-wrapper .pf-qty-btn-minus', 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 var min = qtyTbx.data('min');\r\n\r\n var minQty = min;\r\n if (minQty % uom !== 0)\r\n minQty = minQty - (minQty % uom) + uom;\r\n\r\n if (qty > uom)\r\n qty -= uom;\r\n\r\n if (minQty > 1 && qty < minQty) {\r\n qty = minQty;\r\n Lobibox.notify('warning', {\r\n msg: 'This product has a minimum order quantity of ' + minQty,\r\n icon: 'fas fa-info-circle',\r\n title: 'Minimum Order Quantity'\r\n });\r\n }\r\n qtyTbx.val(qty);\r\n});\r\n \r\n $(document).on('click', '.list-view-add-cart-wrapper .pf-qty-btn-plus', 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 $(document).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-prods-wrapper .pf-list-view-group-prod\");\r\n \r\n //Multi select product list\r\n $(document).on('click', '.pf-select-products-btn', function () {\r\n if ($(this).hasClass('pf-multi-selected')) {\r\n $('.pf-select-all-products-btn').css('display', 'none');\r\n $('.pf-multi-select-wrapper').css('display', 'none');\r\n $('.pf-product-list-bottom ').css('display', 'none');\r\n $(this).removeClass('pf-multi-selected');\r\n $(this).html('Select Products');\r\n $(\"#pf-product-listing .pf-multi-select-product\").each(function (index) {\r\n $(this).removeClass('selected');\r\n });\r\n $(\"#pf-product-listing .pf-multi-select-item\").each(function (index) {\r\n $(this).prop('checked', false);\r\n });\r\n $('#pf-product-listing .pf-product-list-item').each(function (index) {\r\n var prodId = $(this).data('id');\r\n var element = $('.pf-multi-select-items-wrapper').find(\".pf-multi-selected-product[data-product-id='\" + prodId + \"']\");\r\n element.remove();\r\n selectedProducts = jQuery.grep(selectedProducts, function (value) {\r\n return value != prodId;\r\n });\r\n selectedProductsWithOptions = jQuery.grep(selectedProductsWithOptions, function (value) {\r\n return value != prodId;\r\n });\r\n });\r\n }\r\n else {\r\n $('.pf-select-all-products-btn').css('display', 'inline-block');\r\n $('.pf-multi-select-wrapper').css('display', 'block');\r\n $('.pf-product-list-bottom ').css('display', 'block');\r\n $(this).addClass('pf-multi-selected');\r\n $(this).html('Deselect All');\r\n }\r\n //$('.product-match-height').matchHeight();\r\n});\r\n $(document).on('click', '.pf-multi-select-icon', function () {\r\n var input = $(this).siblings();\r\n var productWrapper = $(this).closest('.pf-product-list-item');\r\n var selectedDiv = productWrapper.find('.pf-multi-select-product');\r\n if (input.is(':checked')) {\r\n input.prop('checked', false);\r\n selectedDiv.removeClass('selected');\r\n //Remove product from summary\r\n var prodId = productWrapper.data('id');\r\n var element = $('.pf-multi-select-items-wrapper').find(\".pf-multi-selected-product[data-product-id='\" + prodId + \"']\");\r\n if (element.data('has-variants') == 'True' || element.data('has-options') == 'True' || element.data('has-options-adv') == 'True') {\r\n selectedProductsWithOptions = jQuery.grep(selectedProductsWithOptions, function (value) {\r\n return value != prodId;\r\n });\r\n }\r\n else {\r\n selectedProducts = jQuery.grep(selectedProducts, function (value) {\r\n return value != prodId;\r\n });\r\n }\r\n element.remove();\r\n }\r\n else {\r\n if (jQuery.inArray(productWrapper.data('id'), selectedProducts) == -1) {\r\n input.prop('checked', true);\r\n selectedDiv.addClass('selected');\r\n //Adding product to summary\r\n productSelected.prodId = productWrapper.data('id');\r\n productSelected.prodName = productWrapper.find('.pf-product-name').text();\r\n productSelected.prodImg = productWrapper.find('.pf-list-item-img').attr('src')\r\n || $('.pf-product-main-image-wrapper').find('.img:first').attr('src');\r\n productSelected.hasVariants = productWrapper.data('has-variants');\r\n productSelected.hasOptions = productWrapper.data('has-options');\r\n productSelected.hasOptionsAdv = productWrapper.data('has-options-adv');\r\n productSelected.UoM = 1;\r\n if (productWrapper.find('.pf-add-cart-wrapper').find('.pf-qty-wrapper').length) {\r\n productSelected.UoM = productWrapper.find('.pf-qty-select').data('uom');\r\n }\r\n renderMultiSelectProduct();\r\n if (productSelected.hasVariants == 'True' || productSelected.hasOptions == 'True' || productSelected.hasOptionsAdv == 'True') {\r\n selectedProductsWithOptions.push(productSelected.prodId);\r\n }\r\n else {\r\n selectedProducts.push(productSelected.prodId);\r\n }\r\n }\r\n }\r\n});\r\n $(document).on('click', '.pf-select-all-products-btn', function () {\r\n $('#pf-product-listing .pf-product-list-item').each(function (index) {\r\n var prodId = $(this).data('id');\r\n var element = $('.pf-multi-select-items-wrapper').find(\".pf-multi-selected-product[data-product-id='\" + prodId + \"']\");\r\n element.remove();\r\n selectedProducts = jQuery.grep(selectedProducts, function (value) {\r\n return value != prodId;\r\n });\r\n selectedProductsWithOptions = jQuery.grep(selectedProductsWithOptions, function (value) {\r\n return value != prodId;\r\n });\r\n });\r\n $('#pf-product-listing .pf-multi-select-product').each(function (index) {\r\n $(this).addClass('selected');\r\n });\r\n $('#pf-product-listing .pf-multi-select-item').each(function (index) {\r\n $(this).prop('checked', true);\r\n });\r\n $('#pf-product-listing .pf-product-list-item').each(function (index) {\r\n productSelected.prodId = $(this).data('id');\r\n productSelected.prodName = $(this).find('.pf-product-name').text();\r\n productSelected.prodImg = $(this).find('.pf-list-item-img').attr('src')\r\n || $('.pf-product-main-image-wrapper').find('.img:first').attr('src');\r\n productSelected.hasVariants = $(this).data('has-variants');\r\n productSelected.hasOptions = $(this).data('has-options');\r\n productSelected.hasOptionsAdv = $(this).data('has-options-adv');\r\n productSelected.UoM = 1;\r\n if ($(this).find('.pf-add-cart-wrapper').find('.pf-qty-wrapper').length) {\r\n productSelected.UoM = $(this).find('.pf-qty-select').data('uom');\r\n }\r\n renderMultiSelectProduct();\r\n if (productSelected.hasVariants == 'True' || productSelected.hasOptions == 'True' || productSelected.hasOptionsAdv == 'True') {\r\n selectedProductsWithOptions.push(productSelected.prodId);\r\n }\r\n else {\r\n selectedProducts.push(productSelected.prodId);\r\n }\r\n });\r\n});\r\n $('body').on('click', 'a.pf-multi-select-remove-item', function () {\r\n var productWrapper = $(this).closest('.pf-multi-selected-product');\r\n if (productWrapper.data('has-variants') == 'True' || productWrapper.data('has-options') == 'True' || productWrapper.data('has-options-adv') == 'True') {\r\n selectedProductsWithOptions = jQuery.grep(selectedProductsWithOptions, function (value) {\r\n return value != productWrapper.data('product-id');\r\n });\r\n }\r\n else {\r\n selectedProducts = jQuery.grep(selectedProducts, function (value) {\r\n return value != productWrapper.data('product-id');\r\n });\r\n }\r\n //Delete selected status from main product list\r\n var input = $('#list-products-wrapper').find(\".pf-multi-select-item[data-prod-id='\" + productWrapper.data('product-id') + \"']\");\r\n input.closest('.pf-product-list-item').find('.pf-multi-select-product').removeClass('selected');\r\n input.prop('checked', false);\r\n //Removing from summary\r\n productWrapper.remove();\r\n});\r\n function renderMultiSelectProduct() {\r\n var newItem = $('#MultiSeletedItemTemplate').clone();\r\n newItem.attr('id', '');\r\n newItem.attr('data-product-id', productSelected.prodId);\r\n newItem.attr('data-has-variants', productSelected.hasVariants);\r\n newItem.attr('data-has-options', productSelected.hasOptions);\r\n newItem.attr('data-has-options-adv', productSelected.hasOptionsAdv);\r\n newItem.attr('data-uom', productSelected.UoM);\r\n newItem.find('.pf-product-name').html(productSelected.prodName);\r\n newItem.find('img').attr('src', productSelected.prodImg);\r\n newItem.appendTo('.pf-multi-select-items-wrapper');\r\n}\r\n $(document).on('click', '.pf-multi-select-action-buttons-wrapper .pf-qty-btn-minus', 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 = 1;\r\n var min = qtyTbx.data('min');\r\n var minQty = min;\r\n if (minQty % uom !== 0)\r\n minQty = minQty - (minQty % uom) + uom;\r\n\r\n if (qty > uom)\r\n qty -= uom;\r\n\r\n if (minQty > 1 && qty < minQty) {\r\n qty = minQty;\r\n Lobibox.notify('warning', {\r\n msg: 'This product has a minimum order quantity of ' + minQty,\r\n icon: 'fas fa-info-circle',\r\n title: 'Minimum Order Quantity'\r\n });\r\n }\r\n qtyTbx.val(qty);\r\n});\r\n $(document).on('click', '.pf-multi-select-action-buttons-wrapper .pf-qty-btn-plus', 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 = 1;\r\n qty += uom;\r\n qtyTbx.val(qty);\r\n});\r\n $(document).on('click', '.pf-multi-select-action-buttons-wrapper .pf-multi-select-all-to-cart', function () {\r\n var qty = $('.pf-multi-select-action-buttons-wrapper').find('.qty-tbx').val();\r\n var fbPixelEnabled = $('#product-view-container').data(\"fb-pixel\");\r\n //Handle normal products\r\n console.log(selectedProducts);\r\n console.log(selectedProductsWithOptions);\r\n $.each(selectedProducts, function (key, value) {\r\n var product = $('.pf-multi-select-items-wrapper').find(\"[data-product-id='\" + value + \"']\");\r\n //var UoM = product.data('uom');\r\n //var qtyTotal = qty * UoM;\r\n $.ajax({\r\n url: root + \"Cart/MultiSelectAddToCart\",\r\n async: false,\r\n type: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify({ prodId: value, qty: qty }),\r\n contentType: 'application/json; charset=utf-8',\r\n success: function (data) {\r\n // standard cart handler\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 console.log(value);\r\n });\r\n $(document).on('click', '#platformModal .pf-add-to-cart-btn', function () {\r\n var fbPixelEnabled = $('#product-view-container').data(\"fb-pixel\");\r\n var btn = $(this);\r\n var row = btn.closest('.pf-add-cart-row');\r\n var id = btn.data(\"id\");\r\n var opts = btn.data(\"options\");\r\n var variantId = $(btn).data(\"variant-id\");\r\n var qty = row.find('.pf-qty-select').val();\r\n var optionsAdv = $(this).data('options-adv');\r\n\r\n $.ajax({\r\n url: root + \"Cart/AddToCart\",\r\n type: 'POST',\r\n dataType: 'json',\r\n data: ({\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 }),\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 $('.pf-quick-add-to-cart-alert').hide();\r\n var pModal = $('[data-remodal-id=platformModal]').remodal();\r\n pModal.close();\r\n $('.pf-quick-order-quick-entry-code').val('').focus();\r\n //SetCartQty();\r\n if (fbPixelEnabled == \"True\") {\r\n fbq_addToBag();\r\n }\r\n\r\n $(\"#cart-product-\" + data.id).show();\r\n }\r\n });\r\n\r\n return false;\r\n });\r\n\r\n //Handle products with options\r\n var handleNextItem = function (selectedIndex, selectedProductsWithOptions) {\r\n if (selectedIndex >= selectedProductsWithOptions.length)\r\n return;\r\n\r\n var productId = selectedProductsWithOptions[selectedIndex];\r\n var product = $('.pf-multi-select-items-wrapper').find(\"[data-product-id='\" + productId + \"']\");\r\n //var UoM = product.data('uom');\r\n //var qtyTotal = qty * UoM;\r\n $.ajax({\r\n url: root + \"Cart/MultiSelectAddToCart\",\r\n async: false,\r\n type: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify({ prodId: productId, qty: qty }),\r\n contentType: 'application/json; charset=utf-8',\r\n success: function (data) {\r\n if (data.result == \"showpopup\") {\r\n //show popup for product\r\n $.ajax({\r\n url: root + \"Products/SelectProductOptions\",\r\n async: false,\r\n type: 'POST',\r\n data: { id: productId },\r\n success: function (rsp) {\r\n $(document).off('closed', '#platformModal').on('closed', '#platformModal', function (e) {\r\n handleNextItem(selectedIndex + 1, selectedProductsWithOptions);\r\n });\r\n SetPlatformModalContent(\"Select Options for - \" + product.find('.pf-product-name').text(), rsp);\r\n OpenPlatformModal(\"650px\");\r\n }\r\n });\r\n }\r\n else if (data.result == \"ok-out-of-stock\" || data.result == \"ok-stock-limited\") {\r\n handleNextItem(selectedIndex + 1, selectedProductsWithOptions);\r\n }\r\n else {\r\n // standard cart handler\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 }\r\n handleNextItem(0, selectedProductsWithOptions);\r\n //remove items from summary and items selected\r\n $(\"#pf-product-listing .pf-multi-select-product\").each(function (index) {\r\n $(this).removeClass('selected');\r\n });\r\n $(\"#pf-product-listing .pf-multi-select-item\").each(function (index) {\r\n $(this).prop('checked', false);\r\n });\r\n $('#pf-product-listing .pf-product-list-item').each(function (index) {\r\n var prodId = $(this).data('id');\r\n var element = $('.pf-multi-select-items-wrapper').find(\".pf-multi-selected-product[data-product-id='\" + prodId + \"']\");\r\n if (element.data('has-variants') == 'True' || element.data('has-options') == 'True' || element.data('has-options-adv') == 'True') {\r\n selectedProductsWithOptions = jQuery.grep(selectedProductsWithOptions, function (value) {\r\n return value != prodId;\r\n });\r\n }\r\n else {\r\n selectedProducts = jQuery.grep(selectedProducts, function (value) {\r\n return value != prodId;\r\n });\r\n }\r\n element.remove();\r\n });\r\n $('.pf-product-list-bottom ').css('display', 'none');\r\n $('.pf-multi-select-wrapper').css('display', 'none');\r\n $('.pf-select-all-products-btn').css('display', 'none');\r\n $('.pf-select-products-btn').removeClass('pf-multi-selected');\r\n $('.pf-select-products-btn').html('Select Products');\r\n return false;\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 FilterProducts(url, pagenum, limit, isLoadMore, callback) {\r\n // get the list of selected options and build querystring\r\n var urlParameters = GetFilterFromUrl();\r\n var attributes = urlParameters.attributes;\r\n var colours = $('.ecom-filter-group[data-filter-type=col]').length == 0 ? urlParameters.colours : [];\r\n var brands = $('.ecom-filter-group[data-filter-type=brand]').length == 0 ? urlParameters.brands : [];\r\n var categories = $('.ecom-filter-group[data-filter-type=category]').length == 0 ? urlParameters.categories : [];\r\n\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 attrItem = [];\r\n $(this).closest('.pf-filter-dropdown').find('.ecom-filter-val').each(function () {\r\n if ($(this).is(':checked')) {\r\n if (filterType == \"val\") {\r\n attrItem.push($(this).data('filter-attr-val'));\r\n }\r\n else if (filterType == \"brand\") {\r\n if (!brands.includes($(this).val())) {\r\n brands.push($(this).val());\r\n }\r\n }\r\n else if (filterType == \"category\") {\r\n if (!categories.includes($(this).val())) {\r\n categories.push($(this).val());\r\n }\r\n }\r\n }\r\n });\r\n if (filterType == \"val\") {\r\n attributes[id] = attrItem.join('-');\r\n }\r\n });\r\n $('.ecom-colour-group').each(function () {\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 if (filterType == \"col\") {\r\n if (!colours.includes($(this).data('filter-colour-val'))) {\r\n colours.push($(this).data('filter-colour-val'));\r\n }\r\n }\r\n }\r\n });\r\n });\r\n var wrapper = $('#pf-product-list-page');\r\n wrapper.data('filter-colour', colours.join('-'));\r\n // attributes\r\n for (var attributeId in attributes) {\r\n if (!attributes[attributeId]) {\r\n delete attributes[attributeId];\r\n }\r\n }\r\n var attributesString = $.map(attributes, function (attrValues, attrId) {\r\n return attrId + '|' + attrValues;\r\n }).join(',');\r\n\r\n //// gets new url to call\r\n\r\n var newUrl = UpdateQueryString(\"pf\", attributesString, url);\r\n wrapper.data('filter', attributesString);\r\n if (pagenum) {\r\n newUrl = UpdateQueryString(\"page\", pagenum, newUrl);\r\n }\r\n else if (urlParameters.pagenum) {\r\n newUrl = UpdateQueryString(\"page\", urlParameters.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 }\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 wrapper.data('brand-filter', qs);\r\n\r\n //Categories\r\n qs = categories.join('-');\r\n newUrl = UpdateQueryString(\"ca\", qs, newUrl);\r\n wrapper.data('cat-filter', qs);\r\n //Colour\r\n cs = colours.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 else if (urlParameters.listby) {\r\n newUrl = UpdateQueryString(\"listby\", urlParameters.listby, 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\r\n if (isLoadMore) {\r\n var productIndex = $('.flex-col.border-spaced').length;\r\n newUrl += \"#p\" + productIndex;\r\n }\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 (isLoadMore) {\r\n var productIndex = $('.flex-col.border-spaced').length;\r\n newUrl += \"#p\" + productIndex;\r\n }\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 $('#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 wishListBtnClickHandler();\r\n if (!isLoadMore) {\r\n $('html, body').animate({\r\n scrollTop: $(\"#pf-product-list-page\").offset().top\r\n }, 700);\r\n }\r\n else {\r\n $('html, body').animate({\r\n scrollTop: $(\"#p\" + productIndex).offset().top\r\n }, 700);\r\n }\r\n if (callback)\r\n callback(true);\r\n setTimeout(function () {\r\n $('.productsOnCart').each(function () {\r\n var productId = $(this).val();\r\n var quantity = $(this).attr('quantity');\r\n $('#cart-product-' + productId).css('display', 'block');\r\n $('#quantityFor_' + productId).text(quantity);\r\n //$('.product-match-height').matchHeight();\r\n });\r\n }, 500);\r\n },\r\n error: function () {\r\n if (callback)\r\n callback(false);\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 // call url\r\n var newUrl = UpdateQueryString(\"pf\", null, url);\r\n newUrl = UpdateQueryString(\"br\", null, newUrl);\r\n newUrl = UpdateQueryString(\"cf\", null, newUrl);\r\n newUrl = UpdateQueryString(\"ca\", null, newUrl);\r\n window.location = newUrl;\r\n}\r\n\r\nfunction InitFilterHeader() {\r\n $('.pf-filter-header').off(\"click\"); // can cause duplicate events to be bound on ajax load. try to remove onclick event before adding a new one. \r\n $('.pf-filter-header').on(\"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 // 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 $(document).on('click', '.pf-spec-filter-dropdown-btn', function (e) {\r\n e.preventDefault();\r\n if (!$(this).data('isClicked')) {\r\n var link = $(this);\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 link.data('isClicked', true);\r\n setTimeout(function () {\r\n link.removeData('isClicked')\r\n }, 3000);\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 $(document).on('click', '.pf-colour-filter-dropdown-btn', 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}\r\nfunction GetFilterFromUrl() {\r\n var bestSellers = false;\r\n var bestSellersUserGroup = '';\r\n var attributes = {};\r\n var colours = [];\r\n var brands = [];\r\n var categories = [];\r\n var listby = null;\r\n var pagenum = null;\r\n var limit = null;\r\n var existingUrl = $('#pf-product-list-page').data('url');\r\n var baseUrl = $('body').data('root');\r\n existingUrl = existingUrl.replace(baseUrl, \"\");\r\n var productListUrlRegex = /^(?:(all)|(products\\/search)|(category)\\/([0-9]+)\\/[^ \\/?]+|(bestsellers)(?:\\/([0-9]+))?)/i\r\n var existingUrlMatch = productListUrlRegex.exec(existingUrl);\r\n if (existingUrlMatch) {\r\n if (existingUrlMatch[3]) {\r\n // Category link\r\n categories.push(existingUrlMatch[4]);\r\n } else if (existingUrlMatch[5]) {\r\n // Best sellers link\r\n bestSellers = true;\r\n bestSellersUserGroup = existingUrlMatch[6];\r\n }\r\n var pfRegex = /^pf=((?:\\d+\\|\\d+(?:-\\d+)*,?)*)$/i; // Use existing code on match[1] instead of existingUrlMatch[6]\r\n var brRegex = /^br=((?:\\d(?:-\\d)*)*)$/i; // Use existing code on match[1] instead of existingUrlMatch[7]\r\n var caRegex = /^ca=((?:\\d(?:-\\d)*)*)$/i; // Use existing code on match[1] instead of existingUrlMatch[8]\r\n var cfRegex = /^cf=((?:\\d(?:-\\d)*)*)$/i; // Use existing code on match[1] instead of existingUrlMatch[9]\r\n var listbyRegex = /^listby=([a-z]*)$/i; // Use new code, match[1] will be the sort option text\r\n var pageRegex = /^page=(\\d*)$/i; // Use new code, match[1] will be the page number\r\n var limitRegex = /^limit=(\\d*)$/i; // Use new code, match[1] will be the limit number\r\n var queryString = location.search.substring(1); // Remove the ?\r\n $.each(queryString.split('&'), function (_, queryStringPart) {\r\n var pfRegexMatch = pfRegex.exec(queryStringPart);\r\n if (pfRegexMatch && pfRegexMatch[1]) {\r\n // Specs query string\r\n $.each(pfRegexMatch[1].split(','), function (_, spec) {\r\n var specParts = spec.split('|');\r\n if (specParts.length !== 2)\r\n return true;\r\n attributes[specParts[0]] = specParts[1];\r\n });\r\n return true; // Continue on to next query string part after finding match\r\n }\r\n var brRegexMatch = brRegex.exec(queryStringPart);\r\n if (brRegexMatch && brRegexMatch[1]) {\r\n // Brands query string\r\n $.each(brRegexMatch[1].split('-'), function (_, brandId) {\r\n brands.push(brandId);\r\n });\r\n return true;\r\n }\r\n var caRegexMatch = caRegex.exec(queryStringPart);\r\n if (cfRegexMatch && caRegexMatch[1]) {\r\n // Cats query string\r\n $.each(caRegexMatch[1].split('-'), function (_, catId) {\r\n categories.push(catId);\r\n });\r\n return true;\r\n }\r\n var cfRegexMatch = cfRegex.exec(queryStringPart);\r\n if (cfRegexMatch && cfRegexMatch[1]) {\r\n // Colours query string\r\n $.each(cfRegexMatch[1].split('-'), function (_, colourId) {\r\n colours.push(colourId);\r\n });\r\n return true;\r\n }\r\n var listbyRegexMatch = listbyRegex.exec(queryStringPart);\r\n if (listbyRegexMatch && listbyRegexMatch[1]) {\r\n listby = listbyRegexMatch[1];\r\n return true;\r\n }\r\n var pageRegexMatch = pageRegex.exec(queryStringPart);\r\n if (pageRegexMatch && pageRegexMatch[1]) {\r\n pagenum = pageRegexMatch[1];\r\n return true;\r\n }\r\n var limitRegexMatch = limitRegex.exec(queryStringPart);\r\n if (limitRegexMatch && limitRegexMatch[1]) {\r\n limit = limitRegexMatch[1];\r\n return true;\r\n }\r\n });\r\n }\r\n return {\r\n attributes: attributes,\r\n brands: brands,\r\n categories: categories,\r\n colours: colours,\r\n bestSellers: bestSellers,\r\n bestSellersUserGroup: bestSellersUserGroup,\r\n listby: listby,\r\n pagenum: pagenum,\r\n limit: limit\r\n };\r\n}\r\n"]}