{"version":3,"sources":["ecom-list-view.js"],"names":["Platform","Deferred","execute","setListViewScript","selectedProducts","selectedProductsWithOptions","productSelected","scrollingToTop","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","this","pagenum","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","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","parent","location","categoryIdValue","indexOf","splice","attributeId","attributesString","map","attrValues","attrId","exec","newUrl","UpdateQueryString","productLimit","qs","cs","minPrice","maxPrice","sort","listby","replace","productIndex","history","pushState","animate","wishListBtnClickHandler","setTimeout","href","hash","re","RegExp","test","split","separator","InitFilterHeader","next","slideUp","slideDown","InitCats","selectedLink","parents","filterSelectedParent","ShowClearFilterBtn","InitSpecs","link","removeData","InitColours","bestSellers","bestSellersUserGroup","existingUrl","baseUrl","existingUrlMatch","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\nvar scrollingToTop = false;\r\nfunction LoadFilters() {\r\n var root = $('body').data('root');\r\n\r\n $('.sub-cat-holder-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\nfunction setListViewScript() {\r\n var root = $('body').data('root');\r\n $('.sub-cat-holder-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 // add handler for filter options\r\n $(document).on('click', '.ecom-filter-val', function () {\r\n FilterProducts(url, null, null, null, null, this);\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 && !scrollingToTop) {\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-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});\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 $.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 });\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, element) {\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 var catId = $('#pf-product-list-page').data(\"cat-id\");\r\n if ($(this).val() != catId) {\r\n if (!categories.includes($(this).val())) {\r\n categories.push($(this).val());\r\n }\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 //remove parents of this subcategory\r\n if (element && $(element).prop('checked')) {\r\n var parent = $(element).closest('nav').siblings('div.pf-filter-item').find('input.ecom-filter-val');\r\n if (parent.length > 0 && parent.prop(\"checked\"))\r\n {\r\n window.location = $(element).siblings('a').attr('href');\r\n return;\r\n }\r\n $(element).closest('.pf-filter-item').siblings('nav').find('input.ecom-filter-val').each(function () {\r\n if ($(this).prop('checked'))\r\n {\r\n $(this).prop('checked', false);\r\n var categoryIdValue = $(this).val();\r\n var catId = $('#pf-product-list-page').data(\"cat-id\");\r\n if (categoryIdValue && categoryIdValue == catId)\r\n {\r\n window.location = $(this).closest('nav').siblings('div.pf-filter-item').find('input.ecom-filter-val').siblings('a').attr('href');\r\n return;\r\n }\r\n else {\r\n var index = categories.indexOf(categoryIdValue);\r\n categories.splice(index,1);\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 //if a brand is selected\r\n if (brands && brands.length > 0) {\r\n var categoryURLRegex = /^((category)\\/([0-9]+)\\/[^ \\/?]+)/i\r\n var isCategoryUrlMatch = categoryURLRegex.exec(url);\r\n if (!isCategoryUrlMatch && $('#pf-product-list-page').data('cat-id') == 856) { \r\n var baseUrl = $('body').data('root');\r\n url = baseUrl + \"Category/856/the-stage-electrics-online-shop\";\r\n }\r\n }\r\n //// gets new url to call\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\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 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 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 if (!isLoadMore) {\r\n scrollingToTop = true;\r\n $('html, body').animate({\r\n scrollTop: $(\"#pf-product-list-page\").offset().top\r\n }, 700, function () {\r\n scrollingToTop = false;\r\n });\r\n }\r\n $('#list-products-wrapper').html(data);\r\n $('#list-products-wrapper').waitForImages(function () {\r\n $('.sub-cat-holder-match-height').matchHeight();\r\n $('.product-info-match-height').matchHeight();\r\n });\r\n LoadFilters();\r\n wishListBtnClickHandler();\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 });\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 //tick the current category you are in\r\n $('.cat-selected').siblings('input').prop(\"checked\", true);\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"]}