{"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","stockNotifyProdId","url","document","on","FilterProducts","pagenum","this","limit","prop","ClearFilters","val","stockNotifyIsVariant","stockNotifyLoggedIn","stockNotifyEmail","stockModal","remodal","RegisterStockNotify","ajax","type","dataType","JSON","stringify","prodId","isVariant","email","contentType","success","result","hide","show","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","length","console","log","key","async","row","opts","variantId","optionsAdv","options","close","focus","handleNextItem","selectedIndex","product","rsp","off","SetPlatformModalContent","OpenPlatformModal","isLoadMore","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","window","location","history","pushState","waitForImages","wishListBtnClickHandler","animate","scrollTop","offset","top","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 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 $(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 {\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 {\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 {\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) {\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 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 $('#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\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 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"]}