{"version":3,"sources":["ecom-list-view.js"],"names":["setListViewScript","root","$","data","matchHeight","wrapper","filter","brandFilter","catId","brandId","searchString","encodeURIComponent","filterEnabled","filterDisplay","listType","minPriceFilter","maxPriceFilter","load","change","val","this","window","location","href","url","document","on","FilterProducts","prop","ClearFilters","click","fbPixelEnabled","btn","id","closest","qty","find","ajax","type","dataType","JSON","stringify","productId","quantity","contentType","success","trigger","fbq_addToBag","qtyTbx","Number","UoM","attrList","brands","each","filterType","found","attrItem","is","push","join","newQuerystring","cnt","i","length","newUrl","UpdateQueryString","qs","minPrice","maxPrice","sort","key","value","hash","re","RegExp","test","replace","split","separator","indexOf","InitFilterHeader","next","slideUp","addClass","removeClass","slideDown","InitCats","hide","selectedLink","parents","show","filterSelectedParent","parent","ShowClearFilterBtn","InitSpecs","css","Platform","Deferred","execute"],"mappings":"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","file":"ecom-list-view.min.js","sourcesContent":["Platform.Deferred.execute(setListViewScript);\r\n\r\nfunction setListViewScript(){\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 brandFilter = wrapper.data(\"brand-filter\");\r\n var catId = wrapper.data(\"cat-id\");\r\n if (catId == \"undefined\") { catId = \"\" };\r\n var brandId = wrapper.data(\"brand-id\");\r\n if (brandId == \"undefined\") { brandId = \"\" };\r\n var searchString = encodeURIComponent(wrapper.data(\"search-string\"));\r\n var filterEnabled = wrapper.data(\"filter-enabled\");\r\n var filterDisplay = wrapper.data(\"filter-on\");\r\n var listType = wrapper.data(\"list-type\");\r\n var minPriceFilter = wrapper.data(\"min-price-filter\");\r\n var maxPriceFilter = wrapper.data(\"max-price-filter\");\r\n if (filterEnabled == 'True' && filterDisplay == 'True') {\r\n $('#filter').load(root + \"Widgets/ProductFilterWidget?listType=\" + listType + \"&catId=\" + catId + \"&brandId=\" + brandId +\r\n \"&searchString=\" + searchString + \"&filter=\" + filter + \"&brandFilter=\" + brandFilter +\r\n \"&minPriceFilter=\" + minPriceFilter + \"&maxPriceFilter=\" + maxPriceFilter);\r\n\r\n $('#filtersOnly').load(root + \"Widgets/GetSpecFilters?catId=\" + catId + \"&brandId=\" + brandId +\r\n \"&searchString=\" + searchString + \"&filter=\" + filter + \"&brandFilter=\" + brandFilter);\r\n\r\n }\r\n\r\n $(\".list-view-select\").change(function () {\r\n var val = $(this).val();\r\n window.location.href = val;\r\n });\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\r\n $(document).on('click', '.clear-filters-button', function () {\r\n $(\".ecom-filter-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 window.location.href = val;\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 $('.product-list-add-to-cart-btn').click(function () {\r\n var fbPixelEnabled = $('#product-view-container').data(\"fb-pixel\");\r\n var btn = $(this);\r\n var id = btn.data(\"id\");\r\n var wrapper = btn.closest('.list-view-add-cart-wrapper');\r\n var qty = wrapper.find('.qty-tbx').val();\r\n\r\n $.ajax({\r\n url: root + \"Cart/AddToCart\",\r\n type: 'POST',\r\n dataType: 'json',\r\n data: JSON.stringify({ productId: id, quantity: qty }),\r\n contentType: 'application/json; charset=utf-8',\r\n success: function (data) {\r\n //AddedToCart(data);\r\n $(document).trigger('itemAdded.product.platform', data);\r\n //SetCartQty();\r\n if (fbPixelEnabled == \"True\") {\r\n fbq_addToBag();\r\n }\r\n }\r\n });\r\n\r\n return false;\r\n });\r\n\r\n $('.list-view-add-cart-wrapper .pf-qty-btn-minus').click(function () {\r\n var wrapper = $(this).closest('.qtywrapper');\r\n var qtyTbx = wrapper.find('.qty-tbx');\r\n var qty = Number(qtyTbx.val());\r\n var UoM = qtyTbx.data(\"units_of_measure\");\r\n \r\n if (qty > UoM) {\r\n qty -= UoM;\r\n }\r\n if (qty < 0) qty = 0;\r\n qtyTbx.val(qty);\r\n });\r\n\r\n $('.list-view-add-cart-wrapper .pf-qty-btn-plus').click(function () {\r\n var wrapper = $(this).closest('.qtywrapper');\r\n var qtyTbx = wrapper.find('.qty-tbx');\r\n var qty = Number(qtyTbx.val());\r\n var UoM = qtyTbx.data(\"units_of_measure\");\r\n qty+=UoM;\r\n qtyTbx.val(qty);\r\n });\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) {\r\n // get the list of selected options and build querystring\r\n var attrList = [];\r\n var s = [];\r\n var brands = [];\r\n $('.ecom-filter-group').each(function () {\r\n var id = $(this).data(\"filter-attr\");\r\n var filterType = $(this).data(\"filter-type\");\r\n var found = false;\r\n var attrItem = [];\r\n $(this).closest(\".pf-filter-dropdown\").find(\".ecom-filter-val\").each(function () {\r\n if ($(this).is(':checked')) {\r\n\r\n if (filterType == \"val\") {\r\n attrItem.push($(this).data(\"filter-attr-val\"));\r\n found = true;\r\n }\r\n //if (filterType == \"val\") {\r\n // s.push($(this).data(\"filter-attr-val\"));\r\n //}\r\n else if (filterType == \"brand\") {\r\n brands.push($(this).val());\r\n }\r\n }\r\n });\r\n if (found == true) {\r\n attrList.push(id + \"|\" + attrItem.join('-'));\r\n }\r\n });\r\n\r\n var newQuerystring = \"\";\r\n var cnt = 0;\r\n for (var i in attrList) {\r\n newQuerystring += attrList[i];\r\n cnt++;\r\n if (cnt < attrList.length) {\r\n newQuerystring += \",\";\r\n }\r\n }\r\n\r\n //var newUrl = url + \"?\" + newQuerystring + \"#x-product-listing\";\r\n\r\n // attributes\r\n //var qs = s.join('-');\r\n //// gets new url to call\r\n\r\n var newUrl = UpdateQueryString(\"pf\", newQuerystring, url);\r\n\r\n\r\n //// brands\r\n qs = brands.join('-');\r\n newUrl = UpdateQueryString(\"br\", qs, newUrl);\r\n\r\n // price ranges\r\n var minPrice = $('#min-price-filter').val();\r\n if (typeof minPrice != 'undefined' && minPrice != -1) {\r\n newUrl = UpdateQueryString(\"minprice\", minPrice, newUrl);\r\n }\r\n var maxPrice = $('#max-price-filter').val();\r\n if (typeof maxPrice != 'undefined' && maxPrice != -1) {\r\n newUrl = UpdateQueryString(\"maxprice\", maxPrice, newUrl);\r\n }\r\n\r\n // sorting\r\n var sort = $('#product-sort').val();\r\n if (typeof sort != 'undefined') {\r\n newUrl = UpdateQueryString(\"listby\", sort, newUrl);\r\n }\r\n\r\n // call url\r\n window.location = newUrl;\r\n}\r\n\r\nfunction UpdateQueryString(key, value, url) {\r\n if (!url) url = window.location.href;\r\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|#|$)(.*)\", \"gi\"),\r\n hash;\r\n\r\n if (re.test(url)) {\r\n if (typeof value !== 'undefined' && value !== null)\r\n return url.replace(re, '$1' + key + \"=\" + value + '$2$3');\r\n else {\r\n hash = url.split('#');\r\n url = hash[0].replace(re, '$1$3').replace(/(&|\\?)$/, '');\r\n if (typeof hash[1] !== 'undefined' && hash[1] !== null)\r\n url += '#' + hash[1];\r\n return url;\r\n }\r\n }\r\n else {\r\n if (typeof value !== 'undefined' && value !== null) {\r\n var separator = url.indexOf('?') !== -1 ? '&' : '?';\r\n hash = url.split('#');\r\n url = hash[0] + separator + key + '=' + value;\r\n if (typeof hash[1] !== 'undefined' && hash[1] !== null)\r\n url += '#' + hash[1];\r\n return url;\r\n }\r\n else\r\n return url;\r\n }\r\n}\r\n\r\nfunction ClearFilters(url)\r\n{\r\n // call url\r\n var newUrl = UpdateQueryString(\"pf\", null, url);\r\n newUrl = UpdateQueryString(\"br\", null, newUrl);\r\n window.location = newUrl;\r\n}\r\n\r\nfunction InitFilterHeader()\r\n{\r\n $('.pf-filter-header').click(function () {\r\n var filter = $(this).closest('.pf-filter-header').next('.pf-filter-items');\r\n var trigger = $(this).find('.pf-filter-main-dropdown-btn');\r\n if (filter.is(':visible')) {\r\n filter.slideUp();\r\n trigger.addClass('closed');\r\n trigger.removeClass('open');\r\n }\r\n else {\r\n filter.slideDown();\r\n trigger.removeClass('closed');\r\n trigger.addClass('open');\r\n }\r\n });\r\n}\r\n\r\nfunction InitCats() {\r\n $('.filter-cats-sub').hide();\r\n var selectedLink = $('.cat-selected');\r\n\r\n // open cat parents for selected cat\r\n var parents = selectedLink.parents('nav');\r\n parents.show();\r\n //parents.find('.filter-dropdown-icon').removeClass('closed');\r\n //parents.find('.filter-dropdown-icon').addClass('open');\r\n\r\n // open filter specs for selected\r\n var filterSelectedParent = $('.ecom-filter-val.filter-selected').closest('.pf-filter-dropdown-btn');\r\n filterSelectedParent.find('.pf-filter-dropdown-btn').removeClass('closed');\r\n filterSelectedParent.find('.filter-dropdown-list').show();\r\n\r\n $('.pf-filter-dropdown-btn').click(function () {\r\n var parent = $(this).closest('.pf-filter-item');\r\n if (parent.next('nav').is(':visible')) {\r\n parent.next('nav').slideUp();\r\n parent.find('.pf-filter-dropdown-btn').addClass('closed');\r\n }\r\n else {\r\n parent.next('nav').slideDown();\r\n parent.find('.pf-filter-dropdown-btn').removeClass('closed');\r\n }\r\n //$(this).next('nav').slideToggle().toggleClass('filter-closed');\r\n });\r\n\r\n if ($('.ecom-filter-val.filter-selected')[0]) {\r\n ShowClearFilterBtn();\r\n }\r\n}\r\n\r\nfunction InitSpecs() {\r\n\r\n // open filter specs for selected\r\n var filterSelectedParent = $('.ecom-filter-val.filter-selected').closest('.filter-dropdown');\r\n filterSelectedParent.find('.pf-spec-filter-dropdown-btn').removeClass('closed');\r\n filterSelectedParent.find('.filter-dropdown-list').show();\r\n\r\n $('.pf-spec-filter-dropdown-btn').click(function () {\r\n var parent = $(this).closest('.pf-filter-item');\r\n if (parent.next('nav').is(':visible')) {\r\n parent.next('nav').slideUp();\r\n parent.find('.pf-spec-filter-dropdown-btn').addClass('closed');\r\n }\r\n else {\r\n parent.next('nav').slideDown();\r\n parent.find('.pf-spec-filter-dropdown-btn').removeClass('closed');\r\n }\r\n //$(this).next('nav').slideToggle().toggleClass('filter-closed');\r\n });\r\n\r\n if ($('.ecom-filter-val.filter-selected')[0]) {\r\n ShowClearFilterBtn();\r\n }\r\n}\r\n\r\nfunction ShowClearFilterBtn() {\r\n $('#pf-clear-filters-btn').css('display', 'inline-block');\r\n}"]}